INT008 – 部門&社員クライアント (オプション)
このステップでは、クライアントのビジュアル・フォームを作成します。これにより、Windows プログラムでサーバーとやり取りを行うことができるようになります。
1. iiiFRM03 部門社員の表示という名前で新規の LANSA フォームを作成します。iii は一意の 3 文字です(同じ名前のフォームがすでにある場合は、iiiに対して別の文字セットを選択します)。
2. リストビューを自身のフォーム上にドラッグします。
3. フィールド FULLNAME と SKILDESC をこのリストビューにドラッグして、列幅を調整します。
4. このリストビューの上にフィールド DEPTMENT をドラッグします。
5. この DEPTMENT フィールドの右にプッシュ・ボタンをドラッグして、キャプションを "最新の情報に更新" とします。
6. このプッシュボタンに Click イベントを追加します。
7. このフォームの基本となるロジックは、ユーザーからの部門コード入力を受け入れ、RDMLX ファンクション iiiFN07 を呼び出し、その結果として社員リストを表示することです。iiiFN07 から返されたデータを保持する作業リストも必要となります。
a. DEFINE_COM ステートメントの後に、作業リストとして WL_EMPSKL を定義します。このリストのキーワードは Entrys(*max)で、FULLNAME と SKILDESC フィールドが含まれます。
8. プッシュ・ボタンのクリック・イベントにロジックを加えて、ファンクションを呼び出します。
a. 作業リストをクリアします。
b. フィールド DEPTMENT を交換します。
c. ファンクション iiiFN07 を呼び出し、作業リスト WL_EMPSKL を渡します (データをリストに入れて返せるようにします)。
d. 作業リストをループして、反復ごとにエントリーをリストビューに追加します。
完了したコードは以下のようになります。
Function Function Options(*DIRECT)
Begin_Com Role(*EXTENDS #PRIM_FORM) Clientwidth(484) Clientheight(301) Componentversion(2) Left(751) Top(223)
Define_Com Class(#PRIM_LTVW) Name(#ListView1) Columnbuttonheight(18) Componentversion(2) Displayposition(1) Fullrowselect(True) Keyboardpositioning(SortColumn) Left(28) Parent(#COM_OWNER) Showsortarrow(True) Tabposition(1) Top(48) Width(397) Height(217)
Define_Com Class(#PRIM_LVCL) Name(#LVCL1) Displayposition(1) Parent(#ListView1) Source(#EMPNO)
Define_Com Class(#PRIM_LVCL) Name(#LVCL2) Displayposition(2) Parent(#ListView1) Source(#FULLNAME) Width(64)
Define_Com Class(#DEPTMENT.Visual) Name(#DEPTMENT) Displayposition(2) Left(21) Parent(#COM_OWNER) Tabposition(2) Top(18)
Define_Com Class(#PRIM_PHBN) Name(#Button1) Caption('Refresh') Displayposition(3) Left(285) Parent(#COM_OWNER) Tabposition(3) Top(13)
Def_List Name(#WL_EMPSKL) Fields(#fullname #skildesc) Type(*working) Entrys(*max)
Evtroutine Handling(#com_owner.CreateInstance)
Set Com(#com_owner) Caption(*component_desc)
Endroutine
Evtroutine Handling(#Button1.Click)
Clr_List Named(#WL_EMPSKL)
Exchange Fields(#DEPTMENT)
Call Process(*direct) Function(iiiFN07) Pass_Lst(#WL_EMPSKL)
Clr_List Named(#ListView1)
Selectlist Named(#WL_EMPSKL)
Add_Entry To_List(#ListView1)
Endselect
Endroutine
End_Com
5. ファンクションを保存し、コンパイルして閉じます。