メインコンテンツまでスキップ
バージョン: 20 R7 BETA

LISTBOX INSERT COLUMN FORMULA

LISTBOX INSERT COLUMN FORMULA ( {* ;} object ; colPosition ; colName ; formula ; dataType ; headerName ; headerVariable {; footerName ; footerVar} )

引数説明
*演算子指定時, objectはオブジェクト名 (文字列) 省略時, objectは変数
objectanyオブジェクト名 (* 指定時) または 変数 (* 省略時)
colPositionInteger列挿入位置
colNameText列オブジェクト名
formulaText列に関連付ける4Dフォーミュラ
dataTypeIntegerフォーミュラの結果型
headerNameText列ヘッダーオブジェクト名
headerVariableInteger, Pointer列ヘッダー変数
footerNameText列フッターオブジェクト名
footerVarVariable, Pointer列フッター変数

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

LISTBOX INSERT COLUMN FORMULAコマンドは、object引数および * で指定されたリストボックスに列を挿入します。

LISTBOX INSERT COLUMN FORMULAコマンドはLISTBOX INSERT COLUMNコマンドと同様の動作を行いますが、列のコンテンツとしてフォーミュラを指定可能な点が異なります。

このタイプのコンテンツはリストボックスの"データソース"プロパティがカレントセレクション命名セレクション、あるいはコレクションまたはエンティティセレクションに設定されている場合にのみ使用できます (この点に関する詳細はリストボックスオブジェクトの管理を参照してください)。

注: このコマンドは階層モードで表示されているリストボックスの最初の列に適用されてもなにも行いません。

オプションの引数 * を渡すことにより、object引数がオブジェクト名(文字列)であることを示します。この引数を渡さない場合、object引数が変数であることを示します。この場合、文字列ではなく変数参照を指定します。オブジェクト名についての詳細はオブジェクトプロパティを参照してください。

新しい列は、colPosition引数で指定された列の直前に挿入されます。colPosition引数の値が列の合計数よりも大きい場合、最後の列の後ろにカラムが追加されます。

colName 引数には挿入する列のオブジェクト名を渡します。

formula 引数には有効なフォーミュラを渡します。例えば:

  • 命令
  • フォーミュラエディタで生成したフォーミュラ
  • 4D コマンドの呼び出し
  • プロジェクトメソッドの呼び出し

コマンドが呼び出される際、formulaは解析・実行されます。

注: フォーミュラが4Dコマンドを呼び出す場合、アプリケーションのローカライズの影響を受けないようにするため、Command nameを使用してください。

dataType 引数は、フォーミュラを実行した結果の型を指定するために使用します。Field and Variable Typesテーマの以下の定数の1つを渡さなければなりません:

定数
Is Boolean倍長整数6
Is date倍長整数4
Is picture倍長整数3
Is real倍長整数1
Is text倍長整数2
Is time倍長整数11

formula の結果が期待するデータ型に対応しない場合、エラーが生成されます。

headerNameheaderVarには、挿入される列のヘッダーのオブジェクト名および変数を渡します。

footerNamefooterVarにも、挿入される列のフッターのオブジェクト名および変数を渡すことができます。

注: オブジェクト名は、フォーム内で重複してはいけません。colNameheaderNamefooterNameに渡される名前が既に使用されていないことを確認してください。重複した名前を指定すると、列は作成されず、エラーが生成されます。

動的な挿入

4D v14 R3以降、フォーム実行中にこのコマンドを使用してカラムをリストボックス内へと動的に挿入することが出来るようになりました。その際、必要な変数(フッター、ヘッダー)の定義を4Dが自動的に行うようになりました。

これを可能にするため、LISTBOX DUPLICATE COLUMNcolVariable(配列型リストボックスのみ)、headerVarfooterVar 引数においてNil (->[]) ポインターを引数として受け入れるようになりました。Nilポインターを渡してコマンドを実行すると、4Dは必要な変数を動的に作成します(詳細に関しては、 のセクションを参照して下さい)。

ヘッ ダー変数とフッター変数は常に特定のタイプで作成されるという点に注意して下さい(ヘッダーは倍長整数、フッターはテキスト)。

例題 1

リストボックスの右に列を追加し、従業員の年齢を計算するフォーミュラを関連付けます:

 vAge:="Today's Date-[Employees]BirthDate)\365"
 $last:=Get number of listbox columns(*;"ListBox1")+1
 LISTBOX INSERT COLUMN FORMULA(*;"ListBox1";$last;"ColFormula";vAge;Is real;"Age";HeaderVar)

例題 2

コレクション型のリストボックスにカラムを追加する場合を考えます:

  //コレクションを作成
 var emps : Collection
 emps:=New collection(New object("Employee";"John Doe";"JobTitle";"CEO");New object("Employee";"Mary Smith";"JobTitle";"CTO");New object("Employee";"Jane Turner";"JobTitle";"CFO"))

カラムの中身はコレクションの各要素ごとに評価されており、This.Employee というデータソース式を通して以下のように参照されます:

実行時:

職務の肩書きを表示するカラム:

 LISTBOX INSERT COLUMN FORMULA(*;"EmpLB";2;"2nd Column";"This.JobTitle";Is text;"JTHeader";header2)
 OBJECT SET TITLE(header2;"Title")

リストボックスに追加されたカラム:

参照

LISTBOX INSERT COLUMN