このドキュメントは、4D v17で利用可能なすべての機能をまとめたもので、v16 R-リリースプログラム中、または4D v16 R6から4D v17への最後のステップで導入されたものです。各機能には、具体的な例を紹介する関連ブログ記事があります。これらのブログ記事は、機能のタイトルをクリックすることでアクセスすることができます。
また、 のラベルが付いたセクションは、4D v16 R6 と 4D v17 の間にリリースされた全ての新機能に関連するものだと考えてください。
このドキュメントは、7つのセクションで構成されています。
ORDA
4D v17では、オブジェクト指向のアプローチでデータベースを扱うことができる革新的なコンセプトが導入されています。ORDA(Object Relational Data Access)です。
以下は、このリリースで出荷される機能です。
ORDAでは、データストアという 抽象化されたレイヤーを通じて、データベースに対してCRUD(作成、読み込み、更新、削除)操作を実行することができます。ORDAでは、Create、Update 、Deleteの操作は、現在の選択項目や現在のレコードに対してではなく、エンティティに対して実行されます。
- 作成:new()メソッドで新しいエンティティをインスタンス化し、save()メソッドで保存することで実現できる。
- 更新: 同じsave()メソッドを使用して、エンティティに対して実行されます。
- Delete: エンティティまたはエンティティ選択に対してdrop( ) メソッドを使用して実行されます。
ORDAでは、データストアはオブジェクトであり、オブジェクトを通してデータベースモデルやデータへのインターフェイスを提供します。また、各テーブルやカレントレコードのカレントセレクションを扱うことはなくなり、オブジェクトであるエンティティを扱うようになりました。複数のリンクしたテーブルへの問い合わせや、同じテーブルに対する再帰的な関係の管理、また、1つの問い合わせの中で複数の論理演算子を使用することが簡単にできます。4D v17では、dataClass(テーブル)をクエリするためのいくつかの方法があります。クエリを単一の文字列として提供するか、クエリと値を別々にプレースホルダーで提供するか、クエリと値を別々に動的に構築されたコレクションで提供することが可能です。ドキュメントを読む
現在の選択項目とORDAの間を行き来する
ORDAは既存のコードと統合することができます!テーブルの現在の選択からエンティティの選択を取得するのと同様に、エンティティの選択からテーブルの現在の選択を更新することが可能です!この目的のために新しいコマンドが追加されました:USE ENTITY SELECTIONコマンドは、対応するテーブルの現在の選択範囲を更新し、Create entity selectionコマンドは、対応するDataClassに関連するエンティティ選択範囲を取得するコマンドです。ドキュメントを読む
ORDAでは、データベースからエンティティやエンティティセレクションを分離して、別々に作業することができます。また、既存のオブジェクトやコレクションをデータベースに移動することもできます。そのため、エンティティをオブジェクトにエクスポートするにはtoObject()メソッドを、エンティティセレクションをコレクションにエクスポートする場合はtoCollection()メソッドを使用します。また、エンティティをオブジェクト経由でインポートするにはfromObject()メソッドを使用し、 エンティティの選択部分をコレクション経由でインポートするにはfromCollection()メソッドを使用します。ドキュメントを読む
ロックの管理
ORDAは、エンティティセレクションを作成・追加する簡単なメソッドと、エンティティセレクションオブジェクト内のエンティティをナビゲートするメソッドを提供しており、これにより、複数のエンティティセレクションを同時に処理し、それらを独立してナビゲートすることができるようになります。エンティティセレクションは、newSelection() メソッドで作成され、エンティティはadd()メソッドで追加されます。エンティティ選択では、最初と最後のエンティティを取得するためにfirst()とlast()メソッドを提供し、エンティティでは、前と次のエンティティを取得するためにprevious()とnext()を提供します。ドキュメントを読む
論理演算子は、エンティティ選択に対して使用することができます。これにより、古典的な言語の集合と同様に、2つのエンティティ選択間の交差、和集合、差集合を取得することができます。ドキュメントを読む
エンティティセレクションの計算
ORDAは、フィルタを通してデータをパイプライン化し、集計値を取得する優れた機能を提供します。また、データセットを調査し、計算を実行する集計操作のセットも提供します。例えば、sum(),average(),count(),min(),max()メソッドは、その名前が示す通りの処理を実行するために使用されます!ドキュメントを読む
4D言語
4D言語の最大の改良点は、あなたのコーディング体験をより簡単に、より直感的にすることです。
オブジェクト記法は、コードの書き方やデータベースエンジンの使い方を劇的に変え、コーディングをより速く、より簡単にします。例えば、 $myobject.attribute.subattribute:=5と記述したり、 $person.children[2].firstnameで 属性にアクセスしたり、オブジェクト記法を式として使用することが可能です。例えば、テキスト変数のようなフォームオブジェクトを作成し、[person]relatives.grandfather.firstnameのようにオブジェクト属性を直接代入します。もう、表示するためだけに、再帰的にOB Getを使って値を読み、一時変数に代入する必要はありません。オブジェクト記法の特典の1つは、未定義のプロパティや値を使えることです。4D言語では、式のどこでも未定義の値を受け入れるようになったからです。そして、未定義の値を変数に代入すると、その変数の型に応じたデフォルト値が設定されます。つまり、存在しないオブジェクトのプロパティを読み込んでも 、 エラーに なったり、 コードの実行が停止したりすることはないのです。ドキュメントを読む
共有オブジェクトと共有コレクションは、 プリエンプティブなプロセス間で情報を共有するための簡単で効率的な方法 です。共有オブジェクトと共有コレクションは標準的なオブジェクトと同じように動作しますが、インスタンス作成時に以下の新しいコマンドで「共有」を宣言する必要があります。新規共有オブジェクトと 新規共有コレクション 一度インスタンス化されると、他の変数と同じように、読み込みのために直接使用することができます。また、書き込みや変更には、Useと End use キーワードで囲まなければなりません。ドキュメントを読む
新しいイテレータです。For each/ End for each
4D言語には、新しいループが加わりました。For each / End for eachは、コレクションなどの高度なデータ型に対する反復処理を可能にし、ループに入る前にコレクションに属するアイテムの数を事前に知っておく必要がありません。また、オブジェクトのプロパティを繰り返し処理することもできる。これは、オブジェクトのプロパティ名を事前に知らなくても、汎用的なコードを書きたい場合に便利です。ドキュメントを読む
コレクションは、4D言語に追加された新しい型です。コレクションは、柔軟性があり、開発時間を短縮することができます。一見すると、コレクションは配列のように見えますが、配列が同じ型のリスト(Array longint, Array Text,…)として高度に最適化されているのに対し、コレクションは個々の型のリスト(longint、text、number、picture、オブジェクト、さらに別のコレクションなど)を保存する一種の容器で、 オブジェクト表記でアクセスすることが可能です。New collectionコマンドは、新しい空のコレクション、またはあらかじめ入力されたコレクションを作成します。また、コレクションの操作を容易にするために、オブジェクト記法で使用するための新しいメソッドが多数用意されています。これらのメソッドにより、例えば、要素の追加や削除、コレクションのソートなど、さまざまなことが可能になります。すでに40以上の新しいメソッドが利用可能です。以下はその一部です:pop(),push(),concat(),resize(),query(),slice(), …Read documentation
オブジェクトを使った開発
オブジェクトの中で日付を文字列としてではなく、日付として設定できるようになり、オブジェクトの中での日付の使用がより簡単で直感的にできるようになりました。このため、OB SETとOB Getは、is date定数を必要とせず、他の一般的なオブジェクトと同様にオブジェクト記法を適用して使用することができます。オブジェクト内部で日付を使用するには、データベース設定の互換性設定ページで、”オブジェクトでISO日付フォーマットの代わりに日付型を使用する” オプションをチェックするだけです。 ドキュメントを読む
オブジェクトのフィールドやオブジェクト変数に、ピクチャを格納できるようになりました。OB GetとOB SETコマンドは、新しいIs pictureタイプをサポートし、オブジェクト フィールドにピクチャを格納できるようになりました。また、オブジェクト記法も使用できます。ドキュメントを読む
JSON文字列のパース時に、デバッグ時間を短縮するための新しいオプションが追加されました。JSON Parseのオプション*パラメータは、オブジェクトの各プロパティとサブプロパティのパス、行位置、行オフセットを提供する追加のデバッグ情報(__symbolsプロパティ)を作成します。オブジェクトがうまく形成されていても、要求された仕様やコンテンツの規範を満たしていない場合があります。新しいJSON Validateコマンドを使用すると、オブジェクトの構造が与えられた仕様(JSON スキーマ)に適合しているかどうかをチェックすることができます。 ドキュメントを読む
新規オブジェクト ] コマンドを使用すると、空のオブジェクトを作成したり、初期プロパティや初期値を含むオブジェクトを 1 行のコードで作成したりすることができます。 ドキュメントを読む
リンクされた引数を使用して、オブジェクト内の配列で検索することが可能になりました。QUERY BY ATTRIBUTEコマンドを使用すると、1つのオブジェクトの要素リスト内で複雑なクエリーを実行できます。複数のクエリ引数を AND 演算子で連結して配列の属性を検索する場合、マッチする引数が少なくとも一つの要素にあるレコードか、同じ要素にあるレコードを取得するかを選択するオプションがあります。 ドキュメントを読む
新しいORDER BY ATTRIBUTEコマンドにより、リストボックスなどで選択項目を表示する際に、特定のオブジェクト属性に基づいてレコードをソートすることができるようになりました。ドキュメントを読む
プリエンプティブ・マルチスレッディングにより、アプリケーションはマルチコアコンピュータの利点を最大限に活用することができます。その結果、アプリケーションの実行速度が向上し、より多くの接続ユーザーをサポートできるようになります。20以上の既存のコマンドは、プリエンプティブプロセスで使用できるように拡張されています。ドキュメントを読む
動的なフォームを作成し、使用することができるようになりました。テキストベースのフォーマット(JSON)で保存されるため、エンドユーザーのコンテキストに完全に適応したフォームを作成したり、複数のデータベースで同じフォームを共有したりと、新しい可能性が広がります。フォームのテキスト記述は、4Dオブジェクトまたはファイルに保存することができます。そして、ランタイムにフォームをロードすることができます。以下のコマンドは、4DオブジェクトまたはJSONファイルのパスを渡すことができるように拡張されました。フォームウィンドウを開く、ダイアログ、FORM SET INPUT、FORM SET OUTPUT、OBJECT SET SUBFORM、OBJECT GET SUBFORM、FORM LOAD、Print form.ドキュメントを読む
オブジェクトをフォームにバインドし、新しい Form コマンドでそれを内部的に使用することで、複雑なコードやグローバル変数を取り除くことができます。必要なことは、DIALOGコマンドを使って、オブジェクトのパラメータをフォームに渡すだけです。このオブジェクトのどのプロパティも、Formコマンドを使ってフォームの中から利用できるようになります。これは、サブフォームにも有効です。ドキュメントを読む
標準アクション(First Recordや color?value=redなど )は、ユーザーインターフェースやプログラミングで、ボタンやメニューにアサインすることができます。その利点は、アクションが適用されない場合、4Dは自動的にメニュー項目やボタンの停止を処理することです。 さらに、4D言語には2つの新しいコマンドが追加され、標準的なアクションをプログラミングで簡単に処理できるようになりました。
- INVOKE ACTIONは、ターゲットコンテキスト(現在のフォームまたはメインフォーム)において、任意の標準アクションをトリガーするために使用することができます。
- 標準アクションが、現在のコンテキストで適用可能か、有効かどうかを知るには、アクション情報を取得するコマンドを使用します。
4D 64-bitは、キャッシュメモリ内のオブジェクトの自動優先順位管理メカニズムに基づき、完全に最適化されたキャッシュマネージャを搭載しています。キャッシュメモリ内のオブジェクトの優先順位を完全に制御することができ、高度な微調整が可能です。
高度な使い方や特定のケースについては、2つの4Dコマンドを使用してキャッシュの優先順位をカスタマイズすることができます。
- セッション全体と全プロセスの優先度定義。セッション全体とすべてのプロセスの優先度定義:SET TABLE CACHE PRIORITY、SET INDEX CACHE PRIORITY、SET BLOBS CACHE PRIORITY。
- 現在のプロセスの優先度調整。ADJUST TABLE CACHE PRIORITY、ADJUST INDEX CACHE PRIORITY、およびADJUST BLOBS CACHE PRIORITY。
セキュリティ
4D v17は、以下の機能強化により、セキュリティに関して大きな飛躍を遂げました。
ビジネスアプリケーションのためのセキュアな環境を構築するためのビルトインツールとテクニックの詳細については、セキュリティガイドを参照してください。
4D WebサーバーのHSTS(HTTP Strict Transport Security)機能を有効にするだけで、SSL LabsからA+ランク(最高ランク)のWebサイトを取得することが可能になりました! HSTSは、Webサーバーが、安全なHTTPS接続を介してのみ、ブラウザと対話することを宣言することを可能にします。一度有効にすると、4Dウェブサーバーは自動的にHSTS関連の情報をすべてのレスポンスヘッダに追加します。ブラウザは、HSTS情報を含む4Dウェブサーバの最初のレスポンスを受信すると、それを記録します。その時点から、それ以降のHTTPリクエストは自動的にHTTPSに変換されます。また、Web HSTS max ageオプションで、ブラウザがこの情報を保存する期間を指定することができます。ドキュメントを読む
4D Web Serverのデフォルトのセキュリティは、Perfect Forward Secrecy (PFS)をサポートすることで強化されています。この実装は、あなたのアプリケーションに、いくつかのネットワークセキュリティ機能に対するより良いコンプライアンスを提供し、同様にWebセキュリティ監査テストでより高いランクを提供します。PFSは、サーバーでTLSが有効化されたとき( )に自動的に有効になります。PFS が有効になっているかどうかを確認するには、WEB のサーバー情報取得コマンドを使用します。PFS を使用するために必要なすべての条件が満たされている場合、新しい属性であるperfectForwardSecrecy の値は true になります。RC4アルゴリズムは、いくつかの既知のセキュリティ問題の結果、4D Web Serverでは現在非推奨であることに留意してください。ドキュメントを読む
4DはTLS v1.0, TLS v1.1, TLS v1.2をサポートし、クライアントとサーバー間の暗号化通信を可能にします。デフォルトの最小サポートバージョンはTLS v1.2で、それ以前のバージョンは安全でない可能性があるため拒否されます。しかし、TLS v1.2をサポートしない古いブラウザ(またはツール)をサポートしたい場合は、Get database parameterおよびSET DATABASE PARAMETERコマンドの新しいMin TLSバージョンセレクタで、セキュリティレベルを下げることができます。ドキュメントを読む
ハッシュ・メカニズムは、パスワードの保存に最適です。ハッシュ化されたパスワードを生成および検証するために、2 つの新しいコマンドが作成されました。パスワードハッシュの生成と パスワードハッシュの検証です。どちらもbcryptアルゴリズムに基づいており、設計上低速です。そのため、ブルートフォースアタックの速度が遅く、影響を最小限に抑えることができます。ドキュメントを読む
ダイジェスト関数は、データ交換や比較の際に、データの整合性をチェックするのに便利です。Generate digestコマンドは、SHA-2をサポートするように改良されました。SHA-2ファミリーの2つのアルゴリズムがサポートされるようになりました。SHA-256とSHA-512です。構文は同じで、SHA256 digest とSHA512 digest定数が追加されました。ドキュメントを読む
データを損傷から保護するために、データベース設定の「バックアップ」ページにある「データベースが損傷した場合、前回の バックアップを復元する」 オプションは、新しいデータベースではデフォルトでチェックされており、最高の保護レベルを提供します。ドキュメントを読む
4D Write Pro
WP SET ATTRIBUTESと WP GET ATTRIBUTESコマンドは、列を管理するための新しい属性をサポートするように更新されました。
- WK column count: ドキュメントまたはセクションの列の数を定義します。
- wk columnspacing: 2つのコラムの間の間隔を定義します。
- wk column rule style,wk column rule color,wk column rule width: 垂直方向のコラムセパレータのスタイル(点線、破線など)、色、幅を定義します。
4D Write Pro ドキュメントの任意のパーツの位置を取得する
4D Write Pro専用の新しいコマンドを用意しました。WP 位置を取得特定の範囲、要素、参照を与えると、このコマンドは、5つの重要なデータ情報(範囲が始まるセクション番号、ページ番号、列番号、行番号、そして行内の範囲の最初の文字の位置)を一度にオブジェクト変数に返します。ドキュメントを読む
4D Write Proでプログラム的に要素にアクセスする
WP Get elementsコマンドは、任意のタイプの要素のコレクションを返します(段落、表、画像など。タイプされた範囲が渡された場合、コマンドは、対応するタイプの要素のみを含むコレクションを返します(2番目のパラメータで指定されていない場合)。それ以外の場合、コマンドは、そのタイプに関係なく、利用可能なすべての要素を含むコレクションを返します。ドキュメントを読む
WP SET TEXTコマンドを使用すると、ドキュメント内の任意の位置にテキストを書き込むことができます。このコマンドは、4D Write Pro のほとんどの「挿入」コマンドと同じように使用します。 このコマンドは3つの引数を取ります:範囲オブジェクト(テキストを挿入する場所)、テキストそのもの、そしてテキストを範囲の前、後、または置換に配置するかを定義する定数です。ドキュメントを読む
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のカスタムツールバーをプログラミングなしで簡単に作成できます。シンプルでパワフルな標準アクションのメカニズムが拡張され、チェックボックスやポップアップメニューに割り当てることができます。
オブジェクトのアクティブ化/非アクティブ化は、コンテキストに応じて4Dによって自動的に処理され、現在のステータス(チェックボックス)や値(ポップアップメニュー)は、現在のテキスト選択に応じて自動的に更新されます。ドキュメントを読む
4D Write Proのために独自のコンテクストメニューをデザインする
ダイナミックポップアップメニューコマンドが更新され、標準アクションに基づいた独自の4D Write Pro コンテキストメニューの設計が可能になりました。ドキュメントを読む
4D Write Pro とピクチャの処理
テキストの前や後ろ、ページやドキュメントの特定の部分(ヘッダー、フッター、セクションなど )へのアンカーなど、特定の位置への画像挿入を完全にコントロールできるようになりました。WP Add pictureコマンドは、ページに画像を追加し 、その正確な位置と他のプロパティを定義するために、標準のアクションを使用するか、WP GET ATTRIBUTESと WP SET ATTRIBUTESコマンドに追加された一連のセレクタを使用することができます。ドキュメントを読む
4D Write Proは、ピクチャーエクスプレッションに対応しました。ST INSERT EXPRESSIONコマンドは、イメージを返すあらゆる表現に対応するように拡張されました。式は、4D変数、フィールド、関数、ユーザー定義メソッドになります。式で4Dメソッドを使用する前に、まず、SET ALLOWED METHODSコマンドを使用して、このメソッドの使用を有効にする必要があることに注意してください。文書を読む
4D Write Proでは、画像のクリッピングとオリジンの背景スタイル属性により、ページ全体を埋め尽くす背景画像を作成することが可能です。この属性は、以下の方法でコントロールできます。
- 4D言語。WP SET ATTRIBUTESコマンドを使用して、背景画像のクリッピングや原点に新しいwk paper box値を設定することができます。
- 標準的なアクション。INVOKE ACTION コマンドを使用するか、デザインモードでは他の標準アクションと同様に使用することができます。
- 4D Write Proウィジェット。背景画像 “と “ドキュメント “の項目を選択すると、クリップと原点のオプションに、新しいペーパーボックスのオプションが使用できるようになります。
4D Write Proのヘッダーとフッターは、2つのカテゴリーに分かれた新しいコマンドにより、テンプレートをベースにした他のドキュメントを作成するために、プログラムで管理することができます。
- ドキュメント内のヘッダー、フッター、ボディの参照を取得するコマンドで、関連する範囲を取得したり、特定のセクションのドキュメントを作成するために使用できます。WP Get header,WP Get body andWP Get footer.
- カーソルを特定の位置に移動させるコマンド。WP SET FRAMEは、カーソルを特定のフレームに設定する一方で、WP Get frameは、カーソルが現在位置するフレームへの参照を取得するために使用されます。
wk link url属性で、会社のロゴや社名にリンクを追加することができます。ハイパーリンクは、WP SET ATTRIBUTESと WP GET ATTRIBUTESコマンドを使用するだけで、画像、テキスト、またはその両方の組み合わせに追加することが可能です。ドキュメントを読む
4D Write Proは、デザインを微調整するための追加機能を提供します:先行文字(例えば、繰り返されるドットや目次の他の文字など)。先頭文字は、ルーラー領域で既存のタブをクリックすると表示されるコンテキストメニューから、または、wk tab stop leadingsnew selectorとWP SET ATTRIBUTESコマンドを使用してプログラム的に制御することが可能です。ドキュメントを読む
4D Write Proエリアの水平ルーラーを使用して、マージンやインデントを調整し、テキスト、グラフィック、タブ、その他の要素を水平に揃えることができます。ドキュメントを読む
既存の4D View ドキュメントを4D View Pro に変換するための第一歩を踏み出しました。 VP Convert from 4D Viewの新規コマンドのおかげで、4D View ドキュメントに保存されているほとんどのプロパティと情報は、ドキュメント構造、値、フォーマット、スタイル、ボーダー、フォーミュラも含めて、自動的に変換されます!ドキュメントを読む
新しい 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で再度開くことが可能です。ドキュメントを読む
4D View Proは、行の高さを自動的に変更することができます。つまり、リストボックスが各行の高さを内容に合わせて調整し、あらゆる種類の折り返しの問題を避けて、テキストや画像を完全に表示することができるようになります。プロパティリストには、3つの新しいプロパティが用意されています。Automatic Row Height」、「Min Row Height」、「Max Row Height」です。これらの設定により、開発者はリストボックスが自動行高さモードを使用するかどうか、また、許容される最小行高さと最大行高さを定義することができます。
これらの設定は、LISTBOX SET PROPERTYコマンドと新しいLISTBOX SET AUTO ROW HEIGHT コマンドを使用してプログラム的に管理することも可能です。 ドキュメントを読む
マシンのハードウェア情報を取得する
システム情報の取得」コマンドは、実行中のマシンのハードウェアとシステムの詳細、および使用中の OS、プロセッサ(複数可)、使用可能な RAM の量など、すべての情報を取得します。ドキュメントを読む
WEB Get server infoコマンドは、4D Webサーバーの詳細情報を取得します。このコマンドには、オプションでwithCacheInfoという入力パラメータがあり、Webサーバーのキャッシュ情報が必要な場合に便利です。この属性は、デフォルトで「False」に設定されています。ドキュメントを読む
Get process activity コマンドは、接続されているユーザー セッション、関連する実行中のプロセス、および PROCESS PROPERTIES コマンドで 到達できなかった内部プロセスを含む現在のすべてのプロセスのスナップショットを提供 します。 さらに、あらゆるプロセスを一意に識別するために、systemID属性が含まれています: ユーザー、4D、およびスペア。また、返されたセッション/プロセス情報から、接続してからこのプロセスが消費したCPU時間 (単位:秒)と、アクティビティ率(例:2%)を 計算 することができます。その上、このコマンドは結果の解析をより簡単にします。ドキュメントを読む
ライセンス情報の取得] コマンドは、インストールされているライセンスと使用済み/使用可能なライセンスに関する詳細情報を返します。ドキュメントを読む
ファイルやフォルダのパスの管理を容易にするために、2つのコマンドが作成されました。Path to objectコマンドは、パラメータで渡したパスの特定のプロパティ(親フォルダ、ファイルやフォルダ名、ファイルやフォルダの拡張子)を含むオブジェクトを返します。Object to pathコマンドは、パラメータで渡されたオブジェクトの属性からパスを構築します。したがって、新しいパスを構成するには、必要なオブジェクト属性を変更し、それらを再結合するだけです。
これらのコマンドは、_o_Document typeと_o_SET DOCUMENT TYPEという非推奨のコマンドの代わりに使用する必要があります。ドキュメントの読み込み
Get 4D fileコマンドは、ログファイルへのアクセスをより良くするために強化されました。すべてのログを含むフォルダーを取得する代わりに、特定のログファイルを簡単に見つけることができます。このコマンドのために、新しいセレクタが作成されました。リクエストログファイル、デバッグログファイル、バックアップログファイル、検証ログファイル、ログファイルの圧縮、ログファイルの修復、HTTPデバッグログファイル、アプリケーションログファイルの構築。ドキュメントを読む
メソッドエディターが強化され、オブジェクト属性のコード補完ができるようになりました。オブジェクトの後にドット文字が入力されるたびに、提案される属性のリストが表示され、コーディング速度を向上させ、ミスやタイプミスを回避することができます。オートコンプリートの動作は、「4D preferences」パネルからカスタマイズでき、ドット文字を入力した後に自動的に候補リストを開くか(オプションにチェック)、タブキーを使用した後にのみ開くか(オプションにチェックなし)を定義できます。 ドキュメントを読む
4D Windows 64-bit製品ライン全体が、AlturaのMac2Win ライブラリに依存しなくなりました。4D Server Windows 64-bitは最後のステップで、4D v16 R4で完了しました。これにより、4DはWindowsプラットフォーム上で最新のテクノロジーを内部で使用することができ、SDIなどの新機能の恩恵を受けることができます。ドキュメントを読む
4D Windowsアプリケーションは、グレーのメインウィンドウ(MDI –Multiple Document Interface)を持ち、すべてのアプリケーションウィンドウはその中に表示されていました(子ウィンドウとして)。SDI(Single Document Interface)アプリケーションでは、メインウィンドウから独立した多数の追加ウィンドウを開くことができます。これらのウィンドウは、他のスクリーンに移動でき、メインウィンドウが隠されても表示されたままになります。 ドキュメントを読む
SET DATABASE PARAMETERコマンドを使用して、4Dアプリケーション内のすべてのヘルプヒントをプログラミングで無効または有効にすることができます。また、表示遅延や最大表示時間を言語別に定義することも可能です。しかし、それだけではありません。OBJECT SET HELP TIPコマンドを使って、ヘルプチップのテキストを動的に変更することも可能なのです。さらに、LISTBOX GET CELL POSITIONコマンドは、2つの新しいオプションパラメータ(xとyの位置、ピクセル単位)をサポートし、対応する列と行の番号を返すようになり、リストボックスの列、行、特定のセルにヒントを表示することができるようになりました。ドキュメントを読む
フォームのオブジェクト入力順序をプログラミングで定義することにより、ユーザーがTABキーを押したときに、次のどのフォームオブジェクトにフォーカスが当たるかを制御することができます。FORM SET ENTRY ORDERと FORM GET ENTRY ORDERという2つの新しいコマンドを使えば、現在のプロセスのフォームオブジェクトの入力順を動的に設定したり取得したりすることができます。ドキュメントを読む
IPv6ネットワーク構成のユーザーにとって、より良いユーザーエクスペリエンスとなるようにUIが改善されました。 ドキュメントを読む
find in design” ダイアログは、結果ウィンドウに関連する2つの新しい機能で強化されました。新しいボタンが追加され、進行中の検索を中断することができるようになりました。さらに、新しいフィルターオプションにより、残しておきたい結果項目を選択し、その選択項目以外を削除することができます。また、”Find in Design “操作の結果は、階層的なリストで表示されます。また、検索結果をテキストファイルにエクスポートして、後で表計算ソフトなどで開くことができるようになりましたので、結果を簡単に共有したり保存したりすることができます。エクスポートするには、「Find in Design」アクションメニューの新規項目「Export Results」を選択するだけです。 ドキュメントを読む
Customize list box selection highlight color
行やセル単位で、ハイライトの色を詳細に制御できるようになりました。リストボックスのプロパティリストに新しいオプションが追加されました。 Hide selection highlight.このオプションがチェックされている場合、開発者はリストボックスの選択部分を、利用可能なインターフェースオプションを使って表示させる必要があります。そして、選択された行の外観をカスタマイズするために、特定の背景色、フォント色、フォントスタイルをプログラミングで定義することができます。これは、表示されるリストボックスの種類(選択項目か配列か)に応じて、配列または式を使用して行うことができます。ドキュメントを読む
Tabbed windows in 4D Design mode on MacOS Sierra
On macOS Sierra4D Developer Edition 64-bit では、複数のウィンドウを使用する代わりに、タブ付きウィンドウを使用できるようになりました。4D Developer Edition 64-bitでは、4D Preferencesで利用可能な新しいWindow tabbingオプションにより、デザイン環境でこのAppleの新機能を利用することができます。この新しい環境設定が有効な場合、メソッドとフォームエディタのウィンドウは、タブで1つのウィンドウにまとめることができます。 ドキュメントを読む
クイックレポート64ビットエディタでは、リストレポートに加え、クロステーブルのレポートがサポートされ、エンドユーザーがレポートをデザインする際に、スムーズなユーザーエクスペリエンスを提供できるようになりました。クロステーブルを選択すると、ピボットテーブルとしてレポートを表示することができます。なお、32ビット版4D製品で作成された既存のレポートを再度開くことは可能です。 ドキュメントを読む
より良いユーザー体験と新しいHTML機能のサポートのために、4Dは、4D 64-bitの埋め込みWeb Areaオブジェクトの内部コンポーネントをBlink(Google Chromeでも使用)に更新しています。Blinkは、既存のレンダリングエンジンの中で最も最新で、メンテナンスも行き届いています。Blinkフレームワークへの切り替えは、アプリケーションのコード変更を必要とせず、Webエリアの使用にも全く影響を与えません。埋め込みWebエリアに対するすべてのコマンドとイベントは、サポートされていないいくつかのプリファレンスを除いて、以前と同じように動作します。埋め込みウェブレンダリングエンジンを使用するオプションがチェックされている場合、4Dは、32ビットバージョンではWebKitを、64ビットバージョンではBlinkを使用します。 ドキュメントを読む
R-リリースの詳細