Page History
[ |../../index.htm#lansa/l4wdev03_0265.htm]
現在地:
...
フィールドに省略値を設定できるように、フィールドのピックリストにも省略時項目を設定できます。一方を変更するときは、もう一方もそれに合わせて変更する必要がないか、注意する必要があります。
例えば以下に示すフォームをデバッグ・モードで動作させ、messageコマンドで#EMPSEXの値を調べると、ラジオ・ボタンのいずれかをオンにしていない限り、値は空であることがわかります。フィールドのピックリストには省略時項目が設定されているので、この動作は不適切であるように見えますが、実際には正しい動作です。
フォームの起動時に行われるフィールドの初期化で、#EMPSEXには省略値が設定されます。しかしこの例の場合、(#EMPSEX側には)省略値が指定されていないので、フィールド変数の値は空のままです。一方、画面表示について見ると、空という値は無効なので、ピックリストの処理規則に基づき初期設定が行われます(この場合は省略地の値)。
これは、フィールド値の省略値と、ピックリストの省略時項目の値が一致していない例です。これを解消するためには、#EMPSEXに省略値「M」を設定する必要があります。こうすればフィールド値と画面表示が一致します。
混乱を避けるため、ピックリストの省略時項目として、フィールドの省略値を与えるようお勧めします。
フォームのソース
...
FUNCTION OPTIONS(*DIRECT)BEGIN_
...
COM ROLE(*
...
EXTENDS #PRIM_FORM)
...
CLIENTHEIGHT(306)
...
CLIENTWIDTH(492)
...
LEFT(326)
...
TOP(162)DEFINE_
...
COM CLASS(#EMPSEX.Visual)
...
NAME(#EMPSEX)
...
DISPLAYPOSITION(1)
...
LEFT(40)
...
PARENT(#COM_OWNER)
...
TABPOSITION(1)
...
TOP(40)DEFINE_
...
COM CLASS(#PRIM_PHBN)
...
NAME(#PHBN_1)
...
CAPTION('Save')
...
DISPLAYPOSITION(2)
...
LEFT(53)
...
PARENT(#COM_OWNER)
...
TABPOSITION(2)
...
TOP(192)
...
EVTROUTINE handling(#com_owner.Initialize)
...
SET #com_owner caption(*component_desc)ENDROUTINE
...
EVTROUTINE HANDLING(#PHBN_1.Click)
...
message 'Field Sex has a Value?'ENDROUTINEEND_COM
...
フィールドのソース(EMPSEX Alpha(1))
BEGIN_
...
COM ROLE(*
...
EXTENDS #PRIM_OBJT)
...
BEGIN_
...
COM ROLE(*
...
Visual #PRIM_EVEF)
...
NAME(#VisualEdit)
...
HEIGHT(19)
...
USEPICKLIST(False)
...
WIDTH(178)
...
END_COM
...
* Define Picklist VisualizationBEGIN_
...
COM ROLE(*
...
Visual #PRIM_EVPL)
...
NAME(#PICKLIST)
...
DEFAULTVISUAL(True)
...
HEIGHT(44)
...
MARGINLEFT(50)
...
WIDTH(167)End_Com
...
* Define the PicklistBEGIN_
...
COM ROLE(*picklist)
...
NAME(#LIST)DEFINE_
...
COM CLASS(#PRIM_PKIT)
...
NAME(#ITEM1)
...
CAPTION('Male')
...
DEFAULT(True)
...
PARENT(#LIST)
...
VALUE('M')DEFINE_
...
COM CLASS(#PRIM_PKIT)
...
NAME(#ITEM2)
...
CAPTION('Female')
...
PARENT(#LIST)
...
VALUE('F')End_Com
...
BEGIN_
...
COM ROLE(*
...
Visual #PRIM_EVPL)
...
NAME(#Dropdown)
...
APPEARANCE(DropDownList)
...
HEIGHT(69)
...
WIDTH(209)
...
END_COMEND_COM
...