製品

改良されたディスティンクト・ファンクションを紹介します。

Deeplからの自動翻訳

ユニークなデータ要素のリストを取得することは、データを操作する際に常に役に立ちます。場合によっては、各値の出現回数を取得することが不可欠です。Collectionと Entityの選択クラスのdistinct 、ユニークな値のリストを取得することができます。4D v20では、各特異的な値の出現回数を取得することも可能です。

そして、それだけではありません!

データベース内のオブジェクトを使用して、ユーザーが入力したカスタムデータを保存することができます。そのため、コード側では、オブジェクトへの可能なパスをすべて知っておく必要があります。 Entity選択クラスには、distinctPaths 関数が追加されています。

ここでは、あなたが知る必要のあるすべてを紹介します。

製品 blank

コレクションとコールバックコマンドにおけるフォーミュラの使用

コレクションのメンバー関数がコールバックを必要とする場合に、もっとわかりやすい方法はないかとのご要望を多数いただきました。

この度、このご要望に応えることができました!

4D v19 R6 より、コレクションのメンバー関数に定義するコールバックのほか、EXECUTE METHOD IN SUBFORMCALL FORM および CALL WORKER コマンドにもフォーミュラが受け渡せるようになりました。もし、コードを簡単な式に減らすことができれば、メソッドを使用せずに直接受け渡すこともできます。

製品 blank

フォームオブジェクトでコレクションとリストを使用する

Deeplからの自動翻訳

4D プログラミングでは、コレクションを使用することが多くなっています。4D v19からは、Form機能を含め、いくつかのインターフェースオブジェクトのコンテンツを定義するために、これらを使用することができます。これは、一般的なインターフェイスの管理に非常に便利です。

また、リストの使用方法にも改良を加えました。詳しく見ていきましょう!

製品 blank

ORDA新4Dタグで簡単ループ

Deeplからの自動翻訳

ORDAのエンティティセレクションやコレクションを扱う際に、For each…End for eachループを使用したことがあるかと思います。その使い方は簡単でわかりやすいものです。 SHTMLページで4Dタグとして使用したいですか?あるいは、PROCESS 4D TAGSコマンドで使用したいですか?

4D v19で、それが可能になりました。もっと詳しく知るために、読み進めてください。

ヒント blank

コードで複数のメソッドのプロパティを一度に変更する

Deeplからの自動翻訳

複数のメソッドのプロパティを、それぞれのメソッドのプロパティダイアログを開かずに変更したい場合があるかと思います。

例えば、すべてのメソッドを「プリエンプティブモードで実行可能」な状態に設定してから、データベースをコンパイルしたいとします。コンパイルエラーで、プリエンプティブに変更するメソッドの概要がわかるわけです。

コマンドを使用して METHOD GET NAMESコマンドを使用してデータベースからメソッドのリストを取得し、次に METHOD SET ATTRIBUTESコマンドを使って属性を変更することで、すべてのメソッドを同時に変更することができます。

ヒント New collection

多階層コレクションを異なるリストボックスで表示する方法!

Deeplからの自動翻訳

4D v17から、マルチレベル・コレクションのコンテンツを、異なるリストボックスに簡単に表示することができるようになりました。つまり、複数のリストボックスをバインドして、ネストされた詳細を表示することができます…一行のコードも必要ありません!これは、オブジェクトまたはコレクションを別のリスト ボックスのデータ ソースとして使用することで実現できます。

新しいリストボックスのコレクションタイプには“Current item”“Selected items”のプロパティが追加されています。Current item “プロパティはオブジェクトを取得でき、”Selected item “プロパティはコレクションを返すことを覚えておいてください。

製品 blank

ループ、ループ、そして……さらにループ!

Deeplからの自動翻訳

他の多くのプログラミング言語と同様に、4Dでは、数値の反復処理を行うために For(…) / End for 文による数値の反復処理や、条件付きで While(…)/End whileRepeat/Until(…)キーワードによって、数値の反復処理を行うことができます。これらの反復処理(またはループ)は非常に便利ですが、コレクションやエンティティセレクションのような高度なデータ型に対する反復処理には最も適切な方法ではありません。そのため、新しい For each(…)/End for each イテレータが作成され、コーディングが容易になりました!