-Notes/Dominoに関すること-Notes/Dominoに関する事をテキトーに書いていきます。いつまで持つかお楽しみということで。当ブログに掲載しているサンプルは、すべて利用者の自己責任とします。明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。してもと言う場合は、筆者にあらかじめご連絡ください。記事そのもののリンクについてはご自由に行っていただいてよいです。xxのようなサンプルを作って欲しいとかxxxの作り方を教えて欲しいというお問い合わせには応じていません。このようなお問い合わせは、株式会社エフまでご一報ください。2011年12月11日日曜日おじさんSEが学ぶXPages(10)週末にならないと、続きが読めないというXPagesの連載もとうとう10回目です。本当に、そろそろ切り上げないと行けないと思っている筆者ですが・・・なぜなら、前回どこまで書いたのかを思い出すのに一苦労してしまうからです。それに、8.5.3も出ているので、そちらについても書かないと、クレームが来そうですから(苦笑)。いうことで、今日も張り切っていきましょう。恒例のボタンクリックからです。えーっと・・・そうでした。前回で、画面全般は終わりましたので、今回からは、機能をつけていくという事ですね。現状の問題点は、以下の6つ。蔵書登録/編集画面から貸出が出来ない。そのため、蔵書を貸し出しするのに、蔵書名を選択する必要がある。蔵書登録と蔵書貸出が連動していないので、蔵書が貸出可能状態にあるのかどうか不明。貸し出した蔵書の返却が出来ない。返却期限を過ぎても、何も起きない(つまり、返却期限の設定に意味がない)。ともに入力チェックが行われていない。一度に解決するのは無理なので、少しずつやっていきましょう。「1.蔵書登録/編集画面から貸出が出来ない」です。これは、「蔵書登録/編集画面」に[蔵書貸出]のボタンを配置する事で出来そうです。実際にやってみましょう。Designerで「カスタムコントロール」の「BookResource」を開きます。[編集]と[キャンセル]ボタンの間にスペースを空けて、ボタンコントロールを配置します。ラベルは、「蔵書貸出」とします。蔵書貸出ボタンを配置また、「可視」についても設定します。「可視」と書かれた箇所の右側にある◇をクリックして、「値の計算...」を選択します。)と入力してください。これは、新規文書(document1.isNewNote())ではない、もしくは、文書が編集モード(document1.isEditable())ではないときに表示するという設定です。間にある「|」はor条件を表します。document1.isEditable()だけでも良いのですが、せっかくなので新しい事を覚えましょう。次にイベントを設定します。イベントビューを開いて、[アクションの追加]ボタンをクリックします。アクションは2つ追加します。document1.getNoteID();と入力して、[OK]をクリックします(下図参照)。上の行は、蔵書名を格納します。これは、蔵書貸出画面に表示するのに利用します。下の行は、蔵書文書の文書IDを格納します。これは、蔵書貸出が完了したときに、この蔵書文書のステータスを変更するのに利用します。「アクション」は、"ページを開く"「開くページの名前」は、"Lending"「ターゲット文書」は、"新規文書"とします(下図参照)。イベントの設定これで、BookResourceカスタムコントロールを保存します。次に「LendData」カスタムコントロールを開きます。「イベント」ビューを開きます。「データ」「LendingDocument」「PostNewDocument」イベントを開きます。「シンプルアクション」が選択されているはずなので、「スクリプトエディタ」に変更します。)}と入力します(下図参照)。これは、セッションスコープ変数の値をBookName(蔵書名)に格納するという意味のものです。PostNewDocumentイベントこれで、「蔵書登録/編集」画面で選択した蔵書名が「蔵書貸出」画面に反映されます。ついでに、誰が借りたのかを自動で設定できるようにしましょう。)を追加してください。※LendByの幅も変えておくと良いでしょう。現在のユーザ名をLendByにセット今度は、「蔵書貸出」の[保存]ボタンを修正します。ボタンを選択して、「イベント」ビューを開きます。このボタンにアクションを2つ追加します。1つ目は、「スクリプトの実行」で、コードは以下のようにしてください。));agent.recycle()保存アクション(ステータスの変更)これは、「蔵書貸出」と「蔵書登録/編集」の2文書のステータスを変更するものです。「蔵書登録/編集」文書は、バックエンドで保存する必要があるので、エージェントを実行して保存するようにしています。一つは、「Issueguides」ページを開くというアクションです。Issueguidesページを開くこの状態で、「LendData」カスタムコントロールを保存します。次に、「蔵書登録/編集」文書のステータスを変更するエージェントを作成します。「ChangeStatus」という名前で、LotusScriptのエージェントを作成します。LotusScriptでのエージェント作成コードは、以下のように記述します。Subまた、「プロパティビュー」を開いて、エージェントの設定を変更します。実行時の「対象」を"なし"に変更します(下図参照)。エージェントのプロパティこれで、蔵書の貸出を行って、保存した際に、「蔵書登録/編集」文書のステータスも変更されます。いうところで、今日は終わりです。実はもう少しだけ、行う事があるのですが、それは何なのかを考えてみてください。