ドミノ塾アプリ開発を中心にNotes/Dominoの様々な情報を掲載します。前回、ベースとなる簡単なアプリを作成しましたので、少しずつ機能を追加しましょう。今回は、過去の入力から選択肢を取得する方法です。どこで買い物するかは事前にわからないので、マスタなどあらかじめ準備できません。言って、毎回手入力だと面倒ですね。そこで、一度入力した購入場所を選択肢として表示する機能を作成ます。それぞれの関数の仕様や使い方は、別途まとめていますので、以下のリンクからご確認ください。フォルダから列の値を取得します。ビューを検索して値を取得します。ビューの作成どちらの関数もビューの列を経由して値を取得する仕様です。そこで、@関数から接続する検索用のビューを作成します。ビューをコピペして編集します。フィールドに変更します。3列目以降は使用しないのですが、確認用としてそのままとします。重要なのは、1列目がソートされていることです。ビューを検索する条件だからですね。続いて、ビューの名前を変更します。括るとそのビューは非表示となり、ビューの一覧に表示されません。アウトラインやナビゲータで左にメニューを作成することが一般的なので、非表示って必要なの?と思われるかもしれませんが、[表示]-[移動]メニューに表示されてしまい、ビューに移動できてしまいます。表示するビューはユーザに提供するもの、プログラムでアクセスするビューは非表示とすると決めておくとよいかと思います。ユーザ向けのビューはユーザからの要望で変更しがちです。「要望に応えたら機能が動かなくなった」なんてトラブルは回避したいですよね。作成したビューから購入場所情報を取得して選択肢として表示する設定を行います。フィールドの種類を『ダイアログリスト』に変更し、[制御]タブの「選択」は『式で選択肢を設定』を指定します。設定する式は以下通りです。1);@Unique(xLst)ビューの一列目を取得して選択肢とする式ですね。フィールドの値でビューを検索して、ヒットしたエントリの2列目を取得する式です。この関数は、その名の通り重複した結果を排除してくれます。今回のように履歴から取得するタイプでは、重複は普通にあり得ますから、必ず設定が必要ですね。続いて選択肢が確実に更新されるように設定します。フィールドのプロパティの[制御]タブで以下をチェックします。文書の更新時に選択肢を更新この設定の必要性については、『ダイアログリストフィールドの設定と挙動』をご確認ください。がったら動作確認しましょう。データをコピペして、重複した状態にしておきます。文書を新規作成して、購入場所の選択肢が正しく表示されるか確認します。次のように重複排除されて表示できれば成功です。別の店舗を選択したら、支店の選択肢が正しく変更されるかも確認しましょう。新機能は苦手のオールドタイプ。鳥貴族と金麦が大好き!ブログ掲載内容のご利用にあたっては、十分検証の上、ご自身の責任でお願いいたします。