ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
カラム内でのオブジェクト配列の使用
|
valueType | デフォルトのウィジェット | 他に選択可能なウィジェット |
text | テキスト入力 | ドロップダウンメニュー(指定リスト)またはコンボボックス(選択リスト) |
real | 管理されたテキスト入力(数字とセパレータ) | ドロップダウンメニュー(指定リスト)またはコンボボックス(選択リスト) |
integer | 管理されたテキスト入力(数字のみ) | ドロップダウンメニュー(指定リスト)またはコンボボックス(選択リスト)またはスリーステートチェックボックス |
boolean | チェックボックス | ドロップダウンメニュー(指定リスト) |
color | 背景色 | テキスト |
event | ラベル付きのボタン | |
全てのウィジェットには、単位切り替えボタン または 省略ボタン を追加でセルに付属させることができます |
セルの表示とオプションは、オブジェクト内の特定の属性を使用することによって設定できます(以下を参照して下さい)。
オブジェクト型のリストボックスのカラムにおいては、表示フォーマットと入力フィルターを設定することはできません。これらは値の型に応じて自動的に定義されます。どのように定義されるかについては、以下一覧にまとめてあります:
値の型 | デフォルトのフォーマット | 入力コントロール |
text | オブジェクト内で定義されているものと同じ | 制限なし |
real | オブジェクト内で定義されているものと同じ(システムの小数点セパレータを使用) | "0-9" と "." と "-" |
min>=0 の場合、"0-9" と "." | ||
integer | オブジェクト内で定義されているものと同じ | "0-9" と "-" |
min>=0 の場合、"0-9" | ||
Boolean | チェックボックス | N/A |
color | N/A | N/A |
event | N/A | N/A |
オブジェクト配列のそれぞれの要素は、セルの中身とデータ表示を定義する一つまたは複数の属性を格納するオブジェクトです(上記の例を参照して下さい)。
唯一必須の属性は"valueType"であり、サポートされる値は"text"、"real"、"integer"、"boolean"、"color" そして "event"です。以下の表には、リストボックスオブジェクト配列において"valueType"の値に応じてサポートされる全ての属性がまとめてあります(他の属性は全て無視されます)。表示フォーマットに関しては、その更に下に詳細な説明と例があります。
valueType | text | real | integer | boolean | color | event | |
属性 | 詳細 | ||||||
value | セルの値(入力または出力) | ◯ | ◯ | ◯ | |||
min | 最小値 | ◯ | ◯ | ||||
max | 最大値 | ◯ | ◯ | ||||
behavior | "スリーステート" の値 | x | |||||
requiredList | オブジェクト内で定義されたドロップダウンリスト | ◯ | ◯ | ◯ | |||
choiceList | オブジェクト内で定義されたコンボボックス | ◯ | ◯ | ◯ | |||
requiredListReference | 4D リスト参照、"saveAs"の値による | ◯ | ◯ | ◯ | |||
requiredListName | 4D リスト名、"saveAs"の値による | ◯ | ◯ | ◯ | |||
saveAs | "reference" または "value" | ◯ | ◯ | ◯ | |||
choiceListReference | 4D リスト参照、コンボボックスを表示 | ◯ | ◯ | ◯ | |||
choiceListName | 4D リスト名、コンボボックスを表示 | ◯ | ◯ | ◯ | |||
unitList | X要素の配列 | ◯ | ◯ | ◯ | |||
unitReference | 選択された要素のインデックス | ◯ | ◯ | ◯ | |||
unitsListReference | 単位の4D リスト参照 | ◯ | ◯ | ◯ | |||
unitsListName | 単位の4D リスト名 | ◯ | ◯ | ◯ | |||
alternateButton | 切り替えボタンを追加 | ◯ | ◯ | ◯ | ◯ | ◯ |
セルの値は"value"属性に保存されています。この属性は入力と出力に使用されます。またリストを使用する際のデフォルトの値を定義するのにも使用できます(以下を参照)。
例:
ARRAY OBJECT(obColumn;0) //カラム配列
C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob1;"valueType";"text")
OB SET($ob1;"value";$entry) //ユーザーが新しい値を入力した場合、 編集された値は$entry に格納されます
C_OBJECT($ob2)
OB SET($ob2;"valueType";"real")
OB SET($ob2;"value";2/3)
C_OBJECT($ob3)
OB SET($ob3;"valueType";"boolean")
OB SET($ob3;"value";True)
APPEND TO ARRAY(obColumn;$ob1)
APPEND TO ARRAY(obColumn;$ob2)
APPEND TO ARRAY(obColumn;$ob3)
注: ヌル値はサポートされており、空のセルとして表示されます。
"valueType" が"real" または "integer" であるとき、オブジェクトはmin と max 属性を受け取ります(値は適切な範囲である必要があり、また、valueTypeと同じ型である必要があります)。
これらの属性を使用すると入力値の範囲を管理する事ができます。セリが評価されたとき(フォーカスを失ったとき)、入力された値がminの値より低い場合、またはmaxの値より大きい場合には、その値は拒否されます。この場合、入力をする前の値が保持され、tipに説明が表示されます。
例:
C_OBJECT($ob3)
$entry3:=2015
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";$entry3)
OB SET($ob3;"min";2000)
OB SET($ob3;"max";3000)
behavior 属性は値の通常の表示とは異なる他の表示方法を提供します。4D v15では、一つだけ他の表示方法が用意されています:
属性 | 使用可能な値 | valueType | 詳細 |
behavior | threeStates | integer | スリーステートチェックボックスを数値として表現します。2=セミチェック、1=チェック、0=チェックされていない、-1=非表示、-2=チェックなしが無効化、-3=チェックが無効化、-4=セミチェックが無効化 |
例:
C_OBJECT($ob3)
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";-3)
C_OBJECT($ob4)
OB SET($ob4;"valueType";"integer")
OB SET($ob4;"value";-3)
OB SET($ob4;"behavior";"threeStates")
"choiceList" または "requiredList"属性がオブジェクト内に存在しているとき、テキスト入力は以下の属性に応じて、ドロップダウンリストまたはコンボボックスで置き換えられます:
どちらの場合においても、"value"属性を使用してウィジェット内の値を事前に選択することができます。
注: ウィジェットの値は配列を通して定義されます。既存の4Dリストをウィジェットに割り当てたい場合、"requiredListReference"、"requiredListName"、"choiceListReference"属性を使用するか、"choiceListName" 属性を使用する必要があります。
例:
ARRAY TEXT($RequiredList;0)
APPEND TO ARRAY($RequiredList;"Open")
APPEND TO ARRAY($RequiredList;"Closed")
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"Closed")
OB SET ARRAY($ob;"requiredList";$RequiredList)
ARRAY LONGINT($ChoiceList;0)
APPEND TO ARRAY($ChoiceList;5)
APPEND TO ARRAY($ChoiceList;10)
APPEND TO ARRAY($ChoiceList;20)
APPEND TO ARRAY($ChoiceList;50)
APPEND TO ARRAY($ChoiceList;100)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";10) //10 をデフォルト値として使用
OB SET ARRAY($ob;"choiceList";$ChoiceList)
"requiredListName" and "requiredListReference"属性を使用すると、リストボックスセル内において、デザインモード(ツールボックス内)において、またはプログラミングによって(New list コマンドを使用して)4Dで定義されたリストを使用することが出来るようになります。セルはドロップダウンリストとして表示されるようになります。これはつまり、ユーザーは、リスト内に提供された値のどれか一つのみを選択できるということを意味します。
"requiredListName" または "requiredListReference"は、リストの作成元に応じて使い分けます。リストがツールボックスで作成された場合、リスト名を渡します。そうでない場合、つまりリストがプログラミングによって定義された場合、リストの参照を渡します。どちらの場合においても、"value"属性を使用するとウィジェット内の値を事前に設定することができます。
注: これらの値を単純な配列を通して定義したい場合は、"requiredList" 属性を使用する必要があります。
この場合"saveAs" 属性は、選択された項目が"value"(値)として、または"reference”(参照)として保存されるかを定義します。
"save as"オプションについてのより詳細な情報については、Design Reference マニュアルの関連付け(値または参照番号)の章を参照して下さい。
注: リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド(".")である必要があります。例:"17.6" "1234.456"
例:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"saveAs";"value")
OB SET($ob;"value";"blue")
OB SET($ob;"requiredListName";"colors")
<>List:=New list
APPEND TO LIST(<>List;"Paris";1)
APPEND TO LIST(<>List;"London";2)
APPEND TO LIST(<>List;"Berlin";3)
APPEND TO LIST(<>List;"Madrid";4)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"saveAs";"reference")
OB SET($ob;"value";2) //デフォルトでLondonを表示
OB SET($ob;"requiredListReference";<>List)
"choiceListName" と "choiceListReference" 属性を使用すると、リストボックスセル内において、デザインモード(ツールボックス内)において、またはプログラミングによって(New list コマンドを使用して)4Dで定義されたリストを使用することが出来るようになります。セルはコンボボックスとして表示されるようになります。これはつまり、ユーザーは値を選択、または入力できるということを意味します。
"choiceListName"または "choiceListReference" は、リストの作成元に応じて使い分けます。リストがツールボックスで作成された場合、リスト名を渡しま す。そうでない場合、つまりリストがプログラミングによって定義された場合、リストの参照を渡します。どちらの場合においても、"value"属性を使用 するとウィジェット内の値を事前に設定することができます。
注: これらの値を単純な配列を通して定義したい場合は、"choiceList" 属性を使用する必要があります。
この場合、"saveAs" 属性は使用できません。選択された項目は自動的に"value"(値)として保存されるからです(詳細な情報についてはcf. )。
注: リストが実数値を表すテキストを含んでいる場合、小数点はローカル設定に関わらず、ピリオド(".")である必要があります。例:"17.6" "1234.456"
例: ツールボックスで定義された"colors"リスト("blue"、"yellow"、そして "green"の値を格納)に基づいたドロップダウンリストを表示し、値として保存し、デフォルトの表示は"green"にしたい場合を考えます:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"blue")
OB SET($ob;"choiceListName";"colors")
特定の値を使用する事で、セルの値に関連した単位を追加することができます(例: "10 cm", "20 pixels"等)。単位リストを定義するためには、以下の属性のどれか一つを使用します:
単位リストが定義された方法に関わらず、以下の属性を関連付けることができます:
カレントの単位は、ボタンとして表示されます。このボタンは、クリックするたびに"unitList"、"unitsListReference" または "unitsListName" の値を切り替えて行きます(例 "pixels" -> "rows" -> "cm" -> "pixels" -> 等)。
例: 数値の入力と、その後に可能性のある単位("rows" または "pixels")を二つ続けて表示したい場合を考えます。カレントの値は"2" + "lines"と、オブジェクト内で直接定義された値("unitsList" 属性)を使用するものとします:
ARRAY TEXT($_units;0)
APPEND TO ARRAY($_units;"lines")
APPEND TO ARRAY($_units;"pixels")
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";2) // 2 "units"
OB SET($ob;"unitReference";1) //"lines"
OB SET ARRAY($ob;"unitsList";$_units)
セルに省略ボタン[...] を追加したい場合、"alternateButton" 属性にTrue の値を入れてオブジェクトに渡すだけです。省略ボタンは自動的にセル内に表示されます。
このボタンがユーザーによってクリックされた場合、On Alternate Click イベントが生成され、そのイベントを自由に管理することができます(詳細な情報に関しては"events management" の章を参照して下さい)。
注: On Alternate Click は、On Arrow Click イベントの新しい名前であり、4D v15においてその拡張されたスコープを強調するために改名されました。
例:
C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob;"valueType";"text")
OB SET($ob;"alternateButton";True)
OB SET($ob;"value";$entry)
"color" valueType を使用すると、色、または色を表すテキストを表示する事ができます。
C_OBJECT($ob4)
OB SET($ob4;"valueType";"color")
OB SET($ob4;"value";0x00FF0000)
"event" valueType を使用すると、クリックした際にOn Clicked イベントを生成する単純なボタンを表示します。データまたは値を渡す/返すことはできません。
オプションとして、"label"属性を渡す事ができます。
例:
C_OBJECT($ob)
OB SET($ob;"valueType";"event")
OB SET($ob;"label";"Edit...")
オブジェクトリストボックス配列を使用している際には、複数のイベントを管理することができます:
注: On Alternative Click は、4Dの以前のバージョンで使用されていた On Arrow Click イベントの新しい名前です。このイベントはスコープが拡張されたことにより、4D v15で改名されました。
プロダクト: 4D
テーマ: リストボックス
初出: 4D v15
デザインリファレンス ( 4D v20 R7)