Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

erro ao criar campo lookup em tempo de execução

Recommended Posts

boa tarde galera...

estou tentando criar um campo lookup em tempo de execução...

                          if dm.qryficha_anotacao_geral.FindField('Situacao') = Nil then
                            begin
                              with TStringField.Create(dm.qryficha_anotacao_geral) do
                                begin
                                  FieldKind:= fkLookup;
                                  FieldName:= 'Situacao';
                                  DataSet:= dm.qryficha_anotacao_geral;
                                  Name:= DataSet.Name + FieldName;
                                  KeyFields:= 'Codigo_Situacao';
                                  LookupDataSet:= dm.qrycadastro_situacao;
                                  LookupKeyFields:= 'Codigo_Situacao';
                                  LookupResultField:= 'Situacao';
                                  LookupCache:= true;
                                  dm.qryficha_anotacao_geral.FieldDefs.Add(Name, FTString, 30, True);
                                end;
                            end;
até entao está quase certo, só que, quando eu dou um .Open na query ele fala que o campo Codigo_Situacao nao foi encontrado e minha query no meu dm está toda em branco, pois é uma query que uso pra fazer outras operações, entao, ela está toda em branco, nao tem nenhum campo nela, justamente pra fazer outras tarefas dentro do sistema.... ai, eu tendo dar o .Open antes de criar o campo lookup, pq dai ele iria achar o campo Codigo_Situacao, só que ai ele fala que nao pode criar o campo em um dataset aberto...

 

alguem tem uma dica???? desde já, agradeço a todos....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não deveria colocar os seguintes comandos juntamente com a adição do campo 'Name' do seu codigo?

Ficando :

 

dm.qryficha_anotacao_geral.FieldDefs.Add(Name, FTString, 30, True);
//Trecho a ser adicionado 
dm.qrycadastro_situacao.FieldDefs.Add('Codigo_Situacao', FTInteger, 0, True)
dm.qrycadastro_situacao.FieldDefs.Add('Situacao', FTString, 45, True)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.