Visual LANSA フレームワーク ガイド > アドバンスド・トピック > Visual LANSAフレームワークのオブジェクトに関するクエリーの記述 > > UF_QRY02 - 一般的なフレームワーク・オブジェクトのリスニングおよびそのプロパティの表示
UF_QRY02 - 一般的なフレームワーク・オブジェクトのリスニングおよびそのプロパティの表示

* =============================================================================
*
* コンポーネント   :UF_QRY02
* タイプ        :再利用コンポーネント
* 祖先        :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_GRID) Name(#LTVW_1) Displayposition(1) Height(332) Left(2) Parent(#BODY_HEAD) Rowresize(True) Showsortarrow(True) Tabposition(1) Top(2) Width(460)
Define_Com Class(#PRIM_GDCL) Name(#LVCL_1) Caption('Parent Framework') Captiontype(Caption) Displayposition(1) Parent(#LTVW_1) Source(#FP_EKEY1) Width(12)
Define_Com Class(#PRIM_GDCL) Name(#LVCL_2) Caption('Parent Application') Captiontype(Caption) Displayposition(2) Parent(#LTVW_1) Source(#FP_EKEY2) Width(12)
Define_Com Class(#PRIM_GDCL) Name(#LVCL_3) Caption('Parent Business Object') Captiontype(Caption) Displayposition(3) Parent(#LTVW_1) Source(#FP_EKEY3) Width(17)
Define_Com Class(#PRIM_GDCL) Name(#LVCL_4) Displayposition(4) Parent(#LTVW_1) Source(#DF_ELTXTL) Widthtype(Remainder)
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_ATLI) Name(#ATLI_4) Attachment(Center) Manage(#LTVW_1) Parent(#ATLM_1)


* フレームワーク - class #VF_FP001 #TempVF_FP001 Reference(*Dynamic)
* アプリケーション - class #VF_FP002 #TempVF_FP002 Reference(*Dynamic)
* ビジネス・オブジェクト - class #VF_FP003 #TempVF_FP003 Reference(*Dynamic)
* コマンド - class #VF_FPM09 #TempVF_FPM09 Reference(*Dynamic)
* コマンド利用 - class #VF_FPM10 #TempVF_FPM10 Reference(*Dynamic)
* フィルター - class #VF_FPM14 #TempVF_FPM14 Reference(*Dynamic)

* ================================================================================
* イベント定義
* ================================================================================

* ================================================================================
* プロパティ定義
* ================================================================================

* ================================================================================
* メソッド定義
* ================================================================================
* --------------------------------------------------------------------------------
* コマンド実行処理
* --------------------------------------------------------------------------------

Mthroutine Name(uExecute) Options(*REDEFINE)

* 戻りコードのフィールドとテスト条件

Define #Ret_Code reffld(#IO$STS)
Def_cond Name(*RetOkay) Cond('#Ret_Code = OK')

* 祖先に定義された実行ロジックをすべて行う

Invoke #Com_Ancestor.uExecute


Endroutine

* ================================================================================
* サブルーチン
* ================================================================================

* ================================================================================
* イベント・ハンドラー
* ================================================================================

* --------------------------------------------------------------------------------
* 保存ボタン処理
* --------------------------------------------------------------------------------

EVTROUTINE HANDLING(#PHBN_REPORT.Click)

* トラバース再利用可能パーツに特別な順序なしに全システムを読み込むよう指示
* このプログラムは各新規オブジェクトに対する信号をリッスン

clr_list #LTVW_1
invoke #UF_TRVRS.uTraverseFramework


ENDROUTINE

* フレームワーク・オブジェクトをリッスン

EVTROUTINE HANDLING(#UF_TRVRS.Framework) Reference(#TempVF_FP001)

* ジェネリックな詳細を出力
Invoke #Com_Owner.uOutputGeneric  uLevel(1) uType('Framework') uObject(#TempVF_FP001)

add_entry #LTVW_1

* リスト行に対するオブジェクト参照を保管
Set Com(#ltvw_1.currentitem) Relatedreference(#TempVF_FP001)


ENDROUTINE

* アプリケーション・オブジェクトをリッスン

EVTROUTINE HANDLING(#UF_TRVRS.Application) Reference(#TempVF_FP002) VisParent1(#TempVF_FP001)

* ジェネリックな詳細を出力
Invoke #Com_Owner.uOutputGeneric  uLevel(2)  uType('Application') uObject(#TempVF_FP002) VisParent1(#TempVF_FP001)

* このアプリケーション・オブジェクトの詳細については、上の #TempVF_FP002 でクリック後 F2 を押下し、クラス VF_FP002 のプロパティを確認してください。

add_entry #LTVW_1

* リスト行に対するオブジェクト参照を保管
Set Com(#ltvw_1.currentitem) Relatedreference(#TempVF_FP002)


ENDROUTINE

* ビジネス・オブジェクトをリッスン   オブジェクト

EVTROUTINE HANDLING(#UF_TRVRS.BusinessObject) Reference(#TempVF_FP003) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002)

* ジェネリックな詳細を出力
Invoke #Com_Owner.uOutputGeneric  uLevel(3)  uType('Business Object') uObject(#TempVF_FP003) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002)

* このビジネス・オブジェクトの詳細については、上の #TempVF_FP003 でクリック後 F2 を押下し、クラス VF_FP003 のプロパティを確認してください。

add_entry #LTVW_1

* リスト行に対するオブジェクト参照を保管
Set Com(#ltvw_1.currentitem) Relatedreference(#TempVF_FP003)


ENDROUTINE

* フィルターをリッスン   オブジェクト

EVTROUTINE HANDLING(#UF_TRVRS.Filter) Reference(#TempVF_FPM14) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003)

* ジェネリックな詳細を出力
Invoke #Com_Owner.uOutputGeneric  uLevel(3)  uType('Business Object') uObject(#TempVF_FP003) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003)

* 特別な詳細
* このフィルター・オブジェクトの詳細については、上の #TempVF_FPM14 でクリック後 F2 を押下し、クラス VF_FPM14 のプロパティを確認してください。

#DF_ELTXTL := 'Filter  ' + #TempVF_FPM14.uCaption.AsNativeString + 'Snap-in windows filter ' + #TempVF_FPM14.uFilterName + ' Snap-in Web function ' + #TempVF_FPM14.uWebFilterFunction + ' ' + 'Snap-in wam filter ' + #TempVF_FPM14.uWAMComponent

add_entry #LTVW_1


* リスト行に対するオブジェクト参照を保管
Set Com(#ltvw_1.currentitem) Relatedreference(#TempVF_FPM14)


ENDROUTINE

* コマンド使用法 (コマンド参照) をリッスン オブジェクト

EVTROUTINE HANDLING(#UF_TRVRS.CommandReference) Reference(#TempVF_FPM10) CommandDefinition(#TempVF_FPM09) VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003)

* ジェネリックな詳細を出力
Invoke #Com_Owner.uOutputGeneric  uLevel(3)  uType('Command Reference')  VisParent1(#TempVF_FP001) VisParent2(#TempVF_FP002) VisParent3(#TempVF_FP003)

* 特別な詳細

* コマンド・オブジェクト (VF_FPM09) に一部の詳細がありますが、
* 詳細の多くは、コマンド参照オブジェクト (VF_FPM10) にあります。

* このコマンドおよびコマンド参照オブジェクトに関する詳細については、上の #TempVF_FPM09 または #TempVF_FPM10 でクリック後 F2 を押下し、クラス VF_FPM09 および VF_FPM10 のプロパティを確認してください。

#DF_ELTXTL := 'Command  ' + #TempVF_FPM09.uCaption.AsNativeString + ' Snap-in windows handler ' + #TempVF_FPM10.uHandlerName + ' Snap-in Web function ' + #TempVF_FPM10.uWebHandlerFunction + ' ' + ' Snap-in wam handler ' + #TempVF_FPM10.uWAMComponent + ' uWAM' + #TempVF_FPM10.uWAM

add_entry #LTVW_1

* リスト行に対するオブジェクト参照を保管
Set Com(#ltvw_1.currentitem) Relatedreference(#TempVF_FPM10)


ENDROUTINE

* オブジェクトの記述行を出力

mthroutine uOutputGeneric
define_map *input #std_num #uLevel
define_map *input #df_elmsg #uType
Define_Map For(*input) Class(#vf_fp001) Name(#VisParent1) Mandatory(*NULL) Pass(*BY_REFERENCE)
Define_Map For(*input) Class(#vf_fp002) Name(#VisParent2) Mandatory(*NULL) Pass(*BY_REFERENCE)
Define_Map For(*input) Class(#vf_fp003) Name(#VisParent3) Mandatory(*NULL) Pass(*BY_REFERENCE)
Define_Map For(*input) Class(#vf_ac001) Name(#uObject) Mandatory(*NULL)  Pass(*BY_REFERENCE)

* 親の詳細
Change (#FP_EKEY1 #FP_EKEY2 #FP_EKEY3) *null

* 親 1 の詳細
if_ref #VisParent1 is_not(*null)
Change #FP_EKEY1 #VisParent1.uUserObjectType
endif

* 親 2 の詳細
if_ref #VisParent2 is_not(*null)
Change #FP_EKEY2 #VisParent2.uUserObjectType
endif

* 親 3 の詳細
if_ref #VisParent3 is_not(*null)
Change #FP_EKEY3 #VisParent3.uUserObjectType
endif

* オブジェクトの詳細
if_ref #uObject is_not(*null)
#DF_ELTXTL := #uType + ' ' + #uObject.uCaption.AsNativeString + ' ' + #uObject.uIdentifier + ' ' + #uObject.uUserObjectType
endif


endroutine

End_Com