製品

4Dは新しい変数タイプを開始します。コレクション

Deeplからの自動翻訳

4D v16 R4 では、 Collection と呼ばれる新しいタイプの変数が導入されました。これらの変数は何を意図しているのでしょうか?オブジェクトやBLOBのように、コレクションはテキスト、数値、ブーリアン、オブジェクト、そして他のコレクションなど、ほとんどすべての種類の変数を保持するために使用することができます。配列は常に同じ型の要素を含まなければなりませんが、コレクションでは、先に述べたすべての変数型を混在させることができるのです。

製品 blank

JSONオブジェクトを検証する

Deeplからの自動翻訳

私たちは、ますますJSON形式を使うようになっています。例えば、設定をファイルに保存したり、ソフトウェアの設定を保存したり、ウェブ上で他のサーバーとクライアントデータを交換したりするためです。

受信したデータが期待通りの形式であることを、どのように検証すればよいのでしょうか。 必要な情報がすべて実際に存在することを、どのように検証すればよいのでしょうか? JSON形式の種類ごとに面倒なメソッドを書かずに、この検証を行うにはどうしたらよいでしょうか?

単にJSONスキーマを記述して JSON Validatenewコマンド!

製品 Discover how object notation can simplify your developer's life!

オブジェクト記法が開発者の生活をいかに簡素化するかをご覧ください。

Deeplからの自動翻訳

4D v16 R4でプレビューとして利用できるオブジェクト記法を使えば、あなたのコードはよりシンプルになり、読みやすく、より自然な思考ができるようになります。 それは事実です。しかし、あなたは、本当にオブジェクト記法の可能性を完全に理解したのでしょうか?

4D v16 R4以前は、オブジェクトフィールドから連絡先を入力する詳細フォームを作りたい場合 変数データソースにOB GET ([CONTACT]Info; “City”) のような式を書くしかなかったのです。属性値を取得することはできても、それを変更することはできない。 しかも、属性ごとにOB GET コマンドでloadRecordメソッドを書き、属性ごとにOB SET コマンドでsaveRecordメソッドを書かなければならなかった。

このシナリオでは、オブジェクトの表記はどのように変わるのでしょうか?4D v16 R4から、変数データソースに[CONTACT]Info.Cityと書くだけです!この変数は、Read/Writeで使用できます。 この変数は、Read/Write モードで使用できます。OB GETOB SET コマンドは、もはや必要ありません。 以上です。これで、全貌が見えてきましたね。

製品 blank

コーディングのもう一つの方法: オブジェクト記法

オブジェクトは素晴らしい、誰もがそう言います。その素晴らしい柔軟性に加え、信じられないほどの速さです。何百万ものレコードをほんの一瞬で検索することができるのです。4D v16 では、オブジェクト属性による並べ替えや、Sum や Average のような計算も可能です。

4D v16 R4 では、オブジェクト記法 のサポートにより、4Dランゲージが大幅に強化され、オブジェクトをより快適に使用できるようになりました。高速で、フレキシブルで、効率的、そしてエレガントです。

製品 blank

オブジェクト記法に備える

Deeplからの自動翻訳

Object Notation を使ってコーディングを始めようと思っていませんか?確かに、Object Notation は開発者としてのあなたの人生をより快適にしてくれるでしょう。しかし、既存のアプリケーションに適用する前に、コードの準備が整っていることを確認する必要があります。

新しいObject Notation の シンタックスでは、4D 言語が以下の 3 つの文字を予約記号と見なすため、いくつかの制約があります。” .”, ” [ ” and” ] ” (すなわち、ドット、開き括弧、閉じ括弧)

その結果、データベースでオブジェクト表記を有効にすると、変数名、メソッド名、テーブル名、フィールド名でこれらの記号を使用することができなくなります。もちろん、既存のコードにも同じことが言えます。

ですから、この機能を有効にする前に、あなたのアプリケーションにこれらの記号が含まれていないことを確認することが重要です。しかし、MSCがそれを行ってくれますので、ご心配なく!

製品 blank

新規オブジェクト:オブジェクトを初期化する簡単な方法

Deeplからの自動翻訳

New object, は、オブジェクトを初期化するための 4D の新しいコマンドです。このコマンドは、空のオブジェクトを作成するか、いくつかの初期プロパティと値を持つオブジェクトを作成することができます。OB SET は、いくつかの状況で不要になりつつあり、New object で十分です。

New object また、 や コマンドのように、オブジェクトをパラメータとして要求する 4D コマンドに直接渡すこともできます。Get database measures GRAPH

この新しいコマンドは、多くの状況で 4D コードの書き方を変えます。New object はオブジェクトを作成し、それへの参照を返します。これにより、コードの柔軟性が高まります。 このコマンドは、オブジェクトに関連する一連の新機能の最初のものです …ご期待ください。

製品 4D Database: Search in array attribute

リンク配列の属性クエリ引数による検索

Deeplからの自動翻訳

4D v15で導入されたオブジェクトフィールドは、非構造化データの保存とインデックス作成を可能にします。これは、名前、苗字、誕生日のような共通のデータセットかもしれません。例えば、靴(サイズ、色)、コンピュータ(CPU、メモリ)、プリンター(色、インク)、値のリスト、またはすべての組み合わせの異なる属性が必要なショップのように、レコードごとに異なるデータである可能性もあるのです。

ここに、4Dのお客様からの実際のユーザーストーリーがあります。

「私のバッジアプリケーションは、建物への各人のアクセス権や時間枠を管理しますこの情報は、オブジェクトの配列としてデータベースに保存されています(例:{access right, building, time slot})。ある時間帯にある建物にアクセスできる人を探したい」。

4Dは、データを照会するためのいくつかの方法を提供し、インデックスを使用するので、非常に高速です。

製品 4D Database: Sort records by object attribute

オブジェクトの属性でレコードをソートする

Deeplからの自動翻訳

4D がリリースされるたびに、オブジェクトフィールドはより強力になっています。

4D v16 R2では、1つまたは複数の属性に従ってレコード選択をソートする新しい4Dコマンドが利用可能になりました。この新しいコマンドは ORDER BY ATTRIBUTEと同じように動作します。 ORDER BYこの新しいコマンドは、コマンドと同じように動作します; 選択したレコードを並べ替えたい属性のパスを渡すだけで、簡単に実行できます。

製品 blank

Objectフィールドでさらに進化

Deeplからの自動翻訳

v15で導入されたオブジェクトフィールドは、スキーマレスデータベース(NoSQL)に似た非構造化データベースを可能にします。4D v16は、さらに大きな一歩を踏み出しました。非構造化データのためのダイナミックな構造を手に入れる… 混乱していますか?

顧客が独自のフィールドを作成できるカスタムデータを保存できるように、オブジェクトフィールドを使用することを想像してみてください。これはうまく機能し、オブジェクトフィールドを使用する最も興味深い理由の1つです。問題は、顧客がこの非構造化データをどのようにクエリするかということです。どの’フィールド’を使用したかはわかりませんし、クエリエディタを上に構築したり、使用した値のドロップダウンを提供したりすることもできません。