高度なプロトタイプを作成する方法

Visual LANSA

高度なプロトタイプを作成する方法


単純なモックアップ・プロトタイプ以上のプロトタイプを作成して、アプリケーションに対するエンド・ユーザーの第一印象や期待を高めたい場合があるでしょう。しかし、RAD-PADは単純なHTMLドキュメントで、編集機能が非常に限られているため、モックアップを使用して高度なフィルタやコマンド・ハンドラーのレイアウトを作成するのは困難が伴うことがあります。

このような場合、スタブ・フィルタとスタブ・コマンド・ハンドラーを作成し、Visual LANSA IDEを使用してより精巧なフォームのレイアウトを設計する方が、迅速かつ簡単です。これらのフォームのレイアウトは破棄せずに、設計段階の最後で完成させます。

検索ボタンがあるスタブ・フィルタとそのロジックの例を以下に示します。

* =============================================================================

* Component   :XXXXXXXXXX

* Type        :Reusable Component

* Ancestor    :VF_AC007

* Created     :MM/DD/YYYY

* By          :XXXXXXXXXXXXXXXXXXXXXXXXXX

* =============================================================================

Function Options(*DIRECT)

BEGIN_COM ROLE(*EXTENDS #VF_AC007) HEIGHT(132) LAYOUTMANAGER(#ATLM_1) WIDTH(345)

 

DEFINE_COM CLASS(#PRIM_ATLM) NAME(#ATLM_1)

DEFINE_COM CLASS(#PRIM_PANL) NAME(#BUTTON_PANEL) DISPLAYPOSITION(1) HEIGHT(29) LAYOUTMANAGER(#FWLM_2) LEFT(0) PARENT(#COM_OWNER) TABPOSITION(1) TABSTOP(False) TOP(103) WIDTH(345)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_2) ATTACHMENT(Bottom) MANAGE(#BUTTON_PANEL) PARENT(#ATLM_1)

DEFINE_COM CLASS(#PRIM_PANL) NAME(#BODY_PANEL) DISPLAYPOSITION(2) HEIGHT(103) LAYOUTMANAGER(#ATLM_2) LEFT(0) PARENT(#COM_OWNER) TABPOSITION(2) TABSTOP(False) TOP(0) WIDTH(345)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_3) ATTACHMENT(Center) MANAGE(#BODY_PANEL) PARENT(#ATLM_1)

DEFINE_COM CLASS(#PRIM_FWLM) NAME(#FWLM_1) FLOWOPERATION(Center) FLOWOPERATIONHOR(Center) FLOWOPERATIONVER(Center)

DEFINE_COM CLASS(#PRIM_FWLM) NAME(#FWLM_2) FLOWOPERATION(Center) FLOWOPERATIONHOR(Decrease) FLOWOPERATIONVER(Center) MARGINTOP(4) SPACING(4) SPACINGITEMS(4)

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#SEARCH) CAPTION(*MTXTVF_EMUL_SEARCH) DISPLAYPOSITION(1) LEFT(260) PARENT(#BUTTON_PANEL) TABPOSITION(1) TOP(4) WIDTH(85)

DEFINE_COM CLASS(#PRIM_FWLI) NAME(#FWLI_4) MANAGE(#SEARCH) PARENT(#FWLM_2)

Define_Com Class(#VF_UM822) Name(#VF_UM822) Reference(*Dynamic)

Define_Com Class(#VF_UM823) Name(#VF_UM823) Reference(*Dynamic)

 

DEFINE_COM CLASS(#PRIM_ATLM) NAME(#ATLM_2)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_1) ATTACHMENT(Center) PARENT(#ATLM_2)

 

Evtroutine Handling(#SEARCH.Click) Options(*NOCLEARMESSAGES *NOCLEARERRORS)

Define Field(#LIMIT) Reffld(#STD_NUM) Default(10)

Invoke Method(#uSystem.EmulateObjectSearch) Size(#Limit) Avlistmanager(#avListManager) Instance(#puVF_FP503Owner)

Endroutine

 

End_Com

  

次に、開始ポイントとして使用できるスタブ・コマンド・ハンドラーの簡単な例を示します。

* =============================================================================

* Component   :XXXXXXXXXX

* Type        :Reusable Component

* Ancestor    :VF_AC010

* Created     :MM/DD/YYYY

* By          :XXXXXXXXXXXXXXXXXXXXXXXXXX

* =============================================================================

Function Options(*DIRECT)

BEGIN_COM ROLE(*EXTENDS #VF_AC010) HEIGHT(193) LAYOUTMANAGER(#ATLM_1) WIDTH(492)

DEFINE_COM CLASS(#PRIM_ATLM) NAME(#ATLM_1)

DEFINE_COM CLASS(#PRIM_PANL) NAME(#BUTTON_PANEL) DISPLAYPOSITION(1) HEIGHT(193) LAYOUTMANAGER(#FWLM_2) LEFT(400) PARENT(#COM_OWNER) TABPOSITION(1) TABSTOP(False) TOP(0) WIDTH(92)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_2) ATTACHMENT(Right) MANAGE(#BUTTON_PANEL) PARENT(#ATLM_1)

DEFINE_COM CLASS(#PRIM_PANL) NAME(#BODY_PANEL) DISPLAYPOSITION(2) HEIGHT(193) LAYOUTMANAGER(#ATLM_2) LEFT(0) PARENT(#COM_OWNER) TABPOSITION(2) TABSTOP(False) TOP(0) WIDTH(400)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_3) ATTACHMENT(Center) MANAGE(#BODY_PANEL) PARENT(#ATLM_1)

DEFINE_COM CLASS(#PRIM_FWLM) NAME(#FWLM_1) FLOWOPERATION(Center) FLOWOPERATIONHOR(Center) FLOWOPERATIONVER(Center)

DEFINE_COM CLASS(#PRIM_FWLM) NAME(#FWLM_2) FLOWOPERATIONHOR(Center) MARGINTOP(4) SPACING(4) SPACINGITEMS(4)

Define_Com Class(#VF_UM822) Name(#VF_UM822) Reference(*Dynamic)

Define_Com Class(#VF_UM823) Name(#VF_UM823) Reference(*Dynamic)

 

DEFINE_COM CLASS(#PRIM_ATLM) NAME(#ATLM_2)

DEFINE_COM CLASS(#PRIM_ATLI) NAME(#ATLI_1) ATTACHMENT(Center) PARENT(#ATLM_2)

 

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#PHBN_1) CAPTION('Button 1') DISPLAYPOSITION(1) LEFT(6) PARENT(#BUTTON_PANEL) TABPOSITION(1) TOP(4)

DEFINE_COM CLASS(#PRIM_FWLI) NAME(#FWLI_1) MANAGE(#PHBN_1) PARENT(#FWLM_2)

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#PHBN_2) CAPTION('Button 2') DISPLAYPOSITION(2) LEFT(6) PARENT(#BUTTON_PANEL) TABPOSITION(2) TOP(33)

DEFINE_COM CLASS(#PRIM_FWLI) NAME(#FWLI_3) MANAGE(#PHBN_2) PARENT(#FWLM_2)

 

EVTROUTINE HANDLING(#PHBN_1.Click) OPTIONS(*NOCLEARERRORS *NOCLEARMESSAGES)

Use message_box_show (ok ok info *Component 'Button 1 has not been implemented yet')

ENDROUTINE

 

EVTROUTINE HANDLING(#PHBN_2.Click) OPTIONS(*NOCLEARERRORS *NOCLEARMESSAGES)

Use message_box_show (ok ok info *Component 'Button 1 has not been implemented yet')

ENDROUTINE

 

End_Com