リストボックスで開発者の負担を軽減する

Deeplからの自動翻訳
私たちの主な目的は、日々、開発者の生活を楽にすることです。リストボックスは、この目的を果たすために、4Dで最も使用され、強力なフォームオブジェクトの1つです。リストボックスが多くのイベントを発生させることは周知の事実ですが、だからこそ、4D v18 R2では、リストボックスが発生したときに、より多くの情報を返すように Form eventコマンドを強化し、リストボックスのイベントがトリガーされたときに、より多くの情報を返すようにしました。
行、列、ヘッダーをクリックしたり、マウスを置いたりしたときに、その行、列、ヘッダーを推測するための古いトリッキーなコードを手放したくありませんか?そんなあなたに、よりスムーズでスマートな方法をご紹介します。

HDI:リストボックスイベントを簡単に操作する例

イベントに応じて、さらに関連するプロパティが Form eventコマンドで返されるようになりました。
それでは、いくつかの例をご覧ください。

ヘッダークリックイベント時

ヘッダーオブジェクトの名前、カラムオブジェクトの名前とカラム番号がコマンドによって返されるようになりました。 Form eventコマンドで返されるようになりました。
On Header Clickイベントが発生したときに返されるオブジェクトの例です/。

{"headerName":"headerLastname", // New property - Header object name
"columnName":"lastname", // New property - Column object name
"column":2,   // New property - Column number
"code":42,
"description":"On Header Click",
"objectName":"EmployeesLB"}

例えば、カラムオブジェクトの名前にデータクラスの実際の属性名例えば lastname)を設定した場合。

従業員の姓を表示するカラムのヘッダをクリックすると、lastnameとfirstnameの 属性でカラムをソートする。

Formevent:= : ( = ) ( . . ="lastname") := . . ( . . +", firstname")FORM Event
Case of
Form event codeOn Header Click
ifFormeventcolumnName
FormemployeesFormemployeesorderByFormeventcolumnName
End if
End case

DISPLAY DETAILS イベントについて

詳細表示時イベントがトリガーされた場合、追加の関連プロパティ isRowSelected など)がコマンドによって返されるようになりました。 Form eventコマンドによって返されるようになりました。これは、リストボックスの行の外観を管理するのに便利です。
以下は、リストボックスのMeta info expressionプロパティに設定したメソッド(setColor)の例です。
blank
setColorメソッド。
C_OBJECT$metaCase of
($event;$0;$meta)
$event :=FORM Event
:=New object

: ($event.code=On Display Detail)
If ($event.isRowSelected)//set color when row is selected $meta .fill:="lightblue"
End if

End case
$0 :=のようになります。$meta

そして、行が選択されたときのリストボックスの様子は次のとおりです。

blank

マウス移動時イベント

また、On Mouse Moveイベントもよく使われるイベントです。以下は、このイベントが発生したときにコマンドから返されるオブジェクトの例です。 Form event コマンドによって返されるオブジェクトの例です。

マウスを置いた場所を特定するための便利なプロパティをすぐに取得できます!

マウスがヘッダーの上に移動した場合

Form eventコマンドが返すもの

{"area": "header",// The mouse is on a header
"areaName": "headerLastname",// Header object name
"column":2,// Column number
"columnName": "lastname",// Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "EmployeesLB"}
のようになります。

マウスがセルにカーソルを合わせたとき

Form eventコマンドは返します。

{"area": "cell",// The mouse is on a cell
"column":1,// Column number
"row":2,// Row number
"columnName": "firstname",// Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "EmployeesLB"}
リストにマウスを乗せると、以下のようなイベントが発生します。
リストボックスのイベントは非常に多く、1つのブログ記事ですべてを網羅することはできません。各イベントの詳細については、ドキュメントを確認し、HDIをダウンロードしてください
Avatar
- プロダクトオーナー - Marie-Sophie Landrieu-Yvertは、2017年にプロダクトオーナーとして4Dプロダクトチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。彼女は1995年にESIGELEC Engineering Schoolを卒業し、IBMでエンジニアとしてのキャリアをスタートさせました。様々なプロジェクト(保守や新規のプロジェクト)に参加し、Cobolのデベロッパーとして働きました。その後、UMLデザイナーおよびJavaデベロッパーとして勤務。最近は、機能要件の分析・記述、ビジネスチームと開発チームの調整などを主に担当しています。