Fórum Criando TFields em RUN TIME.. #242518

12/07/2004

0

Colegas..

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

Cabelo

Responder

Posts

12/07/2004

Cabelo

sobe..


Responder

Gostei + 0

13/07/2004

Cabelo

sobe..


Responder

Gostei + 0

13/07/2004

Everton

Colega,

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 !!!



Responder

Gostei + 0

13/07/2004

Cabelo

Caro Colega..

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar