Imprimir parâmetros digitados pelo usuário


Está ai uma coisa que melhora muito a estética do relatório.

Por exemplo: imprimir relatório conforme o período definido pelo usuário para impressão dos dados.

Vamos lá!

A princípio a idéia é permitir que o usuário informe o período e também a filial desejada ou todas as filiais.

  • O primeiro passo, e muito importante, é verificar a ordem dos filtros no condutor de dados, pois você terá que passar essa informação no evento da variável ou label.
  • Na imagem abaixo, o campo CodEmpresa da tabela Nota Fiscal é a posição 0 e o campo DataNF da mesma tabela é a posição 1, e assim por diante.




(seleção) Como imprimir o período digitado pelo usuário.
  • Nos Eventos do Report Builder, acesse o evento OnPrint de um objeto Label, e coloque o seguinte comando:

    begin
      Label12.Caption := DateToStr(Report.AutoSearchFields[parametro].Value)+ ' a ' +   
      DateToStr(Report.AutoSearchFields[parametro].Value);
    end;


O comando AutoSearchFields[RTF:1].Value irá pegar o campo digitado na posição 1, e o DateToStr converte a data para string.

[parametro] - Deverá ser preenchido sempre com a posição do parâmetro que você quer pegar.



(seleção) Como imprimir a empresa que o usuário informou ou Todas as Empresas
  • Nos Eventos do Report Builder, acesse o evento OnGetText de um objeto Label, e coloque o seguinte comando:


begin
  if Report.AutoSearchFields[0].ShowAllValues then begin
    Text:= 'Todas as Filiais';
  end else begin
    Text:= 'Filial: '+Report.AutoSearchFields[0].Value + ' - '+NotaFiscal['NomeUsual (2)'] ;
  end;                                                         
end;


O comando Report.AutoSearchFields[parametro].ShowAllValues identifica quando o usuário seleciona a opção de todos.
[parametro] - Deverá ser preenchido sempre com a posição do parâmetro que você quer pegar.



Feito isso, se o usuário selecionar uma determinada empresa será impresso o nome usual daquela empresa se ele selecionar Mostrar todos os valores do campos CodEmpresa, no relatório será impresso "Todas as Empresas".