4D v19での新機能

このドキュメントは、4D v19 で利用可能な新機能を全てのまとめです。なお、それぞれの機能には具体的な例題を示すためのブログ記事があります。これらのブログ記事はそれぞれの記事のタイトルをクリックすることで飛ぶことができます。

また、blank タグのついたセクションは、4D v18 R6と4D v19との間でリリースされた新機能に関連するものです。

このドキュメントは7つの章に分けられます:

ネイティブのSiliconサポート

Apple の革新的な発表(the new Silicon Macs)を受け、私たちは4D v19 のリリースを予定より6ヶ月早めることにしました。 これは皆様に、Siliconネイティブなバージョンの4D をなるべく早くお届けするためです。記録的な パフォーマンスの向上に加えて、以下のような新しいポイントがあります:

 

Silicon を搭載したMacはインテル版MacやWindowsのようにx86プロセッサアーキテクチャーを使用していないため、同じコンパイルコードを実行することはできません。そのため、コンパイラーをSilicon用のコンパイル(プロジェクトモードでのみ利用可能)に特化するように改善することとなりました。今後は、作成したアプリケーションをインテルアーキテクチャー向け(Windows およびインテル版Mac)、Silicon アーキテクチャー向け(Silicon 版Mac)、または両方のアーキテクチャー向けにコンパイルすることが可能になりました。

プラグイン

v19ではプラグインにも若干の影響があります。プラグインがインテルとSiliconの両方のMacで動作するためには、プラグインをユニバーサルバイナリー版としてコンパイルする必要があります。またサードパーティ製のプラグインを使用している場合、Siliconネイティブのものかユニバーサルバイナリーバージョンをダウンロードするようにしてください。

まだ乗り換えに時間がかかる場合は…

もちろん、4D v19 はRosetta版でも引き続きお使いいただけます。作成したアプリをネイティブに動作させるのにまだ時間がかかる場合は、それらをRosettaで動作させることができます。

プロジェクトモード独自の機能

4D アプリケーションにおける大きな進化を象徴するアーキテクチャーであるプロジェクトは、4D の世界にソース管理ツール、共同プログラミング、コード共有、モジュラリティ、その他たくさんの可能性を開いてくれました。プロジェクトモードと、ソース管理システムを通してプロジェクトアプリケーションソースコードを共有できるようになったおかげで、私たちは(この記事執筆時点で)45 ものレポジトリGitHub 上に公開することができました。これにはHDI、コンポーネント、そして例題アプリケーションなどが含まれます。

さらに4D v19 では、プログラミングのしやすさを大幅に改善する新機能がたくさん用意されています。

 

クラス

プロジェクトモードのおかげで、クラス を導入することができました。クラスを使用すると、プロパティや関数などを含めて、オブジェクトの振る舞いを定義することができるようになります。クラスが定義されると、このクラスのオブジェクトをコード内のどこにおいてもインスタンス化して使用することができるようになります。それぞれのオブジェクトはそのクラスのインスタンスです。クラスは他のクラスへ拡張することもでき、そしてその関数を継承することも可能です。

4D では2種類のクラスが利用可能です。( 4D コマンドによって返される)ビルトイン4D クラスと、( cs コマンドによって返される)ユーザークラスです。

オブジェクトをクラスのインスタンスとして作成するためには、 cs コマンドに対して new メンバーファンクションを使用します。ここで知っておきたい重要な単語はコンストラクターです。コンストラクターを使用するとデフォルトの属性を持ったオブジェクトを作成/インスタンス化することができます。オブジェクトが初期化される際には自動的に呼び出されます。クラスの作成はツールバーの”新規”メニュー、もしくは”エクスプローラー”ダイアログから行うことができます。作成するとクラスエディターが表示され、そこでクラスコンストラクターとその関数を作成することができます。 ドキュメントを読む

クラスの継承

継承とは、クラスが他のクラス(クラスといいます)の振る舞いを継承することを指します。あるユーザークラスから他のクラスへと継承をするためには、Class extends キーワードを使用すると、(クラスに対して特定のコンストラクターをまだ定義していなかった場合)クラスのコンストラクターが自動的に呼び出されます。また Super コマンドを使用することで親クラスのコンストラクターを呼び出すこともできます。 ドキュメントを読む

メソッドと関数に対して引数に名前を付ける

これからは中間変数を経由することなく、以下のものを宣言するときに引数と戻り値に名前を付けることができます:

  • プロジェクトメソッド
  • トリガ
  • データベースメソッド
  • フォームメソッド
  • クラスコンストラクター
  • クラス関数ドキュメントを読む

 

フォームエディター内でのCSSプレビュー機能

この機能は、フィーチャーリクエストフォーラムにおいて、もっと投票された機能であり、最速でトップフィーチャーになった機能でした。この機能によってフォームエディター内で最終的なCSSレンダリングをプレビューすることができるようになります。この機能のために、ツールバーには新しいアイコンが追加され、これによってCSSレンダリング付き/なしでフォームを見ることが可能になり、さらにはMac用/Windows用の特定のCSSレンダリングを使用した場合の見た目も表示できるようになりました。CSSモードでプロパティを上書きする場合、新しいバッジタイプ(オブジェクトメソッドまたは入力順に似たバッジ)がフォームエディターに表示されるようになりました。これによってどのオブジェクトがCSSによって影響を受けるかがわかりやすくなりました。 ドキュメントを読む

 

サーバーコード開発

サーバーコードの開発とデバッグは、プロジェクトアプリケーションにおいて容易になります。チーム開発モードにおいて、シングルユーザー環境を使用している複数のデベロッパーがバージョン管理システムにそれぞれのチェンジをコミットしている場合、RELOAD PROJECT コマンドとgit pull のようなコマンドを組み合わせることで、サーバーを再起動することなく実行中のサーバーを新しいコードでアップデートし、それをテストすることができます(あるいは同じことをプロダクションモードで行うこともできます)。

4D デベロッパーのクライアントが4D Serverに、同じコンピューター上から接続した場合、.4DZ ファイルはサーバーからクライアントへは転送されません。4D リモートはプロジェクトファイル(メソッド、フォーム、リソースなど)を、4D シングルユーザークライアントと同じように管理します。つまりプロジェクトファイルは4D Server と4D リモートとで共有されるということです。これによって、コードの編集/テストをオンザフライで行うことができます。

サーバーに編集したファイルをリロードしてほしい場合、開発環境からアプリケーションモードにスイッチして、4D Server を前面に移動する、あるいは4D リモートの”ファイル→全て保存“メニューを選択してください(または新しい RELOAD PROJECT コマンドを使用)。

クライアント側でメソッドを実行することは自動的に”全てを保存”アクションを実行し、その結果、編集されたファイルがサーバー側でリロードされる、という点には注意してください。 ドキュメントを読む

 

マクロ

フォームエディターで、マクロが利用できるようになりました。フォームマクロを使用すると、以下のようなことができるようになります:

  • 一つまたは複数のフォームオブジェクトのプロパティを編集/プロパティを追加/プロパティを削除することができ、例えばボタンのカラーを変更したり幅を変更したりすることができます
  • 一つまたは複数のフォームオブジェクトを(割り当てられたオブジェクトメソッドも含めて)追加または作成する
  • エディター内でフォームオブジェクトを選択/選択解除する
  • パラメーターを入力するためのモーダルダイアログをオンザフライで表示する
  • フォームオブジェクトの理想的な位置を計算してそこに移動する
  • あるフォームオブジェクトからCSS クラスを作成し、それをテンプレートとして使用する
  • フォーム内の画像パスが有効かどうかをチェックする
  • CSS ファイルを、ディスク上に表示するのではなくCSS エディタで開く
  • XLIFF 参照が、それに対応するものがXLIFF ファイル内にあるかどうかをチェックする
  • などなど!

フォームマクロはコンテキストメニューから利用可能です。最初にホストデータベースのマクロが表示され、そのあとにコンポーネントのマクロが表示されます。マクロを実行するためには、メニュー項目をクリックするだけです。フォームマクロを作成するためには、プロジェクト内のSources フォルダの第1階層のformMacros.json ファイル内でそれらを宣言するだけです。私たちが作成した、GitHub 上から利用可能ないくつかのマクロ例題もチェックしてみてください。これらをアプリケーション内にコンポーネントとして統合してテストすることもできます。 ドキュメントを読む

 

メソッドのドキュメンテーション

データベースメソッド、トリガ、プロジェクトメソッド、テーブルフォームメソッドに対して、独自のドキュメンテーションを作成することができるようになりました。ドキュメンテーションはマークダウンファイルとして保存されており、ドキュメンテーションフォルダ内にそのメソッドやフォームと同じ名前で保存されています。このフォーマットは4D のエクスプローラー、GitHub、その他のツールにおいて表示することができます。ドキュメンテーションにはその要素のどんな詳細でも記述することができ、またその要素がデータベース内でどのように機能するかを理解するのに必要な情報などを含めることもできます。プロジェクトデータベース内のドキュメンテーションを作成または編集するためには、エクスプローラーから”作成”ボタンをクリックするか、”ドキュメンテーションを編集”メニュー項目を選択します。4D はそれに対応したファイルを作成し、定義済みのテンプレートとともにデフォルトのエディターでそのファイルを開きます。 ドキュメントを読む

4D は、それぞれのプラットフォームのガイドラインを遵守した、3つの自動フォントテーマを提供しています。4D v19では、これらの自動テーマのサイズを上書きすることができ、テキストがどのように表示されるかということについてより細かくコントロールできるようになっています。 ドキュメントを読む

 

4D for iOS

 

4D for iOS の機能は、4D v19 において拡張されました:

 

オフラインでの動作blank

4D for iOSは今後は、オフラインで動作し、4D Server と柔軟にやりとりをすることができるようになりました。

ネットワークが利用可能でない場合、行ったタスクはキューに入れられ、サーバーが利用可能になるのを待ちます。これによって常に遅延なく動作しているアプリとのスムーズで効果的なやりとりが保証されます。ドキュメントを読む

 

ディープリンク

ディープリンクを使用すると、URLを、例えばEメールの中などで共有することができます。このURL をクリックすると、4D for iOS アプリ内の特定のレコードを直接開くことができます。プッシュ通知と組み合わせることで、例えば営業部に新しい見積もりを伝えたり、あるいは保険代理人に新しい案件について伝えることができます。単一のクリックだけでアプリを開き、指定されたレコードを表示させることができるというわけです。ドキュメントを読む

 

プッシュ通知

プッシュ通知は、iOS アプリユーザーのエンゲージ率を高め、最新の情報を知らせるのに最適な方法です。

4D for iOS では、iOS デバイスとの同期をトリガーするためのプッシュ通知を設定することができます。これによってユーザーインターフェースを即座にアップデートしたり、あるいは通知を受け取ったユーザーがチェックできるリアルタイムなデータを提供したりすることができます。ドキュメントを読む

 

新しいパラメーターフォーマット: 指紋での署名とバーコード

アプリをよりインタラクティブにするために、4D for iOS への新しいパラメーターフォーマットが追加されました:

  • 署名フォーマット: 指紋で署名をし、その署名をアプリからサーバーへと直接送信することができます。この機能は例えばパッケージ配布のあとにカスタマーの署名を集めるためなどには有用と言えます。
  • バーコードフォーマット: あらゆる値をバーコード(EAN13、EAN8、QRコード、など)に割り当て、それらをアクションフォームからシンプルにスキャンするだけで値を読み取ることができます。これは、例えばアプリから直接QRコードをスキャンするだけで商品参照を追加するためにはとても有用な方法です。ドキュメントを読む

 

ストラクチャーセクションにおいて、1対N リレーションを、N対1 リレーションからアクセスして公開することができます。つまり結論からいうと、4D for iOSではN対N リレーションを表示することができ、これによってかつてないほど人間工学的なiOS アプリを配布することができるようになります!これには、フィールドにリレーションをドロップすることで相互作用を追加したり、あるいは1対N リレーションをクリックすることで対応するレコード番号を表示するなどのさらなる機能もあります。ドキュメントを読む

 

バーコードスキャンのサポート

バーコードスキャンサポートの追加によって、検索は大幅に強化されました。これによってアプリをそれぞれの用途(例: 倉庫の在庫管理など)に応じて適応させることができるようになりました。

技術的には、この機能を使用することで、以下のようなことができるようになります:

  • コードの値に応じて一覧フォームをフィルタリングすることができます。レコードがバーコードの値に合致した場合には、レコードの詳細フォームを直接開きます。
  • ディープリンクと組み合わせることで、その値がURL スキーム、またはユニバーサルリンクであるバーコードをスキャンするだけで、特定の一覧フォームと詳細フォームを表示することができるようになります。ドキュメントを読む

 

QRコードを使用してサインインするblank

4D for iOS では、ログインするための新しくてモダンな方法を提供しています。これはQRコードをスキャンするだけでユーザーにログインを許可し、すでに許可されているユーザーにアクセス権を与えるSignInWithQRCode ログインフォームテンプレートを使用しています。ドキュメントを読む

 

最適化されたデータ同期

4D for iOS のデータ同期プロセスは最適化され、これまでより25倍も早いデータ同期を実現しています。ドキュメントを読む

 

Eメール認証

4D for iOS ではEメール認証によってアプリにログインしようとしている人物の正当性と信憑性を容易に判断することができます。これはログインしたいとする人物に送信されるEメールを認証することによって行われます。基本的に、このプロセスはユーザーセッションのステータスをアップデートし、アプリケーションへのアクセス権を与えます:

  • ユーザーがログインフォームにEメールアドレスを入力し、Login ボタンをクリックすると、そのセッションステータスは”pending” へとアップデートされます。
  • 認証Eメールがユーザーへと送信され、ユーザーがその認証リンクをクリックするだけで”pending”から”accepted”へとアップデートされます。
  • 認証プロセスが完了し、ユーザーが再びアプリを開くと、セッションステータスが”accepted”に変更されているため、アクセス権が与えられます。

このプロセスを管理し、流れを容易にしているコンポーネント は公開されており、あなたの用途に応じて認証プロセスを適応させることができます。ドキュメントを読む

 

テンプレートから詳細フォームをビルド

詳細フォームには、必要なフィールドを好きなだけドロップすることができます。なぜなら詳細フォームはスクローラブルだからです。詳細フォームにフィールドを追加する方法はいくつかあります:

  • 空のテンプレートを選択した場合、そこにはあらゆるフィールドを制約なしにドロップすることができます。
  • フィールドをビュー内部にドラッグドロップすることで、最後に追加されたフィールドのすぐ後、またはすでに表示されているフィールドの間に追加/表示することができます。
  • フィールドをダブルクリックすると、そのフィールドはリストの最後に追加されます。
  • 左にあるフィールド表内の利用可能なフィールドの一つを右クリックします。これにより表示されるメニューを使用して、詳細フォームに含まれていないフィールドを追加することができます。ドキュメントを読む

 

すぐに使用できるテンプレート

40以上ものすぐに使用できるテンプレートが、プロジェクトエディター内からアクセス可能な状態で用意されています。この一覧はGitHub 場で利用可能な最新のテンプレートの動的な一覧に基づいています。テンプレートを使用するためには、一覧フォームと詳細フォームの両方において表示される“もっと表示”アイコンをクリックすることで、フォームセクションにある全てのテンプレートの一覧を表示します。テンプレートを選択すると、4D for iOSが以降のインストールを管理します。最終ステップとして、テンプレートを必要に応じて変更を加えることができます。ドキュメントを読む

ORDA

4D v19 では引き続きORDA に改善が加えられています。多様な機能(以下参照)に加えて、ORDA データモデル上に高レベルなクラス関数を作成することができます。これにより高度に複雑なビジネス向けのコードを書いたり、ヘラーを減らしたり、そして開発プロセスをスピードアップさせることができます。これに加えて、REST server を使用することで、プロジェクトをさながらAPI のように公開することもできます。

データモデルを管理するORDAクラス

ORDAのストラクチャー(データストア、データクラス、エンティティ、エンティティセレクション)は、特定のORDA クラスにリンクされた、高度に型指定されたオブジェクトから出来上がっています。これはデータの物理的な実装の複雑さを隠すファンクションを書くことができるということです。

4D は以下のものを自動的に作成します:

  • Entity クラス: エンティティに関連したファンクション(例えば現在の請求書用の送料を計算するなど。特定のレコードに割り当てられたコード)を実装するのに使用します。
  • EntitySelection クラス: エンティティセレクションに関連したファンクション(例えば選択されたレコードの統計を実行するなど。特定のセレクションに割り当てられたコード)を実装するのに使用します。
  • DataClass クラス: データクラスに関連したファンクション(テーブルに関連しつつも、特定のレコードやセレクションとは関係ないコード。例えば提供されたパラメーターに基づいて新規レコードを作成するなど)を実装するのに使用します。
  • DataStore: データストアに関連したファンクション(特定のテーブルやレコードなどに関連しないコードを実行する、汎用的なプロジェクトメソッドに近いもの)を実装するのに使用します。ドキュメントを読む

 

ORDA データモデルクラスとREST

REST リクエスト経由でORDA データモデル用に定義されたクラスファンクションを呼び出すことで、ターゲットの4D アプリケーションプロジェクウトの公開されたAPIの利点を活かすことができます。あなたのビジネスロジックを(クラス経由で)管理されたAPIをしようして、Angular やReact などのWeb フレームワークなどのその他のツール用に公開することができます。ドキュメントを読む

 

ファンクションのスコープと実行コンテキスト

デフォルトで、クライアント/サーバーモードにおいては、ORDA クラスファンクションはサーバー側で実行されます。今後は、新しいキーワード: local を使用することで、一部のファンクションをクライアント側で実行することを選択することができるようになります。また、新しいキーワード: exposed を使用することで、どのファンクションをREST クライアントに対してAPI として公開するか(あるいはしないか)を選択することができます。ドキュメントを読む

 

新しい4Dタグを使用してループblank

新しい4Dタグが利用できるようになりました: 4DEACH タグです。これを使用することで、SHTML ページ内、あるいは PROCESS 4D TAGS コマンド内において4Dタグとして使用することができます。

これにより、PROCESS 4D TAGS や SHTML 内でORDA やオブジェクトを使用するのが劇的にシンプルになります。ドキュメントを読む

 

モデルの更新

4D シングルユーザー版においては、ストラクチャーが変更された際に、データベースを再起動しなくても最新のデータストアにアクセスできるようになりました。

クライアント/サーバーモードを使用している場合、4D Server で実行されているコードに関しては問題なく更新されます。リモートクライアントにおいては、ストラクチャーの更新が必要な場合にはクライアントの再起動が必要になります。ドキュメントを読む

 

共有可能なエンティティセレクション

時として、エンティティセレクションを他のプロセスと共有したい、あるいは全てのプロセスに対して利用可能にしたいという場合もあるでしょう。例えば、期日を過ぎた請求書を全て探す複雑なクエリを実効していて、エンドユーザーがそれらの一部(または全部)を選択できるようにし、Eメールで支払いの督促を送信する、というような状況を想像してみてください。Eメールの送信は、ユーザーの操作をブロックしないようにするため、別プロセスで行うのがベストです。他のプロセスに渡すためのプライマリーキーの一覧をビルドする代わりに、共有エンティティセレクションを使用すれば、それを直接他のプロセスへと渡すことができます。共有エンティティセレクションはStorage オブジェクトに割り当てることで、全てのプロセス間で共有することもできるようになります。

分かりやすくまとめると、共有可能エンティティセレクションと共有不可エンティティセレクションは、以下のような特徴を持ちます:

  • 共有可能エンティティセレクションは、共有オブジェクトまたは共有コレクションに保管可能で、複数のプロセスまたはワーカーで共有することができます。新しくエンティティを追加することはできません。共有エンティティセレクションに新しいエンティティを追加しようとした場合、エラーがトリガーされます。
    • 共有不可エンティティセレクションはプロセス間で共有することはできず、また共有オブジェクトや共有コレクションに保存することもできません、共有不可エンティティセレクションを共有オブジェクトまたは共有コレクションに入れようとした場合、エラーがトリガーされます。ただし、共有不可エンティティセレクションには新しくエンティティを追加することができます。 ドキュメントを読む

 

エンティティセレクションの新しいメソッド

新しいメンバーメソッドが利用できるようになりました:

  • extract(): エンティティセレクションからデータを取り出すことができます。これを使用することで、エンティティのデータから完全にカスタマイズしたコレクションをビルドすることができます。取得したいデータクラスの属性と、返されるコレクションでの名前を指定することができます。
  • refresh(): ORDA キャッシュ内にあるエンティティセレクションを無効化します。これによりデータを次回使用する際にサーバーからデータの更新をトリガーします。デフォルトでは、ORDA キャッシュは30秒で失効するので、このメンバーメソッドは最新のデータが今すぐ必要な場合に使用してください。ドキュメントを読む

 

4D ランゲージとその他のプログラミング機能

macOS でのダークモードのサポートblank

4D ではダークモードのサポートを追加しました。これによって、macOS レベルでダークモードが設定された場合には自動的に4D に適用されます。これはまだ始まりに過ぎず、将来のバージョン においては、全コンポーネント(例:4D Write Pro ウィジェットなど)、デザインモード、そしてWindowsでのサポートなどのその他の機能も追加される予定です。ドキュメントを読む

コードエディターでの複数のテーマblank

4D では基本的なテーマを提供しており、これをさらに自分の好みに合わせて手を加えることができます:

  • “default light theme” (クラシックエディターのカラーに基づいています)
  • “default dark theme” (新規カラー)

あなたの同僚が使っていたカラーテーマや、例えばGitHubなどで見つけたカラーテーマが気に入った場合、以下の箇所にJSON テーマファイルを追加するだけでそのテーマを使用できます:

  • macOS の場合、“<diskName>/Users/<userName>/Application Support/4D/4DEditorTheme”
  • Windows の場合、“<diskName>:\Users\userName>\AppData\Roaming\4D\4DEditorTheme” ドキュメントを読む
プログラミングデコンパイルを開始するblank

継続した統合型システムでは、新しいコードがサブミットされるたび、あるいは毎日の定時などで、ソースコードのコンパイルが自動的に開始されます。このアプローチを使用すると、コード管理サーバーにおいてマージをチェックすることができるようになります。4D v19 以降、新しい Compile Project コマンドを使用することで、コードコンパイルを自動的に開始することができ、こういったタイプのシステムをセットアップすることができます。ドキュメントを読む

 
アプリケーションの情報を管理する blank

アプリケーションをビルドするためには、ビルドされたアプリケーションを設定することができるXMLキーのセットとBUILD APPLICATION コマンドを使用します。ビルドプロセスの後でも、会社名、著作権、あるいはアプリケーションのバージョンなどの情報を追加することが可能です。4D v19以降、XML ランゲージやinfo.plist ファイル構造を熟知することなく、Windows でもmacOS でもこれらの情報を読み出し、追加あるいは編集することができます。

このために、アプリケーション情報の読み書きを可能にするための2つの新しいファンクションが追加されました:

  • アプリケーション情報を.exe (Windows) または .plist (macOS) ファイルに追加するためには、設定したい属性を格納したオブジェクトを、setAppInfo ファンクションに渡します。
  • アプリケーション情報を.exe (Windows) または .plist (macOS) ファイルから読み出すためには、getAppInfo を使用します。すると全ての属性が格納された一つのオブジェクトが返されます。ドキュメントを読む

 

 

4D アーカイブクライアントの作成をシンプルにblank

macOS Big Sur 以降、署名されていないアプリケーションは実行できないようになりました。過去には、Windows で実行されるサーバーでMac クライアントからの接続を許可するクライアント/サーバーアプリをビルドすることでそれらを回避してきたこともありました。4D v19 のリリースにおいて、4D 内部のアプリケーションビルドのがこのシナリオを管理できるようにアップデートされました。

 

4D ログフォーマットの進化blank

私たちは4Dのログフォーマットを見直し、可読性を向上させ、自動解析との整合性を向上させました。これらの改善は、私たちが経験した実際の状況に対応するように追加され、これによって4D ログの使用を妨げる問題の解消に注力しています。ドキュメントを読む.

 

フォームオブジェクト内部においてコレクションとリストを使用する blank

4D v19以降、コレクションを使用して、一部のインターフェースオブジェクトを、フォームの機能の使用なども含めて定義することができるようになりました。これは汎用的なインターフェース管理においてはとても有用です。またリストがどのように使用されるかという点についても改善を加えました。

リストの使用は以下のような点において改善されました:
階層リスト
タブコントロール (第一の使用法)

以下のオブジェクトにおいては、コレクションを参照として使用できるようになりました:
– ドロップダウンリスト(または“ポップアップリスト”)
コンボボックス
– タブコントロール (第二の使用法) ドキュメントを読む

 

データを4Dのアルゴリズムで暗号化するblank

4D では、データを暗号化するための、単純でありながら強力な方法を提供しています。今後は、このデータを暗号化するのに使用されるものと同じアルゴリズム(AES-256)を、必要に応じて他にも使用することができるようになります。以下のコマンドを使用することで、どんな情報でも暗号化/復号化することができます: Encrypt data BLOB および Decrypt data BLOB です。ドキュメントを読む

新しい宣言シンタックス

変数を宣言するための新しいシンタックスが利用できるようになりました。これは var キーワードと、変数名、そしてその型を使用します。この新しいシンタックスを使用すると、変数を宣言する際の自動補完が大幅に改良されます。また同じデータベース内で、従来の方法と新しいシンタックスと、両方を使用して変数を宣言することができます。 ドキュメントを読む

 

プロトタイプと短い説明の表示

エディター内でのコードの書き方をよりシンプルに、より容易にするため、コードエディター内でファンクションのプロトタイプと短い説明が表示されるようになりました。

サジェスチョンリストは的確にコードの補完(短い説明つき)とプロトタイプを提示するため、コードをより早く、より正確に書くことができるようになります。またファンクションを書いている間、4D はそのファンクションのプロトタイプと短い説明を表示します。また現在記入している引数をハイライトします。ドキュメントを読む

 

Eメール

OAuth 2.0 のサポート

OAuth 2.0 は、ユーザーの身元や情報を明かすことなくデータへのアクセスを提供することでユーザーデータを保護する承認および認証規格です。近年、Eメールサーバーはセキュリティ強化のために、この規格への移行を始めています。Office365やGmailなどは、Eメールの管理にこのOAUTH2の使用を推奨しています。

4D v19 以降、4D では接続時にOAuth 2.0 認証を設定する方法を提供しています。IMAP、SMTP、POP3 トランスポーターは今後はネイティブにOAuth 2.0 プロトコルをサポートします!ドキュメントを読む

 

IMAP フラグを管理

IMAP プロトコルでは、メッセージに様々なフラグ を割り当てることができ、これによって詳細な情報を管理することができるようになりました。4D v19 では、IMAP トランスポーターオブジェクトに、IMAP フラグを追加または削除するための複数の機能が追加されました。

IMAP プロトコルでは、以下の5つのフラグを管理することができます:

  • \Seen: メッセージは既に読まれています。
  • \Answered: メッセージは既に回答済みです。
  • \Flagged: メッセージは、緊急または特殊は注意のために、”フラグ付き”としてマークされています。
  • \Deleted: メッセージは”削除予定”としてマークされています。実際の削除は、expunge() ファンクションを呼び出したとき、メールボックスを変更したとき、あるいは接続を閉じたときに行われます。このフラグは、delete() ファンクションによって事前に追加されている必要があります。
  • \Draft: メッセージはその作成が完了していません(下書きとしてマークされています)。ドキュメントを読む

 

IMAP でメールボックスの作成、削除、名称変更を行うblank

メールボックスをプログラミングで管理するためのファンクションが利用できるようになりました。この管理には、メールボックスの作成、名称変更、そして削除が含まれます。メールボックスは、Microsoft OutlookやApple のメールなどのメールクライアントではフォルダとして表示されます。ドキュメントを読む

 

メールを特定のメールボックスに保存

もしユーザーがーOutlook やAppple のメールの”送信済み”メールボックス内に、4D から送信したメールのコピーが入っていてほしいような場合、4D v19 ではそれに対する答えがあります。送信済みのEメールのコピーを保存することです:

  • 最初に、2つのトランスポーターを作成します。Eメールをクライアントへと送信するSMTP トランスポーターと、そのメールをメールサーバーへとアップロードするためのIMAP トランスポーターです。
  • SMTP でEメールを送信した後、IMAP トランスポーターのappend() ファンクションを使用します。ドキュメントを読む

 

ダウンロードしたいEメールの検索

検索を実行すると、例えば「全ての未読メッセージ」、「過去4週間以内の特定の人物からの全てのメッセージ」、などといったような条件に基づいたメッセージの一覧を取得することができます。コマンドはメールID のコレクションを返し、これを新しいgetMails メソッドに直接渡すことで、それらのメッセージをダウンロードすることができます。ドキュメントを読む

 

Eメールのコピー、移動、削除

IMAP トランスポーターに3つの新しいファンクションが追加されました。: copy()move()、そしてdelete()です。ドキュメントを読む

 

POP3 を使用してEメールを受信

新しいPOP3 New transporter コマンドを使用することで、POP3 を使用してメールをローカルにダウンロードし、メールサーバーからそれらのメッセージを削除することができます。Post Office Protocol (POP) とは、メールサーバーからEメールを取得するためのインターネット規格のプロトコルです。この規格は、POP3 サーバーに接続したり、メッセージを受信して(ローカルデータベースに保存するなど)自動的に処理したり、あるいはサーバーからメッセージを削除するために有用です。これに加えて、Eメールを管理するための複数のメソッドが追加されました:

  • getMailInfoList(): メールボックス内の全てのメッセージについての情報を返します。
  • getMailInfo(): 単一のメッセージについての情報を返します。
  • getMail(): getMailInfoList() によって返されるメッセージ番号を引数として渡すことで、特定のメッセージをダウンロードすることができます。
  • delete(): セッションの終わりに削除するメッセージにフラグをつけます。
  • getBoxInfo(): メールボックス内のEメールの数とメールボックスのサイズを返します。ドキュメントを読む

 

IMAP を使用してEメールを受信

SMTP とPOP3 と同じように、IMAP プロトコルを管理するための新しいIMAP New transporter コマンドが追加されました。また、メールボックスを選択、Eメールをダウンロードするためのコマンドも追加されています。ドキュメントを読む

 

EメールをMIMEフォーマットでダウンロード

4D v19 では、Eメールをオリジナルの、変換されていない、受信されたままのフォーマットで保存することができるコマンドが提供されています。POP3_transporter.getMIMEAsBlob( ) を使用することで、特定のメッセージのMIME コンテンツを格納したBLOB を取得することができ、これをデータベースあるいはそれ以外の場所に保存することができます。ドキュメントを読む

 

新しいCryptoKey クラス

一般的な暗号オペレーション(署名と認証、暗号化、復号化)を実行するための複数のメソッドを提供する新しいクラスが利用可能になりました: CryptoKey クラスです。これを使用するとデータの機密性を保護したり、メッセージとその送信者の正当性を検証したりすることができます。これらは以下のような用途に適しています:

  • 機密性: データを認証されていないアクセスから保護します。
  • 整合性: データが完全で正しいことを保証します。
  • 正当性: メッセージの送信者/受信者の正当性を検証します。ドキュメントを読む

 

Web

スケーラブルWeb セッション

4D Web サーバーは、Web アプリケーションのパフォーマンスを大幅に向上させる新しい種類のWebセッションを提供します: それがスケーラブルWeb セッションです。

スケーラブルWeb セッションは複数のプロセスをプリエンプティブモードで管理することができます。これはつまり複数の緊急のユーザーリクエストを同時に管理することができ、またデータをそれらのプロセス間で共有できるということを意味します。ドキュメントを読む

 

Cookie のSameSite およびSecure 属性 blank

Cookie の能力は年々成長と進化を遂げていますが、一部には旧式の機能も残されています。これらを管理するために、ブラウザ(Safari、Chrome、Firefox、およびEdgeを含む)は、Cookieのセキュア・バイ・デフォルト モデルに対応するために、SameSite および Secure 属性に関する振る舞い を変える予定です。これに付随して、4D v19 ではいくつかの改良がもたらされる予定です。ドキュメントを読む

 

クロスオリジン共有(CORS)のサポート

CORS プロトコルは、Webページが自身のドメイン以外のドメインに対してリクエストを送信することを禁止します。しかしながら、他のサイトがあなたのサーバーにHTTP リクエストを行い、データの取得/送信などを許可したい場合、以下の方法があります:

  • プログラミングによって: この場合、WEB SET OPTION および WEB Server コマンドを使用します。これらのコマンドにドメインを引数として渡すことで、そのドメインに対して特定のアクション(GET、POST、HEAD、PUT)を許可することができます。
  • データベース設定によって: この場合、データベース設定> Web > オプション (II) ウィンドウのオプションを使用します。ドキュメントを読む

 

データエクスプローラ(プレビュー版)

4D v19 では4D データエクスプローラのプレビュー版を提供します。4D デベロッパーまたは管理者は、WebサーバーライセンスなしにアプリケーションのデータをWeb ブラウザから簡単に閲覧することができるようになります。この機能の詳細については、こちらのビデオ をご覧ください。

 

組み込み4D Server でのカスタマイズされた4D キャッシュフォルダ

あなたのマシンが、異なるバージョンの4Dでビルドされた組み込みサーバーアプリをホストしている場合、共有4Dストラクチャーフォルダの影響による問題に遭遇するかもしれません。異なるバージョンの4Dでビルドされた組み込みサーバーアプリ間でこのシステムフォルダを共有することを避けるために、新しいbuildApp キーを使用することで、ビルドアプリケーションプロセスの際にこのフォルダの名前をカスタマイズすることができ、独自のストラクチャーフォルダを設定することができるようになりました。ドキュメントを読む

 

組み込み4D クライアントでのカスタマイズされた4D キャッシュフォルダ

リモートアプリケーションを複数のサーバーに接続していると、時としてシステムのローカルリソースフォルダのサイズが膨大になってしまうことがあります。これは時間、容量、そしてネットワークの浪費となり得ます。これからは新しいbuildApp キーを使用することで全ての同一のサーバーに対しては同じローカルリソースフォルダを共有することができるようになります。ドキュメントを読む

 

改善されたログファイルの統合

4D Serverをプロダクションとして使用している場合、あらゆることが管理者抜きでも実行されていくように自動化されてなければなりません。これは特に自動アップデートやヘッドレスモードでの動作時には重要です。ですが停電やクラッシュなどのあと、ログファイル内での些細なエラーによって、自動的に再起動した4D Serverが停止してしまうことがあります。新しいオプションを使用することで、致命的でないエラーメッセージを飛ばすことができ(ただしログファイルには記録されます)、これによってシステムダウンの時間を減らすことができます。 ドキュメントを読む

 

ユーザー権限を動的に付与する

独自のエンドユーザー管理システムとSET USER ALIAS コマンドを使用することに続き、エンドユーザーのユーザー権限を管理することができるようになりました。新しいSET GROUP ACCESS コマンドを使用するとグループのメンバー構成を動的に設定することができるようになります。 ドキュメントを読む

 

ユーザーエイリアスをログファイルに記録する

4D v19 ではSET USER ALIAS コマンドの振る舞いが拡張され、コマンドが使用された際に誰がそれを実行したのかを知らせるようになりました。エイリアスが設定されると、それはログファイルに記録されます。これによって、複数のユーザーが同じコンピューターまたはシステムアカウントを共有していた場合でも正しいユーザーが誰なのかを知ることができるようになります。ユーザー名は以下の場所に表示されます:

  • MSC アクティビティ解析とロールバックタブ
  • CHECK LOG FILE コマンドで表示されたダイアログ
  • LOG FILE TO JSON で生成されたJSON ファイル内ドキュメントを読む

 

時間のかかっているオペレーションのモニター

サーバーの動作を遅くうしているオペレーションがどれなのかを調べるために、4D v19では新しいコマンドが提供されました: START MONITORING ACTIVITY です。これは2つの引数(時間とモニターするオペレーション)を使用して、指定された時間を超過しているオペレーションを記録します。このコマンドによって設定された条件に基づいて、Get Monitored Activity() コマンドを使用することで記録された全てのアクティビティを取得することもできます。4D アプリケーションのアクティビティの記録を停止したい、あるいうはアクティビティ一覧を空にしたい場合には、 STOP MONITORING ACTIVITY コマンドを呼び出します。 ドキュメントを読む

 

リストボックス

編集中のセル内のクリックを管理する

on clicked form イベントは、セルが編集中であろうとなかろうと、発生するようになりました。これによってより細やかにコントロールすることができ、インターフェースを改善することができます。これは例えば、セルが編集中にコンテキストメニューを使用して取り得る値を表示したいような場合にはとても有用です。あるいは行が選択されたときに、その特定の行またはセルに対するカラーチョイスを提供することもできます。

互換性のために、on clicked イベント中に実行されるコードが既にある場合、クリックが編集中のセル内で発生した場合にはそのコードが実行されるのを止めたいケースがあるかもしれません。この場合、is editing text コマンドを使用して、事前にセルの編集状態をテストすることができます。ドキュメントを読む

時間型カラムとフッターの自動計算blank

コレクション/エンティティセレクションを使用した新しいリストボックスがあらゆる面で強力である一方、これまでは配列型/セレクション型リストボックスと比較してある制約がありました: 時間の表示と、それから特にフッターの自動計算です。

今後は、全てのタイプのリストボックスにおいて、カラムに時間を表示するだけでなく、フッターに自動計算を表示することができるようになりました。ドキュメントを読む

改善されたタイプアヘッド

通常では、リストボックスは編集モードのときのみキーストロークイベントを受信します。しかしながら、これではリストを自動的にフィルターしたり、ユーザーが入力不可リストボックスとキーボードを使用していた場合にエントリーを選択する、といったことができませんでした。

今後は、たとえセルにデータが入力されている状態でなくとも、リストボックスにフォーカスが当たっていればキーがタイプされた瞬間にOn before Keystroke イベントが生成されるようになります。これによって、4D はどのキーが押されたのかを知ることができるようになり、新しい検索を開始する、またはカレントのセレクションを変更するなどの新しい決断を(プログラミングによって)行うということが可能になります。

新しく追加されたIs editing text コマンドを使用すると、On before keystroke イベントが生成されたときに現在進行中に入力があるかどうかを知ることができます。これを使用すれば、例えば編集中のリストボックスでタイプアヘッド機能をサポートすることができるようになります。On before keystroke および On after keystroke イベントはシステムヘルプダイアログでéä などのダイアクリティカル記号やアジア文字などを選択するのをサポートするようになりました。イベントは、エンドユーザーが最後の文字を選択されるまで生成が待機されます。ですのでこれを自分自身で管理する必要はありません。 ドキュメントを読む

リストボックスの全機能がライセンスなしで利用可能に

今後は4D View Pro ライセンスがなくても、リストボックスの上級者向け機能を利用できるようになります。つまり無料で利用できるということです!これによって以下のような機能を誰でも制約なく利用できるようになります:

  • 各行の高さをそのコンテンツに応じて(テキスト全体またはピクチャ全体が表示されるように)動的に適応する
  • カラム内でオブジェクト配列を使用する(これによって同じリストボックスのカラム内にて様々なタイプの値の表示/入力ができるようになります) ドキュメントを読む

 

コードによって移動可能な行を設定する

配列型 リストボックスの場合、デザインモードにおいて、エンドユーザーが行を動かすことができるかどうか(: 行の並べ替えやグループ化など)を定義することができます。LISTBOX SET PROPERTY および LISTBOX Get property コマンドは新しいプロパティをサポートするように更新されました: lk movable rows です。ドキュメントを読む

リストボックスの行選択

4D v19 では、エンティティセレクションにおいて行の選択を容易にするための新しいコマンドを提供します: LISTBOX SELECT ROWS です。このコマンドは引数としてエンティティセレクションを受け取り、そのエンティティセレクションに合致した行が直感的に選択されます(セレクションに追加/セレクションから削除された行も含まれます)。コレクション型リストボックスに対しては、同じように選択したいオブジェクト参照を格納したコレクションを渡すことができます。ドキュメントを読む

 

利用可能なエリアをコントロールする

macOS のDock、Windowsのタスクバーなどのグラフィックシステム要素が考慮されるようになったので、今後は利用可能なエリア全体を使用することができるようになります。SCREEN COORDINATES コマンドに任意の引数が追加されました: Screen work area です。これによって、アプリケーションのウィンドウが必ず視覚可能なエリア内にあるようにすることができます(特にWindowsでのSDIモードで有用です)。ドキュメントを読む

 

XML: 改善されたXPath サポート

4D v19 以降、 //、@、*、および最後の() といった式をサポートするようになったため、XPath の実装はより分かりやすく、検索もシンプルになります。互換性上の理由から、以前の、非標準の実装は、変換されたデータベースにおいてはデフォルトでは維持されます。変換されたデータベースにおいてこの拡張された機能を使用するためには、データベース設定の互換性 ページ内の標準XPrth を使用する 互換性オプションをチェックしてください。ドキュメントを読む

 

オブジェクトとコレクションの改善

OB Copy() コマンドと、collection.copy() メンバーメソッドが改善されました。今後はこれらは標準のオブジェクトを共有オブジェクト/コレクションに追加することができ、これによって標準のオブジェクトの中身を共有オブジェクト/コレクションにコピーするような煩雑なコードを避けることができます。これに加えて、オブジェクトをハッシュマップとして管理する新しいコマンドも追加されました:

  • OB Keys: オブジェクトのプロパティ名をコレクションとして返します。
  • OB Values: オブジェクトのプロパティの値をコレクションとして返します。
  • OB Entries: オブジェクトを、キープロパティ(プロパティ名)と値(プロパティの値)のオブジェクトを格納したコレクションとして返します。ドキュメントを読む

 

オフスクリーンのWeb エリアを作成

4D v19 では、WA Run offscreen area コマンドを使用することでWebエリアをオフスクリーンで使用することができます。このコマンドを使用するとWebエリアがメモリ内で作成され、Webエリアに以下のような関連する情報を引数として受け取ります:

  • 読み込むURL
  • エリアの名前
  • Webエリアによってイベントが起きた場合に呼び出されるフォーミュラ

またオフスクリーンのWebエリアでのデバッグを単純化するため、新しいコマンドが追加されました: WA OPEN WEB INSPECTOR です。このコマンドはWebインスペクターを開き、ページが正常に読み込まれているか、あるいは書いたJavaScriptコードがエラーを起こさないかどうかなどを検証することができます。ドキュメントを読む

 

プログラミングによってフォームオブジェクトの値にアクセスする

変数や式にかかわらず、フォームオブジェクトの値にアクセスするのを手助けするための2つの新しいコマンドが追加されました: OBJECT Get value および OBJECT SET VALUE です。フォームオブジェクトの値を取得するためには、OBJECT Get value コマンドを使用し、フォームオブジェクトの名前を引数として渡してください。同じように、フォームオブジェクトの値を設定する場合には、OBJECT SET VALUE コマンドを使用し、フォームオブジェクトの名前と新しい値を引数として渡してください。ドキュメントを読む

 

文字列比較の改善

4D では、デベロッパーが遭遇するであろうコンテキストやシチュエーションに応じて適用可能な、検索や文字列比較に使用できる多用途なツールを提供します。

4D v19 では、既存のPosition コマンドに改善が加えられ、新しいCompare strings コマンドも追加されました:

  • Position: このコマンドでは”case sensitive”(大文字と小文字を区別)、”accent sensitive”(アクセント記号の有無を区別)などの多彩な比較設定ができます。日本語に関してはひらがな/カタカナの区別、それからの全角/半角の区別も指定できます。また”whole word”を使用することで単語全体での検索も可能です。
  • Compare strings: このコマンドでは、Position コマンドに追加されたオプションと同じ物を使用して文字列を比較することができます。このコマンドの動作は、データベース設定で定義された言語に基づいています。このコマンドは、例えば特定の条件での並べ替えを行いたい場合などに有用です。ドキュメントを読む

4D デバッガの改善

4D v19にはコードのトレース/解析を容易にするための更なる情報が含まれています。

    • 引数: メソッドまたは関数の、入力/出力引数とその型を知ることは、コードのデバッグをするのに必要不可欠です。今後は宣言行がデバッガウィンドウの左上に表示されるようになりました。また呼び出し連鎖ペインでは引数の型を表示する(あるいは表示しない)ことを選択することができます。
    • コメント: メソッドまたは関数の解説を手助けするため、コードブロックの冒頭にコメントを含めるのは一般的な手法です。これらのコメントも、デバッガ内で表示されるようになりました。ドキュメントを読む

 

リモートデバッガ

この機能を使用すると、サーバー側のコードをどこでデバッグするのか(クライアント側かサーバー側か)を指定することができます。クライアント側でのデバッグは、ヘッドレスモード(またはWindowsサービス)でサーバーを実行している場合には特に有用です。

二つの新しいメニュー項目が、デバッガの起動を管理するために(クライアント/サーバーの両側に)追加されました:

  • デバッガの起動/起動終了: クライアント側またはサーバー側にてデバッガを即座に起動させます。
  • 開始時にデバッガを起動: クライアントまたはサーバーを開始させた時にデバッガを起動させます。

ここでは、デバッガは、一度に4Dのインスタンス1つにしか起動できないという点に注意してください。例えば、クライアント側のデバッガを終了させずにサーバー側でデバッガを起動しようとした場合、デバッガ起動者の情報を含んだエラーメッセージが表示されます。

またデバッガまたはエラーウィンドウがサーバーからのものなのかクライアントからのものなのかを区別しやすくするために、これらのウィンドウの見た目に変更がなされました。ドキュメントを読む

4D Write Pro

 

Word ドキュメントを4D Wrtie Pro フォーマットへと変換するblank

4D Write Pro に、.docx ドキュメントを読み込むことができるようになりました。これを行うためには、既存のWP Import document コマンドで新しいwk docx 定数を使用します。4D Write Pro はMS Word ドキュメントの大部分のコンテンツを読み込みますが、4D Write Pro でサポートされないものについては読み込まれないという点に注意してください(この点についてはドキュメントに説明があります: “.docxフォーマットへの書き出し”)。また、読み込みプロセス中、読み込みプロセスが生成され、4D Write Pro ドキュメント自身内に統合されます。これを見ることで、オリジナルのドキュメントと変換されたドキュメント間でどこに変更が生じた可能性があるかを読み取ることができます。ドキュメントを読む

 

PDF への直接の書き出し

追加の印刷ドライバやソフトウェアなどをインストールすることなく、4D Write Pro ドキュメントはPDF フォーマットへと直接書き出すことができます。直接書き出しは印刷ドライバを経由するより速くて信頼できるだけでなく、書き出し結果をより精細にコントロールすることができます。ハイパーリンクのサポートにくわえ、画像サイズやその他のものを最適化することができます。WP EXPORT DOCUMENT コマンドは、新しい定数wk pdf を受け付けるように改善されました。ドキュメントを読む

 

検索と置換blank

4D Write Pro ドキュメント内のテキストの検索(と置換)はこれまでもWP Get textWP Set text などの基本的なコマンドを組み合わせることで可能でした。新しいコマンドを使用すると、WP Find all と組み合わせることにより、検索と置換をより速く行うことができます。ドキュメントを読む

 

全てのブレークを見つけ出すblank

4D Write Pro は5つのタイプのブレークをサポートしています:

  • ラインブレーク(改行)
  • 段落ブレーク
  • ページブレーク(改ページ)
  • セクションブレーク
  • カラムブレーク

時として、ドキュメント内からある種類のブレークを探し出して他の種類のものと置き換えたり、あるいはその種類のブレークのオカレンスを全て削除したい場合があります。これを可能にするため、新しい関数が開発されました: WP Get breaks です。ドキュメントを読む

 

フォーミュラ: キャリッジリターンの振る舞いを管理する

キャリッジリターンがどう扱われるべきかを定義するための新しいプロパティが利用可能になりました: wk break paragraphs in formulasです。これは2つの値を取りうることができます:

  • wk true: 段落ブレークとして解釈されます。
  • wk false: (デフォルト値) 改行として解釈されます。ドキュメントを読む

 

UI の改善

4D Write Pro インターフェースに、異なるフォーマットのドキュメントの読み込み/の書き出しを可能にするための新しいタブが利用できるようになりました。また、ツールバーとサイドバーにも新しい改善が追加され、次のような機能が追加されました: テキストのインクリメント増加/減少、ルーラーのコピー/ペースト、段落の背景色の変更、単語のスタイル(大文字、小文字、など)の変更、などです。ドキュメントを読む

 

表示するウィジェットページを選択

4D は コレクションの中で指定されたページのみを、コレクション内の順番で表示します。これによって表示される機能セットを限定することができ、エンドユーザーがシンプルに使えるようになります。たとえばスタイルオプションだけが必要な場合、他の機能を全て表示するのはかえって邪魔な場合があります。今後は4D Write Pro ウィジェットはWP ShowTabPages コンポーネントメソッドを使用することで、表示するページを選択することができるようになります。このメソッドを呼び出すときに、対象となるウィジェットの名前と、表示するページのコレクションを渡すだけです。ドキュメントを読む

小数点区切りに使用する文字を選択する

様々なソースからいろいろなドキュメントを受け取った場合、それの数値の表示が必ずしも自分の思っているようになっていない可能性があります。今後は、4D Write Pro ではそれぞれのドキュメントに対してこの設定を指定することができるようになります。数値の小数点の表示を、以下の中から選んで指定できるようになりました:

  • ドット(.)
  • カンマ(,)
  • 最初に見つかった小数点区切り(ドットまたはカンマ)
  • OS で定義されている小数点区切り

様々な互換性(具体的には主にMS Word との互換性)を最大化するため、新規ドキュメントを作成する際には#3のオプションがデフォルトで使用されます。旧式の4D Write ドキュメントを4D Write Pro へと移行する場合、デフォルトでシステムで定義された小数点区切りが使用されます。ドキュメントを読む

 

ソフトハイフンを管理

新しい標準アクションに加え、4D Write Pro インターフェースウィジェットの新しいボタンが提供されたことによって、ソフトハイフン の挿入が容易になりました。

2つの新しい標準アクションが追加されました:

  • insertSoftHyphen
  • removeSoftHyphens

この機能は、4D Write Pro インターフェースウィジェットに内の、ツールバーウィジェットとサイドバーウィジェットの両方に追加されました。ドキュメントを読む

表とその要素のための新しい標準アクション

4D v19 では4D Write Pro 内に表、行、セルのための新しい標準アクションが追加されました。これを使用すると、表の境界線タイプ、セルの背景色、行の中でのテキストの横揃え、ドキュメント内でのテーブルの揃え、余白、パディング、そのほか40以上のオプションを定義することができるようになります。結果として4D Write Pro のインターフェースは表のプロセス能力という点において改善されました。表、行、カラム、そしてセルの見た目を変更するための4つの新しいボタンが追加されました。ドキュメントを読む

プロテクト属性のサポート

4D v19 では、4D Write Pro ドキュメントの指定した部分(あるいは全ての部分)を”編集不可”に設定することができます。このプロテクトには2つのステップがあります。最初に、ドキュメントの中でどの部分をプロテクト したいか を定義します(デフォルトでは、全ての部分がプロテクトされます)。次にドキュメントの保護フラグを有効化して、設定した保護が有効になるようにします。これのために、WP SET ATTRIBUTES コマンドにおいて二つの新しい属性が使用できるようになりました: wk protected (ドキュメントの属するターゲットであればほぼどんな要素に対しても設定可能です)と wk protection enabled (ドキュメント全体のプロテクトを有効化または無効化します。 ドキュメントを読む

ドキュメント内部のフォーミュラを管理

4D v19 は4D Write Pro ドキュメント内のフォーミュラを管理できるようにするためのコマンド群を用意しています:

  • WP Get formulas: 特定のターゲット(ドキュメント自体全体に加え、本文、第2セクション、左ヘッダー、などのドキュメント内のより特定のパーツ)内にある全てのフォーミュラを取得します。
  • WP Insert formula: 特定のレンジ内の指揮をフォーミュラオブジェクトとして挿入します。
  • WP Compute formulas and WP Freeze formulas: 同様の方法で使用することができます(つまりターゲットを使用するということです)。ドキュメントの全ての式を再計算したり、フッターに属している式のみを固定化するなどのことが可能になります。ドキュメントを読む

ピクチャーの消去

インラインピクチャー、またはアンカーされたピクチャーを削除することは、WP DELETE PICTURE コマンドを使用することでできるようになりました。削除したいピクチャーをそのID(WP Get element by ID で取得可能)を使用して、またはその位置(WP Get elements で取得可能)を使用して取得し、それからコマンドを呼び出します。ドキュメントを読む

 

4D View Pro

 

SpreadJS v14 での改善点 blank

4D v19 で新しい4D View Pro リボンが用意されています。新しい見た目に加えて、SpreadJS v14 の新機能をサポートするための新機能が追加されました。.

この新しいツールバーでは、以下のような新しい機能が用意されています:

  • アクセシビリティサポート: この機能は、文字読み上げ機能のようなアシスト機能を使用する、障害を持ったユーザーへの適切なアクセシビリティサポートを提供します。詳細な情報については、こちらのアクセシビリティサポート を参照してください。
  • コメントインディケーターのカスタム: ユーザーはインディケーターのカラーとサイズを変更することができます。
  • エクセルから画像をコピー: Excel から画像をコピーし、シート内へとペーストするのをサポートします。ペーストされた画像はExcel のものと同じサイズ、境界線、背景色を持ちます。
  • 塗り潰しエフェクトとパターン: セルにパターンやグラデーションエフェクトを適用することで、セルの見た目を改良することができます。詳細な情報については、Pattern Fill and Gradient Fill を参照してください。ドキュメントを読む

 

6言語のサポート

4D v19 では、英語 加えて、フランス語ドイツ語スペイン語ポルトガル語、それから日本語もサポートされるようになりました!もし4D v19 以降のバージョンとサポートされる言語に対応したOSを使用している場合、4D View Proの要素(リボン、ツールバー、コンテキストメニュー、エラーメッセージ)が全て翻訳されていることに気がつくことでしょう。

 

ドキュメントの読み込み終了通知

4D v19 では、計算がいつ完了したかを知ることができるようにするための2つの新しいイベントが追加されました: On VP Range Changed および on Timer event の2つです。

これは例えば、大量のフォーミュラを格納した大型の4D View Pro を読み込もうとして、計算が完了するまでかなりの時間を要するような場合にはとても有用です。あるいはオフスクリーンエリアを使用している場合、ドキュメントをPDF またはExcel フォーマットへと書き出すためには、書き出しをする前にこれらの計算が終わるまで待つ必要があります。こういった場合にも有用です。ドキュメントを読む

 

検索と置換

ときとして、4D View Pro ドキュメントを初期化する際に、特定の値やタグを検索してそれらを4D からの値で置き換えるような場合があるかもしれません。これからはVP Find コマンドを使用すればそれをすぐに完了させることができます。このコマンドのおかげで、シート全体またはシートの特定の部分であっても、データ、フォーミュラ、またはタグを検索したり置き換えたりすることができるようなります。ドキュメントを読む

 

スプレッドシート内での4D フォーミュラの使用

コマンド使用すると、4D View Pro 内にてカスタムのファンクションを作成することができ、それによって4D フォーミュラを実行することができるようになります。4D View Pro 内で変数を使用するのにわざわざメソッドを作成する必要はなく、Formula に引数として渡すだけで完了です。これに加えて、このコマンドはテキストと変数名を提供することで、エンドユーザーのタイプアヘッドを単純化させます。大きなストラクチャーにおいては、このコマンドはSET FIELD TITLES コマンドを使用するよりもずっと早いです。ドキュメントを読む

オフスクリーンエリア

オフスクリーンエリアでの4D View Pro コマンドや関数を操作するための新しいコマンドが追加されました: VP Run offscreen areaです。使用するためには、エリアの情報(エリア名や、4D View Pro エリアからイベントが生成された際に呼び出すメソッドなど)を引数として渡すだけです。ドキュメントを読む

 

セルの結合と結合解除

新しく追加されたコマンドによって、セルの結合/結合解除がプログラミングによってできるようになりました:

  • セルを結合を行う: 結合したいセル全てのレンジを定義し、それをVP ADD SPAN コマンドに引数として渡すことで、そのセルを単一のセルスパンとして結合します。
  • 結合されたセルを全て取得するためには、VP Get spans コマンドを使用します。
  • VP REMOVE SPAN コマンドを使用することで、ドキュメント内のセルの結合を解除します。ドキュメントを読む

 

フォーミュラ: 再計算、停止、再開

必要に応じて、フォーミュラの計算をトリガーするための3つの新しいコマンドが追加されました:

  • VP RECOMPUTE FORMULAS – データの変更が起きた際にフォーミュラの再計算を行うために使用します。
  • VP SUSPEND COMPUTING および VP RESUME COMPUTING – それぞれ、計算の停止/再開を指定することができます。ドキュメントを読む

 

ワークシートをよりカスタマイズするためのオプション

新しいVP SET SHEET OPTIONS コマンドを使用することで、4D View Pro エリアの様々なシートオプションを定義することができます。例えば、このコマンドを使用することで以下のようなことができます:

  • セルの編集を禁止することでワークシートを保護することができます。
  • ワークシートのタブ、固定行、グリッド線、選択範囲の背景や境界線のカラーを好きにカスタマイズすることができます。
  • ワークシートのグリッド線、行/カラムヘッダーの表示状態を管理することができます。ドキュメントを読む

 

行とカラムの管理

4D v19 では行やカラムを管理するための新しいコマンドが追加されています。これらのコマンドを使用することで必要に応じてドキュメントを適応させることができます。以下のコマンドをしようすることで、カラムと行を自由に追加/削除したり、サイズ/表示状態/ヘッダーラベルを定義することができます:

  • VP INSERT ROWS or VP INSERT COLUMNS: 追加する最初のカラムまたは行の位置と、追加する数を引数として渡すことで行やカラムを追加できます。
  • VP SET COLUMN COUNT and VP SET ROW COUNT: 表示される行やカラムの数を定義します。デフォルトでは、4D View Pro シートには100 カラムと1,000 行が格納されています。
  • VP DELETE ROWS or VP DELETE COLUMNS: 特定の行またはカラムを削除します。
  • VP SET COLUMN ATTRIBUTES and VP SET ROW ATTRIBUTES: カラムの幅、または行の高さを指定したり、また印刷用の改ページを追加したり、行/カラムを表示または非表示にしたり、行/カラムのリサイズを許可または禁止したり、行/カラムのヘッダーラベルを変更したりすることができます。ドキュメントを読む

 

行/カラムをロックする

新しいVP SET FROZEN PANES コマンドを使用すると、ペインを作成することができます。たとえば巨大な表のデータがあった場合、他のエリアにスクロールしてもワークシートの一部を常に表示しておくと便利な場合があります。このコマンドを使用することで、エリア内に最大で4つまでペインを作成することができます。エリアの左、上、右、そして下部です。ドキュメントを読む

 

R-リリースごとの詳細はこちら