PEXA Clientについて

チュートリアル

定義パターン

定義ファイル

リファレンス

目次

  1. はじめに
  2. Config+EditListパターンのサンプル画面イメージ
  3. configのContent定義サンプル
  4. configのContent定義解説
  5. editlistのContent定義サンプル
  6. editlistのContent定義解説
  7. Area定義サンプル
  8. Area定義解説


はじめに

このドキュメントは、定義パターン"Config+EditList(List)"の内容について解説する物です。

Config+EditList(List)パターンは、検索系画面などに現れる定義パターンです。
パラメータを受け取ってサービスを実行する"config"のContent定義と、一覧表示と選択を行う"editlist"のContent定義が一つずつ含まれます。

"config"のContent定義には、主に以下のような内容が記述されます。

  • Content(config)の基本的なitem定義
    • サービスに渡すパラメータ
    • サービスから取得してEditListに渡す情報
  • Content(config)の基本的なaction定義
    • 検索サービス等(種類に限定は無い)の呼び出し
"editlist"のContent定義には、主に以下のような内容が記述されます。
  • Content(editlist)の基本的なitem定義
    • Configから受け取る、一覧表示内容
    • 画面上で単一選択中のレコードのインデックス
    • 画面上で単一選択中のレコードの情報
    • 画面上で複数選択中のレコードの情報
  • Content(editlist)の基本的なaction定義
    • 選択中のレコードをパラメータとして実行するサービスの呼び出し
検索系画面の他に、ファイルからデータを取り込んで、、取り込み結果を一覧表示するような画面もこのパターンに該当します。 基本的には、パラメータを設定し、サービスを実行し、結果を一覧表示するような場合に該当します。一覧表示の内容を更に ユーザが選択操作できる場合は"Config+EditList"で、選択操作できない場合は"Config+List"になります。


Config+EditListパターンのサンプル画面イメージ

Config+EditListパターンをとる画面のサンプルとなる画面イメージです。



このように、Config+EditListパターンの画面は

  • パラメータを入力してサービスを実行するConfig部
  • サービス実行結果を一覧表示してユーザに選択操作をさせるEditList部
から構成されます。
これをPEXAクライアントフレームワークではステレオタイプ"config""editlist"のContentとして表現します。


configのContent定義サンプル

<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-content SYSTEM "../doctype/client-content.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On: 2006/03/07
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-content>
<!--==============================================================
==  コンテントの属性値の宣言
===============================================================-->
    <identity id="CC_WKFL_101_01_Config"
              name="未申請申請書検索"
              stereotype="config"/>
<!--==============================================================
==  コンテントの詳細説明
===============================================================-->
    <description>
        未申請の申請書を検索するconfigコンテントです
    </description>
<!--==============================================================
==  リンクするSVOステートメントの宣言
===============================================================-->
    <reference-list>
        <statement ref="WKFL_101" process="申請書一覧を表示する"/>
    </reference-list>
<!--==============================================================
==  コンテントで参照する項目の宣言
===============================================================-->
    <item-list>
        <!-- =====================================================
        == データモデル
        ====================================================== -->
        <item id="申請書一覧" access="hidden" type="models">
            <description>未申請申請書の検索結果</description>
        </item>
        <item id="ログイン利用者情報" access="hidden" type="model" scope="global">
            <description>ログイン時に取得した利用者情報</description>
        </item>
        <!-- =====================================================
        == 画面上の入出力項目
        ====================================================== -->
        <item id="申請書種別" access="input" type="value">
            <valuetype ptype="ワークフロー申請種別"/>
            <description>申請書の種別</description>
        </item>
        <!-- =====================================================
        == 隠し項目
        ====================================================== -->
        <item id="ワークフロー申請種別" access="hidden" type="value">
            <description>申請書の種別</description>
        </item>
        <item id="ワークフロー状態種別" access="hidden" type="value">
            <description>申請書の状態種別</description>
        </item>
    </item-list>
<!--==============================================================
==  コンテントアクション
===============================================================-->
    <action-list>
        <!-- =====================================================
        == 検索条件保存アクション
        ====================================================== -->
        <action id="検索条件保存">
            <set item="ワークフロー申請種別" value="item:申請書種別"/>
            <set item="ワークフロー状態種別" value="ptype:ワークフロー状態種別/未申請"/>
        </action>
        <!-- =====================================================
        == 検索実行アクション
        ====================================================== -->
        <action id="検索">
            <remove item="申請書一覧"/>
            <doService service="申請書検索">
                <inputServiceSession>
                    <inputValue item="ワークフロー申請種別"/>
                    <inputValue item="ワークフロー状態種別"/>
                    <inputValue item="ログイン利用者情報"/>
                </inputServiceSession>
                <outputServiceSession>
                    <outputValue item="申請書一覧"/>
                </outputServiceSession>
            </doService>
        </action>
    </action-list>
<!--==============================================================
==  コンテントの遷移先リスト
==  (この情報はコンテントカタログ間の関連定義であり、実行時には参照されません)
===============================================================-->
    <transition-list>
    </transition-list>
<!--==============================================================
==  ファイル編集情報
===============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2008-08-29 22:48:31 #$</datetime>
        <version>$Revision: 2282 $</version>
    </status>
</client-content>


configのContent定義解説

configのContentは、基本的に以下のような機能を持ちます。

  • サービスに渡すパラメータを画面から受け取り、保持する
  • 任意のサービスを呼び出す
  • サービスの呼び出し結果を受け取り、保持する。
上記を実現するための記述内容をitem及びactionの定義内容としてそれぞれ解説します。

item定義

ステレオタイプ"config"のContentで定義されるitemには、主に以下のような項目があります。

  • 呼び出したいサービスに対して渡すパラメータ
  • 呼び出したサービスから受け取る実行結果(検索結果など)。
    データモデルかそのリストとなる場合が多い。


サンプルのContent定義では、画面上に検索条件としてコンボボックスで申請書の種別を選択できるようになっているので、 コンボボックスでの選択値となる項目が定義されています。

<!-- =====================================================
== 画面上の入出力項目
====================================================== -->
<item id="申請書種別" access="input" type="value">
    <valuetype ptype="ワークフロー申請種別"/>
    <description>申請書の種別</description>
</item>


また、実際にサービスに対して渡すパラメータとして、以下の項目が定義されています。

<!-- =====================================================
== 隠し項目
====================================================== -->
<item id="ワークフロー申請種別" access="hidden" type="value">
    <description>申請書の種別</description>
</item>
<item id="ワークフロー状態種別" access="hidden" type="value">
    <description>申請書の状態種別</description>
</item>
ワークフロー申請種別は、画面上の入出力項目として定義された申請書種別の値がactionで設定されます。
ワークフロー状態種別は、固定値がactionで設定されます。
画面上の入出力項目と実際のパラメータとなる項目が分けて定義されているのでは、ユーザ操作による検索の場合と 別の処理に付随して自動的に再検索される場合の両方に対応するためです。例えば、
  1. 検索を実行
  2. コンボの選択値を変更
  3. そのまま削除などを実行
  4. 削除実行後に再検索を自動的に実行
という状況になると、画面入力値をそのままサービスにパラメータとして渡すと、削除実行前と検索条件が変わってくるので 再検索が行われると表示結果が期待したものになりません。このようなケースに対応する定義方法がこのようになります。


サービスから受け取る実行結果及び、サービスにパラメータとして渡すログイン情報のデータモデルが定義されています。

<!-- =====================================================
== データモデル
====================================================== -->
<item id="申請書一覧" access="hidden" type="models">
    <description>未申請申請書の検索結果</description>
</item>
<item id="ログイン利用者情報" access="hidden" type="model" scope="global">
    <description>ログイン時に取得した利用者情報</description>
</item>
"申請書一覧"はサービスの実行結果として返される、検索結果のデータモデルのリストです。
"ログイン利用者情報"は、サービスが検索条件として使用する値が格納されている、ログイン時に取得した ログインユーザ情報のデータモデルです。サービスに対するパラメータとして使用されます。


action定義

ステレオタイプ"config"のContentで定義されるactionには、主に以下のものがあります。

  • サービスに渡すパラメータを保存するaction
  • サービスを呼び出すaction


サンプルのContente定義では、画面上の検索ボタンを押したときに、実行時のパラメータを保存するactionが定義されています。
このactionで、呼び出したいサービスに渡すパラメータを隠し項目に保存します。自動の再検索処理の為の対応です。

<!-- =====================================================
== 検索条件保存アクション
====================================================== -->
<action id="検索条件保存">
    <set item="ワークフロー申請種別" value="item:申請書種別"/>
    <set item="ワークフロー状態種別" value="ptype:ワークフロー状態種別/未申請"/>
</action>


また、実際に検索サービスを呼び出すactionが定義されています。
まず、remove命令で申請書一覧を一度クリアして、その後隠し項目で持っているパラメータで検索サービスを呼び出して、 検索結果を"申請書一覧"に格納しています。

<!-- =====================================================
== 検索実行アクション
====================================================== -->
<action id="検索">
    <remove item="申請書一覧"/>
    <doService service="申請書検索">
        <inputServiceSession>
            <inputValue item="ワークフロー申請種別"/>
            <inputValue item="ワークフロー状態種別"/>
            <inputValue item="ログイン利用者情報"/>
        </inputServiceSession>
        <outputServiceSession>
            <outputValue item="申請書一覧"/>
        </outputServiceSession>
    </doService>
</action>



editlistのContent定義サンプル

<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-content SYSTEM "../doctype/client-content.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On: 2006/03/07
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-content>
<!--==============================================================
==  コンテントの属性値の宣言
===============================================================-->
    <identity id="CC_WKFL_101_02_EditList"
              name="未申請申請書一覧"
              stereotype="editlist"/>
<!--==============================================================
==  コンテントの詳細説明
===============================================================-->
    <description>
        未申請の申請書を一覧表示、選択するEditListコンテントです。
    </description>
<!--==============================================================
==  リンクするSVOステートメントの宣言
===============================================================-->
    <reference-list>
        <statement ref="WKFL_101" process="申請書一覧を表示する"/>
    </reference-list>
<!--==============================================================
==  コンテントで参照する項目の宣言
===============================================================-->
    <item-list>
        <!-- =====================================================
        == データモデル
        ====================================================== -->
        <item id="申請書一覧" access="output" type="models">
            <description>未申請申請書の検索結果</description>
        </item>
        <item id="選択申請書" access="input" type="model">
            <description>EditList上で単一選択された申請書</description>
        </item>
        <item id="複数選択申請書" access="input" type="models">
            <description>EditList上で複数選択された申請書のList</description>
        </item>
        <item id="ログイン利用者情報" access="hidden" type="model" scope="global">
            <description>ログイン時に取得したログイン情報</description>
        </item>
        <!-- =====================================================
        == 画面上の入出力項目
        ====================================================== -->
        <item id="ワークフロー申請種別" access="output" type="value">
            <load from="observable:選択申請書/ワークフロー申請種別"/>
            <description>EditList上で単一選択された申請書の種別</description>
        </item>
    </item-list>
<!--==============================================================
==  コンテントアクション
===============================================================-->
    <action-list>
        <!-- =====================================================
        == 申請書の削除アクション
        ====================================================== -->
        <action id="削除">
            <doService service="申請書削除">
                <inputServiceSession>
                    <inputValue item="複数選択申請書"/>
                    <inputValue item="ログイン利用者情報"/>
                </inputServiceSession>
            </doService>
        </action>
        <!-- =====================================================
        == 申請書の印刷アクション
        ====================================================== -->
        <action id="印刷">
            <doService service="申請書印刷">
                <inputServiceSession>
                    <inputValue item="複数選択申請書"/>
                    <inputValue item="ログイン利用者情報"/>
                </inputServiceSession>
            </doService>
        </action>
    </action-list>
<!--==============================================================
==  コンテントの遷移先リスト
==  (この情報はコンテントカタログ間の関連定義であり、実行時には参照されません)
===============================================================-->
    <transition-list>
    </transition-list>
<!--==============================================================
==  ファイル編集情報
===============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2008-08-29 22:48:31 #$</datetime>
        <version>$Revision: 2282 $</version>
    </status>
</client-content>


editlistのContent定義解説

editlistのContentは、基本的に以下のような機能を持ちます。

  • configのContentによってサービスから取得した実行結果(検索結果等)を表示する
  • ユーザ操作によってどのレコードが現在選択されているかを保持する
  • 選択されているレコードの内容をパラメータとしてサービスを呼び出す(一括削除など)
上記を実現するための記述内容を、item及びactionの定義内容としてそれぞれ解説します。

item定義

ステレオタイプ"editlist"のContentで定義されるitemには、主に以下のような項目があります。

  • 一覧表示する内容を表す項目(configによる検索結果など)
  • ユーザ操作によって、一覧上で単一選択されているレコードのインデックス(java.lang.Integer)
  • ユーザ操作によって、一覧上で単一選択されているレコードを表す情報(データモデルなど)
  • ユーザ操作によって、一覧上で複数選択されているレコードを表す情報(データモデルのリストなど)


サンプルのContent定義では、データモデルとして以下の物を定義しています。

<!-- =====================================================
== データモデル
====================================================== -->
<item id="申請書一覧" access="output" type="models">
    <description>未申請申請書の検索結果</description>
</item>
<item id="選択申請書" access="input" type="model">
    <description>EditList上で単一選択された申請書</description>
</item>
<item id="複数選択申請書" access="input" type="models">
    <description>EditList上で複数選択された申請書のList</description>
</item>
<item id="ログイン利用者情報" access="hidden" type="model" scope="global">
    <description>ログイン時に取得したログイン情報</description>
</item>
一覧表示する内容を表す項目として"申請書一覧"が定義されています。 これはconfigのContentでの検索サービス実行結果です。type="models"の場合はscopeはデフォルトでgroupと なるのでContent間での受け渡しが可能です。項目名とscopeが一致している物が別々のContentで参照可能です。

一覧上で単一選択されているレコードを表す情報として、"選択申請書"が定義されています。 これは、Area定義で記述するTableタグのselectedRow属性で指定することにより画面から自動で設定されます。

一覧上で複数選択されているレコードを表す情報として、"複数選択申請書"が定義されています。 これは、Area定義で記述するTableタグのmultiSelectedRows属性で指定することにより画面から自動で設定されます。

あと、サービスを呼び出す際のパラメータとして指定する"ログイン利用者情報"が設定されています。


さらにこのサンプルでは、画面から参照できる項目として以下が定義されています。

<!-- =====================================================
== 画面上の入出力項目
====================================================== -->
<item id="ワークフロー申請種別" access="output" type="value">
    <load from="observable:選択申請書/ワークフロー申請種別"/>
    <description>EditList上で単一選択された申請書の種別</description>
</item>
これは、現在選択中のレコードに対応するデータモデルに含まれる"ワークフロー申請種別"を参照できるように するために設定しています。このような定義をしておくと、例えばArea定義のcommmand中でswitch命令の判定条件として使用することができます。


action定義

ステレオタイプ"editlist"のContentで定義されるactionには、主に以下のものがあります。

  • 単一選択されているレコードをパラメータとして呼び出すサービスの実行
  • 複数選択されているレコードをパラメータとして呼び出すサービスの実行
よくあるパターンとしては、一覧からレコードを複数選択して、一括で承認とか削除を行うサービスを呼び出すなどがあります。


サンプルのContent定義では、まず一括で削除を行うactionが定義されています。

<!-- =====================================================
== 申請書の削除アクション
====================================================== -->
<action id="削除">
    <doService service="申請書削除">
        <inputServiceSession>
            <inputValue item="複数選択申請書"/>
            <inputValue item="ログイン利用者情報"/>
        </inputServiceSession>
    </doService>
</action>
ここでは、複数選択レコードを表す"複数選択申請書"と、ログインユーザ情報の"ログイン利用者情報" をパラメータとして削除サービスを呼び出しています。


また、印刷を行うactionも同様の形式で定義されています。

<!-- =====================================================
== 申請書の印刷アクション
====================================================== -->
<action id="印刷">
    <doService service="申請書印刷">
        <inputServiceSession>
            <inputValue item="複数選択申請書"/>
            <inputValue item="ログイン利用者情報"/>
        </inputServiceSession>
    </doService>
</action>



Area定義サンプル

<?xml version="1.0" encoding="Windows-31J"?>
<!--
 - Copyright
 -->
<!DOCTYPE client-area SYSTEM "../doctype/client-area.dtd">
<!--==============================================================
 == Current-Module:
 == Release-Date:
 == Release-Version:
 == First-Created-On: 2005/10/03
 == First-Created-By:
 == Copy-Right-Owner:
 ==============================================================-->
<client-area>
    <!-- エリア属性値 -->
    <identity id="CA_WKFL_101_01" name="未申請申請書一覧"/>

    <!-- 詳細説明 -->
    <description>未申請の申請書を一覧表示するエリアです。</description>

    <!--==============================================================
    ==  参照するコンテンツの宣言
    ==============================================================-->
    <reference-list>
        <content ref="CC_WKFL_101_01_Config"/>
        <content ref="CC_WKFL_101_02_EditList"/>
    </reference-list>
    <!--==============================================================
    ==  表示レイアウト情報
    ==============================================================-->
    <layout ref="PanelLayout">
        <gui implement="imeg.client.view.rich.area.wkfl.WKFL_101_UnssuedApplicationSearchPanel"/>
    </layout>
    <!--==============================================================
    ==  コンポーネントマッピング
    ==============================================================-->
    <component-mapping>
        <!-- =====================================================
        == 画面上部のタイトル&ボタン
        ====================================================== -->
        <Label id="タイトルラベル" text="未申請申請書一覧"/>
        <Button id="閉じるボタン" text="閉じる" onClick="COMMAND[終了]"/>
        <!-- =====================================================
        == config部
        ====================================================== -->
        <Button id="検索ボタン" text="検索" onClick="COMMAND[検索]"/>

        <ComboBox id="申請書種別コンボボックス "
            selectedItem="content:CC_WKFL_101_01_Config/申請書種別">
            <ComboBoxModel>
                <PhenomenonComboValue items="ptype:ワークフロー申請種別/definedValues"/>
            </ComboBoxModel>
        </ComboBox>
        <!-- =====================================================
        == EditList部
        ====================================================== -->
        <Button id="申請ボタン" text="申請" onClick="COMMAND[申請]"/>
        <Button id="印刷ボタン" text="印刷" onClick="COMMAND[印刷]"/>
        <Button id="参照ボタン" text="参照" onClick="COMMAND[参照]"/>
        <Button id="修正ボタン" text="修正" onClick="COMMAND[修正]"/>
        <Button id="削除ボタン" text="削除" onClick="COMMAND[削除]"/>

        <Table id="検索結果テーブル" selectMode="multiple" allRowSelector="全選択チェックボックス"
            selectedRow="content:CC_WKFL_101_02_EditList/選択申請書"
            multiSelectedRows="content:CC_WKFL_101_02_EditList/複数選択申請書">
            <TableModel rows="content:CC_WKFL_101_02_EditList/申請書一覧">
                <TableColumn header="申請書コード" ptype="ワークフロー申請コード" width="80" alignment="left"/>
                <TableColumn header="種別" ptype="ワークフロー申請種別" width="120" alignment="left"/>
                <TableColumn header="支払先" ptype="支払先名" width="120" alignment="left"/>
                <TableColumn header="プロダクト" ptype="プロダクト名" width="120" alignment="left"/>
                <TableColumn header="作成日" ptype="ワークフロー操作日時" width="80" alignment="center"/>
                <TableColumn header="最終更新日" ptype="ワークフロー操作日時" width="80" alignment="center"/>
            </TableModel>
        </Table>
    </component-mapping>
    <!--==============================================================
    ==  コマンド定義
    ==============================================================-->
    <command-list>
        <!-- =====================================================
        == 検索の実行コマンド
        ====================================================== -->
        <command id="検索">
            <doAction content="CC_WKFL_101_01_Config" action="検索条件保存"/>
            <doAction content="CC_WKFL_101_01_Config" action="検索"/>
        </command>
        <!-- =====================================================
        == 申請の実行コマンド
        ====================================================== -->
        <command id="申請">
            <doTransition transit="申請先指定画面をポップアップ"/>
        </command>
        <!-- =====================================================
        == 印刷の実行コマンド
        ====================================================== -->
        <command id="印刷">
            <showConfirmDialog message="チェックした申請書を印刷します。よろしいですか?">
                <ok>
                    <doAction content="CC_WKFL_101_02_EditList" action="印刷"/>
                </ok>
                <cancel>
                    <!-- キャンセル選択時は何もしない -->
                </cancel>
            </showConfirmDialog>
        </command>
        <!-- =====================================================
        == 参照の実行コマンド
        ====================================================== -->
        <command id="参照">
            <switch condition="content:CC_WKFL_101_02_EditList/ワークフロー申請種別">
                <case value="ptype:ワークフロー申請種別/仮払申請書">
                    <doTransition transit="仮払申請書修正をポップアップ"/>
                </case>
                <case value="ptype:ワークフロー申請種別/交通費精算書">
                    <doTransition transit="交通費精算書参照をポップアップ"/>
                </case>
            </switch>
        </command>
        <!-- =====================================================
        == 修正の実行コマンド
        ====================================================== -->
        <command id="修正">
            <switch condition="content:CC_WKFL_101_02_EditList/ワークフロー申請種別">
                <case value="ptype:ワークフロー申請種別/仮払申請書">
                    <doTransition transit="仮払申請書修正をポップアップ"/>
                </case>
                <case value="ptype:ワークフロー申請種別/交通費精算書">
                    <doTransition transit="交通費精算書更新をポップアップ"/>
                </case>
            </switch>
        </command>
        <!-- =====================================================
        == 検索の実行コマンド
        ====================================================== -->
        <command id="削除">
            <showConfirmDialog message="チェックした申請書を削除します。よろしいですか?">
                <ok>
                    <doAction content="CC_WKFL_101_02_EditList" action="削除"/>
                    <doAction content="CC_WKFL_101_01_Config" action="検索"/>
                </ok>
                <cancel>
                    <!-- キャンセル選択時は何もしない -->
                </cancel>
            </showConfirmDialog>
        </command>
    </command-list>
    <!--==============================================================
    ==  ファイル編集情報
    ==============================================================-->
    <status>
        <author>$Author: morishita $</author>
        <datetime>$Date:: 2008-08-29 22:48:31 #$</datetime>
        <version>$Revision: 2282 $</version>
    </status>
</client-area>


Area定義解説

Config+EditListパターンの画面のArea定義では、パラメータ入力部や実行ボタンをconfigのContentにマッピングします。
また、一覧表示部及び選択レコードに対する操作ボタンをeditlistのContentにマッピングする必要があります。

component-mapping定義

サンプルのArea定義では、各コンポーネントとContentは以下のようにマッピングされています。

  • config Content: 申請書種別コンボボックスと検索ボタン
  • editlist Content: 一覧表示するテーブル及びその右上に並んでいる各実行ボタンのうち印刷ボタンと削除ボタン
印刷、削除以外のボタンは画面遷移を発生させるものなのでeditlistのContentとは関連していません。

また、一覧表示するテーブルについてはeditlistのContentで定義されている"選択申請書"が ユーザー操作による単一選択行とリンクし、"複数選択申請書"はユーザー操作による複数選択行とリンクし、 "申請書一覧"が一覧表示の内容とリンクしている点に注意してください。 これはテーブルの内容および選択操作をeditlistのContentとマッピングする例となります。
<Table id="検索結果テーブル" selectMode="multiple" allRowSelector="全選択チェックボックス"
    selectedRow="content:CC_WKFL_101_02_EditList/選択申請書"
    multiSelectedRows="content:CC_WKFL_101_02_EditList/複数選択申請書">
    <TableModel rows="content:CC_WKFL_101_02_EditList/申請書一覧">
        <TableColumn header="申請書コード" ptype="ワークフロー申請コード" width="80" alignment="left"/>
        <TableColumn header="種別" ptype="ワークフロー申請種別" width="120" alignment="left"/>
        <TableColumn header="支払先" ptype="支払先名" width="120" alignment="left"/>
        <TableColumn header="プロダクト" ptype="プロダクト名" width="120" alignment="left"/>
        <TableColumn header="作成日" ptype="ワークフロー操作日時" width="80" alignment="center"/>
        <TableColumn header="最終更新日" ptype="ワークフロー操作日時" width="80" alignment="center"/>
    </TableModel>
</Table>


command定義

Config+EditListパターンの画面では、基本的に以下の場合の処理をcommandで定義します。

  • Config部での実行ボタン押下時の処理
  • テーブルを行選択した時の処理
  • テーブルで単一選択したレコードに対する実行ボタン押下時の処理
  • テーブルで複数選択したレコードに対する実行ボタン押下時の処理


サンプルのエリア定義では、上記のうちConfig部の実行ボタン押下時の処理として、"検索"commandが定義されています。
ここでは、まずユーザーがコンボボックスで設定した検索条件をconfig Contentの"検索条件保存"actionを呼び出して保存し、 その後でconfig Contentの"検索"actionを呼び出して検索処理を実行しています。

<!-- =====================================================
== 検索の実行コマンド
====================================================== -->
<command id="検索">
    <doAction content="CC_WKFL_101_01_Config" action="検索条件保存"/>
    <doAction content="CC_WKFL_101_01_Config" action="検索"/>
</command>


テーブルで単一選択したレコードに対する実行ボタン押下時の処理として、"申請","参照","修正"commandが定義されています。
それぞれのcommandでは、現在選択中の申請書に対する処理を行う個別の画面への遷移命令が定義されています。

<!-- =====================================================
== 申請の実行コマンド
====================================================== -->
<command id="申請">
    <doTransition transit="申請先指定画面をポップアップ"/>
</command>
\<!-- =====================================================
== 参照の実行コマンド
====================================================== -->
<command id="参照">
    <switch condition="content:CC_WKFL_101_02_EditList/ワークフロー申請種別">
        <case value="ptype:ワークフロー申請種別/仮払申請書">
            <doTransition transit="仮払申請書修正をポップアップ"/>
        </case>
        <case value="ptype:ワークフロー申請種別/交通費精算書">
            <doTransition transit="交通費精算書参照をポップアップ"/>
        </case>
    </switch>
</command>
<!-- =====================================================
== 修正の実行コマンド
====================================================== -->
<command id="修正">
    <switch condition="content:CC_WKFL_101_02_EditList/ワークフロー申請種別">
        <case value="ptype:ワークフロー申請種別/仮払申請書">
            <doTransition transit="仮払申請書修正をポップアップ"/>
        </case>
        <case value="ptype:ワークフロー申請種別/交通費精算書">
            <doTransition transit="交通費精算書更新をポップアップ"/>
        </case>
    </switch>
</command>
また、遷移先をswitch命令で分岐させていることに注意してください。
これは、editlistのContentで定義した"ワークフロー申請種別"を分岐条件として参照している例です。


テーブルで複数選択したレコードに対する実行ボタン押下時の処理として、"削除","印刷"commandが定義されています。
それぞれのcommandでは、現在選択中の申請書に対する一括処理を行うactionの実行が定義されています。

<!-- =====================================================
== 印刷の実行コマンド
====================================================== -->
<command id="印刷">
    <showConfirmDialog message="チェックした申請書を印刷します。よろしいですか?">
        <ok>
            <doAction content="CC_WKFL_101_02_EditList" action="印刷"/>
        </ok>
        <cancel>
            <!-- キャンセル選択時は何もしない -->
        </cancel>
    </showConfirmDialog>
</command>
<!-- =====================================================
== 削除の実行コマンド
====================================================== -->
<command id="削除">
    <showConfirmDialog message="チェックした申請書を削除します。よろしいですか?">
        <ok>
            <doAction content="CC_WKFL_101_02_EditList" action="削除"/>
            <doAction content="CC_WKFL_101_01_Config" action="検索"/>
        </ok>
        <cancel>
            <!-- キャンセル選択時は何もしない -->
        </cancel>
    </showConfirmDialog>
</command>


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2008-08-29 22:48:31 #$
  • バージョン : $Revision: 2282 $



Copyright © 2006, Atrris Corporation