Query FielByName sendo atribuida a Query ParamByName
Boa tarde,
estou montando um relatório no delphi5 utilizando o quickReports e neste estou utilizando uma linha e uma sublinha para exemplicar dados da primeira.
Tenho a QryDados que preenche a linha principal e se nela tiver dados que se dupliquem aplico para mostrar na qryDetalheDados gostaria de saber como fazer a chamada da FieldByName da QryDados e usar como ParamByName corretamente em minha qryDetalheDados.
Obs.: neste exemplo apliqeui um AfterScroll
estou montando um relatório no delphi5 utilizando o quickReports e neste estou utilizando uma linha e uma sublinha para exemplicar dados da primeira.
Tenho a QryDados que preenche a linha principal e se nela tiver dados que se dupliquem aplico para mostrar na qryDetalheDados gostaria de saber como fazer a chamada da FieldByName da QryDados e usar como ParamByName corretamente em minha qryDetalheDados.
Obs.: neste exemplo apliqeui um AfterScroll
procedure TFRExpedicao.qryDadosAfterScroll(DataSet: TDataSet); begin if not(qryDados.eof) then with qrySubDados do begin qrySubDados.Close; parambyname(''lote'').value := qryDados.fieldbyname(''lote_Frango'').asInteger; parambyname(''nro_ordem'').value := qryDados.fieldbyname(''nro_ordem'').asInteger; qrySubDados.Open(); end; end;
Charles Pereira
Curtidas 0
Melhor post
Anderson Gonçalves
15/01/2020
Fala boy, seguinte...
Se você quer fazer um loop faz assim:
Observe que eu removi aspas duplas e coloquei simples.
while not qryDados.eof then
begin
with qrySubDados do
begin
qrySubDados.Close;
parambyname('lote').value := qryDados.fieldbyname('lote_Frango').asInteger;
parambyname('nro_ordem').value := qryDados.fieldbyname('nro_ordem').asInteger;
qrySubDados.Open;
end;
qryDados.next;
end;
Se quiser checar se ele retornou resultado dentro da query faça assim:
if qryDados.recordcount >0 then
begin
with qrySubDados do
begin
qrySubDados.Close;
parambyname('lote').value := qryDados.fieldbyname('lote_Frango').asInteger;
parambyname('nro_ordem').value := qryDados.fieldbyname('nro_ordem').asInteger;
qrySubDados.Open;
end;
end;
Espero ter ajudado.
Se você quer fazer um loop faz assim:
Observe que eu removi aspas duplas e coloquei simples.
while not qryDados.eof then
begin
with qrySubDados do
begin
qrySubDados.Close;
parambyname('lote').value := qryDados.fieldbyname('lote_Frango').asInteger;
parambyname('nro_ordem').value := qryDados.fieldbyname('nro_ordem').asInteger;
qrySubDados.Open;
end;
qryDados.next;
end;
Se quiser checar se ele retornou resultado dentro da query faça assim:
if qryDados.recordcount >0 then
begin
with qrySubDados do
begin
qrySubDados.Close;
parambyname('lote').value := qryDados.fieldbyname('lote_Frango').asInteger;
parambyname('nro_ordem').value := qryDados.fieldbyname('nro_ordem').asInteger;
qrySubDados.Open;
end;
end;
Espero ter ajudado.
GOSTEI 1
Mais Respostas
Charles Pereira
10/01/2020
Boa tarde,
estou montando um relatório no delphi5 utilizando o quickReports e neste estou utilizando uma linha e uma sublinha para exemplicar dados da primeira.
Tenho a QryDados que preenche a linha principal e se nela tiver dados que se dupliquem aplico para mostrar na qryDetalheDados gostaria de saber como fazer a chamada da FieldByName da QryDados e usar como ParamByName corretamente em minha qryDetalheDados.
Obs.: neste exemplo apliqeui um AfterScroll, e quando executo o processo o fieldbyname vem como valor zero sendo que a query tem dados
estou montando um relatório no delphi5 utilizando o quickReports e neste estou utilizando uma linha e uma sublinha para exemplicar dados da primeira.
Tenho a QryDados que preenche a linha principal e se nela tiver dados que se dupliquem aplico para mostrar na qryDetalheDados gostaria de saber como fazer a chamada da FieldByName da QryDados e usar como ParamByName corretamente em minha qryDetalheDados.
Obs.: neste exemplo apliqeui um AfterScroll, e quando executo o processo o fieldbyname vem como valor zero sendo que a query tem dados
procedure TFRExpedicao.qryDadosAfterScroll(DataSet: TDataSet); begin if not(qryDados.eof) then with qrySubDados do begin qrySubDados.Close; parambyname(''lote'').value := qryDados.fieldbyname(''lote_Frango'').asInteger; parambyname(''nro_ordem'').value := qryDados.fieldbyname(''nro_ordem'').asInteger; qrySubDados.Open(); end; end;
GOSTEI 0
Charles Pereira
10/01/2020
Anderson obrigado pelo apoio, acabei resolvendo o problema transformando as duas em uma só query e aplicando group no quick reports.
GOSTEI 1
Anderson Gonçalves
10/01/2020
Anderson obrigado pelo apoio, acabei resolvendo o problema transformando as duas em uma só query e aplicando group no quick reports.
Já dizia meu professor, "Não importa como você vai fazer, importante que fique funcional e bom para o usuário".
Estamos as ordens.
GOSTEI 0