You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

[ |../../index.htm#lansa/lansa048_5075.htm]
Visual LANSA フレームワーク ガイド > アドバンスド・トピック > Visual LANSAフレームワークのオブジェクトに関するクエリーの記述 > > UF_QRY03 - RAMPオブジェクトのリスニングおよびそのプロパティの表示

UF_QRY03 - RAMPオブジェクトのリスニングおよびそのプロパティの表示

  • =============================================================================
    *
  • コンポーネント   : UF_QRY03
  • タイプ        : 再利用コンポーネント
  • 祖先    : VF_AC010 (コマンド・ハンドラー)
    *
  • 注意事項:  この UF_ (ユーザー・フレームワーク) コンポーネントは、フレームワーク提供のバージョンです。 * 修正することも可能ですが、その場合はこのコンポーネントのソースコードを自分のコンポーネントにコピーし、 * そのコピーを変更するようにしてください。 * そうすることで、Visual LANSA フレームワークをアッップグレードした場合に、自分が加えた変更が * 意に反して失われてしまうことを防げます。 * このコンポーネントの独自のバージョンを作成する際の詳細は、このコンポーネントの最後の部分を * 参照してください。 * * 以下はサンプル・コードです。 - 明示的にも暗示的にも保証されません。 * このプログラムやこの派生物のいずれも、実稼働やエンドユーザーの環境で使用することは一切できません。 * * =============================================================================
    *
  • ここでは、RAMP オブジェクトをリッスンし、そのプロパティを確認する方法が示されています。
  • =============================================================================
    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(311) Layoutmanager(#BUTTON_FLOW) Left(464) Parent(#COM_OWNER) Tabposition(2) Tabstop(False) Top(25) Width(88)
    Define_Com Class(#PRIM_PANL) Name(#BODY_HEAD) Displayposition(1) Height(311) Layoutmanager(#ATLM_1) Left(0) Parent(#COM_OWNER) Tabposition(1) Tabstop(False) Top(25) 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(142) Left(2) Parent(#BODY_HEAD) Rowresize(True) Showselection(True) Showsortarrow(True) Tabposition(1) Top(2) Width(460)
    Define_Com Class(#PRIM_GDCL) Name(#LVCL_4) Displayposition(1) Parent(#LTVW_1) Source(#DF_ELTXTL) Width(100) 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)
     
  • スクリプト・リスト
    Define_Com Class(#PRIM_MEMO) Name(#SCRIPT) Componentversion(1) Currentline(1) Displayposition(2) Height(165) Left(2) Maximumlinelength(200) Parent(#BODY_HEAD) Showselectionhilight(False) Tabposition(2) Top(144) Width(460)
    Define_Com Class(#PRIM_ATLI) Name(#ATLI_5) Attachment(Bottom) Manage(#SCRIPT) Parent(#ATLM_1)
    Define_Com Class(#PRIM_MECL) Name(#MECL_1) Columnrole(Data) Displayposition(1) Parent(#SCRIPT) Source(#VF_ELTXTB)
    Define_Com Class(#PRIM_GDCL) Name(#GDCL_1) Caption('Member ID') Captiontype(Caption) Displayposition(2) Parent(#LTVW_1) Source(#VF_ELIDN)
     
  • スクリプト・プッシュ・ボタンの表示
    Define_Com Class(#PRIM_PHBN) Name(#PHBN_1) Displayposition(3) Left(0) Parent(#COM_OWNER) Tabposition(3) Top(0) Width(552)
    Define_Com Class(#PRIM_ATLI) Name(#ATLI_6) Attachment(Top) Manage(#PHBN_1) Parent(#ATLM_2)
    Define_Com Class(#PRIM_PHBN) Name(#PHBN_SCRIPT) Caption('Show Script') Displayposition(2) Left(4) Parent(#BUTTON_PANEL) Tabposition(2) Top(33)
    Define_Com Class(#PRIM_FWLI) Name(#FWLI_1) Manage(#PHBN_SCRIPT) Parent(#BUTTON_FLOW)
    Define_Com Class(#PRIM_PHBN) Name(#PHBN_FKEY) Caption('Show FKeys') Displayposition(3) Left(4) Parent(#BUTTON_PANEL) Tabposition(3) Top(62)
    Define_Com Class(#PRIM_FWLI) Name(#FWLI_2) Manage(#PHBN_FKEY) Parent(#BUTTON_FLOW)
     
  • フレームワーク - 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 Field(#Ret_Code) Reffld(#IO$STS)
    Def_Cond Name(*RetOkay) Cond('#Ret_Code = OK')
     
  • 祖先で定義された実行ロジックはすべて行う
     
    Invoke Method(#Com_Ancestor.uExecute)
     
     
    Endroutine
     
  • ================================================================================
  • サブルーチン
  • ================================================================================
     
  • ================================================================================
  • イベント・ハンドラー
  • ================================================================================
     
  • --------------------------------------------------------------------------------
  • 保存ボタンの処理
  • --------------------------------------------------------------------------------
     
    Evtroutine Handling(#PHBN_REPORT.Click)
     
  • トラバース再利用可能パーツに特別な順序なしに全システムを読み込むよう指示 * このプログラムは各新規オブジェクトに対する信号をリッスン
     
    Clr_List Named(#LTVW_1)
    Invoke Method(#UF_TRVRS.uTraverseFramework)
     
     
    Endroutine
     
     
  • RAMP コンテナをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPContainer) Reference(#TempVF_FP025)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Session') Uobject(#TempVF_FP025)
     
  • この RAMP セッション・オブジェクトに関する詳細は、上の #TempVF_FP025 でクリック後 F2 を押下し、クラス VF_FP025 のプロパティを確認してください。
     
    Add_Entry To_List(#LTVW_1)
     
  • リスト行に対するオブジェクト参照を保管
    Set Com(#LTVW_1.currentitem) Relatedreference(#TempVF_FP025)
     
    Endroutine
     
     
  • RAMP セッションをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPSession) Reference(#TempVF_FP026)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Group') Uobject(#TempVF_FP026)
     
  • この RAMP グループ・オブジェクトに関する詳細は、上の #TempVF_FP026 でクリック後 F2 を押下し、クラス VF_FP026 のプロパティを確認してください。
     
     
    Add_Entry To_List(#LTVW_1)
     
  • リスト行に対するオブジェクト参照を保管
    Set Com(#LTVW_1.currentitem) Relatedreference(#TempVF_FP026)
     
     
    Endroutine
     
  • RAMP デスティネーションをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPDestination) Reference(#TempVF_FPM27)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Destination')
     
  • 特別な詳細
     
  • この RAMP デスティネーション・オブジェクトに関する詳細は、上の #TempVF_FPM27 でクリック後 F2 を押下し、クラス VF_FPM27 のプロパティを確認してください。
     
  • このデスティネーションに対するメンバー識別子を保管
    Change Field(#VF_ELIDN) To(#TempVF_FPM27.CurrentMemberGUID)
     
    #DF_ELTXTL := 'Destination  ' + #TempVF_FPM27.uCaption.AsNativeString + ' Technical Caption ' + #TempVF_FPM27.uTechnicalCaption.AsNativeString + ' Navigate Script ID ' + #TempVF_FPM27.uNavigateScriptIDN + ' Return Script ID ' + #TempVF_FPM27.uReturnScriptIDN
     
    Add_Entry To_List(#LTVW_1)
     
  • リスト行に対するオブジェクト参照を保管
    Set Com(#LTVW_1.currentitem) Relatedreference(#TempVF_FPM27)
     
     
    Endroutine
     
     
  • RAMP ジャンクションをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPJunction) Reference(#TempVF_FPM28)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Destination')
     
  • 特別な詳細
     
  • この RAMP デスティネーション・オブジェクトに関する詳細は、上の #TempVF_FPM28 でクリック後 F2 を押下し、クラス VF_FPM28 のプロパティを確認してください。
     
  • このジャンクションに対するメンバー識別子を保管
    Change Field(#VF_ELIDN) To(#TempVF_FPM28.CurrentMemberGUID)
     
    #DF_ELTXTL := 'Junction ' + #TempVF_FPM28.uCaption.AsNativeString + ' Technical Caption ' + #TempVF_FPM28.uTechnicalCaption.AsNativeString + ' Script ID ' + #TempVF_FPM28.uIdentifier + ' Screen Name ' + #TempVF_FPM28.uScreenName
     
    Add_Entry To_List(#LTVW_1)
     
    Endroutine
     
  • RAMP スペシャルをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPSpecial) Reference(#TempVF_FPM29)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Special')
     
  • 特別な詳細
     
  • この RAMP デスティネーション・オブジェクトに関する詳細は、上の #TempVF_FPM29 でクリック後 F2 を押下し、クラス VF_FPM29 のプロパティを確認してください。
     
  • このスペシャルに対するメンバー識別子を保管
    Change Field(#VF_ELIDN) To(#TempVF_FPM29.CurrentMemberGUID)
     
     
    #DF_ELTXTL := 'Special  ' + #TempVF_FPM29.uCaption.AsNativeString + ' Technical Caption ' + #TempVF_FPM29.uTechnicalCaption.AsNativeString
     
    Add_Entry To_List(#LTVW_1)
     
    Endroutine
     
     
  • RAMP スクリプトをリッスン
     
    Evtroutine Handling(#UF_TRVRS.RAMPScript) Reference(#TempVF_FPM30)
     
  • ジェネリックな詳細を出力
    Invoke Method(#Com_Owner.uOutputGeneric) Ulevel(1) Utype('RAMP Script')
     
  • 特別な詳細
     
  • この RAMP デスティネーション・オブジェクトに関する詳細は、上の #TempVF_FPM30 でクリック後 F2 を押下し、クラス VF_FPM30 のプロパティを確認してください。
     
  • このスクリプトに対するメンバー識別子を保管
    Change Field(#VF_ELIDN) To(#TempVF_FPM30.CurrentMemberGUID)
     
    #DF_ELTXTL := 'Script  ' + #TempVF_FPM30.uCaption.AsNativeString + ' Technical Caption ' + #TempVF_FPM30.uTechnicalCaption.AsNativeString
     
    Add_Entry To_List(#LTVW_1)
     
  • リスト行に対するオブジェクト参照を保管
    Set Com(#LTVW_1.currentitem) Relatedreference(#TempVF_FPM30)
     
    Endroutine
     
     
     
  • オブジェクト記述の1 行を出力
     
    Mthroutine Name(uOutputGeneric)
    Define_Map For(*input) Class(#std_num) Name(#uLevel)
    Define_Map For(*input) Class(#df_elmsg) Name(#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 Field(#vf_elidn) To(*blanks)
     
  • オブジェクト詳細
    If_Ref Com(#uObject) Is_Not(*null)
    #DF_ELTXTL := #uType + ' ' + #uObject.uCaption.AsNativeString + ' ' + #uObject.uIdentifier + ' ' + #uObject.uUserObjectType
    Endif
     
    Endroutine
     
  • ボタン押下 - スクリプトに対するスクリプト行表示
     
    Evtroutine Handling(#PHBN_SCRIPT.Click)
     
    Define_Com Class(#VF_FPM30) Name(#TempVF_FPM30) Reference(*DYNAMIC)
     
    Selectlist Named(#LTVW_1)
    If (#LTVW_1.CurrentItem.Selected)
    If_Ref Com(#LTVW_1.CurrentItem.RelatedReference) Is(*INSTANCE_OF #VF_FPM30)
     
    Set_Ref Com(#TempVF_FPM30) To(*Dynamic #LTVW_1.CurrentItem.RelatedReference)
    Invoke Method(#Com_Owner.uShowScript) Uscriptmanager(#TempVF_FPM30) Usescriptguid(#VF_ELIDN)
     
    Endif
    Endif
    Endselect
     
    Endroutine
     
     
  • スクリプト表示
     
    Mthroutine Name(uShowScript)
    Define_Map For(*input) Class(#VF_FPM30) Name(#uScriptManager) Pass(*BY_REFERENCE)
    Define_Map For(*input) Class(#VF_ELMBRi) Name(#UseScriptGUID)
     
    Define Field(#First) Reffld(#vf_elbool)
    Define_Com Class(#vf_elindx) Name(#LoopLimit)
     
     
    Clr_List Named(#SCRIPT)
     
  • VF_FPM オブジェクトの作業時は、オブジェクトを読み書きする前に CurrentMemberGUID を設定する必要があります。
  • これは、リスト #LTVW_1 内のフィールド #VF_ELIDN に保管されています。
     
  • #VF_FPM30 に正しいメンバーを設定
    #uScriptManager.CurrentMemberGUID := #UseScriptGUID
     
    Change Field(#LoopLimit) To(#uScriptManager.uSLMax)
    Change Field(#VF_ELLICT) To(0)
     
    Change Field(#First) To(TRUE)
    Begin_Loop To(#LoopLimit)
  • 各スクリプトをフィールド #vf_eltxtb に読み込む
     
    Invoke Method(#uSystem.uRestorePropertySet) Ucursor('0') Ufirst(#First) Uname(uSL) Ualphavalue(#vf_eltxtb) Udefaultalphavalue('*NONE') Ac0x1object(#uScriptManager.SetMember( #UseScriptGUID ))
     
    Add_Entry To_List(#SCRIPT)
     
    Change Field(#First) To(FALSE)
    End_Loop
     
    Endroutine
     
  • ボタン押下 – デスティネーションに対するファンクション・キーを表示
     
    Evtroutine Handling(#PHBN_FKEY.Click)
     
    Define_Com Class(#VF_FPM27) Name(#TempVF_FPM27) Reference(*DYNAMIC)
     
    Selectlist Named(#LTVW_1)
    If (#LTVW_1.CurrentItem.Selected)
    If_Ref Com(#LTVW_1.CurrentItem.RelatedReference) Is(*INSTANCE_OF #VF_FPM27)
     
    Set_Ref Com(#TempVF_FPM27) To(*Dynamic #LTVW_1.CurrentItem.RelatedReference)
    Invoke Method(#Com_Owner.uShowFKeys) Udestinationmanager(#TempVF_FPM27) Usedestguid(#VF_ELIDN)
     
    Endif
    Endif
    Endselect
     
    Endroutine
     
  • デスティネーションに対するファンクション・キーを表示
     
    Mthroutine Name(uShowFkeys)
    Define_Map For(*input) Class(#VF_FPM27) Name(#uDestinationManager) Pass(*BY_REFERENCE)
    Define_Map For(*input) Class(#VF_ELMBRi) Name(#UseDestGUID)
     
    Define_Com Class(#vf_elindx) Name(#LoopLimit)
    Define_Com Class(#vf_elindx) Name(#LoopIndex)
    Define_Com Class(#vf_elindx) Name(#KeyTotal)
     
    Clr_List Named(#SCRIPT)
     
  • VF_FPM オブジェクトの作業時は、オブジェクトを読み書きする前に CurrentMemberGUID を設定する必要があります。
  • これは、リスト #LTVW_1 内のフィールド #VF_ELIDN に保管されています。
     
    Set_Ref Com(#uDestinationManager) To(#uFramework.VF_FP027Manager)
    #uDestinationManager.CurrentMemberGUID := #UseDestGUID
    Change Field(#LoopLimit) To(#uDestinationManager.uKeyTotal)
     
  • ファンクション・キーのロード
     
    Begin_Loop Using(#LoopIndex) To(#LoopLimit)
     
    Change Field(#vf_elindx) To(#LoopIndex)
     
     
    #vf_eltxtb := ' Caption:' + #uDestinationManager.uKeyCaption<#LoopIndex>
     
    #vf_eltxtb += ' , '
     
    #vf_eltxtb += ' Enabled in Newlook:' + #uDestinationManager.uKeyEnabledNL<#LoopIndex>
     
    #vf_eltxtb += ' , '
     
    #vf_eltxtb += ' Enabled in VLF:' + #uDestinationManager.uKeyEnabledVLF<#LoopIndex>
     
    #vf_eltxtb += ' , '
     
    #vf_eltxtb += ' Key to Send:' + #uDestinationManager.uKeytoSend<#LoopIndex>
     
    Add_Entry To_List(#SCRIPT)
     
    End_Loop
    Endroutine
     
    End_Com
     
     
     
    [ |../../index.htm#lansa/lansa048_5075.htm]
  • No labels