4D v16 R4 の新機能

以前のR-リリースでの新機能を見る>>。

オブジェクト記法

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

4D v16 R4 でプレビューとして提供されるオブジェクト記法では、$myobject.attribute.subattribute:=5 と書いたり、あるいは $person.children[2].firstname だけで属性にアクセスすることが可能です。注意したい点としては、プレビューというステータスは、新しい機能で実験して学ぶことができるものの、まだ製品に使用する準備はできていないということを意味します。

実は、オブジェクト記法を式として使うことができます。例えば、テキスト変数のようなフォームオブジェクトを作成し、[person]relatives.grandfather.firstname のようなオブジェクト属性を直接割り当てることができます。もはや、値を表示させるためだけにOB Getを再帰的に使って値を読み取って一時的な変数に代入する必要はありません。

オブジェクト表記法の機能を使用するためには、データベース設定 ダイアログボックスの互換性ページ でオブジェクト表記法を有効にする必要があります。この操作は元に戻すことができません。

この機能を有効にすると、変数、テーブル、フィールド、プロジェクトメソッドの名前にドット(.)や大カッコ([ ])などの特殊文字を使用できなくなるので、注意が必要です。アプリケーションがオブジェクト表記法の前提条件に準拠していることを確認するには、MSCアプリケーションを検証 アクションを実行します。禁止文字を含む要素がMSC のログにリストアップされるので、アプリケーション内で名前を変更する必要があるものを容易に見つけることができます。

オブジェクト記法は、以下の箇所でサポートされています。

  • メソッドエディタ。オブジェクト記法を使うと、OB GetOB Set を使うよりもエレガントで簡単かつ直感的にオブジェクトを操作することができます。
    これを使用するだけでオブジェクトの属性を直接作成、読み込み、変更することができ、オブジェクトの配列属性に新しい要素を作成することさえも可能です。例えば、オブジェクト内部の配列に3つの要素があり、要素10を書き込むと、配列は自動的に拡大され、不足している要素が作成されます。
  • フォームエディター: フォームエディターで、フォームオブジェクトのデータソースにオブジェクト記法を使用することができます。複雑なオブジェクトも、単一の入力フィールドとして表示できます。ランゲージを使用すれば、完全に動的にフォームを作成し、フォームウィジェットにオブジェクト属性を割り当てることも可能です。
  • デバッガとランタイムエクスプローラ: デバッガでは、コードのテストやチェックのために、オブジェクト記法を使用することができます。

新しいコレクション型

4D v16 R4では、4Dランゲージに新しい型、”コレクション型”が導入されました。一見すると、コレクションは配列のように見えますが、配列が高度に最適化された同じ型のリスト(Array longint, Array Text, …)であるのに対し、コレクションは様々な型(倍長整数、テキスト、数値、画像、オブジェクト、さらに別のコレクションなど)のリストを保存するコンテナのようなものです。コレクションは非常に柔軟です。配列の方が必要なメモリが少なくてすみますが、コレクションはより柔軟で、開発時間を短縮することができます。

オブジェクトは名前の付いた属性のリスト、コレクションは名前の付いていない属性のリストで、代わりにインデックスでアクセスすると想像してください。New collectionコマンドは、新しい空の、または既に値の入ったコレクションを作成します。そして、コレクションはオブジェクト記法でアクセスすることができます。

Nullコマンド

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

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

画像は、オブジェクトフィールドやオブジェクト変数に格納することができるようになりました。多くの開発者は、顧客がカスタマイズされたフィールドでデータベース構造を強化し、あらゆる種類の情報を格納できるようにするためにオブジェクトフィールド型を使用してきました。しかしピクチャはこれまでオブジェクトに格納することは不可能でした。

OB GetOB SET コマンドは、新しいIs picture タイプをサポートし、オブジェクトフィールドにピクチャを格納できるように更新されました。もちろん、オブジェクト記法も使えます。

JSONオブジェクトの検証

オブジェクトを扱いはじめると、いずれ他のアプリケーションやサービスとオブジェクトを交換することになりますが、そのためにはJSON文字列をパースする必要があります。この文字列がきちんと定義されていれば問題ないのですが、そうでない場合もあり、この新しい方法を使用するとデバッグ時間を大幅に短縮できます。JSON Parse のオプションの*引数は、オブジェクトの各プロパティとサブプロパティのパス、行位置、行オフセットを提供する追加のデバッグ情報(__symbolsプロパティ) を作成します。この情報は、デバッグの際に役立ちます。

オブジェクトがうまく形成されていても、要求された仕様やコンテンツの規範を満たしていない場合があります。新しいJSON Validateコマンドを使用すると、オブジェクトの構造が与えられた仕様(JSONスキーマ)に適合しているかどうかをチェックすることができます。

4D Write Pro

4D Write Proのテーブル

4D Write Proには、表があります。これは本物の表で、個々のセルを持ち、セルに大きなテキストを入力すると、テキストは自動的にラップされ、セルの幅はそのまま維持されます。ゼロから表を作成することができ、もちろん表のスタイル、列、行、個々のセルまで、すべてプログラミングで変更することができます。

新しいWP Insert tableコマンドは、いくつかのセル、行、または空のテーブルを作成することができます。4D Write Proの文書で表を管理するために、次のコマンドが作成されました。WP Table append row,WP Table get rows,WP Table get columns,WP Table get cells。これらの新しいコマンドは、すべてスレッドセーフです。

4D Write Proのハイパーリンク

あなたの会社のロゴや会社名へのリンクを追加するには、テキストを太字にスタイルを設定するのと同じくらい簡単になりました。新しいWK link url のおかげで、WP SET ATTRIBUTESWP GET ATTRIBUTESコマンドを使うだけで、画像、テキスト、またはその両方の組み合わせにハイパーリンクを追加することが可能です。

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

4D Write Proのカスタムツールバーをプログラミングなしで簡単に作成できます。シンプルでパワフルな標準アクションのメカニズムが、4D v16 R4で再び拡張されました。実際、標準アクションは、チェックボックスや ポップアップメニューに割り当てることができるようになりました。

オブジェクトのアクティブ化/非アクティブ化は、コンテキストに応じて4Dが自動的に処理し、現在のステータスチェックボックス)や値ポップアップメニュー)は、現在のテキストの選択範囲に応じて4Dが自動的に更新します。

Alturaフリー4D Windows 64-bit プロダクション

4D Windows 64-bit製品ラインは、もはやAlturaのMac2Win ライブラリに依存することはありません。4D Server Windows 64-bitはそのための最後のステップであり、これが4D v16 R4で完了しました。これにより、4DはWindowsプラットフォーム上で最新のテクノロジーを内部的に使用できるようになり、SDIなどの新機能の恩恵を受けることができます。

WindowsでのSDIサポート

Windowsでは、4Dは灰色のメインウィンドウ(MDIウィンドウ)を持ち、すべてのアプリケーションウィンドウはその中に(子ウィンドウとして)表示されるようになっていました。SDIアプリケーションは、例えばMicrosoft Outlookのように、メインウィンドウを持ちますが、メインウィンドウとは独立した多数の追加ウィンドウを開くことができます。それらは他のスクリーンに移動できたり、メインウィンドウを非表示にしても表示されたままにすることができるなど、様々な利点を持ちます。

一方、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または VP IMPORT FROM OBJECT コマンドを使用します。

カスタムサーバ管理画面

現在開発中の一連の機能により、独自のサーバー管理ウィンドウを作成し、表示する情報や管理者が変更できる情報を制御することができます。

プロセスやユーザーに関する情報

最初のステップとして、新しいGet process activity コマンドは、接続されたユーザーセッション、関連する実行中のプロセス、およびPROCESS PROPERTIESコマンドではアクセスできなかった内部プロセスを含む現在のすべてのプロセスのスナップショットを提供します。また、返されたセッション/プロセス情報から、接続以来このプロセスが消費した CPU 時間(秒単位)とアクティビティ率(例: 2%) を計算することができます。

ライセンスに関する詳細情報

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

ヘルプTipの表示制御の強化

SET DATABASE PARAMETERコマンドで、4Dアプリケーション内のすべてのヘルプチップを無効にしたり、有効にしたりすることができます。さらに、表示遅延時間や最大表示時間をランゲージによって定義することができます。またOBJECT SET HELP TIP コマンドを使えば、ヘルプTipsのテキストを動的に変更することも可能です。

プログラミングでフォームのタブ順序を定義する

この機能を使用することで、フォームオブジェクトの入力順序をプログラミングで定義し、ユーザーがTABキーを押したときに、次のどのフォームオブジェクトにフォーカスが当たるかを制御することができます。FORM SET ENTRY ORDERFORM GET ENTRY ORDER という2つの新しいコマンドを使えば、それぞれ現在のプロセスのフォームオブジェクトの入力順を動的に設定したり取得したりすることができます。この機能は、フォームを動的に作成する場合に特に有効です。

IPv6に関連したユーザーインターフェイスの改善

4D v16 R4では、IPv6ネットワーク構成を使用しているユーザーにとってより良いユーザーエクスペリエンスとなるように、いくつかのUIが改善されています。

もっと知りたいですか?4D v16 R4に関する全てのブログ記事を読む!