この新しいORDAメソッドでエンティティセレクションを注文してください。

Deeplからの自動翻訳

前回のブログでは、ORDAクエリに数式を適用して、高度で複雑な検索条件を構築する方法を学びました。さらに、完全で強力な開発ツールを提供するために、新しいORDAメソッドが利用可能です。 orderByFormula().数式を使用すると、プロジェクトメソッドまたは4D式で複雑な条件を使用して、エンティティの選択 を順序付けることができるようになりました。

HDI: エンティティセレクションを数式で順序付ける例

順序の基準は、数式が文字列またはオブジェクトとして与えられたときに評価されます。 Formulaオブジェクトとして orderByFormula() メソッドに文字列またはオブジェクトとして渡されたときに評価されます。

文字列として数式を使用した順序付け

ここでは、dataClass,Companies があり、利益(profits = revenue – costs) に基づいてすべての企業を並べ替えます。

なお、エンティティへのアクセスは Thisコマンドでアクセスすることに注意してください。

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("This.revenue - This.costs")

数式オブジェクトを使ったオーダー

ここでは、同じ基準で企業を並べ替えますが、文字列の代わりに Formulaオブジェクトを使用し、降順でソートしています。

C_OBJECT

($companies;$orderedCompanies;$formula)
$formula :=Formula(This.revenue -This.costs)$companies:=ds.Companies.all()$orderedCompanies :=$companies.orderByFormula ($formula;dk descending)

オブジェクトを使用すると、いくつかの利点があることに注意してください。 Formulaオブジェクトを使用すると、数式を文字列として使用するよりもいくつかの利点 (自動補完、コードエディタの色など) があることに注意してください。

また orderByFormula()メソッドには、さらに多くのオプションがあります。詳しくはドキュメントをチェックし、上記のHDIをダウンロードしてください。

about エンティティセレクションの順序付け

query()メンバメソッド自体の中にorder by ステートメントを挿入できるようになりました。これは、クライアント/サーバーモードで作業する場合に大きな利点となります。なぜなら、クエリーと順序付けアクションを同じリクエストにまとめることができるので、サーバーに送信されるリクエストの数が減り、ネットワークトラフィックが減少するからです。

C_OBJECT($companies)
$companies :=ds.Companies.query("revenue> :1 order by costs desc";5000)

Avatar
- プロダクトオーナー - Marie-Sophie Landrieu-Yvertは、2017年にプロダクトオーナーとして4Dプロダクトチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。彼女は1995年にESIGELEC Engineering Schoolを卒業し、IBMでエンジニアとしてのキャリアをスタートさせました。様々なプロジェクト(保守や新規のプロジェクト)に参加し、Cobolのデベロッパーとして働きました。その後、UMLデザイナーおよびJavaデベロッパーとして勤務。最近は、機能要件の分析・記述、ビジネスチームと開発チームの調整などを主に担当しています。