虽说报表多又难做,做报表相当容易。
做报表也可以偷懒的,超级实用又省事。只需要做一个报表,这个报表里面包括几乎所有的数据字段,然后将查询到的数据导出到
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;