How do I create an elaborate prototype

Visual LANSA Framework

How do I create an elaborate prototype?

Sometimes you may want something more than a rough mock up prototype in order to manage the end-users' initial impressions and expectations of your application. However, trying to produce elaborate filter or command handler layouts using mock ups can be a frustrating experience because a RAD-PAD is just simple HTML document with very limited editing capabilities.

In this situation it may be quicker and easier to create stub filters and command handlers and use the Visual LANSA IDE to produce much more sophisticated form layouts. These form layouts can then be completed at the end of the design cycle rather than discarded.

Here’s an example of a simple stub filter, including the ‘Emulate Search’ button and logic:

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

* 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

  

Here’s a simple stub command handler you might use as a starting point:

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

* 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