Encontrei um problema com o Fastreport 6.7 e a impressão do DANFe
Não acontece no fast 6.5 e 6.6
Quando configura as margens e manda visualizar o DANFe as margens são visualizadas corretamente.
Mas ao clicar em imprimir o Fast volta as margens para o padrão.
Se mandar imprimir direto as margens são ignoradas também.
Unit: ACBrNFeDANFEFRDM
Procedimento: AjustaMargensReports
Não funciona se usar frxReport.ShowPreparedReport
Fiz alteração no procedimento AjustaMargensReports
E ao invés de chamar AjustaMargensReports mudei para chamar
frxReport.ShowReport(true)
Ainda não testei no CTe mas como os métodos são iguais provavelmente ira dar o mesmo problema
So acontece com Fastreport 6.7
Usei Delphi 10.3
procedure TACBrNFeFRClass.AjustaMargensReports;
var
Page: TfrxReportPage;
I: Integer;
begin
//não funciona com frxReport.ShowPreparedReport e Fastrepor 6.7
{ for I := 0 to (frxReport.PreviewPages.Count - 1) do
begin
Page := frxReport.PreviewPages.Page;
if (DANFEClassOwner.MargemSuperior > 0) then
Page.TopMargin := DANFEClassOwner.MargemSuperior;
if (DANFEClassOwner.MargemInferior > 0) then
Page.BottomMargin := DANFEClassOwner.MargemInferior;
if (DANFEClassOwner.MargemEsquerda > 0) then
Page.LeftMargin := DANFEClassOwner.MargemEsquerda;
if (DANFEClassOwner.MargemDireita > 0) then
Page.RightMargin := DANFEClassOwner.MargemDireita;
end;
}
//10/06/2020 FastReport 6.7
for I := 1 to (frxReport.PreviewPages.Count) do
begin
// Page := TfrxReportPage(frxReport.FindObject('Page'+IntToStr(i)));
page := TfrxReportPage(frxReport.FindObject('Page'+IntToStr(i)));
if page<>nil then
Begin
if (DANFEClassOwner.MargemSuperior > 0) then
Page.TopMargin := DANFEClassOwner.MargemSuperior;
if (DANFEClassOwner.MargemInferior > 0) then
Page.BottomMargin := DANFEClassOwner.MargemInferior;
if (DANFEClassOwner.MargemEsquerda > 0) then
Page.LeftMargin := DANFEClassOwner.MargemEsquerda;
if (DANFEClassOwner.MargemDireita > 0) then
Page.RightMargin := DANFEClassOwner.MargemDireita;
End;
end;
end;
ACBrNFeDANFEFRDM.pas