Delphi 2007 から COMを使って帳票の表示・印刷を行うことができます。
プロジェクトの作成
ユニット(COM)の作成
ボタンクリックから帳票を表示
「Delphi 2007」を起動します。
「ファイル」メニューから「新規作成」−「VCL フォームアプリケーション」を選択します。
プロジェクトが作成されます。
COMのコンポーネント(ユニット)を作成しプロジェクトに追加します。
「コンポーネント」メニューから「コンポーネントのインポート」をクリックします。
以前にユニット(WfrvLib_TLB.pas)を作成している場合は、単純にプロジェクトに追加することができますが、COMインターフェース にメソッドやプロパティが追加され、追加された機能を使いたい場合は再構築が必要です。
「コンポーネントのインポート」ダイアログが表示されます。
「タイプライブラリの取り込み」を選択し「次へ」ボタンをクリックします。
「Wonderful Report 2005 Preivew」を選択し「次へ」ボタンをクリックします。
「次へ」ボタンをクリックします。(「コンポーネントラッパーの作成」はチェックしません)
「プロジェクトにユニットを追加」を選択し「完了」ボタンでダイアログを閉じます。
パッケージにユニット(コンポーネント)が追加されユニットの内容(WfrvLib_TLB.pas)が表示されます。
フォームにボタンを貼り付けダブルクリックします。
コードにイベント関数(この例では Button1Click)が追加されます。(下記コードの青字箇所)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin end; end. |
追加されたイベント関数でCOMを使って帳票を表示するコードを記述します。
(下記コードの赤字箇所)
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, WfrvLib_TLB; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var objWfrv : iWfrv; begin objWfrv := CoWfrv.Create; objWfrv.SetErrorMode(1, 0); objWfrv.Open('c:\sample\sample.wfr', '', ''); objWfrv.Import('Data1', 0, 'c:\sample\sample.csv', '', '', ''); objWfrv.Create; objWfrv.Visible := True; end; end. |
この例のプロジェクトを実行すると次のように表示されます。
※
COMは呼び出し元アプリケーションとは別プロセスとして起動されます。
ウインドウの表示順位についてはOSに従います。
この例のアプリケーションを Windows Vista で実行するとフォームの後ろに表示されることが確認されています。