|  | @@ -60,6 +60,7 @@ type
 | 
	
		
			
				|  |  |      chkExcel2010: TCheckBox;
 | 
	
		
			
				|  |  |      dxcciExcelMode: TdxBarControlContainerItem;
 | 
	
		
			
				|  |  |      pnlReports: TPanel;
 | 
	
		
			
				|  |  | +    BatchPrintXml: TPrintComXML;
 | 
	
		
			
				|  |  |      procedure PreviewComXMLGetDataConnection(var ADOCon: TADOConnection);
 | 
	
		
			
				|  |  |      procedure xlbRealSizeClick(Sender: TObject);
 | 
	
		
			
				|  |  |      procedure xlbOnePageClick(Sender: TObject);
 | 
	
	
		
			
				|  | @@ -105,9 +106,9 @@ type
 | 
	
		
			
				|  |  |      // 报表数据准备
 | 
	
		
			
				|  |  |      FReportDataPrepare: TReportPrepare;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    procedure InitPageSettings;
 | 
	
		
			
				|  |  | -    procedure InitFont;
 | 
	
		
			
				|  |  | -    procedure InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  | +    procedure InitPageSettings(APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  | +    procedure InitFont(APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  | +    procedure InitPaperSettings(ATemplate: TTemplateNode; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      function GetHintStr: string;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -123,7 +124,7 @@ type
 | 
	
		
			
				|  |  |      procedure ResizePreviewBox;
 | 
	
		
			
				|  |  |      procedure PreviewReportCurPage;
 | 
	
		
			
				|  |  |      procedure RepaintCurPagePreview;
 | 
	
		
			
				|  |  | -    procedure LoadTemplet(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  | +    procedure LoadTemplet(ATemplate: TTemplateNode; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |      procedure LoadTempletAndDisplay;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      procedure BeforeExport;
 | 
	
	
		
			
				|  | @@ -133,7 +134,7 @@ type
 | 
	
		
			
				|  |  |      procedure PrintReport(ATemplateNode: TTemplateNode; isPDF, isExcel: boolean;
 | 
	
		
			
				|  |  |        ExcelOutputName, TemplateFileName: string);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    procedure ExportXlsReport(AStartPage, AEndPage: Integer; const AFileName: string);
 | 
	
		
			
				|  |  | +    procedure ExportXlsReport(AStartPage, AEndPage: Integer; const AFileName: string; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |      procedure ExportCurXlsReport;
 | 
	
		
			
				|  |  |      procedure ExportAllSelectedXlsReports;
 | 
	
		
			
				|  |  |      procedure PrintAllSelectedReports;
 | 
	
	
		
			
				|  | @@ -151,7 +152,7 @@ type
 | 
	
		
			
				|  |  |      destructor Destroy; override;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      procedure InitFormView;
 | 
	
		
			
				|  |  | -    procedure InitReportSettings(ATemplate: TTemplateNode = nil);
 | 
	
		
			
				|  |  | +    procedure InitReportSettings(APrintCom: TPrintComXML; ATemplate: TTemplateNode = nil);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      property ProjectData: TProjectData read FProjectData write SetProjectData;
 | 
	
		
			
				|  |  |      // 当前预览的页码
 | 
	
	
		
			
				|  | @@ -188,7 +189,7 @@ begin
 | 
	
		
			
				|  |  |    {ReportsForm.BorderIcons := ReportsForm.BorderIcons - [biMaximize];
 | 
	
		
			
				|  |  |    ReportsForm.WindowState := wsMaximized;}
 | 
	
		
			
				|  |  |    ReportsForm.ProjectData := AProjectData;
 | 
	
		
			
				|  |  | -  ReportsForm.InitReportSettings;
 | 
	
		
			
				|  |  | +  ReportsForm.InitReportSettings(ReportsForm.PreviewComXML);
 | 
	
		
			
				|  |  |    ReportsForm.InitFormView;
 | 
	
		
			
				|  |  |    try
 | 
	
		
			
				|  |  |      ReportsForm.ShowModal;
 | 
	
	
		
			
				|  | @@ -297,7 +298,7 @@ begin
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    Screen.Cursor := crHourGlass;
 | 
	
		
			
				|  |  |    try
 | 
	
		
			
				|  |  | -    LoadTemplet(vTemplateNode);
 | 
	
		
			
				|  |  | +    LoadTemplet(vTemplateNode, PreviewComXML);
 | 
	
		
			
				|  |  |      if PreviewComXML.TotalPages > 0 then
 | 
	
		
			
				|  |  |        PreviewTemplet
 | 
	
		
			
				|  |  |      else
 | 
	
	
		
			
				|  | @@ -584,7 +585,7 @@ var
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  |    sFileName := extvReport.Selected.Text;
 | 
	
		
			
				|  |  |    if (PrintStartPage <= PrintEndPage) and SaveFile(sFileName, '.xls') then
 | 
	
		
			
				|  |  | -    ExportXlsReport(PrintStartPage, PrintEndPage, sFileName);
 | 
	
		
			
				|  |  | +    ExportXlsReport(PrintStartPage, PrintEndPage, sFileName, PreviewComXML);
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  procedure TReportsForm.AfterExport;
 | 
	
	
		
			
				|  | @@ -762,29 +763,29 @@ begin
 | 
	
		
			
				|  |  |      LoadTempletAndDisplay;
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -procedure TReportsForm.InitReportSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  | +procedure TReportsForm.InitReportSettings(APrintCom: TPrintComXML; ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  | -  PreviewComXML.FillZero := chkFillZero.Checked;
 | 
	
		
			
				|  |  | -  InitPageSettings;
 | 
	
		
			
				|  |  | -  InitPaperSettings(ATemplate);
 | 
	
		
			
				|  |  | +  APrintCom.FillZero := chkFillZero.Checked;
 | 
	
		
			
				|  |  | +  InitPageSettings(APrintCom);
 | 
	
		
			
				|  |  | +  InitPaperSettings(ATemplate, APrintCom);
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -procedure TReportsForm.InitPageSettings;
 | 
	
		
			
				|  |  | +procedure TReportsForm.InitPageSettings(APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  |    // 设置页面大小
 | 
	
		
			
				|  |  | -  PreviewComXML.setPageSize(ReportConfig.PageSize);
 | 
	
		
			
				|  |  | +  APrintCom.setPageSize(ReportConfig.PageSize);
 | 
	
		
			
				|  |  |    if ReportConfig.PageSize = 'A3' then
 | 
	
		
			
				|  |  | -    PreviewComXML.PrintPageSizeIdx := DMPAPER_A3
 | 
	
		
			
				|  |  | +    APrintCom.PrintPageSizeIdx := DMPAPER_A3
 | 
	
		
			
				|  |  |    else if ReportConfig.PageSize = 'A4' then
 | 
	
		
			
				|  |  | -    PreviewComXML.PrintPageSizeIdx := DMPAPER_A4;  
 | 
	
		
			
				|  |  | +    APrintCom.PrintPageSizeIdx := DMPAPER_A4;
 | 
	
		
			
				|  |  |    // 设置边距
 | 
	
		
			
				|  |  | -  PreviewComXML.setEdge(0, '', ReportConfig.LeftEdge/10);
 | 
	
		
			
				|  |  | -  PreviewComXML.setEdge(1, '', ReportConfig.RightEdge/10);
 | 
	
		
			
				|  |  | -  PreviewComXML.setEdge(2, '', ReportConfig.UpEdge/10);
 | 
	
		
			
				|  |  | -  PreviewComXML.setEdge(3, '', ReportConfig.DownEdge/10);
 | 
	
		
			
				|  |  | +  APrintCom.setEdge(0, '', ReportConfig.LeftEdge/10);
 | 
	
		
			
				|  |  | +  APrintCom.setEdge(1, '', ReportConfig.RightEdge/10);
 | 
	
		
			
				|  |  | +  APrintCom.setEdge(2, '', ReportConfig.UpEdge/10);
 | 
	
		
			
				|  |  | +  APrintCom.setEdge(3, '', ReportConfig.DownEdge/10);
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  | +procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    procedure InitRepBorderLine;
 | 
	
		
			
				|  |  |    var
 | 
	
	
		
			
				|  | @@ -794,7 +795,7 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  |      ObjList := TList.Create;
 | 
	
		
			
				|  |  |      try
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllShapeObjs(1, ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllShapeObjs(1, ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          ShapeRec := ObjList[i];
 | 
	
	
		
			
				|  | @@ -817,7 +818,7 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |            else
 | 
	
		
			
				|  |  |               ShapeRec.PenStyle := integer(psSolid)
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  | -        PreviewComXML.setShapeObj(ShapeRec);
 | 
	
		
			
				|  |  | +        APrintCom.setShapeObj(ShapeRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |      finally
 | 
	
		
			
				|  |  |        ObjList.Free;
 | 
	
	
		
			
				|  | @@ -834,25 +835,25 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  |      ObjList := TList.Create;
 | 
	
		
			
				|  |  |      try
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  |        // 设置报表表格横线
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          FlowContentRec := ObjList[i];
 | 
	
		
			
				|  |  |          FlowContentRec.LineInfo.TopThick := ReportConfig.CellHorLineWidth;
 | 
	
		
			
				|  |  |          FlowContentRec.LineInfo.BottomThick := ReportConfig.CellHorLineWidth;
 | 
	
		
			
				|  |  | -        PreviewComXML.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  | +        APrintCom.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          CrossContentRec := ObjList[i];
 | 
	
		
			
				|  |  |          CrossContentRec.CrossContent.LineInfo.TopThick := ReportConfig.CellHorLineWidth;
 | 
	
		
			
				|  |  |          CrossContentRec.CrossContent.LineInfo.BottomThick := ReportConfig.CellHorLineWidth;
 | 
	
		
			
				|  |  | -        PreviewComXML.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  | +        APrintCom.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |        // 设置报表表格竖线
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          FlowContentRec := ObjList[i];
 | 
	
	
		
			
				|  | @@ -864,10 +865,10 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |              FlowContentRec.LineInfo.LeftThick := 0
 | 
	
		
			
				|  |  |            else if (i = ObjList.Count - 1) then
 | 
	
		
			
				|  |  |              FlowContentRec.LineInfo.RightThick := 0;
 | 
	
		
			
				|  |  | -        PreviewComXML.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  | +        APrintCom.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          CrossContentRec := ObjList[i];
 | 
	
	
		
			
				|  | @@ -931,7 +932,7 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |              end;
 | 
	
		
			
				|  |  |            end;
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  | -        PreviewComXML.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  | +        APrintCom.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |      finally
 | 
	
		
			
				|  |  |        ObjList.Free;
 | 
	
	
		
			
				|  | @@ -1029,7 +1030,7 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |              0..2 : SetPTRBorder(PSR.Data); //文本,参数,字段,表栏
 | 
	
		
			
				|  |  |              7 : SetPCRBorder(PSR.Data) //Column
 | 
	
		
			
				|  |  |            end;
 | 
	
		
			
				|  |  | -          PreviewComXML.setActShowElementObj(PSR);
 | 
	
		
			
				|  |  | +          APrintCom.setActShowElementObj(PSR);
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |      finally
 | 
	
	
		
			
				|  | @@ -1040,7 +1041,7 @@ procedure TReportsForm.InitPaperSettings(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  |  begin
 | 
	
		
			
				|  |  |    if not Assigned(ATemplate) or (ATemplate.SelfFormat = 0) then
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  | -    InitFont;           // 各类字体
 | 
	
		
			
				|  |  | +    InitFont(APrintCom);           // 各类字体
 | 
	
		
			
				|  |  |      InitRepBorderLine;  // 报表边框
 | 
	
		
			
				|  |  |      InitRepCellLine;    // 报表表格
 | 
	
		
			
				|  |  |      InitOtherArea;      // 活动区域
 | 
	
	
		
			
				|  | @@ -1094,7 +1095,7 @@ begin
 | 
	
		
			
				|  |  |    PreviewReportCurPage;
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  | +procedure TReportsForm.InitFont(APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    procedure AssignFontRec(AFontRec: TFontRec; AFont: TFont);
 | 
	
		
			
				|  |  |    begin
 | 
	
	
		
			
				|  | @@ -1113,7 +1114,7 @@ procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  |      if TitleRec <> nil then
 | 
	
		
			
				|  |  |      begin
 | 
	
		
			
				|  |  |        AssignFontRec(TitleRec.FontRec, ReportConfig.TitleFont);
 | 
	
		
			
				|  |  | -      PreviewComXML.setTitleObj(TitleRec);
 | 
	
		
			
				|  |  | +      APrintCom.setTitleObj(TitleRec);
 | 
	
		
			
				|  |  |      end;
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1143,23 +1144,23 @@ procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  |      ObjList := TList.Create;
 | 
	
		
			
				|  |  |      try
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllColumnHeadObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllColumnHeadObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          ColumnRec := ObjList[i];
 | 
	
		
			
				|  |  |          AssignFontRec(ColumnRec.FontRec, ReportConfig.ColumnFont);
 | 
	
		
			
				|  |  |          InitColumnThick(ColumnRec);
 | 
	
		
			
				|  |  | -        PreviewComXML.setColumnHeadTailObj(0, ColumnRec);
 | 
	
		
			
				|  |  | +        APrintCom.setColumnHeadTailObj(0, ColumnRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllColumnTailObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllColumnTailObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          ColumnRec := ObjList[i];
 | 
	
		
			
				|  |  |          AssignFontRec(ColumnRec.FontRec, ReportConfig.ColumnFont);
 | 
	
		
			
				|  |  |          InitColumnThick(ColumnRec);
 | 
	
		
			
				|  |  | -        PreviewComXML.setColumnHeadTailObj(1,ColumnRec);
 | 
	
		
			
				|  |  | +        APrintCom.setColumnHeadTailObj(1,ColumnRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllActAreaObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllActAreaObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          AAR := ObjList[i];
 | 
	
	
		
			
				|  | @@ -1171,7 +1172,7 @@ procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  |              ColumnRec := SER.Data;
 | 
	
		
			
				|  |  |              AssignFontRec(ColumnRec.FontRec, ReportConfig.ColumnFont);
 | 
	
		
			
				|  |  |              InitColumnThick(ColumnRec);
 | 
	
		
			
				|  |  | -            PreviewComXML.setActShowElementObj(SER);
 | 
	
		
			
				|  |  | +            APrintCom.setActShowElementObj(SER);
 | 
	
		
			
				|  |  |            end;
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
	
		
			
				|  | @@ -1191,45 +1192,45 @@ procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  |      ObjList := TList.Create;
 | 
	
		
			
				|  |  |      try
 | 
	
		
			
				|  |  |        // 设置表正文
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllFlowShowContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          FlowContentRec := ObjList[i];
 | 
	
		
			
				|  |  |          if not (FlowContentRec.Fixed) then
 | 
	
		
			
				|  |  |          begin
 | 
	
		
			
				|  |  |            AssignFontRec(FlowContentRec.FontRec, ReportConfig.ContentFont);
 | 
	
		
			
				|  |  | -          PreviewComXML.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  | +          APrintCom.setFlowContentObj(FlowContentRec);
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllBillShowContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllBillShowContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          FlowContentRec := ObjList[i];
 | 
	
		
			
				|  |  |          if not(FlowContentRec.Fixed) then
 | 
	
		
			
				|  |  |          begin
 | 
	
		
			
				|  |  |            AssignFontRec(FlowContentRec.FontRec, ReportConfig.ContentFont);
 | 
	
		
			
				|  |  | -          PreviewComXML.setBillContentObj(FlowContentRec);
 | 
	
		
			
				|  |  | +          APrintCom.setBillContentObj(FlowContentRec);
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllCrossContentObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          CrossContentRec := ObjList[i];
 | 
	
		
			
				|  |  |          if not(CrossContentRec.CrossContent.Fixed) then
 | 
	
		
			
				|  |  |          begin
 | 
	
		
			
				|  |  |            AssignFontRec(CrossContentRec.CrossContent.FontRec, ReportConfig.ContentFont);
 | 
	
		
			
				|  |  | -          PreviewComXML.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  | +          APrintCom.setCrossContentObj(CrossContentRec);
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |        // 设置表合计
 | 
	
		
			
				|  |  |        for i := 0 to 2 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  | -        PreviewComXML.getAllSumObjs(i,ObjList);
 | 
	
		
			
				|  |  | +        APrintCom.getAllSumObjs(i,ObjList);
 | 
	
		
			
				|  |  |          for j := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |          begin
 | 
	
		
			
				|  |  |            SumRec := ObjList[j];
 | 
	
		
			
				|  |  |            AssignFontRec(SumRec.FontRec, ReportConfig.GatherFont);
 | 
	
		
			
				|  |  | -          PreviewComXML.setSumObj(SumRec);
 | 
	
		
			
				|  |  | +          APrintCom.setSumObj(SumRec);
 | 
	
		
			
				|  |  |          end;
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |      finally
 | 
	
	
		
			
				|  | @@ -1245,19 +1246,19 @@ procedure TReportsForm.InitFont;
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  |      ObjList := TList.Create;
 | 
	
		
			
				|  |  |      try
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllHeadObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllHeadObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          HeadTailRec := ObjList[i];
 | 
	
		
			
				|  |  |          AssignFontRec(HeadTailRec.FontRec, ReportConfig.GridHeaderFont);
 | 
	
		
			
				|  |  | -        PreviewComXML.setHeadTailObj(0, HeadTailRec);
 | 
	
		
			
				|  |  | +        APrintCom.setHeadTailObj(0, HeadTailRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  | -      PreviewComXML.getAllTailObjs(ObjList);
 | 
	
		
			
				|  |  | +      APrintCom.getAllTailObjs(ObjList);
 | 
	
		
			
				|  |  |        for i := 0 to ObjList.Count - 1 do
 | 
	
		
			
				|  |  |        begin
 | 
	
		
			
				|  |  |          HeadTailRec := ObjList[i];
 | 
	
		
			
				|  |  |          AssignFontRec(HeadTailRec.FontRec, ReportConfig.GridHeaderFont);
 | 
	
		
			
				|  |  | -        PreviewComXML.setHeadTailObj(1, HeadTailRec);
 | 
	
		
			
				|  |  | +        APrintCom.setHeadTailObj(1, HeadTailRec);
 | 
	
		
			
				|  |  |        end;
 | 
	
		
			
				|  |  |      finally
 | 
	
		
			
				|  |  |        ObjList.Free;
 | 
	
	
		
			
				|  | @@ -1335,14 +1336,14 @@ procedure TReportsForm.PrintReport(ATemplateNode: TTemplateNode;
 | 
	
		
			
				|  |  |    begin
 | 
	
		
			
				|  |  |      if isPDF then
 | 
	
		
			
				|  |  |      begin
 | 
	
		
			
				|  |  | -      PreviewComXML.PrintPDFAll;
 | 
	
		
			
				|  |  | +      BatchPrintXml.PrintPDFAll;
 | 
	
		
			
				|  |  |        while not CheckPrinterReady do
 | 
	
		
			
				|  |  |          Sleep(1000);
 | 
	
		
			
				|  |  |      end
 | 
	
		
			
				|  |  |      else if not isExcel then
 | 
	
		
			
				|  |  | -      PreviewComXML.PrintAll(1)
 | 
	
		
			
				|  |  | +      BatchPrintXml.PrintAll(1)
 | 
	
		
			
				|  |  |      else
 | 
	
		
			
				|  |  | -      ExportXlsReport(1, PreviewComXML.TotalPages, ExcelOutputName);
 | 
	
		
			
				|  |  | +      ExportXlsReport(1, BatchPrintXml.TotalPages, ExcelOutputName, BatchPrintXml);
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  var
 | 
	
	
		
			
				|  | @@ -1355,8 +1356,8 @@ begin
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    Screen.Cursor := crHourGlass;
 | 
	
		
			
				|  |  |    try
 | 
	
		
			
				|  |  | -    LoadTemplet(ATemplateNode);
 | 
	
		
			
				|  |  | -    if PreviewComXML.TotalPages > 0 then
 | 
	
		
			
				|  |  | +    LoadTemplet(ATemplateNode, BatchPrintXml);
 | 
	
		
			
				|  |  | +    if BatchPrintXml.TotalPages > 0 then
 | 
	
		
			
				|  |  |        PrintTemplet
 | 
	
		
			
				|  |  |      {else if strRptName <> '' then
 | 
	
		
			
				|  |  |      begin
 | 
	
	
		
			
				|  | @@ -1369,7 +1370,7 @@ begin
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  procedure TReportsForm.ExportXlsReport(AStartPage, AEndPage: Integer;
 | 
	
		
			
				|  |  | -  const AFileName: string);
 | 
	
		
			
				|  |  | +  const AFileName: string; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    procedure ExportPagesXlsReport(AStartPage, AEndPage: Integer; const AFileName: string);
 | 
	
		
			
				|  |  |    var
 | 
	
	
		
			
				|  | @@ -1378,10 +1379,10 @@ procedure TReportsForm.ExportXlsReport(AStartPage, AEndPage: Integer;
 | 
	
		
			
				|  |  |      LoadExcelBorder(Border);
 | 
	
		
			
				|  |  |      if IsExcel2010 then
 | 
	
		
			
				|  |  |        // 康博士代码中写批量打印是,用Printer.Canvas,打印当前时,用PreviewBox.Canvas。不懂为什么
 | 
	
		
			
				|  |  | -      PreViewComXML.OutputToExcelRangeXMLEx(PreviewBox.Canvas, AStartPage,
 | 
	
		
			
				|  |  | +      APrintCom.OutputToExcelRangeXMLEx(PreviewBox.Canvas, AStartPage,
 | 
	
		
			
				|  |  |            AEndPage, GetTemplateXlsFileName, AFileName, Border, ExcelMode)
 | 
	
		
			
				|  |  |      else
 | 
	
		
			
				|  |  | -      PreViewComXML.OutputToExcelFile(PreviewBox.Canvas, AStartPage,
 | 
	
		
			
				|  |  | +      APrintCom.OutputToExcelFile(PreviewBox.Canvas, AStartPage,
 | 
	
		
			
				|  |  |            AEndPage, GetTemplateXlsFileName, AFileName, ExcelMode, Border);
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1407,13 +1408,13 @@ begin
 | 
	
		
			
				|  |  |        until iStartPage > iEndPage;
 | 
	
		
			
				|  |  |      end
 | 
	
		
			
				|  |  |      else
 | 
	
		
			
				|  |  | -      ExportPagesXlsReport(PrintStartPage, PrintEndPage, AFileName);
 | 
	
		
			
				|  |  | +      ExportPagesXlsReport(AStartPage, AEndPage, AFileName);
 | 
	
		
			
				|  |  |    finally
 | 
	
		
			
				|  |  |      AfterExport;
 | 
	
		
			
				|  |  |    end;
 | 
	
		
			
				|  |  |  end;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -procedure TReportsForm.LoadTemplet(ATemplate: TTemplateNode);
 | 
	
		
			
				|  |  | +procedure TReportsForm.LoadTemplet(ATemplate: TTemplateNode; APrintCom: TPrintComXML);
 | 
	
		
			
				|  |  |  var
 | 
	
		
			
				|  |  |    RptArchiverObj: TReportArchiver;
 | 
	
		
			
				|  |  |    Mem: TMemoryStream;
 | 
	
	
		
			
				|  | @@ -1428,17 +1429,18 @@ begin
 | 
	
		
			
				|  |  |      // 以下代码有顺序限制,不可修改,主要保证在不修改报表模板文件的基础上可以用户定制报表格式
 | 
	
		
			
				|  |  |      // 私以为,原因在于这些设置修改后,并不能生效,需要保存再读取方可生效
 | 
	
		
			
				|  |  |      // 读取报表模板
 | 
	
		
			
				|  |  | -    if not PreviewComXML.ReadReportStream(Mem) then Exit;
 | 
	
		
			
				|  |  | +    if not APrintCom.ReadReportStream(Mem) then Exit;
 | 
	
		
			
				|  |  |      // 将报表设置中的数据覆盖掉原模板的数据
 | 
	
		
			
				|  |  | -    InitReportSettings(ATemplate);
 | 
	
		
			
				|  |  | +    InitReportSettings(APrintCom, ATemplate);
 | 
	
		
			
				|  |  |      // 保存
 | 
	
		
			
				|  |  | -    PreviewComXML.SaveToStream(Mem);
 | 
	
		
			
				|  |  | +    APrintCom.SaveToStream(Mem);
 | 
	
		
			
				|  |  |      // 再次读取,使报表设置中的设置生效
 | 
	
		
			
				|  |  | -    PreviewComXML.ReadReportStream(Mem);
 | 
	
		
			
				|  |  | +    APrintCom.ReadReportStream(Mem);
 | 
	
		
			
				|  |  |      // ReadReportStream之后会将PreviewComXML的FillZero值赋为True,故再赋值一次
 | 
	
		
			
				|  |  | -    PreviewComXML.FillZero := chkFillZero.Checked;
 | 
	
		
			
				|  |  | -    PreviewComXML.ReadDBData;
 | 
	
		
			
				|  |  | -    PreviewComXML.AnalyseData;
 | 
	
		
			
				|  |  | +    APrintCom.FillZero := chkFillZero.Checked;
 | 
	
		
			
				|  |  | +    InitPageSettings(APrintCom);
 | 
	
		
			
				|  |  | +    APrintCom.ReadDBData;
 | 
	
		
			
				|  |  | +    APrintCom.AnalyseData;
 | 
	
		
			
				|  |  |    finally
 | 
	
		
			
				|  |  |      if Mem <> nil then
 | 
	
		
			
				|  |  |        Mem.Free;
 |