Query FielByName sendo atribuida a Query ParamByName

SQL Server

Delphi

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

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

Charles Pereira

Curtidas 0

Melhor post

Anderson Gonçalves

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.
GOSTEI 1

Mais Respostas

Charles Pereira

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

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

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

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
POSTAR