このステップでは、クライアントのビジュアル・フォームを作成します。これにより、Windows プログラムでサーバーとやり取りを行うことができるようになります。
- iiiFRM03 部門社員の表示という名前で新規の LANSA フォームを作成します。iii は一意の 3 文字です(同じ名前のフォームがすでにある場合は、iiiに対して別の文字セットを選択します)。
- リストビューを自身のフォーム上にドラッグします。
- フィールド FULLNAME と SKILDESC をこのリストビューにドラッグして、列幅を調整します。
- このリストビューの上にフィールド DEPTMENT をドラッグします。
- この DEPTMENT フィールドの右にプッシュ・ボタンをドラッグして、キャプションを "最新の情報に更新" とします。
- このプッシュボタンに Click イベントを追加します。
- このフォームの基本となるロジックは、ユーザーからの部門コード入力を受け入れ、RDMLX ファンクション iiiFN07 を呼び出し、その結果として社員リストを表示することです。iiiFN07 から返されたデータを保持する作業リストも必要となります。
- DEFINE_COM ステートメントの後に、作業リストとして WL_EMPSKL を定義します。このリストのキーワードは Entrys(*max)で、FULLNAME と SKILDESC フィールドが含まれます。
- DEFINE_COM ステートメントの後に、作業リストとして WL_EMPSKL を定義します。このリストのキーワードは Entrys(*max)で、FULLNAME と SKILDESC フィールドが含まれます。
- プッシュ・ボタンのクリック・イベントにロジックを加えて、ファンクションを呼び出します。
- 作業リストをクリアします。
- フィールド DEPTMENT を交換します。
- ファンクション iiiFN07 を呼び出し、作業リスト WL_EMPSKL を渡します (データをリストに入れて返せるようにします)。
- 作業リストをループして、反復ごとにエントリーをリストビューに追加します。
完了したコードは以下のようになります。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)EndroutineEvtroutine 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)EndselectEndroutineEnd_Com
- ファンクションを保存し、コンパイルして閉じます。