2015年1月30日 星期五

Delphi產出樞紐分析報表實例解說

程式目的:

    自訂sql語法查詢出結果後,將資料結果匯出至預先製作之excel範本檔(第二頁),讓使用者於excel第一頁操作樞紐分析圖表。

前置作業:

    以Excel製作範本檔,資料存放於第二頁,可預先定義欄位名稱,並輸入一筆資料以利製作樞紐分析圖表時預覽。
    樞紐分析表分析的資料來員請選擇「Microsoft Office Excel清單或資料庫」,建立資料表的來源範圍直接由第二頁欄名選取。


    檔案儲存時請選擇「範本 (*.xlt)」,並將該檔案儲存於執行檔目錄中之「Report」資料夾。



程式碼:

uses Comobj;//uses中加入Comobj

procedure TfmPL.btPrintClick(Sender: TObject);
var MyExcel,MyExcelWorkBook,MySheet:variant;//MyExcel應用程式,MyExcelWorkBook活頁簿,MySheet工作表
    sExcelTempFilePath:String;//執行檔位置
begin
  qrTemp.Close;
  qrTemp.SQL.Text:='Select * from PL where 1=1 ';//組出sql語法
  qrTemp.Open;
  sExcelTempFilePath:=ExtractFilePath(Application.EXEName);//取得執行檔位置
  MyExcel:=CreateOleOBject('Excel.Application');//開啟Excel
  MyExcelWorkBook:=MyExcel.WorkBooks.open(sExcelTempFilePath+'Report\fmPL.xlt');//開啟執行檔目錄中之Report資料夾,開啟fmPL.xlt範本檔
  MySheet:=MyExcel.WorkBooks[1].WorkSheets[2];//將工作表變數定義為第二個工作表
  MyExcel.WorkBooks[1].WorkSheets[2].Cells[2,1].CopyFromRecordset(qrTemp.RecordSet.Get_DataSource);//若RecordSet不須經過處理,直接以CopyFromRecordset將資料待入速度最快
  MyExcel.Visible:=True;
end;





沒有留言: