サポート > リポジトリ > 画面機能 > 画面遷移 (2) 詳細画面から検索画面へ遷移する

詳細画面から任意のモデルの検索画面へ遷移します。同時にパラメータを渡します。

見積書モデルの詳細画面から、顧客モデルの検索画面へ遷移するボタンを用意した例を図1に示します。 ここでは「会社名」の値を検索条件として再利用しています。

図1 顧客モデルの検索画面へ遷移するボタンを用意した例

このボタンを押すと、検索条件に会社名が渡された状態で、顧客モデルの検索処理が行われます。 図2では、検索と一覧を同一画面にまとめています。

図2 顧客モデルの検索&一覧表示画面

図1で示した「見積書モデル」で、「画面>その他>Javaソースコードの設定」を開きます。
ここで追加ボタンを次のように定義します。

項目 説明 入力例
画面名 どの画面にボタンを追加するかを指定します。ここでは"詳細表示画面"とします。 詳細表示画面
表示する 有効にします。 (チェック)
表示条件 常にボタンを表示する場合、本欄は空白とします。条件については「ボタン表示条件」をお読みください。
ボタン名 任意の名前を指定します。式で表現することもできます。 この会社で検索
イベント名 遷移した画面に対するイベントを指定します。[後述] Reset
アクション名 遷移する画面を指定します。[後述] showListCustomer
追加パラメータ 遷移する画面へパラメータを指定することができます。[後述] companyname=${companyname}
図3 追加ボタンの設定

イベント名

画面毎に、受け取ることのできるイベントが用意されています。検索画面で受理できるイベントは次のとおりです。

イベント名 説明
Reset 現在の検索条件をリセットし、外部パラメータを用いた検索処理を行います。今回のように外部からパラメータを渡す場合に有効です。
Search 最初にセットされた検索条件を使います。このため二回目以降の外部パラメータはセットされません。これは検索画面と一覧表示画面を行き来するような画面遷移で、検索条件を保持するためのイベントです。
Search_Condition Searchと同様ですが、パラメータがない場合は空の検索条件が指定されたものとして扱います。
イベント名は大文字小文字を区別します。正確に入力してください。

アクション名

モデルと画面の組み合わせから構成される文字列です。アドレスバー(URL)の一部になります。

検索と一覧表示画面は次のようになります。

"showList" + モデル名(キャメル記法)

このルールにより、モデル "customer" の検索一覧表示画面に対応するアクション名は "showListCustomer" になります。 拡張子は不要です。

キャメル記法 : 先頭の1文字を大文字とします。モデル名に含まれるアンダースコアは取り除き、その次の文字を大文字にします。例えば my_funny_valentine は MyFunnyValentine になります。

追加パラメータ

検索画面に対して、直接、検索条件を渡すことができます。

書式は「キー=値」となっています。キー部分は(遷移先モデルの)項目IDになります。
値部分にプレースホルダ (${ ... }) を用いて、遷移元の項目の値を渡すことができます。

複数のパラメータを渡す場合は&で区切ります。

図2の動作を実現するための追加パラメータは次のようになります。イコールの左側は顧客モデルの項目で、今回は検索条件になります。イコールの右側は見積書モデルの項目です。

companyname=${companyname}

受ける側(検索条件)の初期値設定

受側のモデル(この例では顧客モデル)の当該項目について、「初期値 > 検索画面表示時」に REQUEST 関数を設定します。

図4 検索条件の初期値

制約

追加パラメータに記載する項目名に以下を指定することはできません。

  • 繰り返し項目
  • 繰り返しコンテナ項目
  • このモデルに紐づく外部キー子モデル

図1,2の例は、顧客モデル内の「会社名」は文字列型でした。 続いて「会社モデル」と「顧客モデル」を分割した例を示します。顧客モデルの「会社名」は、会社モデルの主キーを保持する構造に変わります。(図5,図6)

図5 会社モデルの定義
図6 修正された顧客モデル

実行

見積書における「会社名」は(文字列型から)モデル参照 - 参照連動 - となっています。このとき「この会社で検索」ボタンを押下すると、会社名コード (ID部) を渡しています。

図7 修正された見積書モデルの詳細画面

モデル参照についても、パラメータが渡っていることが確認できます。(図8)

図8 ボタン押下後の顧客検索画面

設定

見積書モデル

見積書モデルにおける「会社名」は参照連動です。参照連動の場合は標準で「内容部」を渡すようになりますが、今回は引数に「ID部」を渡すことが求められています。(顧客モデルの「会社名」がモデル参照となっているためです。)

そこで図3の見積書モデルの「追加パラメータ」を次のように修正します。"#id" を付与するとIDを渡すことができます。

#id表記の詳細は「計算式>モデル参照」をお読みください。

companyname=${companyname#id}
図9 追加パラメータの修正

顧客モデル

検索条件の初期値にコード(ID部)を設定するため、TOINT関数を適用します。

TOINT(REQUEST())
図10 初期値の式の変更(TOINT関数の適用)

「画面遷移 (1) 詳細画面から登録画面へ遷移する > 仕様・制約」をお読みください。