虽说报表多又难做,做报表相当容易。
做报表也可以偷懒的,超级实用又省事。只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到
excel中,利用excel自带的“数据透视”功能,客户只需要点几下鼠标就可以生成自己所需要的报表。通过这种方法,一个报表可以产生n个
报表。通过几行代码可以操纵excel打开“数据透视”功能。冒必要在自己的程序里面做数据透视功能了,要做到excel数据透视那种功能效果,
还是要花费不少时间的。
function GetExcelCol(iCol: integer): string;
begin Result := ''; case iCol of 1: Result := 'A'; 2: Result := 'B'; 3: Result := 'C'; 4: Result := 'D'; 5: Result := 'E'; 6: Result := 'F'; 7: Result := 'G'; 8: Result := 'H'; 9: Result := 'I'; 10: Result := 'J'; 11:Result :='K'; 12:Result :='L'; 13:Result :='M'; 14:Result :='N'; 15:Result :='O'; 16:Result :='P'; 17:Result :='Q'; 18:Result :='R'; 19:Result :='S'; 20:Result :='T'; 21:Result :='U'; 22:Result :='V'; 23:Result :='W'; 24:Result :='X'; 25:Result :='Y'; 26:Result :='Z'; end;end;
procedure TfrmReportSale.cxButton2Click(Sender: TObject); var iRows, iColumns: Integer; bb: OleVariant; s:string; begin if (not cds.Active) or cds.IsEmpty then Exit; if SaveDialog1.Execute then begin ExportGridToExcel(SaveDialog1.FileName, cxGrid1);
ExcelApp.Visible := True; WorkBook := ExcelApp.WorkBooks.Open(SaveDialog1.FileName); iRows := WorkBook.WorkSheets[1].UsedRange.Rows.Count - 1; iColumns := WorkBook.WorkSheets[1].UsedRange.Columns.count; s:=UntSysConst.GetExcelCol(iColumns);
bb := ExcelApp.ActiveWorkbook.PivotCaches.Add(xlDatabase, '销售报表!A1:' + s + inttostr(iRows)); bb.CreatePivotTable('', '销售报表'); ExcelApp.ActiveSheet.PivotTables['销售报表'].SmallGrid := False; application.Minimize; end; end;