Incluir e Remover campos no field editor
29/07/2008
0
Boa tarde,
Em uma query que é montada em tempo de execução são incluídos os campos tipo, sub_tipo, categoria, data_inc e valor.
Depois a mesma query é utilizada para os campos tipo, sub_tipo, categoria e valor.
Gostaria de saber como fazer para incluir estes campos no field editor para o primeiro conteúdo da query, remover e depois incluir os outros campos da segunda consulta.
Estou utilizando o Delphi 6, se alguém tiver alguma dica agradeço.
Obrigado.
Airton
Em uma query que é montada em tempo de execução são incluídos os campos tipo, sub_tipo, categoria, data_inc e valor.
Depois a mesma query é utilizada para os campos tipo, sub_tipo, categoria e valor.
Gostaria de saber como fazer para incluir estes campos no field editor para o primeiro conteúdo da query, remover e depois incluir os outros campos da segunda consulta.
Estou utilizando o Delphi 6, se alguém tiver alguma dica agradeço.
Obrigado.
Airton
Airoosp
Curtir tópico
+ 0
Responder
Posts
30/07/2008
Luiz Henrique
Bom dia AirooSP
Faz tempo que nao uso o D6, uso isto no D2007 com ClientDataSet(ilustrada no exemplo como CDS) para criar campo, na teoria seria mais ou menos o mesmo, talvez tenha que fazer algum ajuste:
//Basicamente vc vai criar o campo e configura-lo, na configuracao vc anexa ele ao Objeto(Query).
var
_fldinteger: TIntegerField;
begin
//Note que tera que instanciar para cada tipo de campo.
//_fldstring: TStringField e etc...
// o processo abaixo fica o mesmo, trocando o objeto campo apenas.
_fldinteger := TIntegerField.Create(Nil);
_fldinteger.fieldName := NomeDoCampo;
_fldinteger.FieldKind := fkData;
_fldinteger.DisplayLabel := NomeDoCampo;
_fldinteger.Visible := True;
//o nome do campo no objeto, nome do objeto+campo...
_fldinteger.Name := CDS.Name + _fldinteger.FieldName;
_fldinteger.Index := CDS.FieldCount;
//Aqui vc anexa o campo ao Objeto
_fldinteger.DataSet := CDS;
end;
...para deletar os campos, use Qry.FieldDefs.Clear
espero que te ajude
T+
Faz tempo que nao uso o D6, uso isto no D2007 com ClientDataSet(ilustrada no exemplo como CDS) para criar campo, na teoria seria mais ou menos o mesmo, talvez tenha que fazer algum ajuste:
//Basicamente vc vai criar o campo e configura-lo, na configuracao vc anexa ele ao Objeto(Query).
var
_fldinteger: TIntegerField;
begin
//Note que tera que instanciar para cada tipo de campo.
//_fldstring: TStringField e etc...
// o processo abaixo fica o mesmo, trocando o objeto campo apenas.
_fldinteger := TIntegerField.Create(Nil);
_fldinteger.fieldName := NomeDoCampo;
_fldinteger.FieldKind := fkData;
_fldinteger.DisplayLabel := NomeDoCampo;
_fldinteger.Visible := True;
//o nome do campo no objeto, nome do objeto+campo...
_fldinteger.Name := CDS.Name + _fldinteger.FieldName;
_fldinteger.Index := CDS.FieldCount;
//Aqui vc anexa o campo ao Objeto
_fldinteger.DataSet := CDS;
end;
...para deletar os campos, use Qry.FieldDefs.Clear
espero que te ajude
T+
Responder
20/08/2008
Rodolfo.pirolo
Luiz Henrique,
Fiz o que voce demonstrou porem quando abro o cds ele dá mensagem de Field ´meucampo´ not found.
Porque?
Obrigado pela atenção.
Rodolfo
Fiz o que voce demonstrou porem quando abro o cds ele dá mensagem de Field ´meucampo´ not found.
Porque?
Obrigado pela atenção.
Rodolfo
Responder
Clique aqui para fazer login e interagir na Comunidade :)