見出し画像

DXL活用例 -動的な印刷画面- その1

『ペーパーレス』化が叫ばれて久しいですが、未だ需要の尽きない印刷画面。Notesで印刷画面を作成する場合、1文書の情報を固定のフォーマットに落とし込むだけであれば、比較的簡単に作成することができますが、子文書や関連する文書の情報を基に動的な印刷画面を生成する場合はどうでしょうか?

もし、WebアプリケーションであればXPagesの繰り返しコントロールを利用することで、比較的簡単に構築することが可能です。(こちらに関しては今回は触れません)

Notesクライアント用のアプリケーションの場合、リッチテキストフィールドにLotusScriptのNotesRichTextTableクラスや関連するクラスを利用して表を追加することで、対応可能かと思います。
しかし、私自身これらのクラスを実際に利用したことがありますが、非常に扱いづらく、表やセル、文字のスタイルを設定しようとしてもカスタマイズ可能な箇所も少なく、さらにプログラムが複雑になります。

この機能を簡単に実現させる為、DXLを活用してみてはいかがでしょうか。DXLを応用するとリッチテキストフィールドに対する表の構築がHTMLでテーブルを作成する感覚で構築することも可能となり、構築の難易度はずいぶんと下がると思います。

そこで今回から数回に渡り、DXLを活用して動的な印刷画面の構築をしてみたいと思います。

【補足】
・利用環境は、R9以降のNotesクライアントを想定しています。
・Nomad(Mobile/Web)では、DXLのインポート処理でエラーとなる為、動作不可です。(2024年2月時点)

概要

まずは、今回作成するアプリケーションの概要です。アプリケーションは、メイン文書、返答文書があり、メイン文書から[印刷画面]ボタンをクリックすると、その返答文書の内容を集約した表を含む印刷画面を表示します。

※ ここでは、既存の掲示板など、メイン文書、返答文書があるNotesアプリケーションが既に構築済みであることを前提に、印刷画面機能を組み込んでいく方法を解説していきます。

既存の設計に対する主な修正点は、以下の通りです。
① メイン文書に、印刷用画面の表示用ボタンを追加
② 印刷画面フォームの構築
③ 印刷画面生成エージェントの構築

※この記事では①②、次回以降に③について解説します。

メイン文書フォームの改修

[印刷画面]ボタン(またはアクション)を追加します。
このボタンでは、印刷画面生成エージェント(名称は『(agPrint)』とします)を実行したいので、以下の式を指定します。

@Command([ToolsRunMacro]; "(agPrint)")

印刷画面フォームの構築

印刷画面のフォームを準備します。
ここでは別名を『fmPrint』とします。

今回は、メイン文書の件名を表示する為のフィールド、返答文書の一覧(表)を表示する為のリッチテキストフィールドを配置しておきます。

各フィールドの定義は、以下の通りです。

$$
\begin{array}{|l|l|l|l|} \hline
\text{フィールド名} & \text{種類} & \text{} & \text{値}  \\ \hline
\text{Subject} & \text{テキスト} & \text{計算結果} & \text{Subject} \\ \hline
\text{Body} & \text{リッチテキスト} & \text{計算結果} & \text{Body} \\ \hline
\end{array}
$$

印刷用フォーム | fmPrint

次回予告

今回は、ここまでです。
次回は、印刷画面生成エージェントを解説になります。

この記事が気に入ったらサポートをしてみませんか?