Page History
フィールドに省略値を設定できるように、フィールドのピックリストにも省略時項目を設定できます。一方を変更するときは、もう一方もそれに合わせて変更する必要がないか、注意する必要があります。
例えば、以下に示すフォームをデバッグ・モードで動作させ、messageコマンドで#EMPSEXの値を調べると、ラジオ・ボタンのいずれかをオンにしていない限り、値は空であることがわかります。フィールドのピックリストには省略時項目が設定されているので、この動作は不適切であるように見えますが、実際には正しい動作です。
[ |../../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?'
ENDROUTINE
END_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 Visualization
BEGIN_COM ROLE(*Visual #PRIM_EVPL) NAME(#PICKLIST) DEFAULTVISUAL(True) HEIGHT(44) MARGINLEFT(50) WIDTH(167)
End_Com
* Define the Picklist
BEGIN_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_COM
END_COM