4D v16 R4での新機能

オブジェクト記法

4D v14でランゲージオブジェクトとして導入され、4D v15ではデータベースエンジンからサポートされ、4D v16でより強化されたオブジェクト型は、4D v16 R4以降その機能が大幅に拡大されることとなります。手始めとしてコーディングをより容易に、より早くし、そう遠くない将来にはあなたのコードの書き方とデータベースエンジンの使い方に革命をもたらすことでしょう。

4D v16 R4ではプレビュー版として提供されているオブジェクト記法では、単に$myobject.attribute.subattribute:=5 と書くことができたり、あるいは$person.children[2].firstname と書くだけで属性にアクセスできるようになります。リマインダーですが、プレビュー版という状態はその機能を使用して試すことはできるものの、製品として使用する準備はまだできていないということに注意してください。

オブジェクト記法は、式として使用することが可能です。例えばテキスト変数のようなフォームオブジェクトを作成し、それに例えば[person]relatives.grandfather.grandfather.firstname のようなオブジェクト属性を直接割り当てることが可能です。ある変数を表示するためだけに、 OB Get を繰り返し使用し値を読みだして一時的な変数に割り当てる、ということはもうしなくていいのです。

オブジェクト記法の機能を使用するためには、データベース設定ダイアログボックス内の互換性ページにてオブジェクト記法を有効化する必要があります。この変更は取り消しできません。

この機能を有効化する前に、変数、テーブル、フィールド、プロジェクトメソッドの名前の中においてドット(.)や大カッコ([ ])といった特殊文字は今後使用することはできないという点に注意してください。お使いのアプリケーションがオブジェクト記法の要件を満たしているかどうかを検証するためには、 MSC 内のアプリケーションを検証を実行してください。禁止されている文字を含んでいる要素の一覧が MSC ログに書き出されますので、アプリケーション内にて何を解明する必要があるのかということを簡単に探し出すことができます。

オブジェクト記法は以下の場所においてサポートされています:

  • メソッドエディター: オブジェクト記法を使用すると、 OB GetOB Setを使用するよりずっと簡単に、直感的に、そしてエレガントにオブジェクトを操作することができます。
    これを使用するだけでオブジェクト属性を作成、読み出し、編集するだけでなく、オブジェクト配列属性に新しい要素を作成することもできます。例えば、オブジェクト内の配列に要素が3つあり、そこの10番目の要素を書き込んだ場合、オブジェクトは自動的に拡張され、その間の要素も自動的に作成されます。
  • フォームエディター: フォームエディターでは、オブジェクト記法をフォームオブジェクトのデータソースとして使用することができます。複雑なオブジェクトも一つの入力フィールドとして表示することができます。ランゲージを使用すれば、フォームを動的に作成し、フォームウィジェットをオブジェクト属性へと割り当てることもできます。
  • デバッガーとランタイムエクスプローラー: オブジェクト記法をデバッガーで使用することで、コードをテストしてチェックすることができます。

新しいコレクション型

4D v16 R4 では、4Dランゲージに新たにコレクション型を導入します。コレクションは一見、配列のように見えますが、配列は高度に最適化された同じ型(倍長整数配列テキスト配列、等)の一覧であるのに対して、コレクションは個別の型(倍長整数次にテキストその次に数値その次にピクチャーオブジェクトコレクション、等)の一覧を格納するコンテナのようなものです。コレクションはとても柔軟です。配列は必要なメモリが少ないために速い一方、コレクションはより柔軟性に富み、結果として開発時間をスピードアップさせることができます。

オブジェクトが命名された属性の一覧であるとするならば、コレクションは命名されていない属性の一覧に、インデックスでアクセスするようなものだといえます。New collection コマンドは空の、あるいは値を既に含んだ新しいコレクションを作成します。そしてコレクションもまたオブジェクト記法を使用してアクセスすることが可能です。

Null コマンド

新しいNull コマンドを使用して、オブジェクト属性あるいはコレクションのメンバーに不明な値、あるいは欠けてる値があるかどうかをチェックすることができます(値0、あるいは空の文字列””と、未設定の値との違いに注意してください)。また属性値を不明へと設定することもできます。そして、これにもまたオブジェクト記法を使用することができます。

オブジェクト内のピクチャーのサポート

ピクチャーはオブジェクトフィールドあるいはオブジェクト変数に保存することが可能になりました。多くのデベロッパーはオブジェクト型フィールドを使用して、全ての種類の情報を保存可能なカスタマイズされたフィールドを提供することで顧客のデータベースを強化してきました。しかしピクチャーはこれまで保存できませんでした。

OB GetOB SET コマンドはアップデートされ、Is picture 型をサポートするようになり、オブジェクトフィールドにピクチャーを保存することができるようになりました。そして、もちろんここでもオブジェクト記法を使用することができます。

JSON オブジェクトを評価

オブジェクトを使用していれば、遅かれ早かれ他のアプリケーションやサービスとオブジェクトを交換することになるでしょう。そのためには、JSON文字列を解析する必要があります。この文字列がきちんと定義されていれば何の問題もありませんが、ときとしてそうでない場合もあり、また新しいオプションにによってデバッグの時間が大幅に削られることも考えられます。 JSON Parse の任意の * 引数は、追加のデバッグ情報(__記号プロパティ)を作成し、そこにはオブジェクトのプロパティとサブプロパティそれぞれのパス、行の位置、行のオフセットが提供されます。この情報はデバッグ目的のためには有用です。

たとえオブジェクトがきちんと成形されていたとしても、それがコンテンツ規則の要求条件を満たしていない場合もあります。新しい JSON Validate コマンドを使用すると、オブジェクトの構造が、特定の条件(JSON schema)に合致しているかどうかをチェックすることができます。

4D Write Pro

4D Write Pro の表

4D Write Proに表が登場します。個別のセルを兼ね備えた本物の表で、セル内に大きなテキストを入力した場合にはそのテキストは自動的に折り返され、セルの幅は同じままで保たれます。表をゼロから作成することもできますし、もちろん表のスタイル、列、行、あるいは個別のセルにいたるまで、プログラミングで変更することができます。

新しい WP Insert table コマンドを使用すると、任意の行数、列数、あるいは空の表を作成することができます。4D Write Proドキュメント内の表を管理するために、以下のコマンドが作成されました:  WP Table append rowWP Table get rowsWP Table get columnsWP Table get cells これらのコマンドは全てスレッドセーフ(プリエンティブに実行可能)です。

4D Write Pro ハイパーリンク

一部のテキストを太字にするのと同じぐらい簡単に、会社のロゴや会社の名前にリンクを追加しましょう。新しいwk link url 属性のおかげで、 WP SET ATTRIBUTESWP GET ATTRIBUTES コマンドを使用すれば、ピクチャー、テキスト、あるいはその両方にハイパーリンクを追加することができます。

標準アクションで独自のツールバーをデザイン

自分自身のカスタムの 4D Write Pro ツールバーを簡単に作成してみましょう。プログラミングは何も必要ありません。シンプルでありながら強力な標準アクション機構は、4D v16 R4にて再度拡張がなされました。具体的には標準アクションは チェックボックスポップアップメニューに割り当てることが可能になりました。

標準アクションを使用すると自動機構の恩恵を受けることができ、時間の節約につながります。オブジェクトの有効化/無効化は4Dによって自動的に管理され、カレントのテキストの選択範囲に応じて、コンテキストとカレントの状態(チェックボックスの場合)あるいは値(ポップアップメニューの場合)は自動的にアップデートされます。

Windows 64-bit プロダクトラインはAlturaフリーに

Windows用64-bit版4Dのプロダクトラインは、全てAlturaのMac2Win ライブラリーに依存しなくなりました。Windows用64-bit版4D Serverのみが移行が完了していませんでしたが、これもまた4D v16 R4にて移行が完了しました。これによって4DはWindowsプラットフォームにおいて内部的に現代的なテクノロジーを使用することができ、その結果SDIなどの新機能の利益を得ることができるようになります。

WindowsでのSDIサポート

Windowsでは、4Dにはメインのグレーのウィンドウ(MDIウィンドウ)があり、全てのアプリケーションウィンドウが(子ウィンドウとして)内側に表示されていました。Microsoft OutlookなどのSDIアプリケーションでは、メインウィンドウはありますが、その他にいくつでもそのどれもがメインウィンドウから独立した追加のウィンドウを開くことができます。これらのウィンドウは他のスクリーンに移動させたり、メインウィンドウが非表示になっても表示したままにしたり、等といったことができます。

その一方で、ビジネスアプリケーションにおいてMDIにも、全てのウィンドウが集まってアプリケーションをなしているということが利点になっている場合もあります。例えばAdobe Photoshopなどはその典型と言えるでしょう。そのため4Dでは組み込みアプリにおいては両方のモードを使用することができるようになっています。

4D View Pro スプレッドシート

4D v16 R4 では4D View Pro スプレッドシートがプレビュー版として初めて導入されます。新しい4D View Pro フォームオブジェクト、そして新しい4D View Proコマンドを是非体験して下さい。VP NEW DOCUMENTで新規のドキュメントを作成したり、VP EXPORT DOCUMENTでディスク上に保存したり、あるいはVP Export to object でデータベース内に書き出したり VP IMPORT DOCUMENT or VP IMPORT FROM OBJECTを使用して再度読み込むこともできます。

カスタムのServer 管理ウィンドウ

開発中の機能により、独自のSever管理ウィンドウを作成することができるようになります。これにより表示したい情報や管理者が変更できる情報を管理できるようになります。

プロセスとユーザーについての情報

第1歩として、新しい Get process activity コマンドを使用すると、接続しているユーザーセッション、関連する実行中のプロセスに加えて、PROCESS PROPERTIES ではアクセスできなかった内部プロセスを含めた全てのカレントのプロセスのスナップショットを取得できます。この返されたセッション/プロセスの情報から、接続してからこのプロセスに消費されたCPU時間(秒単位)とアクティビティパーセンテージ(例:2%)を計算することもできます。

ライセンスについての詳細な情報

新しいGet license info コマンドは、インストールされたライセンスと使用中/利用可能ライセンスについての詳細な情報を返します。

改善されたヘルプTip表示の管理

単純なことかもしれませんが、4Dアプリケーション内の全てのヘルプTipsを、SET DATABASE PARAMETER コマンドを使用することでプログラミングによって有効化/無効化をすることができます。さらに、表示までのディレィタイムや最大表示時間をランゲージで定義することができます。それに加え、 OBJECT SET HELP TIP コマンドを使用することで、ヘルプTipsのテキストを動的に変更することもできます。

タブの順番をプログラミングから定義する

この機能を使用すると、フォーム内においてオブジェクトの入力順をプログラミングによって定義することができ、それによってユーザーがTABキーを押したときに、次にどのフォームオブジェクトにフォーカスが入るかということをコントロールすることができます。二つの新コマンド– FORM SET ENTRY ORDERFORM GET ENTRY ORDER – によってカレントプロセスにおいてカレントのフォームオブジェクトの入力順をそれぞれ設定・取得することができます。この機能はフォームを動的に作成した場合に特に有用です。

IPv6-関連のユーザーインターフェースの改善

4D v16 R4 ではIPv6ネットワーク設定を使用している人にとってよりよいユーザーエクスペリエンスを提供する、UIの改善が提供されています。

もっと知りたいですか?4D v16 R4についての全ての記事を読んでみましょう!