コンボボックスから選択、または入力したIDと合致するレコードの特定のフィールド値をページに表示したい場合、Forguncyでは5つの方法が存在します。
対象のテーブルのレコード数が多く、パフォーマンスが重視される場合、方法1がおすすめです。Excel関数の使用に慣れている方には方法2がおすすめです。最も設定が手軽なのが方法3です。
- ODATA関数を使用する方法
ODATA関数はExcelには存在しないForguncyオリジナルの関数で、ODATAパスと呼ばれる規則に則った文字列を指定することで、テーブルから取得したデータをセルの値として表示できる関数です。
文字列の具体的な指定方法、指定例については、以下の「OData」ページにある「基本的なクエリ」部分を参照してください。なお、ForguncyではOData生成ツールが備わっており、より容易にODATA関数を使用できるようになっています。添付のサンプルにある「ODATA関数を使った方法」ページのU2セルには、以下のような数式が設定されています。
=IFERROR(ODATA("商品?$select=商品コード&$filter=ID eq "&B2),"")
この数式は「商品」テーブルから特定の条件を満たすレコードの「商品コード」フィールドの値を取得するものです。特定の条件は「ID」フィールドがB2セルの値と合致するものという指定が行われています。「eq」という文字列はイコールを表す文字列です。B2セルはコンボボックス型のセルとなっており、商品名を選択することで「商品」テーブルの「ID」フィールドの値を自身のセルの値として持つようになっています。そのため、コンボボックスで項目を選択することで、そのIDに応じた商品コードと標準原価が表示されます。
なお、今回の「ID」フィールドは整数型ですが、filterに指定するフィールドがテキスト型である場合、B2セルの前後をシングルクォーテーションで括る必要があります。
=IFERROR(ODATA("商品?$select=標準原価&$filter=商品コード eq '"&B2&"'"),"")
- VLOOKUP関数を使用する方法
VLOOKUP関数の検索値として選択する値のセルを指定し、範囲として列の非表示機能を使用して表示されないように設定したリストビューを指定することで、選択した値に応じた各項目の値を表示させることが可能です。
添付のサンプルにある「VLOOKUP関数と隠しリストビューを使った方法」ページのU2セルには、以下のような数式が設定されています。
=IFERROR(VLOOKUP(B2,AD3:AE3,2,TRUE),"")
この数式は検索値がコンボボックス型のセルとなっているB2セル、範囲としてリストビューの行テンプレート部分であるAD3:AE3、そして表示する列の番号として2が指定されています。これは表示したいフィールドである商品コードが、リストビューでは2列目に表示されるように設定されているためです。
参考情報
VLOOKUP関数の設定方法については、以下のナレッジを参照してください。 - コンボボックスを使用する方法
コンボボックス型のセルを、設定でドロップボタンを非表示とし、罫線をなしに設定することで、通常のセルと外観上は変わりがなくなります。このように設定したコンボボックス型のセルに対して、テーブルからデータを取得するように設定し、値フィールドには「ID」、表示フィールドには表示したいフィールドを設定します。コンボボックスの数式として、実際に値を選択、または入力するセル位置を参照するように設定します。
添付のサンプルにある「コンボボックスを使った方法」ページのU2セルでは「=B2」という数式が設定されており、常にB2セルで選択したIDが値として入ってくるようになっています。これにより、B2セルで選択したIDに応じた商品コードと標準原価が表示されます。
- データ連結とクエリーコマンドを使用する方法
通常のセルにデータ連結を設定した場合、同一ページにリストビューが存在していればレコードの選択が行われるため、選択されたレコードの値がページに表示されます。選択、または入力するコンボボックス型セルに「クエリー」コマンドを設定し、コンボボックスで選択した値のIDだけがリストビューに表示されるように条件を設定することで、自動的にそのレコードが選択されます。
添付のサンプルにある「データ連結とフィルターコマンドを使った方法」ページでは、列の非表示機能を使用してリストビューを画面に表示されないように設定しています。また、ページの初期表示時のB2セルのコンボボックスが何も選択していないという状態に合わせるため、ページロード時のコマンドとして、「ID < 0」のような1件も該当しない条件のクエリーコマンドを設定しています。
-
データ連結とカレントレコードの設定コマンドを使用する方法
選択、または入力するコンボボックス型セルに「カレントレコードの設定」コマンドを設定し、カレントレコードを特定する条件を設定することでレコードの選択が行われるため、データ連結したセルに選択されたレコードの値が表示されます。
「カレントレコードの設定」コマンドは、ダウンロードしてインストールが必要なプラグインです。使用方法は、以下の「カレントレコードの設定コマンド」を参照してください。
検索キーワード: fgcinfo fgcdevelopment