[
|../../index.htm#lansa/lansa048_5065.htm]
Visual LANSA フレームワーク ガイド > アドバンスド・トピック > Visual LANSAフレームワークのオブジェクトに関するクエリーの記述 > 例 > UF_QRY01 - 一般的なフレームワーク・オブジェクトのリスニング方法およびそのプロパティの表示方法
![]()
*============================================================================= * * コンポーネント :UF_QRY01 * タイプ :再利用コンポーネント * 祖先 :VF_AC010 (コマンド・ハンドラー) * * 注意事項: この UF_ (ユーザー・フレームワーク) コンポーネントは、フレームワーク提供のバージョンです。 * 修正することも可能ですが、その場合はこのコンポーネントのソースコードを自分のコンポーネントにコピーし、 * そのコピーを変更するようにしてください。 * そうすることで、Visual LANSA フレームワークをアッップグレードした場合に、自分が加えた変更が * 意に反して失われてしまうことを防げます。 * このコンポーネントの独自のバージョンを作成する際の詳細は、このコンポーネントの最後の部分を * 参照してください。 * * 以下はサンプル・コードです。 - 明示的にも暗示的にも保証されません。 * このプログラムやこの派生物のいずれも、実稼働やエンドユーザーの環境で使用することは一切できません。 * * ============================================================================= * * 以下は、一般的なフレームワーク・オブジェクトをリッスンして、そのプロパティを確認する方法が示された最も簡素な例です。 * ============================================================================= Function Options(*DIRECT) Begin_Com Role(*EXTENDS #VF_AC010) Height(336) Layoutmanager(#ATLM_2) Width(552) * ================================================================================ * 簡素なフィールドとグループ定義 * ================================================================================ * ================================================================================ * コンポーネント定義 * ================================================================================ * 本体およびボタン配置パネル Define_Com Class(#PRIM_PANL) Name(#BUTTON_PANEL) Displayposition(2) Height(336) Layoutmanager(#BUTTON_FLOW) Left(464) Parent(#COM_OWNER) Tabposition(2) Tabstop(False) Top(0) Width(88) Define_Com Class(#PRIM_PANL) Name(#BODY_HEAD) Displayposition(1) Height(336) Layoutmanager(#ATLM_1) Left(0) Parent(#COM_OWNER) Tabposition(1) Tabstop(False) Top(0) Verticalscroll(True) Width(464) * 添付およびフロー・レイアウト・マネージャー Define_Com Class(#PRIM_ATLM) Name(#MAIN_LAYOUT) Define_Com Class(#PRIM_ATLI) Name(#BUTTON_ATTACH) Attachment(Right) Manage(#BUTTON_PANEL) Parent(#MAIN_LAYOUT) Define_Com Class(#PRIM_FWLM) Name(#BUTTON_FLOW) Direction(TopToBottom) Flowoperation(Center) Marginbottom(4) Marginleft(4) Marginright(4) Margintop(4) Spacing(4) Spacingitems(4) Define_Com Class(#PRIM_ATLI) Name(#BODY_ATTACH) Attachment(Center) Manage(#BODY_HEAD) Parent(#MAIN_LAYOUT) * レポート・ボタン Define_Com Class(#PRIM_PHBN) Name(#PHBN_REPORT) Buttondefault(True) Caption('Report') Displayposition(1) Left(4) Parent(#BUTTON_PANEL) Tabposition(1) Top(4) Define_Com Class(#PRIM_FWLI) Name(#FWLI_SAVE_BUTTON) Manage(#PHBN_REPORT) Parent(#BUTTON_FLOW) * トラバース・コンポーネント Define_Com Class(#UF_TRVRS) Name(#UF_TRVRS) Define_Com Class(#PRIM_ATLM) Name(#ATLM_1) Marginbottom(2) Marginleft(2) Marginright(2) Margintop(2) Define_Com Class(#PRIM_ATLI) Name(#ATLI_1) Attachment(Center) Parent(#ATLM_1) Define_Com Class(#PRIM_ATLM) Name(#ATLM_2) Define_Com Class(#PRIM_ATLI) Name(#ATLI_2) Attachment(Center) Manage(#BODY_HEAD) Parent(#ATLM_2) Define_Com Class(#PRIM_ATLI) Name(#ATLI_3) Attachment(Right) Manage(#BUTTON_PANEL) Parent(#ATLM_2) Define_Com Class(#Prim_kCol<#VF_FP003 #VF_ELIDN>) Name(#collBusObj) * すべてのコマンドの GUID リスト Def_List Name(#ListCmdGd) Fields(#cmdGUID #cmdUID) Type(*Working) Entrys(*MAX) define #cmdGUID reffld(#vf_elidn) desc('GUID for a command definition') define #cmdUID reffld(#vf_elidn) desc('uIdentifier for a command definition') * すべてのコマンド参照の GUID リスト Def_List Name(#ListCmRGd) Fields(#cmdRefGUD #cmdRefUID) Type(*Working) Entrys(*MAX) define #cmdRefGUD reffld(#vf_elidn) desc('GUID for a command reference') define #cmdRefUID reffld(#vf_elidn) desc('uIdentifier for a command definition') Define_com #VF_FPM09 #TheVF_FPM09 Reference(*Dynamic) Define_com #VF_FPM10 #TheVF_FPM10 Reference(*Dynamic) Define_Com Class(#PRIM_LTVW) Name(#LTVW_1) Componentversion(2) Displayposition(1) Fullrowselect(True) Height(332) Left(2) Parent(#BODY_HEAD) Showsortarrow(True) Tabposition(1) Top(2) Width(460) Define_Com Class(#PRIM_ATLI) Name(#ATLI_4) Attachment(Center) Manage(#LTVW_1) Parent(#ATLM_1) Define_Com Class(#PRIM_LVCL) Name(#LVCL_1) Caption('Unused Commands') Captiontype(Caption) Displayposition(1) Parent(#LTVW_1) Source(#DF_ELTXTL) Width(100) * ================================================================================ * イベント定義 * ================================================================================ * ================================================================================ * プロパティ定義 * ================================================================================ * ================================================================================ * メソッド定義 * ================================================================================ * -------------------------------------------------------------------------------- * コマンド実行処理 * -------------------------------------------------------------------------------- Mthroutine Name(uExecute) Options(*REDEFINE) * The return code field and testing condition Define #Ret_Code reffld(#IO$STS) Def_cond Name(*RetOkay) Cond('#Ret_Code = OK') * Do any execution logic defined in the ancestor Invoke #Com_Ancestor.uExecute Endroutine * ================================================================================ * サブルーチン * ================================================================================ * ================================================================================ * イベント・ハンドラー * ================================================================================ * -------------------------------------------------------------------------------- * 保存ボタンの処理 * -------------------------------------------------------------------------------- EVTROUTINE HANDLING(#PHBN_REPORT.Click) * リストのクリア clr_list #listCmdGD clr_list #listCmRGD * トラバース再利用可能パーツに特別な順序なしに全システムを読み込むよう指示 * このプログラムは各新規オブジェクトに対する信号をリッスンし、 * すべての情報を収集。 invoke #UF_TRVRS.uTraverseFramework * どこからも参照されていないコマンドのリストを表示 invoke #Com_Owner.Check_Unused ENDROUTINE * ビジネス・オブジェクトをリッスン - 通常のオブジェクトの保管例 EVTROUTINE HANDLING(#UF_TRVRS.BusinessObject) Reference(#TempVF_FP003) * すべてのビジネス・オブジェクトをコレクションに保管 Set_ref Com(#collBusObj<#TempVF_FP003.uIdentifier>) to(#TempVF_FP003) endroutine * コマンド定義をリッスン オブジェクト EVTROUTINE HANDLING(#UF_TRVRS.CommandDefinition) Reference(#TempVF_FPM09) * すべてのコマンド定義を1 つのオブジェクト #VF_FPM09 の内部メンバーとして保管 * 保管する必要のあるオブジェクト参照は 1 つだけ set_ref #TheVF_FPM09 #TempVF_FPM09 * 特定のコマンド定義についての情報にアクセスするためには、 * 特別なプロパティ.CurrentMemberGUID の値を知る必要があります。 * そのため、この値をリストに保管します。 Change #cmdGUID #TempVF_FPM09.CurrentMemberGUID Change #cmdUID #TempVF_FPM09.uIdentifier Add_entry #ListCmdGD endroutine * コマンド使用法 (コマンド参照) をリッスン オブジェクト EVTROUTINE HANDLING(#UF_TRVRS.CommandReference) Reference(#TempVF_FPM10) CommandDefinition(#TempVF_FPM09) * すべてのコマンド参照は1 つのオブジェクト #VF_FPM10 の内部メンバーとして保管 * 保管する必要のあるオブジェクトは 1 つだけ set_ref #TheVF_FPM10 #TempVF_FPM10 * 特定のコマンド参照についての情報にアクセスするためには、 * 特別なプロパティ.CurrentMemberGUID の値を知る必要があります。 * そのため、この値をリストに保管します。 Change #cmdRefGUD #TempVF_FPM10.CurrentMemberGUID * 参照されているコマンドの uIdentifier を保管 Change #cmdRefUID #TempVF_FPM09.uIdentifier Add_entry #ListCmRGd ENDROUTINE * もう利用されていないコマンドはどれかチェック mthroutine Check_Unused clr_list #LTVW_1 selectlist #ListCmdGD * コマンドを使用するコマンド参照がないコマンドはどれか? Loc_Entry In_List(#ListCmRGd) Where(#cmdUID *eq #cmdrefUID) if_status is_not(*Okay) * 処理されているコマンド定義の詳細を取得 * (先に GUID プロパティを設定) set #TheVF_FPM09 CurrentMemberGUID(#cmdGUID) #df_eltxtl := 'Command:' + #TheVF_FPM09.uCaption.AsNativeString + ' is not used anywhere' * 確認できるその他のコマンド定義プロパティを知るには、上の VF_FPM09 クリックして F2 を押下し、クラス VF_FPM09 のプロパティを見てください add_entry #LTVW_1 endif endselect endroutine End_Com
[
|../../index.htm#lansa/lansa048_5065.htm]