unit urelDuplicados; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, RLReport, Data.DB, RLFilters, RLPDFFilter; type TrelDuplicados = class(TForm) frDuplicados: TRLReport; frbnd_header: TRLBand; frpnl_logo: TRLPanel; frdbimg_logo: TRLDBImage; frlbl_titulorel: TRLLabel; frfilterpdf: TRLPDFFilter; dtsRel: TDataSource; frbndg_dados: TRLGroup; frbnd_dados: TRLBand; frdblbl_valor: TRLDBText; frdblbl_codigo: TRLDBText; frbnd_headergrupo: TRLBand; frdblbl_nome: TRLDBText; frdblbl_cpf: TRLDBText; frbnd_headerdetail: TRLBand; frlbl_nometitulo: TRLLabel; frlbl_valor: TRLLabel; frlbl_dtvencimento: TRLLabel; frdblbl_dtvencimento: TRLDBText; RLLabel1: TRLLabel; frdblbl_tpacao: TRLDBText; frbnd_footerrel: TRLBand; RLSystemInfo2: TRLSystemInfo; RLSystemInfo1: TRLSystemInfo; dtsEmpresa: TDataSource; frlbl_empresanome: TRLLabel; procedure frDuplicadosBeforePrint(Sender: TObject; var PrintIt: Boolean); procedure frDuplicadosAfterPrint(Sender: TObject); procedure frdblbl_cpfBeforePrint(Sender: TObject; var Text: string; var PrintIt: Boolean); private procedure SalvarRelPDF; { Private declarations } public { Public declarations } end; var relDuplicados: TrelDuplicados; meses: array [1 .. 12] of string = ( 'JANEIRO', 'FEVEREIRO', 'MARCO', 'ABRIL', 'MAIO', 'JUNHO', 'JULHO', 'AGOSTO', 'SETEMBRO', 'OUTUBRO', 'NOVEMBRO', 'DEZEMBRO' ); implementation {$R *.dfm} uses udtmSystem; procedure TrelDuplicados.frdblbl_cpfBeforePrint(Sender: TObject; var Text: string; var PrintIt: Boolean); begin if dtsRel.DataSet.FieldByName('CD_CPF').AsString = '' then begin frdblbl_cpf.DataField := 'CD_CNPJ'; end else begin frdblbl_cpf.DataField := 'CD_CPF'; end; end; procedure TrelDuplicados.frDuplicadosAfterPrint(Sender: TObject); begin SalvarRelPDF; end; procedure TrelDuplicados.frDuplicadosBeforePrint(Sender: TObject; var PrintIt: Boolean); begin if not dtsEmpresa.DataSet.Active then begin dtsEmpresa.DataSet.Open; end; if frdbimg_logo.Picture.Height > frdbimg_logo.Picture.Width then begin frdbimg_logo.Height := 170; frdbimg_logo.Width := 133; end; if frdbimg_logo.Picture.Height < frdbimg_logo.Picture.Width then begin frdbimg_logo.Height := 133; frdbimg_logo.Width := 170; end; if frdbimg_logo.Picture.Height = frdbimg_logo.Picture.Width then begin frdbimg_logo.Height := 133; frdbimg_logo.Width := 133; end; frlbl_empresanome.Caption := UpperCase(dtmSystem.tblCHGEmpresaTX_NOME.AsString); end; procedure TrelDuplicados.SalvarRelPDF; var path, file_name: string; Fmt: TFormatSettings; i: Integer; begin Fmt := TFormatSettings.Create; for i := 0 to High(meses) do begin Fmt.LongMonthNames[i] := meses[i]; end; // path := ExtractFilePath(Application.ExeName) + 'RELATORIOS'; path := dtmSystem.path_executavel + '\RELATORIOS'; if not DirectoryExists(path) then begin CreateDir(path); end; path := path + '\DUPLICADOS'; if not DirectoryExists(path) then begin CreateDir(path); end; path := path + '\' + dtmSystem.tblCHGEmpresaTX_NOME.AsString; if not DirectoryExists(path) then begin CreateDir(path); end; path := TrimRight(path); path := path + '\' + FormatDateTime('YYYY', Date); if not DirectoryExists(path) then begin CreateDir(path); end; path := path + '\' + FormatDateTime('mmmm', Date, Fmt); if not DirectoryExists(path) then begin CreateDir(path); end; path := path + '\' + FormatDateTime('dd', Date); if not DirectoryExists(path) then begin CreateDir(path); end; file_name := path + '\RELATORIO_DULICADOS-' + FormatDateTime('HH-mm', Time) + '.pdf'; frfilterpdf.FileName := file_name; frDuplicados.SaveToFile(file_name); end; end.