4D v20での新機能

Deeplからの自動翻訳

このドキュメントでは、4D v20で利用可能なすべての新機能を まとめました。各機能には、具体的な例を説明するための関連ブログ記事があることに注意してください。これらのブログ記事は、機能のタイトルをクリックすることでアクセスすることができます。

また、blank タグが付いたセクションは、4D v19 R8 から 4D v20 の間にリリースされたすべての新機能に関連しています。

このドキュメントは、6つのセクションに分かれています:

Improved network communication

QUICの紹介blank

4D上で動作する最大のプロダクションサーバーへの同時接続数が増え続ける中、最適なパフォーマンスを確保することは開発チームにとって最重要課題となっています。この課題を解決する有望なソリューションとして登場したのが、QUICプロトコルです。

QUICは、サーバーサイドのネットワークにおけるスピードとパフォーマンスを向上させるために設計されたプロトコルです。Googleが10年以上かけて開発したQUICは、TCPではなくUDPの利点を生かし、パケットロスや輻輳などの問題が発生した場合に、より早く回復できるようになっています。QUICは今日、例えばHTTP/3で「HTTP over QUIC」として多用され、すべての主要ブラウザでサポートされており、すでにGoogleのサーバーへの接続の半数以上で使用されています。Facebookはインターネットトラフィックの75%以上をQUICで処理しており、YouTubeやGmail、Uberなど多くのアプリがサーバーとの通信にQUICを使用しています。

このエキサイティングな新技術を改良し、4Dv20の将来のリリースに反映させるために、ぜひQUICをお試しいただき、ご意見をお寄せください。また、 QUICは、4Dインフラの回復力を向上させ、接続不良やその他のネットワークの問題に対処できるようにする ことができることを心に留めておいてください。

4D言語とその他のプログラミング機能

内蔵のWebsocketサーバーblank

WebSocketプロトコルは、クライアントとサーバーの間に永続的な全二重通信チャネルを提供します。2者間のリアルタイムなデータ転送を可能にし、より高速で効率的な通信を実現します。

4D v20では、 WebSocketサーバーが内蔵され、開発者は大量のデータを処理し、シームレスなユーザー体験を提供できるリアルタイムWebアプリケーションを構築することができるようになりました。

これにより、リアルタイムのデータ可視化、コラボレーションアプリケーション、即時更新を必要とするIoTアプリケーションなどの可能性が広がります。

オブジェクトとコレクションのリテラルイニシャライザーblank

オブジェクトとコレクションは、New objectNew collection コマンドを使用して、コード内で初期化することができます。

4D v20 では、大規模または複雑なオブジェクトやコレクションをコードで初期化するために、より読みやすい新しい構文、オブジェクトリテラルとコレクションリテラルが導入されました。

オブジェクトリテラルを使用すると、中括弧{}で囲まれたプロパティと値で オブジェクトを初期化することができます。例えば、New object コマンドを使う代わりに、$object1 := {a : “foo”; b : 42+26; c : {}; d : [“coucou”; “rien”]}のように1行で新しいオブジェクトを作成し、そのプロパティを初期化することができる。

同様に、コレクション・リテラルでは、角括弧 [] で囲まれた要素を持つコレクションを 初期化することができます。

データストアをロックするための新コマンドblank

4Dは、データをバックアップする方法を複数内蔵しています:4Dバックアップとミラーサーバーの使用です。4D v20 では、データストアをロックする内部コマンドを公開し、4D の実行中にデータをコピーすることができるようになりました。ds.flushAndLock(),ds.locked(), そしてds.unlock() にご挨拶を。

複数ジャーナルの自動統合blank

4D v20では、データベースの保守運用時の生産性を大幅に向上させる強力な新機能を導入しました。データベースの起動時に複数のジャーナルを自動的に統合することで、手動のデータベース管理作業に時間を費やすことなく、アプリケーションの開発に集中することができます。

この機能を利用するには、「データベースが不完全な場合、最後のログを統合する」設定が有効になっていることを確認するだけです(デフォルトです)。次に、統合したいジャーナルファイルを現在のジャーナルファイルの隣に配置します。4Dは、スタートアップデータベースに欠落した操作を自動的に検出し、すべてのジャーナルファイルをチェックして、復旧が可能かどうかを判断します。問題がなければ、あなたの側で介入する必要なく、すべてのジャーナルからオペレーションを統合します。

4Dコマンドでアプリケーションを構築する blank

4Dは、開発者が独自のビルドチェーンを作成するための新機能を継続的に追加し、アプリケーションに高い柔軟性とカスタマイズオプションを提供しています。これらの機能には、「.zip」フォルダの作成、実行ファイルや「dll」の著作権などの追加情報の追加、「info.plist」ファイルの作成が含まれます。

4D v20のリリースでは、スタンドアロンまたはクライアント/サーバーアプリケーションの作成プロセスをより簡単にするために、2つの新機能が追加されました:

  1. 実行ファイルにアイコンを追加する。
  2. デプロイメントライセンスファイルの生成

CLIで4次元コードを実行するためのツールblank

4D v20では、tool4dと呼ばれる新しいアプリケーションを導入しました。このアプリケーションは、ビルドプロセスを自動化するためにビルドチェーン用に設計された4Dのサブセットで、コマンドラインインターフェイスによるヘッドレススクリプト実行に特化しています。しかし、VS Codeエクステンションと通信しているLSPサーバーも提供します。

4D-Analyzerエクステンションblank

この拡張機能は、私たち4D開発者の間で大きな注目を集めました!

4Dは、Visual Studio Codeコードエディターをサポートし、4Dコードを扱い、シンタックスハイライトGo To DefinitionSignature Help 、コード補完などの標準機能を提供することができるようになりました。

4D v20は、4D-Analyzerエクステンションを通して、Visual Studio Codeエディタに新しい機能を提供します:コードの折りたたみとインデント、そしてシンタックスチェックが可能です。

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

Collectionと Entityの選択クラスのdistinct機能は、ユニークな値のリストを取得することができます。

4D v20では、各特異的な値の出現回数も取得することができます。さらに、オブジェクトフィールドで使用されているすべての属性パスを取得することができます。この機能は、大規模なデータセットを扱う際に、特定の値の出現頻度を分析する必要がある場合に有効です。

未定義値との比較blank

4DにORDAやその他のオブジェクトが導入されたことで、開発者は未定義の値を扱うことが多くなり、時には異なる値と比較する際にエラーになることがあります。

4D v20から、開発者がエラーを発生させることなく、あらゆるタイプの値を未定義の値と比較できるようにする新しい改良が導入されました。つまり、コードにエラーが発生することを心配することなく、未定義の値と他の値を安全に比較できるようになったのです。

最新の検索・置換機能の紹介blank

コードエディターの「検索と置換」機能は、何年も前から存在しています。開発者は、特に大規模なコードベースを扱う場合に、迅速かつ効率的にコードを検索・置換することができます。4D v20では、コーディングのワークフローを効率化するためにこの機能に依存している開発者に喜ばれるであろう改良が施されています:

  • 置換するコードの出現回数を把握できる
  • 現在発生している位置を知ることができる
  • 次へ」「前へ」のナビゲーションオプションに永続的にアクセスできること、
  • モーダルウィンドウの代わりにパレットを表示し、クリック回数を制限する。

Print Form、FORM LOADコマンドにフォームオブジェクトを渡す。blank

4D v20 では、Form コマンドがPrint formFORM LOAD でサポートされています。Form 、以前のバージョンではDIALOG またはサブフォームで利用可能でした。プロセス変数の必要性を劇的に減らし、よりポータブルで分離したコードを書くことができます。これは、開発者の生活をより簡単にし、生産性を向上させる、4Dにとって喜ばしい改善です。

独自のヘルプメニューの作成blank

4D v20 では、メニュー項目を記述したコレクションを渡すことで、アプリケーションのカスタム「ヘルプ」メニューを作成することができます。これにより、例えば、ドキュメント、サポート、その他の有用なリソースに簡単にアクセスできるようにユーザーに提供することができます。

コレクションに便利な新機能を追加 blank

4Dv20では、 コレクションを操作するための一連の 関数が用意されています。前バージョンですでに提供した40以上のメソッドに加え、このリリースでは、以下を提供します:

  • first()last()その名の通り、コレクションの最初と 最後の要素にアクセスすることができます。
  • その at()関数は角括弧(col[x])の代わりにもなり、その利点は、値を負にすることで末尾から項目を取得することができることです。
  • は、その flat()は、より革新的で、場合によっては非常に便利な機能です。コレクションを含むことができるコレクション(コレクションを含むこともできるコレクションなど)を平らにすることができます。
  • その includes()この関数は、コレクションにテキスト、数値、日付など、ほとんどすべての型の要素が含まれているかどうかを知ることができるため、便利です。
  • 新しい reduceRight()というのは、最適化された同等の reverse().reduce()
  • のことです。 flatMap()関数により、1回の操作で map()に続いて flat()– は、以前にも紹介した機能です。

Windowsで印刷プレビューができるPDF形式blank

PDFフォーマットは、Windows上で印刷プレビューを行うためのXPSに代わる有効な選択肢となり、ユーザーに新しい、より利用しやすい選択肢を提供します。MicrosoftがXPS ViewerをWindowsのオプション機能として決定したことで、多くのユーザーがアプリケーションを展開する際に、エンドユーザーが印刷物をプレビューできないという問題が発生しました。無償のXPS Viewerのインストールは簡単ですが、管理者の中には、特にリモートデスクトップ環境での追加機能のインストールを躊躇する人もいます。
幸い、4D v20では、印刷プレビューにPDFフォーマットを使用するオプションが用意されています。現在のWindowsのほぼすべてのバージョンには、XPSまたはPDFがプリインストールされているため、エンドユーザーは、印刷プレビューの問題に遭遇することはもうありません。この新しいオプションは、エンドユーザーと管理者の両方のニーズを満たす、より柔軟で効率的なソリューションを提供します。

戻る。続ける。折れる。そしてもっと

私たちは、4Dフォーラムで皆さんの機能要求に耳を傾け、それに沿って、いくつかの4D言語の改良を行いました!

  • コードのブロックから飛び出すことを可能にするステートメントを始めとする:
    • returnキーワードは、それが現れるメソッドまたは関数の実行を終了し、呼び出し元のメソッドに制御を返します。また、オプションの値も返すことができます。
    • breakキーワードは、そのキーワードを含むループを終了させます。実行される次の文は、ループの本体の直後の文である。
    • continue 文は、ループの現在の繰り返しにおける文の実行を終了させ、次の繰り返しでループの実行を継続させる。
  • 短絡的な 評価に続く:ANDまたはOR演算子を使用する式において、短絡評価とは、第1引数が式の値を決定するのに十分でない場合にのみ、第2引数が実行または評価されることを意味する。これを実現するために、2つの新しい演算子を追加します:
    • AND演算子には&&を 使用します。
    • || for the OR operator
  • そして、三項演算子は、条件の後にクエスチョンマーク( ? )、条件が真である場合に評価する式の後にコロン(: )、最後に条件が偽である場合に評価する式です:条件? 値 真の場合:値 偽の場合:。

エラー処理

4D v20では、エラーハンドリングに新たな可能性をもたらしています。これからは、すべての実行コンテキスト(プロセス、ワーカー、ORDA計算属性、ORDA関数など)に対して効率的なグローバルエラーハンドラを定義することができます。新しいプロセス/ワーカーでローカルエラーハンドラを定義しなかった場合、グローバルエラーハンドラは自動的に呼び出されます。つまり、サーバーに表示されるエラーダイアログや、捕捉されないエラーはなくなります。

メソッドエクスプローラーでクラスのコンポーネントを可視化する

4Dではすでに、バイナリーモードでまだ動作しているアプリケーションが、(バイナリーモードベースの)アプリケーションから独自のクラスを作成し使用するために、(プロジェクトモードで)コンポーネントを使用することにより、クラス機能を活用することができます。この機能には、コード作成をスムーズにするためのヒントやコード補完のサポートが含まれていました。

あなたのコーディング体験をさらに簡単にするために、4D v20は新機能を提供します。今後は、メソッドエクスプローラーで利用可能なすべてのコンポーネントクラスのリストを視覚化 できるようになり、コードで使用する必要がある関数を瞬時に判断できるようになりました。

integer32より大きな整数のサポート

では、カウンタなどで20億(32ビット)より大きな数値を高い精度で必要とするのでしょうか?それを可能にするために、実数値とその扱い方を強化したのです。実数値は不正確であることが知られていますが、小数点を使わない限り(=整数)、非常に大きな数でも100%の精度で扱えます。このため、53ビットまでの数、より正確には[-(2^53)+1,(2^53)-1]を使うことができます。つまり、-9,007,199,254,740,992 から 9,007,199,254,740,992 までの範囲は正確に表現されることになります。

テキストとの変換は、12桁の科学表記に限定されていたため、精度が低下していました。4D v20では、あらゆる実数(整数を示す)の精度とTextへの変換を改善しました。文字列への変換の改良は、String()コマンドと、文字列形式で数値を返すJSONとXMLコマンドに関係しています。

コレクションとコールバックコマンドの数式をサポートします。

コールバックメソッドを必要とするメンバーメソッドを持つコレクションをより簡単に使用するために、4Dでは、数式を使用してコールバックを定義することができます:

  • コレクション・メンバー関数:every(), .filter(), .find(), .findIndex(), .map(), .orderByMethod(), .reduce(), .some(), .sort()
  • EXECUTE METHOD IN SUBFORM を実行する、
  • CALL FORMです、
  • およびCALL WORKERコマンドを使用します。

コンポーネントがクラスを公開できるようにする

あなたのアプリケーションがまだバイナリーモードで動作しているとします。その場合、この機能により、(バイナリモードベースの)アプリケーションから独自のクラスを作成し使用するために(プロジェクトモードで)コンポーネントを使用することで、クラスとオブジェクト指向開発の恩恵を受けることができます。そこで、4D v20から、構造設定-一般に新しいコンポーネントセクションが追加され、コンポーネントがインストールされた後、コンポーネントのクラスと関数が4Dメソッドエディタでどのように公開されるかを設定することができるようになりました。

関数やメソッドから別の関数やメソッドにパラメータを転送する。

4D v20では、関数を呼び出してパラメータを渡す際に、複雑なパラメータチェック(パラメータ数、値型)を行う必要がありません。

新しいコマンド「Copy parameters」が提供され、関数やメソッドの呼び出しに使用されるパラメータを、別の関数やメソッドに簡単に渡すことができるようになりました。これにより、より軽く、よりエレガントで、より読みやすいコードを実現します。

フォームとサブフォームの通信

4D v20から、サブフォームに変数を関連付けることで、フォームとサブフォームの間のインターフェースやコミュニケーションの可能性が豊かになりました。コミュニケーション手段は、2つの新しいコマンドによって簡素化されました:OBJECT Get subform container valueOBJECT SET SUBFORM CONTAINER VALUE です。

ライセンスに関する詳細情報を取得する新しいコマンド

4D v20には、ライセンスの使用状況に関するすべての情報を提供する新しいコマンドが同梱されています:ライセンス使用状況を取得します。また、診断ログも拡張されました。この機能を利用することで、サーバーのライセンス使用状況を把握し、使用状況を最適化し、将来の必要性を計画することができるようになります。

OBJECT SET enterableコマンドのオプションが増えました。

OBJECT SET ENTERABLEコマンドが強化され、編集不可能なフィールドをより適切に管理できるようになりました。第3のパラメータとして、このコマンドはブーリアンまたは整数をサポートします。

  • そのため、booleanを渡すことで、コードを変更することなく、従来通りコマンドを使用することができます。変更されるのは、enterableプロパティのみです(FalseまたはTrue)。
  • また、integerを渡すこともできます。このように、フィールドのenterableプロパティとfocusableプロパティを設定することができます。

存在しないメソッドパラメーターにアクセスする

4D v20では、呼び出し元から渡されなかったものがあったとしても、エラーなくすべてのメソッド・パラメーターにアクセスすることができます。このコードは、繰り返される “if “キーワードがない分、より分かりやすく、読みやすいものとなっています。

オブジェクトにblob属性を作成する

クラスの導入に伴い、データをオブジェクトに格納する必要性が高まり、特にblobの形をしたデータを格納することが多くなりました。 このため、4D v20では、オブジェクトへのblobのカプセル化をサポートしています。

ストレージの面だけでなく、blobオブジェクトは参照型なので、メモリの使用量が少なくなり、スピード性能が大幅に向上します。

バイトオーダーマーク(BOM)およびエンドオブライン(EOL)管理

4Dは、テキストファイルの特定の不可視文字の管理に関するベストプラクティスに従うようにスムーズに進化してきました。そのため、今後、4DはBOMなしでテキストファイルを書きます。また、macOSでは、4DはLFをEOL文字として使用します。これは、4DSettings、4dm、4DFormなど、4Dによって書かれたすべてのファイルに対して完全に自動化されています。

互換性設定については、オプションの “charSet “と “breakMode “パラメータがない場合、TEXT TO DOCUMENTと File.setText()がBOMなしでファイルを生成し、macOSでEOL文字としてLFを使用できる新しいオプションを用意しています。詳しくは、ドキュメントをご覧ください。

新しいプロジェクトのデフォルトの.gitignoreファイル

プロジェクトモードでは、Git(バージョン管理システム)を使って簡単に変更を追跡することができますが、Gitリポジトリでプロジェクトファイルを追跡したくないことがよくあります。4D v20では、除外するファイルやフォルダのリストを含むデフォルトの.gitignoreファイルをプロジェクトフォルダに自動的に追加することで、新しいプロジェクトで追跡しないものを定義することができます。

Macでコンポーネントを自動署名する

4D v20とMacでは、ビルドされたコンポーネントに、ユーザーが定義した証明書、または証明書が指定されていない場合はアドホック署名を使用して、4Dが自動的に署名します。これにより、コンポーネント開発者は、エンドユーザーが使用する前に署名する必要がないように、署名付きコンポーネントを配布することができます。

コードエディターから直接オンラインドキュメントを表示

ドキュメントサイトで検索することなく、クラス関数の詳細にアクセスすることができます。F1キーを押すか、コンテキストメニューの「Goto definition…」項目をクリックするだけで、簡単にアクセスできます。

電子メール

POP3:メールヘッダーのみをダウンロードする。blank

POP3を使用して電子メールメッセージを取得する場合、メッセージ本文をダウンロードせずに、 メッセージヘッダー(送信者、件名、日付などの情報を含む )だけを取得することが可能である。

ヘッダーのみを取得することは、メールボックスのメッセージのリストを素早くスキャンして、どのメッセージをダウンロードして読むかを決定したい場合に役立ちます。

4D v20から、POP3Transporter.getMail() 関数に、本文なしでメールを受信するための新しいパラメータが追加されました。

IMAPです:メールボックスID、メールキーワードblank

4D v20では、IMAPトランスポーターに2つの便利な機能が追加されました:

最初の機能は、特定のIMAPメールサーバーやクライアントとやり取りする際に、カスタムEメールキーワードを管理する機能です。カスタムキーワードは、電子メールに特定のラベルやカテゴリを付けて、後で整理したり見つけたりしやすくすることができます。4D v20のこの新機能により、IMAPトランスポーターを使用して、カスタムメール・キーワードの追加、削除、リストアップが可能になります。

2つ目の機能は、IMAPトランスポーターでのメールボックスIDのサポートです。IMAPメールボックスを扱う場合、メールボックスの名前を変更したり移動したりすることがあり、時間の経過とともに追跡が困難になります。4D v20のメールボックスIDのサポートにより、名前変更や移動があっても、特定のメールボックスを特定することができます。これは、アーカイブされたメッセージや特定の送信者からのメッセージを含むものなど、重要なメールボックスを追跡するのに便利です。

Microsoft 365ネイティブ対応

電子メールのニーズを Microsoft 365に移行する顧客が増える中、4D v20は電子メール管理を簡素化するソリューションを提供します。

最新の自動化機能により、内蔵コマンドを使用してMicrosoft 365の電子メール操作を簡単に自動化することができます。これらの操作には以下が含まれます:

  • メールの送信、受信、メールボックスフォルダの一覧表示
  • 電子メールをあるフォルダから別のフォルダに移動する、
  • メールに返信して、会話を作る、
  • 下書きメールを作成し、任意のフォルダに保存します、
  • とメールを削除することができます。

Microsoft365: フォルダー管理 blank

MicrosoftはIMAPとPOP3のBasic認証を廃止するため、ユーザーはメールデータにアクセスするために、より安全な認証方法を使用する必要があります。Graph APIは、電子メールデータを含むMicrosoft 365のデータにアクセスするための、より安全でモダンな方法です。

4D NetKitの新機能により、 Microsoft Graph APIを使用したメールボックスのプログラミングによる 管理 (作成、削除、名前の変更、情報の取得)が可能となりました。

Azureからユーザー情報を取得する

Officeアプリケーションへのアクセスのほか、MicrosoftはAzureベースのActive Directoryを提供しており、ユーザーはWebブラウザーを使ってMicrosoft SharepointやOneDriveなどのサービスにログインしてアクセスすることが可能です。すべてのMicrosoftサービスは、メールアドレスに基づく同じシングルサインオンを使用しています。4D v20から、4D NetKitは、このコンセプトの一部となり、ユーザーが通常の会社の認証情報を使ってアプリケーションにログインできるようにします。

シングルサインオンを可能にするほか、認証されたユーザーの情報(メールアドレス、部署、電話番号など)を取得することが可能になります。管理者が許可すれば、同じ会社内のユーザーの同僚に関する情報を取得することも可能です。

パスワードのBcrypt対応

4D v20から、すべてのパスワードはbcryptアルゴリズムでハッシュ化されています。アルゴリズムは、ブルートフォースアルゴリズムが元のパスワードを復元するのを防ぐのに十分な、計算するのに非常に時間がかかるものです。
それを実行に移すには、すべてが自動で行われます。どんな設定も、どんなコード行も触る必要はない。ツールボックスや CHANGE PASSWORDSet userpropertiesコマンドを使ってパスワードを変更すると、bcryptハッシュが保存されます。また、認証時に、パスワードがレガシーハッシュとbcryptハッシュのどちらで保存されているかを4Dが自動的に認識するため、ユーザーはパスワードを変更することなく接続を続けることができます。

HTTPクライアントの改良

4Dの構文と機能の改善を継続するために、4DのHTTPクライアントコマンドを近代化することを決定しました。4D v20 では、HTTP リクエストを実行する新しい方法が導入されました:HTTPクラスです。さらに、 圧縮レスポンス、チャンクレスポンス、リダイレクトなど、いくつかのHTTPクラスの機能性が追加されました。

コードエディター

クラスのさまざまな機能にすばやくジャンプできる

クラスは、長さの異なる複数の機能で構成されています。そのため、修正する関数を探したり、ある関数から別の関数に移動したりするのは、必ずしも容易ではありません。クラスと関数を表示するエクスプローラーを使うことも可能ですが、エディターウィンドウでコーディングしているときは、ウィンドウを切り替える時間を無駄にしたくありません。

4D v20では、コードエディタツールバーにクラス内の関数の一覧が表示され、特定の関数に素早くジャンプできるようになっています。

コメントタグ

4D v20では、コメントをよりよく整理するために、コメントタグを 使用して新しいレベルのコメントを提供します。タグは、コメント行の先頭にタグを置くだけで、コメントを分類するために使用されます。私たちは、3つのタグを用意しました:

  • MARK
  • TODO
  • フィックスム

MARKタグを使うと、コードを分割して書くことができます。3種類の書き方ができます。他の2つのタグ、TODOとFIXMEも同じような書き方をしています。興味深いのは、リスト内のアイコンが異なることで、将来の行動に優先順位をつけるために、コードを整理することができる。

オブジェクトチェックの構文

オートコンプリートは、コード作成を簡単にし、関数名の誤りを制限します。しかし、完全に回避できるわけではありません。2つの文字を逆にしたり、大文字を忘れたりするのは簡単です。そして、コードが動作しない理由を探すのに時間がかかってしまうのです。そこで、4Dにクラスや関数がすでに存在するかどうかをチェックさせるのが一番いい方法ではないでしょうか。4D v20から、存在しない関数を呼び出すと、コードエディタに警告が表示されるようになりました。

コードエディタのカスタマイズ

4D v20では、ウィンドウとコードエリアのカスタマイズに加え、 新たに2つの カスタマイズオプションが追加されました:

  • 10個のクリップボードを表示または非表示にします。
  • リストの表示/非表示」アイコンは、リストの横の右下に移動しました。

コード、ドキュメント、エクスプローラー間のナビゲーションを簡素化しました。

フォームを作成したり、新しい関数やメソッドを書いたりする場合、通常、次のことが必要です:

  • エクスプローラーにアクセスして、フォームをそのフォルダーに入れる
  • メソッドのドキュメントを書くためにエクスプローラーにアクセスする
  • をクリックすると、4Dオンラインサイトでコマンドのドキュメントを見ることができます。
  • コンポーネントのメソッドのドキュメントを見るには
  • メソッドで使用したい関数のコードにアクセスし、いくつかの修正を加えます。
  • クラスのさまざまな機能を簡単に使い分けることができます。

4D v20では、コードエディタにメニュー項目と新しいリストが追加され、プロジェクトのさまざまな要素をよりよくナビゲートすることができるようになりました。

コードエディターから直接オンラインドキュメントを表示

4D v20 では、ドキュメントサイトで検索することなく、クラス関数の詳細にアクセスすることができます。F1キーを押すか、コンテクストメニューのGoto definition…アイテムをクリックするだけでいいのです。

ウェブ

スケーラブルなWebセッションでサーバー上でデバッグを行う

スケーラブルなウェブセッションは、重要な改善点でした。4Dタグ、4Dアクション、REST APIを、4Dサーバー上で、インタプリタ型モードでもプリエンプティブプロセスで使えるようになったのです。ただし、デバッグの場合は、プリエンプティブプロセスではデバッガーのウィンドウを開くことができないため、サーバー上で開発環境を開き、協調モードに切り替えさせる必要があった。4D v20からは、デバッガを添付するだけでサーバー側のデバッグを簡略化することができました。

新しいWindowsシステム用レンダリングエンジン

4D v20から、システムレンダリングエンジンを使用する場合、4DはMicrosoft Edge WebView2を使用します。この変更により、最新の機能とセキュリティアップデートを備えた最新のブラウザの恩恵を受けることができます。例えば、Microsoft Edgeは、PDFの表示に使用することができます。

ファイル&フォルダー

ファイルハンドル

書き込みと読み出しに関しては、setTextと getText関数が、コンテンツ全体の読み書きに自由に使えます。4D v20では、既存のドキュメントを読んだり、1行または複数行を追加したりする場合に備えて、ファイルハンドルが用意されています。

ファイルハンドルは、「ファイル」オブジェクトをベースに作成されたオブジェクトで、ドキュメントの任意の部分にアクセスし、そこからコンテンツを順次読み書きするための機能を備えています。

新しい圧縮アルゴリズムであるLzmaのサポート

4D V20 では、Zip Create Archiveコマンドが新しい圧縮アルゴリズムに対応しました:LZMAです。このアルゴリズムの利点は、標準的なZIP圧縮アルゴリズムよりも小さなアーカイブを作成することができることです。コマンドに “zipArchive“オブジェクトを渡すことで、ZIPをカスタマイズすることができます。これにより、圧縮アルゴリズム、暗号化アルゴリズム、その他のオプションを選択することができます。

リストボックス

コレクションベースのリストボックスにおける自動列挙高さ

配列ベースのリストボックスでは、すでに行の高さを自動的に調整することが可能でした。4D v20では、この可能性を コレクションや エンティティの選択に基づくリストボックスにも 適用しています。

ALTキーにさよならを

リストボックスとドラッグ&ドロップについて、4D v20から、Altキーを押しながら複数の項目を同時に移動する必要がなくなりました。

セルの水平方向と垂直方向のパディング

4D v20では、2つの新しいプロパティ、水平パディングと垂直パディング(要素のコンテンツとボーダーの間の内マージンまたはスペース)により、リストボックスのパワーが拡張されています。これらのプロパティは、リストボックスに新しいプレゼンテーションの可能性を与え、あなたのインターフェースは、よりプロフェッショナルな外観を持つようになります。

これらのプロパティは、リストボックス全体に対してグローバルに設定することも、カラム、ヘッダー、フッターなどの各要素に対して設定することも可能です。リストボックスに定義すると、リストボックスのすべてのサブオブジェクトに継承して適用されます。ただし、もちろん、各サブオブジェクトは独自の設定を行うことができます。

パディングの設定は、以下の方法で行うことができます:

  • デザインモードで、”座標とサイズ “の下にあるプロパティの一覧から行う。
  • または、LISTBOX SET PROPERTYコマンドを使用したプログラミングで、2つの新しい定数、lk cell horizontal paddingと lk cell vertical paddingを使用します。

プロジェクトモードでの4D Serverでの同時開発

4Dクライアントと4Dサーバーを接続する新しいモード、 開発モードにより、1つの開発サーバーでチームメイトと同時に作業する可能性を求めていた開発者の1人であるなら、4D v20はその願いを叶えてくれるでしょう。

開発者は、開発モードでデータベース構造、メソッド、フォーム、設定を変更することができます。バイナリーモードと同じ機能を提供するために、ロックシステムを変更しました。

Windows SDIアプリケーションのテスト

SDIモードでマージされたアプリケーションを顧客に提供できるようになってから、ずいぶん経ちますね。それは、WindowsアプリケーションのUXにとって、大きな前進でした。

4D v20では、 SDIアプリケーションのテストが 簡単にできます。スタンドアロンやクライアントアプリケーションを構築することなく、アプリケーションの結果を確認することができます。

システムワーカーです:外部プロセスを非同期で起動する

また、要望の多かった機能が利用できます。時には、バックグラウンドでプロセスを実行し、プロセスがまだ実行されている間に利用可能になるとすぐにその出力コードに基づいて特定のアクションを実行する必要があります。例えば、プログレスバーを表示させるなどです。4Dでは、新しい4D.SystemWorkerクラスで バックグラウンドプロセスを開始し、プロセスが情報を返したときに自動的にコールバックメソッドを実行することができます。そのため、インターフェースで使用すれば、外部プロセスの実行中もインターフェースはユーザーに対して応答し続け、終了したら結果をクライアントに表示することができます。

診断ログの再編成

診断ログは、トラブルシューティングのためにますます重要なものとなっています。私たちは、その内容を改善し、内容(トレース、デバッグ、情報、警告、エラーなどのログレベル)をフィルタリングする方法を追加することによって、それらを完全に再編成しました。新しいデータベースパラメーターDiagnostic log levelのおかげで、診断ログのログの流れを制御し、本当に必要なものを記録しながら小さく保つことができます。

ロギング用設定ファイル

ログの強化プロジェクトの一環として、4Dは2つの新機能を追加しました:

    • ロギングを瞬時に一時停止する機能
    • と、サポートチームが設定ファイルを通じて顧客のログの設定を素早く支援する方法

ユーザーインターフェース

フォームオブジェクトの進化blank

最も美しいインターフェイスを作るために、新しい可能性を提供します:

  • ボタン、ラジオボタン、チェックボックスには、テキストとアイコンの新しい設定が追加されました。「テキスト配置」プロパティと、新しい「画像抱き合わせタイトル」です。
  • ラジオボタンとチェックボックスでは、アイコンの状態数が改善され(True、False、Rollover、Disable)、エンドユーザーにとってより良いレンダリングを可能にしました。

ラウンドコーナー

また、4D v20では、新しい「コーナー半径」属性により、静的テキストと入力テキストのコーナーを丸めることができるようになりました。その値は、UI(プロパティリスト)、CSS、コードで指定することができます。

Windowsで高DPIを実現:高解像度画面への対応

High DPIとは、High Dots Per Inchの略で、画素密度を表します。画素の密度を表し、DPIが高いほど、画素の密度が高くなります。4K画面では、画素密度が高すぎて、通常通り表示すると、すべてのアイコンや操作部が極端に小さくなってしまうことがあります。そのため、Windowsでは、文字やアイコン、操作のスケールを変更することができます。4K画面では、デフォルトで有効になっています。Macで初めて高DPIをサポートしましたが、 Windowsでも完全対応しました。その結果、テキストと画像の品質が向上します。

macOSの暗い環境で4Dを使った開発を行う

4D v19以降、macOSではダークモードをサポートするアプリケーションを作成することができますので、ライトスタイルとダークスタイルのアプリケーションを選択できるようにすることで、ユーザーの皆様に喜んでいただけます。4D v20では、開発者であるあなたに、アプリケーションを開発する際の選択肢を提供しています。4D Developer Editionは、macOSのライトまたはダークルックとシームレスに統合されています。

ストラクチュアーエディターツールバーの最適化

ツールバーは、すべての4Dウィンドウを近代化し、標準化するために変更されました。

テーブル、フィールド、リレーションシップの上にカーソルを置くと、ステータスバーに役立つ情報が表示されます。4D v20の新機能として、リレーションシップの名前がステータスバーに直接表示されるようになりました。プロパティウィンドウを開く必要がなくなりました。

データエクスプローラー

4D Data Explorerは 管理者と開発者がリモートで(HTTPS接続で安全に)、または開いたデータベースと同じマシン上でローカルに使用できるウェブブラウザインターフェイスです。

4D v20では、データエクスプローラーは2つの大きな機能拡張を行いました。

データ間の関係を可視化する

最初の機能は データ間の関係を視覚化することで、データベース内の関連情報の閲覧や検索を容易にするものです。

4Dに組み込まれたデータエクスプローラーblank

2つ目のアップデートは、 ツールバーにデータエクスプローラーのアイコンが追加され、外部Webブラウザーの代わりに4Dで開くことがさらに容易になりました。ユーザーは、ツールバーからワンクリックでデータエクスプローラーに直接アクセスすることができ、時間の節約と生産性の向上を実現します。

デプロイメント

を使用する 重複マージされたクライアントアプリケーション

ソフトウェアのパブリッシャーであるお客様の中には、グループ会社ごとにマージサーバーアプリケーションを用意するなど、多数のインスタンスを持っている場合があります。このような展開アーキテクチャでは、顧客の役員から「会社ごとにソフトウェアを使いたいので、マージサーバーアプリケーションごとにマージクライアントアプリケーションを自分のコンピューターにインストールしてほしい」と頼まれることがよくあります。これからは、新しいbuildAppキーで、複製された各合併クライアントアプリケーションに、(アプリケーションのパスに基づいて)独自のユーザー設定フォルダーを使用させることができるようになります:ClientUserPreferencesFolderByPath。

統合されたサーバープロジェクトにおけるディレクトリファイル管理

サーバー側では、現在のユーザーは常にデザイナーであり、したがって、ランタイムエクスプローラーへのアクセスは常に許可されています。この動作を変更したい場合、4D v20では、配備されたマージサーバーのデータエクスプローラーとランタイムエクスプローラーへのアクセスを管理者に制限することができます。

クライアントアプリケーションサイズを削減する & more

4D v20では、4Dアプリケーションの構築に多くの改良が加えられています。まず、アプリケーションのサイズを小さくするために、不要なライブラリ(CEF/Web Area、PHP、Mecab、4D Updaterなど)を削除することができます。また、コンパイルされた構造を構築する際の最終ディレクトリを変更し、同じ構造のコンパイル版を複数使用する場合に対応できるようにしました。そして、日本のお客様のために、macOSの4D日本語版と海外版を統合しました。

Windows上で構築するクロスプラットフォームのクライアント/サーバーアプリケーションの簡素化

Siliconの登場により、クロスプラットフォームのクライアント/サーバーアプリケーションの構築は変化しました。Macでサーバーを構築する限り、IntelとSiliconの両方のプラットフォーム用にコンパイルできるので、あまり問題にはなりません。しかし、Windowsでは、Silicon Mac用にコンパイルすることはできないのです。4D v20では、MacからWindowsマシンに転送するファイル数を減らす新機能が導入されています。また、4DはMacでクライアントを構築する際に、コンパイル済みデータベースディレクトリを生成します。このフォルダには、アプリケーションのコンパイルされたコードのみが含まれており、そのため、比較的小さいです。

CI/CD: Build4Dでコンパイルされた構造体やコンポーネントを構築する

プロジェクトモードの導入により、プロジェクトのコンポーネントを操作することが非常に簡単になりました。ここ数回の機能リリースでは、チームや作業方法、ニーズに合わせて独自のビルドチェーンを作成できる機能をいくつか追加しています。

独自のビルドチェーンを作成したり、4Dを継続的インテグレーションツールに統合するために、私たちはBuild4Dというコンポーネントを開発しソースとともにGitHubで公開しています。この最初のステップとして、Build4Dでは、コンパイルされた構造とコンポーネントを作成することができます。今後、シングルユーザー、クライアント、サーバーのアプリケーションを管理できるよう、充実させていく予定です。

Windows Remote Desktop Servicesでユーザー間でローカルリソースを共有する。

もしあなたが、ユーザーアカウントフォルダではなく、Windowsリモートデスクトップサービスの共有フォルダにローカルリソースをダウンロードできる機能を求めていた開発者の一人なら、4D v20は朗報をもたらすでしょう。

BuildAppプロセスのプロジェクトにLocal Resourcesの相互利用を許可する新しいオプションを開発することで、現在のアーキテクチャを再考することで、いくつかの最適化を行いました。

これは、この新しいBuildApp XMLキーで有効化されます:/Preferences4D/BuildApp/CS/ShareLocalResourcesOnWindowsClientです。

この最適化により、以下のような効果が得られます:

  • 各ユーザーがサーバーからローカルリソースをダウンロードする必要がなくなるため、時間が短縮されます、
  • また、リモートデスクトップサービス環境では、ユーザーごとにローカルリソースが重複しないため、ディスクスペースの確保も可能です。

ORDA

4D v20では、引き続きORDAの機能拡張が行われています。オブジェクトリレーショナルデータアクセスは オブジェクト指向プログラミングの利点とリレーショナルデータベースの利点を組み合わせた革新的な データアクセス方法であり、開発者はデータアクセスの管理よりもビジネス問題の解決に集中することができる。

4D v20がもたらすもの:

ユーザー権限管理(RESTサーバー)

データクラスとその属性の一部をRESTリソースとして公開したりしなかったりする機能は、データへのアクセスを制限する便利な方法でしたが、4Dはさらに一歩進んで、不正なユーザーからデータを保護するための強力で完全にカスタマイズできるシステムを提供します。データを保護するシステムは、誰がアクセスするのか、どの データにアクセスするのかによって異なります。

この新機能は、ORDAの概念とスケーラブルなウェブセッションをベースにしています。RESTリクエスト、リモートデータストアで受信したリクエスト、4DACTIONや4DタグのようなWebプロセスなど、すべてのWebプロセスをカバーします。

RESTリクエストの完全制御によるパフォーマンスの最適

4D v20では、クライアント/サーバーとRESTの両方で、ORDAのコンテキストとキャッシュをよりよく制御し、パフォーマンスを向上させることができます。

計算された属性

ビジネスロジックをClassとORDAクラスにさらに集める新しい方法です!ビジネス関連の数式を4D UIで定義しなければならなかった時代は終わりました(文字列の連結やVAT計算など)。複雑な計算をClassで直接定義し、その結果をRest APIやモバイルアプリケーション、ORDAベースのユーザーインターフェースなどの他の構造体フィールドと同じように使用することができるようになりました。

ORDA Aliases

4D v20は、新しいORDAのコンセプトで出荷されます:エイリアスです。エイリアスは、計算された属性の論理的かつ補完的な継続です。その名が示すように、エイリアスは、実際、既存のデータストアオブジェクトへのショートカットである。エイリアスは、計算アトリビュートと同様に「エンティティ・データ・クラス」で定義されます。計算属性はあらゆる計算や式を処理できますが、エイリアスは単なるショートカットであり、開発をより迅速かつ容易にします。使用例としては、関連する属性に簡単にアクセスできるようにする(つまり、関連するデータベースの複雑さを隠す)ことが挙げられます。

NULL値から空白値へのデフォルトマッピングを無効にする。

データベースで新しいフィールドを作成する際、4DではNULL値を空白値にマッピングするかどうかを選択することができます。4D v20から、新しいプロジェクトでは、4Dは、デフォルトで、NULL値を不在データにマッピングすることはなくなりました。これは、ORDAがNULL値を扱うために完璧に設計されており、多くの厄介な回避策を省くことができるため有益です。

悲観的なロック管理 VIA RestModelのアップデート

4D v20では、REST APIを使用してエンティティをロックまたはアンロックすることができます。これは、特に次のような場合に便利です:

  • REST API の操作に慣れている場合、コードの一貫性を保つことができます。ORDA データモデルクラスで、エンティティをロック/アンロックするための関数を記述する必要がありません。
  • REST APIで悲観的なロックを円滑に使用できる。

BLOBに完全対応

4D v20から、Blobは他の型と同様にORDAで完全にサポートされ、ORDA開発者はORDA構文を使用してBlobをデータベースに保存することができるようになりました。

2つのエンティティ選択を比較する

オブジェクト指向プログラミングを効率的に行い、できるだけ少ないコード行数で記述するためには、堅牢で最適化された関数が必要です。そのため、4D v20では、entitySelectionオブジェクトで利用できる新しい関数、selected()関数を出荷しています。この関数のおかげで、2つのエンティティセレクションを検査し、比較することができます。

4D Write Pro

4D Write Proは、過去数回のバージョンアップで劇的に改善されました。実際、私たち4Dチームは、4DWrite Proを強力なテンプレートベースのドキュメントジェネレーターとして、マニュアルによるドキュメント作成の必要性をなくし、エラーのリスクを減らすことに投資しています。

4D Write Proでは、4Dデータベースから直接データを取得し、文脈に沿った情報を自動的に入力し、入力済みのドキュメントを生成することができます。これには、名前、日付、住所情報、番号など、さまざまな種類のデータが含まれます。4D Write Proは、この情報をテンプレートと融合させ、合理的で効率的な文書作成プロセスを提供します。

4D v20では、ヘッダー、データソース、繰り越し行など強力な機能を導入しています。 ビジネスプロフェッショナルであれ、開発者であれ、これらの機能はワークフローと生産性を向上させるために非常に有用であることがわかるでしょう。

4D Write Pro & Text Boxes: docx インポート/エクスポートオプションblank

テキストボックスでは、テキスト、テーブル、画像、数式、その他の要素を含むフローティングコンテナを文書の任意の場所に挿入することができます。この機能はv20で改良され、これらの要素をdocx文書から、またはdocx文書にエクスポートおよびインポートすることができるようになりました。

データのコンテキストを定義する

4D v20は、ORDAとオブジェクト指向開発の世界を4D Write Proドキュメントに開放します。4D Write Proのドキュメントには、データベースに依存するデータや計算を返す数式が含まれていることがよくあります。コンテキストのおかげで、 そのデータを文書に関連付けることは、Thisキーワードを使うのと同じくらい簡単です。4D Write Proでテンプレートやパーソナライズされたドキュメントを作成するための完璧な方法です。

エンティティ選択とコレクションでテーブルを動的に埋める

毎回、手作業でテーブルをデータで埋めるのは手間がかかる作業です。そこで、4D Write ProのテンプレートにORDAとオブジェクト指向開発の世界を開く、 データコンテキストが貴重なオプションとして登場します。

4D Write Proのテーブルに「データソース」を定義することができるようになりました。この「データソース」は、エンティティの選択であれ、コレクションであれ、自動的にこれらのテーブルの行に供給されます。テーブルは、選択内容に応じて自動的に拡大され、必要に応じて追加ページも追加されます。これにより、アプリケーションのエンドユーザーは、自動的にデータで満たされるテンプレートを設計または修正することができます。

下段キャリーオーバーの行数(小計)

数ページに渡る大きな売上表を想像してください。あるページの最後に小計を計算し、それを次のページに持ち越し、そのページの計算に含めたいとします。これは、例えば長い請求書を編集する際に、しばしば必要となり、時には法的にも必要となります。

4D v20では、それぞれのテーブルの各パートの下部に「小計」行を挿入し、自動的に入力することができます

これは、次のどちらかで実行できます:

  • 両方のインターフェース(ツールバーとサイドバー )を使用します。テーブルメニューに新しい項目 “Bottom carry over row “が追加されています。
  • または、新しい属性wk bottom carry over row のおかげで、プログラミングによって行うこともできます。

また、このキャリーオーバー行のセルの内容を定義するために、新しい属性previousItemsは、コレクションやエンティティ選択のためのすべての利用可能な関数(min/max/sum/etc)で使用することができます。

テーブルのブレイクローblank

データのリスト、例えば、大陸、国、都市を持つ人のリストがあるとき、大陸、国、都市の順にグループ化したい場合があります。そうすることで、データの理解や分析がしやすくなります。

ソートされたデータソースからのデータをテーブルに入力する場合、4D Write Proはソート基準の値が変わるたびにブレーク行を挿入することができます。これによって、ユーザーは希望する基準に従ってデータをグループ化することができます。

別のシナリオでは、この機能を使用して、会社関係に基づくレポートを作成し、従業員のリストを各大陸の会社によってグループ化することもできます。適切なソート基準を指定することで、4D Write Proは、各大陸の会社ごとに別々のグループを作成することができます。

4D v20 には、テーブルのレイアウトをより良く定義するための新しい属性が搭載されています。複雑な 4D Write Pro ドキュメントを簡単に作成することができますが、最も重要なことは、視覚的に魅力的なドキュメントを作成することです:テーブルの行の中で改ページすることをご挨拶します。これは、セルに長いテキスト(または数段落)がある場合に便利です。セル(したがってテーブルの1行)を2つに分割して、ドキュメントのページ上の利用可能なスペースを埋めることができることを定義するのは興味深いことかもしれません:

  • wk page break inside paragraphは、もちろん段落に適用できますが、文書自体、特定のセクション、テキストの範囲など、あらゆるターゲットに適用できます。どのような場合でも、属性はターゲット内の段落に割り当てられます。これは単にプログラミングの機能である。
  • wk page break inside tableは、テーブルを2つ(またはそれ以上)の部分に分割することができ、分割はテーブルの2行の間で行われます(通常通り)。
  • wk page break inside rowもテーブルを分割することができますが、今回は行の中で分割します。このオプションは、前のオプションに依存することに注意してください。テーブルを分割できない場合、その行も分割できません。

なお、テーブルの行の内側で改ページするオプションは、ツールバーとサイドバーのウィジェットで利用可能です。

テーブルヘッダー

この機能により、プログラミングまたは4D Write Proのインターフェースウィジェットを通じて利用できる、もう一つの便利なテーブル表示オプションがもたらされます。4D v20から、テーブルのヘッダーを定義し、列やページの区切りの後に自動的に繰り返す ことができるようになりました。

文書変更検出

4D Write Proのドキュメントが編集モードになっているとき、エンドユーザーによって実際に変更されたかどうかを知ることは、しばしば有益なことです。この情報により、アクションやインターフェースを調整し、よりユーザーフレンドリーなエクスペリエンスを提供することができます。

新しいdocument.modifiedプロパティは、ドキュメント内の変更を素早く検出し、それに応じてアクションを実行します。透過的に(例えば、ドキュメントを開いたままにしておくと自動保存を行う)、あるいは条件に応じてインテリジェントにインターフェイスを変更することができます。

数式を使いやすく表示

誰もが大好きな数式は、4D Write Proのドキュメントに欠かせないものです。データベースから送られてくる多くの情報を統合することができ、文書作成をより直感的かつ自動的に行うことができます。

しかし、いくつかの数式は、レイアウトの観点から見ると長くなり、エンドユーザーにとって読みにくい場合があります。

そこで、4D v20では、数式を記号Ⓐで表示し、その存在を示すことで、ドキュメントをより正確で透明なものにすることができます。

これは、次のような方法で実現できます:

  • 新しい “Display formula source as a symbol “プロパティのおかげで、プロパティリストを経由して行うことができます。
  • インターフェイスの新しい要素です。
  • また、新しいwk display formula as a symbol属性により、プログラミングで行うこともできます。

空画像の表示無効化

4D Write Proのドキュメントには、さまざまなソースからのさまざまな形式の画像が含まれることがあります。これらの画像は、無効なURL、空の画像を返す数式、プラットフォームがサポートしていないフォーマットなど、まったく合理的な理由によって表示されない場合があります。

しかし、これらの画像は、常に理論的な位置を示す小さな空の長方形で表現されます。4D v20は、新しい表示オプションで、空の画像を完全に見えなくすることができます。これは、3つの方法で行うことができます:

    • まず、最も簡単な方法は、プロパティリストを使うことで、外観のテーマに新しいエントリを提供します。
    • また、ユーザーインターフェイスで、新しい要素を表示させる方法もあります。ツールバーやサイドバーに表示されます。
    • または、新しいwk visible empty imagesパラメータを使用したプログラミングによる方法です。

新しい画像表示オプション

4D v20 から、4D Write Pro ドキュメント内のインラインおよびアンカー画像は、新しいwk 画像表示モード 属性により、7 種類の新しいフォーマットタイプを利用できます:

  • フィットするように拡大縮小される(デフォルト)
  • 切り捨て
  • 切り捨てられた中心
  • プロポーショナル
  • プロポーショナルセンタード
  • レプリケート
  • レプリケートセンタード

また、新しい属性:wk background display modeにより、背景文書、セクション、パラグラフなどに使用される画像のフォーマットも簡単にできるようになりました。

数式の可視性管理

4D Write Proの文書には、すでにいくつかの表示オプションが用意されています。その中に、wk formula highlightオプションが追加され、4つの可能な値があります:

  • 0: 数式と値のハイライトなし
  • 1: 数式のみをハイライト表示(初期値)
  • 2:ハイライト値のみ
  • 3: 数式と値のハイライト

また、標準的なアクションを使用することも可能です。チェックボックス、標準的なボタン、ドロップダウンリストで使用することができます。

リンクされたパラグラフ

ドキュメントのレイアウトをより良くコントロールするために、4D v20では、段落とそれに続く段落がリンクされたままでなければならないかどうかを選択できるようになっています(自動改ページや改段によって分離されてはなりません)。

SVG形式での書き出し

4D Write Proのドキュメントは、すでに様々なフォーマットでエクスポートすることができます:pdf、プレーンテキスト、Microsoft Word、HTML…このリストにSVGフォーマットが追加されました。これにより、例えば、ブラウザやモバイルデバイスの両方のプラットフォームで使用可能な、高速プレビューのための最初のページの画像を作成したり、4D Write Proブロックを4D View Proドキュメントなどの他のドキュメント内に挿入したりすることができます。

SVGは画像フォーマットであるため、書き出したいドキュメントのどのページを書き出すかを選択できます。最終的な画像は、ドキュメントのページレンダリングに基づきます。方向や余白など、すべてのレイアウトオプションが考慮されます。

インターフェースウィジェットの改良

4D v20では、インターフェースのウィジェットに一連の機能が追加されました:

  • 両方のインターフェースに数式を挿入するメニューが追加されました。
  • また、タイポグラフィのルールをより尊重し、より読みやすく、より美しいドキュメントを作成するために、段落の属性をいくつか追加しました(例):
    • ウィドウとオーファンコントロール
    • 中で改ページしないようにする
    • Keep with next
    • 線の高さ
  • サイドバーウィジェットでは、改ページ、改セクション、カラム、および向き、フォーマット、タイプ(ドラフト、ページ、埋め込み)、一部の要素の可視性(不可視文字、ヘッダー、フッター)などのビューパラメーターを管理できるようになりました。
  • ツールバーウィジェットでは、タイトル、著者、件名、会社、メモを入力できるようになりました。

ダークモード対応

最終的にmacOSのライトモードまたはダークモードで開発・デプロイすることができます。ライブラリの最後のウィジェットは、ダークモード(macOS上)に対応しています:

  • 4D Write Pro インターフェースツールバー
  • 4D Write Proインターフェース
  • サイドバー リッチテキストエリア

画像設定ダイアログ

4D Write Proのインターフェイスコンポーネントに、新しいピクチャー設定ダイアログが追加されました。これによって、簡単に定義することができます:

  • 画像の大きさ
  • 表示形式
  • マージンアンドパディング
  • アンカー付き画像のページ上の位置

ダイアログは、コンテクストメニューから表示するか、「WP PictureSettings」コンポーネントメソッドを使用して、フォーム上で「ダブルクリック時」などのイベントから表示することができます。

また、今回の機能リリースでは、ツールバーウィジェットでURLから画像を追加することができます。

連続したセクションブレーク

4D v20 から、4D Write Pro は連続したセクションブレークをサポートしています。連続的なセクションブレークは、それ自体でセクションを作成しますが、ページブレークを引き起こすことはありません。これによって、特に、同じページで異なる数の列を持つことができます。

連続したセクションブレークを挿入することができます:

  • プログラミングで、WP Insert breakコマンドを使用します。このコマンドは、新しい値、wk continuous section breakをサポートしています。
  • 標準アクションに関連するメニューを使用するか、標準アクションをボタンに追加するだけです。
  • ユーザーインターフェースを介して
4Dビュープロ

営業、財務、会計、データ分析、その他、長くて扱いにくいデータセットを扱う職業であろうと、4D View Proはその答えです。4D View Proは、4Dデータに直接アクセスできる多言語製品で、統合された強力なスプレッドシートを最大限に活用することが可能です。もはやスプレッドシートのようには見えないグラフィカルで高度なダッシュボードの構築の可能性から、毎朝画面外で作成して経営陣に自動送信できるレポートまで、4D View Proには、有意義なビジネス上の意思決定を行うために必要なものがすべて揃っています。

そして、4D v20では、この製品がこれまで以上に強力になり、間違いなく便利だと思われる機能のセットを備えています:

ピボットテーブル

4D v20のピボットテーブル。4D View Proのリボンから直接、簡単にデータの要約や分析ができるので、ユーザーに営業やマーケティングの人がいる場合は、この機能を試してみる価値があると思います。

CSV:新しいインポート/エクスポート形式

4D v20では、CSVファイルのインポートおよびエクスポートが可能です。CSVは、多くのアプリケーションで広くサポートされている一般的なデータ交換フォーマットです。例えば、VP Importドキュメントと VP Exportドキュメントを 使用して、他の情報システムから来たCSVファイルのデータを表示することができます。 これらのコマンドは、CSVのような区切りテキストファイル形式をサポートしています。

シートマネジメント

プログラミングにより、4D v20 では 4D View Pro ドキュメント内のシートを管理することができます。以下のコマンドで、シートの作成、名前の変更、非表示、削除、ユーザーが現在どのシートにいるのかを確認することができます:

  • VP SET SHEET COUNT:必要なシートの数を一度に定義します。
  • VP ADD SHEET:特定のインデックスにシート(カスタム名)を挿入する。
  • VP SET SHEET NAME:シートに関連した名前をつけて、ユーザーをガイドする。
  • VP SET CURRENT SHEET: 選択したシートを変更する
  • VP SET SHEET OPTIONS:計算のための情報しか入っていないシートなどを隠すことができる。

UIから改ページを管理する

4D v20では、コンテクストメニューに新しい項目が追加され、ユーザーインターフェースから改ページを管理できるようになりました:改ページを追加する “と “改ページを削除する “です。 また、新しいコマンド「VP SET SHOW PRINT LINES 」と「VP Get show print lines」を使って、印刷線を表示したり隠したりすることもできます。

ワークブックのオプション

4D View Proでドキュメントを作成する際、シートタブやスクロールバーを非表示にしたり、コンテキストメニューやドラッグ&ドロップを無効にしたりと、ユーザー体験を微調整する必要があることがよくあると思います。これらの機能は、VP SET WORKBOOK OPTIONSコマンドで実現可能です。

テンプレートで開発プロセスをスピードアップ

既存のテンプレートからレポートやスプレッドシートを作成することで、開発をスピードアップすることができます。コピー&ペーストを使うエンドユーザーのように、開発者としても、4D v20では、別の場所や別のエリアからセル範囲を「コピー」するだけでいいのです。VP MOVE CELLSコマンドを使えば、セル範囲を別の場所にコピー/カットして貼り付けることができ、2つのエリアの間でも可能です。範囲をコピーするもう一つの方法は、VP Copy to objectコマンドでオブジェクトの中にコピーして、例えばデータベースに保存することです。

プリントインターフェース

お客様が印刷の設定を簡単にできるように、リボンに新しい機能が追加されました。”Page layout” タブと “Page setup” ダイアログで印刷設定をサポートしています。このダイアログには、「ページ」「余白」「ヘッダー/フッター」「シート」のタブがあり、VP SET PRINT INFOコマンドで多くのオプションを管理することが可能です。

シートにAデータコンテキストを入力する

4D View Proは、データを読み込んでテンプレートを作成する新しい方法として、データコンテキストを提供します。このデータコンテキストを設定することで、プレースホルダーでドキュメントを作成し、それを埋めることができます。

コレクションをテーブルとして表示する

4D View Proでは、すでにスプレッドシートのデータを簡単に読み込んで表示することができます。4D v20では、新しいテーブル機能が追加され、ヘッダー、テーブルのサイズ変更、要約行、列のソート、フィルターなどの追加プロパティの恩恵を受け、より多くのことができるようになりました。この機能により、データクラスやコレクションからデータを素早く読み込むこともできます。新しいVP CREATE TABLEコマンドにご挨拶を。

行と列を管理する

4D v20では、エンドユーザーのニーズに応じて列や行を追加したり削除したりと、テーブルの列や行をより効率的に管理できる新しいコマンドをいくつか追加しました。

この新機能をデータコンテクストと組み合わせることで、レポート、請求書、契約書、その他のドキュメントタイプなど、あらゆる状況に対して正しい情報をビジネスコンテンツに自動的に入力する、より高度なテンプレートを設計することができます。

テーブルスタイルのカスタマイズ

テーブルは、4D View Proのドキュメントに不可欠な要素です。そのため、さまざまなリリースで、テーブルに関連する多くの進歩を提供してきました。4D v20 では、テーブルをドキュメントの他の部分と完全に調和させるためのスタイリングに関する新機能が追加されました。

今後、VP Set table theme 、60以上の定義済みテーブルスタイルの1つをプログラミングで適用する方法が提供されます。これらのスタイルがあなたのニーズを満たさない場合、あなた自身のテーマを定義し、それをテーブルに適用することができます。

R-リリースの深堀り