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

ARRAY TO LIST

ARRAY TO LIST ( array ; list {; itemRefs} )

引数説明
arrayArray配列要素のコピー元配列
listText, Integer配列要素のコピー先リスト
itemRefsArray項目参照番号の数値配列

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

説明

ARRAY TO LIST コマンドは、配列arrayの要素を使用して、(デザインモードのリストエディタで作成される)階層リストまたは選択リストlistリストを作成または置き換えます。

list 引数には、選択リスト(文字列)または階層リスト参照(ListRef) を渡すことが出来ます。後者の場合、このコマンドが動くためには、渡すリストは (例えば New list コマンドを使用するなどして) 事前に作成されている必要があります。

任意の引数itemRefsが渡される場合、この配列は数値配列で、array配列と同期していなければなりません。各要素は、arrayの対応する要素のリスト項目参照番号を表わします。この引数を省略した場合、4Dにより自動的に1、2...Nという項目参照番号が設定されます。

互換性に関する注意: ARRAY TO LIST コマンドは、以下の様な制限があることに注意しなければなりません。

  • このコマンドはリストの第1レベルの項目のみ設定することが出来ます。
  • このコマンドを選択リストに使用すると、アプリケーションのストラクチャを変更する(リストはストラクチャファイルに保存されています)ので、製品のストラクチャファイルがアップデートされた際にローカルな変更は全て失われてしまいます。
  • このコマンドは読み出しのみで読み込まれたストラクチャー(たとえば.4dz プロジェクトやコンポーネント)内の選択リストで使用することはできません。

ARRAY TO LIST コマンドを使い、配列の要素に基づくリストを作成することはできます。しかしながら、これらの制約に縛られずにリストの値を自由に使用するためには、階層リスト テーマ内にあるコマンドの使用が推奨されます。

例題

以下の例は、配列atRegionsの要素から構成される“Regions”リストを作成します:

 ARRAY TO LIST(atRegions;"Regions")

例題

フィールドの異なる値をリストに入れて、例えば階層ポップアップメニューを作成したい場合:

 ALL RECORDS([Company])
 DISTINCT VALUES([Company]country;$arrCountries)
 CountryList:=New list
 ARRAY TO LIST($arrCountries;CountryList)

エラー管理

デザインモードのリストエディタで現在編集中のリストにARRAY TO LISTを適用すると、エラー -9957 が生成されます。このエラーはON ERR CALLでインストールされたエラー処理メソッドで管理できます。

参照

LIST TO ARRAY
Load list
ON ERR CALL
SAVE LIST