コレクション・エンティティセレクション型のリストボックス

こんにちは。

仕様かそうでないかわからないでいるのですが、、、。

4D v17R6build239820と4D v18.0build243550
macOS Mojaveでテスト、Windowsは未検証

  1. リストボックスをコレクション・エンティティセレクション型に設定
  2. 式欄に「ds.tableName.all()」や「ds.tableName.all().distinct(フィールド名)」など
    エンティティセレクションやコレクションを返す式を直接記述する
  3. カラムの式欄に「This.フィールド名」や「This.value」を指定

この場合、フォームを実行すると、リストボックスに値は表示されますが、要素の選択ができません。
On Selection Changeイベントは発行されますが、反転は解除されます。
カレントの項目、位置、選択された項目変数にも値が設定されません。

  1. 式欄に変数を指定し
    entSel:=ds.tableName.all()
    collec:=ds.tableName.all().distinct(フィールド名)
    など、変数を経由した場合には選択可能になります。

まずはこの動作が仕様かどうかを確認できればありがたいです。
仕様である場合は、変数をFormのプロパティとして格納してしまえば良いかなと思っています。

https://forums.4d.com/4DBB_Main/x_User/21534782/files/32551318.zip

はい。

コレクション・エンティティセレクション型リストボックスのデータソースに,
コレクション・エンティティセレクションを返すメソッド(式)を記述することはできません。
コレクション・エンティティセレクションを指している変数またはプロパティを記述する必要があります。

Form.anEntitySelection.relatedEntitySelectionのような書き方はできるので,
「ひょっとして・・・?」と期待してしまいますが,
たとえば,Form.anEntitySelection.query(…) のようなメソッドもダメです。

ありがとうございます。
すっきりしました。