Fórum Criando TFields em RUN TIME.. #242518
12/07/2004
0
Estou criando um componente Senha, e para a tela de manutenção dos logins, uso um DBGrid, preciso de um campo LookUp, para visualizar e selecionar o tipo do Usuário..Deve ser U ou S, somente isso, por isso preciso criar os TFields em RUN TIME, para isso crio os TFields antes de abrir o ClientDataSet assim :
//Field Data
s_field_RE21000_C_COD_SENHA := TStringField.Create(self);
with s_field_RE21000_C_COD_SENHA do
begin
FieldName := ´C_COD_SENHA´;
Index := l_client.FieldCount;
FieldKind := fkData;
Size := 15;
Visible := true;
SetFieldType(ftString);
DataSet := l_client;
end;
//Field Calculated
s_field_RE21000_D_TIPO := TStringField.Create(self);
with s_field_RE21000_D_FONTE do
begin
FieldName := ´D_TIPO´;
Index := l_client.FieldCount;
FieldKind := fkCalculated;
Calculated := true;
Size := 50;
Visible := true;
SetFieldType(ftString);
DataSet := l_client;
end;
//Field LookUp
s_field_RE21000_D_LOOKUP_TIPO := TStringField.Create(self);
with s_field_RE21000_D_LOOKUP_TIPO do
begin
FieldName := ´D_LOOKUP_TIPO´;
Index := l_client.FieldCount;
FieldKind := fkLookup;
Size := 50;
Visible := true;
SetFieldType(ftString);
Lookup := true;
LookupDataSet := s_client_RE21000_cor;
LookupResultField := ´D_COR´;
LookupKeyFields := ´D_COR´;
KeyFields := s_field_RE21000_D_COR.FieldName;
DataSet := l_client;
end;
Perceba que além de tudo preciso de um campo calculado para poder mostrar na tela o seguinte :
Quando Tipo = ´S´ no banco, ele dá um select em outra tabela e mostra ´Supervisor´, assim por diante, mas na hora de inserir ou editar, deve aparecer um combo com as opções S - Supervisor, e U - Usuário, que tb é selecionado da tabela do campo calculado..
espero ter conseguido explicar..
O erro está quando abro o ClientDataSet principal erro :
´Field D_TIPO not found´..
Sei que não está encontrando o campo calculado D_TIPO, mas o quê estou fazendo errado??
agradeço a atenção de todos..
Cabelo
Cabelo
Curtir tópico
+ 0Posts
12/07/2004
Cabelo
Gostei + 0
13/07/2004
Cabelo
Gostei + 0
13/07/2004
Everton
observando o seu código notei o seguinte erro:
//Field Calculated s_field_RE21000_D_TIPO := TStringField.Create(self); with s_field_RE21000_D_FONTE do // <<-------- Aqui está o erro
Deve ter sido o bendito Ctrl + C ... Ctrl + V ... :)
//Field Calculated s_field_RE21000_D_TIPO := TStringField.Create(self); with s_field_RE21000_D_TIPO do // <<------ Agora sim !!!
Gostei + 0
13/07/2004
Cabelo
Obrigado pela sua atenção, mas o quê acontece é o seguinte.. com certeza foi o ctrl + c e o ctrl + v, mas somente aqui no fórum, no meu código está tudo certo, inclusive este campo, no qual eu tenho mais ou menos uns 70 campos, e só tirei três, para exemplo, veja que é só um de cada..
Acho que na hora de editá - los aki no fórum eu coloquei errado, mas no código está tudo certo e continua dando o mesmo erro..
se puder me dar outra dica eu agradeço..
sem mais
Cabelo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)