現在地: Visual LANSA 開発者ガイド > 2. グラフィカル・ユーザーインターフェース・アプリケーションの作成 > 2.3 イベント・ドリブン・プログラム > 2.3.3.2 Visual LANSAフォーム
2.3.3.2 Visual LANSAフォーム

Visual LANSAフォームは、前のアプリケーションと全く同じ機能を持ちます。さらに、結婚状況に基づいてフィールドを有効または無効にすることにより、必須のフィールドを示します。この即時の反応により、ユーザーに必要な情報を入力させることができます。

フォームのソース

フォームのソース・コードは次の通りです。

***************************************************

*                                                 

* COMPONENT:  STD_FORM                            

*                                                 

***************************************************

FUNCTION OPTIONS(*DIRECT)

BEGIN_COM HEIGHT(240) LEFT(313) TOP(155) WIDTH(600)

 

* Component Definitions

DEFINE_COM CLASS(#IDNO.Visual) NAME(#IDNO) DISPLAYPOSITION(1) HEIGHT(19) LEFT(16) MARGINLEFT(120) PARENT(#COM_OWNER) TABPOSITION(1) TOP(16) WIDTH(209)

DEFINE_COM CLASS(#SPOUSE.Visual) NAME(#SPOUSE) DISPLAYPOSITION(2) HEIGHT(19) LEFT(200) PARENT(#COM_OWNER) TABPOSITION(2) TOP(56) WIDTH(369)

DEFINE_COM CLASS(#MARRIED.Visual) NAME(#MARRIED) DISPLAYPOSITION(3) HEIGHT(19) LEFT(200) PARENT(#COM_OWNER) TABPOSITION(3) TOP(80) WIDTH(232)

DEFINE_COM CLASS(#DIVORCED.Visual) NAME(#DIVORCED) DISPLAYPOSITION(5) HEIGHT(19) LEFT(200) PARENT(#COM_OWNER) TABPOSITION(5) TOP(104) WIDTH(232)

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#SAVE) CAPTION('Save') DISPLAYPOSITION(4) LEFT(488) PARENT(#COM_OWNER) TABPOSITION(4) TOP(120)

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#DELETE) CAPTION('Delete') DISPLAYPOSITION(6) LEFT(488) PARENT(#COM_OWNER) TABPOSITION(6) TOP(152)

DEFINE_COM CLASS(#PRIM_PHBN) NAME(#FETCH) CAPTION('Fetch') DISPLAYPOSITION(7) HEIGHT(17) LEFT(288) PARENT(#COM_OWNER) TABPOSITION(7) TOP(16) WIDTH(57)

DEFINE_COM CLASS(#PRIM_GPBX) NAME(#GPBX_1) CAPTION('Marital Status') DISPLAYPOSITION(8) HEIGHT(97) LEFT(16) PARENT(#COM_OWNER) TABPOSITION(8) TABSTOP(False) TOP(40) WIDTH(153)

DEFINE_COM CLASS(#PRIM_RDBN) NAME(#RDBN_1) CAPTION('Never Married') DISPLAYPOSITION(1) LEFT(16) PARENT(#GPBX_1) TABPOSITION(1) TOP(16) WIDTH(105)

DEFINE_COM CLASS(#PRIM_RDBN) NAME(#RDBN_2) CAPTION('Married') DISPLAYPOSITION(2) LEFT(16) PARENT(#GPBX_1) TABPOSITION(2) TOP(38) WIDTH(65)

DEFINE_COM CLASS(#PRIM_RDBN) NAME(#RDBN_3) CAPTION('Divorced') DISPLAYPOSITION(3) LEFT(16) PARENT(#GPBX_1) TABPOSITION(3) TOP(60) WIDTH(73)

DEFINE_COM CLASS(#PRIM_STBR) NAME(#STBR_1) DISPLAYPOSITION(9) HEIGHT(23) LEFT(0) MESSAGEPOSITION(1) PARENT(#COM_OWNER) TABPOSITION(9) TOP(190) WIDTH(592)

 

* Other definitions

GROUP_BY NAME(#PANELDATA) FIELDS(#STATUS #SPOUSE #MARRIED #DIVORCED)

EVTROUTINE handling(#com_owner.Initialize)

SET #com_owner caption(*component_desc)

ENDROUTINE

 

* Event routines

* Fetch file mstatus details    

EVTROUTINE HANDLING(#FETCH.Click)

FETCH FIELDS(#PANELDATA) FROM_FILE(mstatus) WITH_KEY(#IDNO) ISSUE_MSG(*YES)

if cond('#status *eq N')

set com(#RDBN_1) ButtonChecked(True)

set com(#spouse #married #divorced) enabled(false)

endif

if cond('#status *eq M')

set com(#RDBN_2) ButtonChecked(True)

set com(#spouse #married) enabled(true)

set com(#divorced) enabled(false)

endif

if cond('#status *eq D')

set com(#RDBN_3) ButtonChecked(True)

set com(#spouse #married #divorced) enabled(true)

endif

ENDROUTINE

 

* Enable and disable fields according to marital status

EVTROUTINE HANDLING(#RDBN_1.Click )

set com(#spouse #married #divorced) enabled(false)

set com(#spouse) value(*blank)

set com(#married #divorced) value(*zero)

change #status 'N'

ENDROUTINE

 

EVTROUTINE HANDLING( #RDBN_2.Click )

set com(#spouse #married) enabled(true)

set com(#divorced) value(*zero)

set com(#divorced) enabled(false)

change #status 'M'

ENDROUTINE

 

EVTROUTINE HANDLING(#RDBN_3.Click)

set com(#spouse #married #divorced) enabled(true)

change #status 'D'

ENDROUTINE

 

*Save details

EVTROUTINE HANDLING(#Save.Click)

UPDATE FIELDS(#PANELDATA) IN_FILE(mstatus)

ENDROUTINE

EVTROUTINE HANDLING(#DELETE.Click)

DELETE FROM_FILE(mstatus) ISSUE_MSG(*YES)

ENDROUTINE

END_COM

2.3.3.3 コードの比較」を参照してください。