サポート > リポジトリ > 画面機能 > 画面遷移 (1) 詳細画面から登録画面へ遷移する

ja | en

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

顧客モデルと、お得意様モデルの二つのモデルを用意します。 図1,図2にそれぞれの定義を示します。両者は(定義上は)関連がなく、独立したモデルです。

(項目名は似せています。お得意様モデルは、顧客モデルの各項目名に接頭語 "cs" を付与しています。これは説明をわかりやすくするためであり、必ずしもこのような項目名とすることはありません。)

図1 顧客モデルの定義
図2 お得意様モデルの定義

顧客モデルの詳細画面から、お得意様モデルの登録画面へ遷移するボタンを用意した例を図3に示します。 同ボタンを押下することで、顧客モデルの各項目の値を(パラメータとして)お得意様モデルに渡すようにしています。

図3 お得意様モデルの登録画面へ遷移するボタンを用意した例

お得意様モデルの新規登録画面へ遷移した例を図4に示します。値が引き渡されていることがわかります。

図4 お得意様モデルの新規登録画面

この例に示すように、任意のモデルの画面を開くことができます。パラメータを渡すこともできます。

お得意様モデルの設定

新規登録画面を開いたときに REQUEST 関数を適用します。 外部から渡されるパラメータを受け取ります。

外部から渡されるときのキー名が項目名と異なる場合、REQUEST関数に(外部の)キー名を指定します。

図5 REQUEST関数の設定

数値型項目の場合

REQUEST関数の戻り値は文字列型です。受け取り側(ここでは「お得意様」モデル)の項目が数値型の場合、TOINT関数などを用いて文字列を数値型に変換してください。

日付型項目の場合

REQUEST関数の戻り値は文字列型です。受け取り側(ここでは「お得意様」モデル)の項目が数値型の場合、DATEVALUE関数などを用いて文字列を日付型に変換してください。

顧客モデルの設定

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

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

イベント名

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

イベント名 説明
New 新規登録画面を開きます。
イベント名は大文字小文字を区別します。正確に入力してください。

アクション名

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

新規登録画面は次のようになります。

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

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

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

追加パラメータ

登録画面に対して、直接、初期値を渡すことができます。

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

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

図4の動作を実現するための追加パラメータは次のようになります。

この例ではキー部分(csname,cskananame)はお得意様モデルの項目名と一致しています。そのため図5でREQUEST関数の引数を省略しています。
今回、お得意様モデルの主キー (csid) は順序を利用して自動採番しています。そのため外部からパラメータとして渡す必要はありません。

csname=${name}&cskananame=${kananame}&csemail=${email}&cscompanyname=${companyname}&cszipcode=${zipcode}&csaddress=${address}

制約

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

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

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

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

実行

顧客モデルにおける「会社名」は(文字列型から)モデル参照に変わっています。このとき「お得意様登録」ボタンを押下すると、会社名コード (ID部) が渡されるようになります。

図9 修正された顧客モデルの詳細画面

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

図10 ボタン押下後のお得意様登録画面

設定

お得意様モデル

お得意様モデルの会社名項目の初期値は、コード(ID部)を受け取るようにします。 初期値の式を数字型に変換するためのTOINT関数を適用します。

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

顧客モデル

変更はありません。パラメータ部 "cscompanyname=${companyname}" も、そのまま利用できます。

顧客モデルのcompanynameはモデル参照に変わっています。このとき、上記パラメータの ${companyname} 指定は自動的にコード(ID部)を渡すと解釈されます。このルールの詳細は「仕様・制約」をお読みください。

起点は詳細画面から

本機能は登録画面・更新画面から遷移させることはできません。詳細画面が起点となります。

モデル参照項目のルール

「画面遷移パラメータまとめ > モデル参照項目のルール」をお読みください。

ボタンの配置

ボタンの表示順序を制御することはできません。オリジナルボタンは常にボタン表示部の右側に配置されます。

ja | en