製品

日付と時間のカスタマイズ

日付や時刻の操作には、4Dの内部リソースや OSの設定に基づいた、様々な表現のための専用フォーマットがたびたび必要になります。

通常は、規定のフォーマットで十分ですが、地理的に異なる場所や特殊な要件に対応するため、カスタムフォーマットが不可欠な場合もあります。4D 20 R4 では、このようなニーズに対応するために、大きな進歩がありました。

製品 blank

可変長引数関数の書き方への新しいアプローチ

多くの方は、不定数の引数を受け取ることができるメソッドや関数を使用することに慣れていることでしょう。こういった関数は一般的に可変長引数関数または可変長関数などと呼ばれます。

4D v20 R3 では、皆さんの開発のしやすさを向上させるために、エリプシス(省略記号)を導入することで、これらのメソッドの宣言を合理化し、コードをよりわかりやすく、作業しやすくしました。

製品 blank

PHPコマンドの廃止予定と4DビルトインのPHPインタプリタの削除

PHPは、Web開発において重要な役割を果たし、またzip、ハッシュ、LDAP機能など、ネイティブ言語ではまだ利用できない機能を提供するために4D v12で導入されました。4Dは、これらのPHP機能の多くをコア機能に取り込んできました。その結果、4D v20 R3ではビルトインのPHPインタプリタを削除し、v21ではPHPコマンドの廃止予定プロセスを開始することにしました。

4DからPHPコマンドを完全に削除するわけではありませんが、今後はPHPコードを実行するためにはシステムワーカーを使って実行することが強く推奨されます。

このブログでは、この移行プロセスについて説明しながら、PHP Execute コマンドを通して外部インタープリタを使用する方法や、システムワーカーでPHP コードを効率的に実行する方法を説明します。

製品 blank

データベースのデータ変更を追跡

このブログ記事では、データストア内の変更を管理・追跡する方法に革命をもたらす強力な方法をご紹介します。ここではデータの変更監視を合理化するために設計された特別なマーカーである「スタンプ」の概念を公開し、そのスタンプを独自の要件に合わせてカスタマイズする方法を紹介します。

 

製品 blank

複数コレクションの同期ソート

4D には、オブジェクトのコレクションを扱うための強力な機能があります。

たとえば、都市とそれに関連する国や大陸のコレクションを作成することができます。このようなコレクションを、.sort()、.order()、.filter() のようなビルトイン関数で操作するのは簡単です。

4D v20 R3 では、並べ替え処理を簡素化するために、新しい multiSort() 関数が導入されました。この関数を使うことで、複数コレクションの同期ソートが可能です

製品 blank

4Dコードのエラー管理を強化

v20R2 から、4Dコードで エラーをスロー できるようになりました。

これらのエラーは、他の 4Dエラーと同じように動作します: エラーダイアログをトリガーするか、ON ERR CALL メソッドで処理できます。

この機能により、発生した例外を積極的に検出することで、コードの品質を向上させることができます。また、エラーログも改善することができます。

重要なのは、この機能が強固なエラー管理を実現するための第一歩であることです。

では、詳細を掘り下げていきましょう!

製品 blank

クラスプロパティの宣言

4Dランゲージは常に改良を続けています。v20 では、クラスの使い勝手を良くする新機能として、”宣言されたクラスプロパティ” をお届けします。クラスプロパティを宣言することで、オートコンプリートを大幅に改善し、コンパイル時に分かりやすいエラーを出すこともできます。その方法を詳しく説明しましょう!

製品 blank

4Dコマンドでアプリケーションをビルドする

ここ最近の 4D のバージョンでは、独自のビルドチェーンを作成するためのさまざまな機能が追加されてきました。たとえば、以下のようなものです:

  • .zip フォルダーを作成する機能
  • 実行ファイルや “dll” ファイルに著作権などの情報を追加する機能
  • “info.plist” ファイルを作成する機能
  • 新しい build4D コンポーネントの搭載

 

4D v20 では、2つの新機能により、4Dコードでスタンドアロンまたはクライアント/サーバーアプリケーションの作成を仕上げまでおこなうことができます:

  • 実行ファイルへのアイコンの追加
  • サーバーまたはスタンドアロンアプリケーションの配布ライセンスファイルの生成 (サーバーアプリケーションは OEMライセンスのみ)
製品 blank

改良された .distinct() 関数

データ要素のユニークなリストを取得することは、データ操作において常に役に立ちます。各値の出現回数を取得することが不可欠な場合もあります。CollectionEntitySelection クラスの distinct 関数を使うと、ユニーク値のリストを取得できます。4D v20 では、各ユニーク値の出現回数の取得も可能になりました。

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

データベースでオブジェクトを使用して、ユーザーが入力したカスタムデータを保存することができます。これに対応するため、コード側では、このオブジェクトが持つパスのすべてを把握したいところです。 EntitySelection クラスに追加された distinctPaths 関数で、これが可能になりました。

これらの新しい関数について、くわしく紹介していきます。