新規文書を作成するためには、「Word Application」のDocumentsコレクションに定義された、Addメソッドを使います。このメソッドには、文書の雛型となるWordテンプレートを指定できます。戻り値は新たに作成された文書(Document)オブジェクトです。この戻り値に、Add_RETVALパラメータを使ってコンポーネント名を割り当てることになります。
Add_RETVALパラメータを使って新規文書にコンポーネントの参照を割り当てるためには、あらかじめコンポーネントを定義しておく必要があります。これは「Word Document」コンポーネントで、動的参照として定義しなければなりません。
DEFINE_COM CLASS(#VA_WORD.Document) NAME(#WORDDOC) REFERENCE(*DYNAMIC)
ここでは、New DocumentボタンのClickイベントに応じて、Addメソッドが起動されるようにしてみましょう。新規文書の作成には、LANSAデモ・システムに付属の、vl_sam99.dotというテンプレートを使います。また、文書名として、コンポーネント名#Worddocをそのまま与えます。
EVTROUTINE HANDLING(#ADDBTN.Click)
invoke method(#WordApp.documents.add) template('C:\X_Win95\x_lansa\x_dem\source\vl_sam099.dot') add_retval(#WordDoc)
set #std_num value(#WordApp.Documents.count)
ENDROUTINE
コンポーネント名をそのまま新規文書名にする方法は文書の識別に便利ですが、それ以外の方式も使えます。例えば、現在アクティブな文書(#WordApp.ActiveDocument)の名前を与える、具体的な名前を固定で与える(#WordApp.Documents<'Report.doc'>)、コレクション中の番号で区別するようにする(#WordApp.Documents<2>)などが考えられます。