procedure CreateReport(const MasterData: TDataSet; const ReportFielName: string; const n: integer);
var
PrintReport: TFrReport;
ReportDataSet: TfrDBDataSet;
ReportDesigner: TfrDesigner;
path: string;
begin PrintReport := TFrReport.Create(Application);
ReportDesigner := TfrDesigner.create(Application);
ReportDataSet := TfrDBDataSet.Create(Application);
try
PrintReport.Title := '数据报表';
ReportDataSet.DataSet := MasterData;
PrintReport.Dataset := ReportDataSet;
path := ExtractFilePath(application.ExeName) + 'reports\';
if not DirectoryExists(path) then
CreateDir(path);
if not FileExists(path + ReportFielName) then
begin
PrintReport.Pages.Add;
PrintReport.SaveToFile(path + ReportFielName);
end; PrintReport.LoadFromFile(path + ReportFielName);
case n of
1: //打印
PrintReport.PrintPreparedReportDlg;
2: //预览
PrintReport.ShowReport;
3: //修改
PrintReport.DesignReport;
end;
finally
PrintReport.Free;
ReportDataSet.Free;
ReportDesigner.Free;
end;以上是我根据fastreport动态生成报表的代码
有一个问题是在预览的时候(PrintReport.ShowReport),
打印前设置页面也横向打印的时候,打印出来的始终是纵向,只有通过修改(PrintReport.DesignReport)
设置打印方向为横向,下次预览时才是横向,以上代码需要怎么优化?????
谢谢
var
PrintReport: TFrReport;
ReportDataSet: TfrDBDataSet;
ReportDesigner: TfrDesigner;
path: string;
begin PrintReport := TFrReport.Create(Application);
ReportDesigner := TfrDesigner.create(Application);
ReportDataSet := TfrDBDataSet.Create(Application);
try
PrintReport.Title := '数据报表';
ReportDataSet.DataSet := MasterData;
PrintReport.Dataset := ReportDataSet;
path := ExtractFilePath(application.ExeName) + 'reports\';
if not DirectoryExists(path) then
CreateDir(path);
if not FileExists(path + ReportFielName) then
begin
PrintReport.Pages.Add;
PrintReport.SaveToFile(path + ReportFielName);
end; PrintReport.LoadFromFile(path + ReportFielName);
case n of
1: //打印
PrintReport.PrintPreparedReportDlg;
2: //预览
PrintReport.ShowReport;
3: //修改
PrintReport.DesignReport;
end;
finally
PrintReport.Free;
ReportDataSet.Free;
ReportDesigner.Free;
end;以上是我根据fastreport动态生成报表的代码
有一个问题是在预览的时候(PrintReport.ShowReport),
打印前设置页面也横向打印的时候,打印出来的始终是纵向,只有通过修改(PrintReport.DesignReport)
设置打印方向为横向,下次预览时才是横向,以上代码需要怎么优化?????
谢谢
begin
if 横向 then
PrintReport.Pages[i].ChangePaper(纸张类型,自定义则=256, Width, Height, -1, poLandscape)
else
PrintReport.Pages[i].ChangePaper(PageType, Width, Height, -1, poPortrait);
//Landscape --横向打印,Portrait -- 纵向打印
end;