スマートアイコン: 現在のフィールド値を使って別フォームに文書を作る

2008年11月26日 01:50

 今日もまたスマートアイコンの紹介をしてみます。

 あるノーツデータベースの情報を使って別ノーツデータベースに新規文書を作らないといけないようなデータベースがありました。
 元DBの情報を引き継ぐために手作業ででデータを引用していかないといけないので、単純で煩雑な作業が多い、と言う声が結構あったのですが、自分は設計者権限も無い事もあって、フォームレベルで連携して操作を簡易化することは出来なさそうでした。

 そこで考えたのが、こんな感じのスマートアイコンです。元文書をビューレベルで選択するか、フォームで開いた状態でスマートアイコンを押すと、新規文書が作成されます。ここで書かれている処理はそんなに奇抜でもなければ、難しい処理はしていないのですが、ノーツアプリケーションの機能がちょっと足りていないときなどにスマートアイコンで拡張していくと道が開ける事が多いのではないかと思います。実用的であればプロトタイプとして設計者に渡せば実現も早いのではないでしょうか。

出来るだけ汎用的に書き直してみたのですが、始めに青字のコピー先のデータベースやフォーム情報を入力して tmp_xxxのところにコピーしたいフィールド名をリストして、EditGotoField の行にコピー先のフォームでのフィールド名を指定していけばコピーするフィールドはいくつでも増やす事が出来ます。ただし、EditGoToFieldのようなUIの操作を前提にしているので隠しフィールドなどに入力する事は想定していないのと、文書リンクを貼る場合、操作以前にクリップボードに入っていた値は消えてしまうのであらかじめご注意下さい。

サンプル
Dest_Server := "ServerName/Org";
Dest_DBPath := "apps\\test.nsf";
Dest_Form := "MainTopic";


@Command([OpenDocument]);

REM{コピー先で文書リンクが必要な場合(クリップボードの値が失われるので注意!)};
@Command( [EditMakeDocLink] );

REM {右辺にコピーしたいフィールド名を指定して下さい};
tmp_idnumber := IDNumber;
tmp_subject := Subject;
REM {日付だけをコピーしたい場合の加工例};
tmp_date := @Text(Date_Created; "D0S0") ;

@Command([Compose];Dest_Server:Dest_DBPath;Dest_Form);

REM {フィールド値のセット};
REM {EditGotoField の行にコピー先のフォームでのフィールド名を指定して下さい};


@Command([EditGotoField];"Subject");
@Command([EditInsertText]; tmp_subject);

@Command([EditGotoField];"HNumber");
@Command([EditInsertText]; tmp_idnumber);

@Command([EditGotoField];"DateOpened");
@Command([EditInsertText];tmp_date);

REM {文書リンクを貼る場合には、EditPasteを使用します};
@Command([EditGotoField];"TelHistoryDocLink");
@Command([EditPaste]);


コメント

    コメントの投稿

    (コメント編集・削除に必要)
    (管理者にだけ表示を許可する)

    トラックバック

    この記事のトラックバックURL
    http://hnagasim.blog8.fc2.com/tb.php/26-69eb9d0d
    この記事へのトラックバック


    最新記事