用Word做Delphi報表輸出工具 (轉)
用做報表輸出工具
整理編輯:China
筆者在實際應用中發現,報表的內容一般很少變動,但其字型格式及版式是經常變動的,而且有時為了某種需要,不想修改的真實內容而又要改變報表內容。如果用ReportSmith可以解決前者問題,但對於後者則無能為力了,且其介面是英文的,不合使用者習慣。如果用3.0中的TQReport的報表部件,則兩者都不能實時解決,必須修改原始碼後重新編譯才能使用。而使用Word及則完全可以克服以上不足。具體實現如下(以Word實現為例):
首先用Word編輯報表格式,並排好版,把將要輸出的資料項用表單域代替,並取名。這裡我們暫時假設有表單域Item1及Item2(均為文字型),將這個文件存為模板Example.dot,然後按如下步驟進行:
1)執行Delphi3,在Form1里加入一個System部件集裡的TDdeClientCov部件,取名為DdeExample,將其ConnectMode設為ddeManual(手動方式);將DdeService設為‘(WinWord)’;將ServiceApplication設為‘WinWord’。
2)編寫一個自定義過程,以啟用Word,如下:
procedure Tform1.WordActive(Cmds: TStrings);
var
WordPath: String;
begin
if(not DdeExample.OpenLink) then {判斷是否巳動態連結}
begin
if(FindWindow('OpusApp', nil)=0) then
begin
WordPath := 'C:mswinword';
if(WordPath='') then
ShowMessage('中文Word未或未設定路徑,請安裝設定Word中文 版。')
else begin
DdeExample.ServiceApplication := WordPath+'Winword.exe';
if(DdeExample.OpenLink) then {如果巳動態連結宏命令}
DdeExample.ExecuteMacroLines(Cmds,False)
else
ShowMessage('無法啟動Word中文版!');
DdeExample.ServiceApplication := 'WinWord.exe';
end;
end
else begin{如果巳動態連結執行宏命令}
DdeExample.ExecuteMacroLines(Cmds,False);
end;
end
else
DdeExample.ExecuteMacroLines(Cmds,false);
end;
在private宣告區里加入如下:
procedure ActiveWord(Cmds: TStrings);
3)在Form1中加入一個按鈕Button1,在其onclick事件裡寫如下程式碼:
procedure TForm1.Button1Click(Sender: T);
var
Cmds:TStringList;{建立Cmds}
TempItem1,TempItem2:String;
begin
cmds:=TStringList.Create;
cmds.Clear;
TempItem1:='資料項一';
TempItem2:='資料項二';
with Cmds do
begin
Clear;
Add('[FileNew.Template ="Example.Dot″]');{開啟模板檔案Example.Dot}
Add('[AppMaximize]');{文件最大化}
Add('[SetFormResult"Item1″,″'+TempItem1+'″]');{將資料TempItem1傳給表單域Item1}
Add('[SetFormResult"Item2″,″'+TempItem2+'″]);{將資料TempItem2傳給表單域Item2}
end;
WordActive(DdeExample,Cmds);{自定義過程}
Cmds.Free;{釋放Cmds}
end;
執行這個,單擊Button1,大家可以發現Word被啟動了,螢幕上出現了:資料項一;資料項二兩個資料項。最後,大家可以任意修改本報表的格式及資料,因為這時這個報表與具體的應用程式巳沒有關係了。
本例中用的是中文Word6或中文Word7。由於Word97的宏命令巳變為語句,如大家想用Word97實現,請將其宏命令改變為相應的程式碼。
這是個簡單的示例,大家可以利用Word的宏錄製功能,錄取更多的宏(如自動生成表格、填充文字、變動字型等宏命令),並與資料庫的各種表聯絡起來,依次加入Cmds中即可實現您所要求的更復雜的功能。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-989209/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 報表的多行業應用!用工具做報表省了我不少事...行業
- 用Delphi進行word開發
- 在.NET環境下將報表匯出EXCEL和WORD (轉)Excel
- Delphi與Word(三)取得Word檔案的資料 (轉)
- 在Delphi中捕獲控制檯程式的輸出 (轉)
- pdf轉word工具推薦 PDF to word 最新啟用版
- Delphi+Word解決方案參考 (轉)
- XML 報表自動輸出ExcelXMLExcel
- pdf轉word工具:PDF to word for Mac v8.5.6啟用版Mac
- 加班做報表被嘲低效!快用大資料分析工具大資料
- 報表工具如何生成 word 報告?
- 中國式報表不會做?用這款免費視覺化工具3分鐘搞定複雜報表視覺化
- 用Java寫一個PDF,Word檔案轉換工具Java
- PhpWord 如何輸出換行符到 word?PHP
- outputStream(輸出流)轉inputstream(輸入流)以及輸入流如何複用
- 用 DELPHI 為 WINDOWS 做一個帶聲音的模擬鬧鐘 (轉)Windows
- pdf轉換word線上工具
- 有什麼工具能生成帶有動態報表圖形的 word 報告嗎?
- 用Delphi編寫DelTree程式 (轉)
- 用DELPHI開發DirectX遊戲 (轉)遊戲
- Delphi程式執行時實時生成報表
- jsp中輸出word文件的問題JS
- PDF轉Word?PDF轉換工具推薦:PDF to Word Document Converter for MacMac
- pdf轉word工具,轉易俠很優秀!
- 線上免費工具——pdf轉word文件
- Word類報表例項 - 質量檢測報告
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- 怎麼用Word做組織結構圖?
- 水晶報表官方例項下載:報表和應用程式 (轉)
- 做單據類報表的精確列印有什麼好用的報表工具
- 輸入表重建工具ImportRECImport
- 輸入表重建工具ReVirgin
- 國內外BI資料分析工具做報表有多大區別?
- 怎麼用Word做資料夾側面標籤?Word做資料夾側面標籤教程
- 用Delphi編寫安裝程式(1) (轉)
- 設計模式、用Delphi描述-->Lock pattern (轉)設計模式
- 專案整合管理主要輸入、工具、輸出
- 轉行資料分析,一定要學會做BI報表