このサイトをビューするために JavaScript を有効化してください。

Altova XMLSpy 2021 Professional Edition

フォーミュラは JSON グリッドビュー内の表示のために出力 (ノードセットまたは計算) を生成する XQuery 3.1 式です 。下のスクリーンショットでは、 例えば、アイテム 1 から 4 の総額が計算され、出力 (28) が個別のラインで表示されます。各フォーミュラは個別に実行され他のフィルターまたはフィルターにより影響されません。

 

JSON のための XQuery 式 ドキュメントの作成に関する詳細は、 JSON のための XQuery 式を参照してください。

 

メモ:グリッドビュー内にフィルターとフォーミュラのために式を入力する際に、読みやすいように式を複数行で表示するようにすることが奨励されます。式内に新規のラインを追加するには、「Ctrl+Enter」を押します。
JSONGridViewFormulas01

ドキュメントが JSON5 または JSONC ドキュメントである場合:

 

フォーミュラは JSON コメントとしてドキュメントに書き込まれます。

任意で、フォーミュラの出力は JSON ドキュメント内の (コメントを持たない) コードとして保管されることができます。これを行うには、フォーミュラのディスクアイコンをクリックします (下のスクリーンショットを参照)。JSON コンテンツとしてフォーミュラが保管されない場合、グリッドビュ内で表示されるドキュメントメタデータとして保管されます。JSON5 と JSONC ドキュメント内でのみでディスクアイコンを使用することができ、JSON  ドキュメントの他の型では表示されません。

 

 

 

上のスクリーンショットでは、フォーミュラはシーケンスのメンバーの合計を計算します。メンバーとは items 配列内に含まれる各オブジェクトの pricequantity 値の製品のそれぞれです。各オブジェクトを選択し、 $item 変数に割り当てるための反復は以下により指定されます:for $item in ?items?* 。フォーミュラの親である、したがって items ノードの親である、コンテキストノードをメモすることはこの時点で重要です。各製品は $item 変数内に現在存在するオブジェクトの pricequantity 子ノードをルックアップし、これらの値を乗算することにより取得されます。この方法で取得された製品は総額を生成するために合計されたシーケンスのメンバーです。

 

フォーミュラの作成

フォーミュラを作成するには、以下を行います:

 

1.フォーミュラに兄弟または子として追加するノードを選択します。右クリックし、兄弟または子を追加します。フォーミュラが (兄弟または子として) 表示される個所を決定する場合、フォーミュラの XQuery 式のコンテキストノードはフォーミュラの親ノードになります。例えば、上のスクリーンショット内で表示される XQuery 式内では、コンテキストノードはフォーミュラ (totalPrice) とその兄弟、 items 配列の親ノードです。上のスクリーンショット内でフォーミュラを作成する場合、兄弟ノードは items 配列に追加されます (下のスクリーンショットを参照)

2.フォーミュラに対するノードの型を変更します (下のスクリーンショットを参照)

JSONGridViewFormulas02AddNode

3.f(x) アイコンを含むセルをダブルクリックし、フォーミュラの名前を入力します (下のスクリーンショットを参照)。ドキュメントが JSON5 または JSONC ドキュメントの場合、ディスクアイコンが表示されます。このアイコンをクリックして、フォーミュラの出力をドキュメントに保存することができます。

JSONGridViewFormulas03NameNode

4.デフォルトでは、XQuery 式は文字列 'XQuery' ですが、出力は(式の下のセル内に表示されている)文字列 XQuery です。XQuery 式を式のセルをダブルクリックして入力し、式を入力し、 「Enter」をクリックします。これによりフォーミュラが評価されその結果が表示されます。他のフォーミュラは変更されません。

5.ドキュメント内に複数のフォーミュラが存在する場合メニューコマンド 「JSON | 全てを再評価する」 をクリックして全てのフォーミュラの結果を更新します。ドキュメント内のフォーミュラは(例えば、為替などの)動的に変更するデータをルックアップする場合このコマンドは特に役に立ちます。

 

フォーミュラに関する以下の点に注意してください:

 

フォーミュラの XQuery 式のコンテキストノードはフォーミュラノードの親ノードです。

フォーミュラはドキュメントの(特別なアプリケーション全体の JSON メタデータファイル内にある)メタデータ内で保管されます。ドキュメントが JSON5 または JSONC の場合、フォーミュラは追加で JSON コンテンツ内のコメントとして保管されます。

フォーミュラにより生成された出力はフォーミュラの XQuery 式の下のセル内に表示されます。JSON5 と JSONC の場合、 XQuery 式の横のディスクアイコンをクリックして出力をドキュメント内に保管することができます。ディスクがクリックされているかに関わらず、フォーミュラの出力は計算されドキュメントのメタデータに保管されます。

ic_jsongridFormulaOutputNotSaved

JSON コンテンツに保存されていないフォーミュラ出力。クリックして保存します。JSON5 と JSONC 内のみ。

ic_jsongridFormulaOutputSaved

JSON コンテンツに保存されているフォーミュラ出力。JSON5 と JSONC 内のみ。

出力が計算でコンテンツに保管されている場合、フォーミュラに割り当てた名前を持つプロパティとして保管されます。例えば、上記の totalPrice フォーミュラ内では、出力は以下のようになります : "totalPrice": 28.

以下の違いに注意してください: JSON5 と JSONC ドキュメント内では、JSON コメントとしてフォーミュラは保存されます。

 

メモ:JSON グリッドビュー設定ダイアログ によりフォーミュラがド JSON5 と JSONC キュメント内に保管されるかを指定することができます。フォーミュラを保管するオプションはデフォルトで選択されます。

 

メモ: JSON グリッドビュー設定ダイアログ 内で以下を行うことができます : (i) (メタデータファイル内に自動的にフォーミュラを保管するか、または保管しないかなどの)メタデータオプション

 

テーブル内のフォーミュラ

(テーブルディスプレイ) 内のテーブル列のすべてのセルに同じフォーミュラが含まれている場合、フォーミュラは列のヘッダー内で一度のみ表示されます (下のスクリーンショットを参照)。フォーミュラ計算の結果はしかしながら対応するセル内に表示されます。

 

列ヘッダー内のフォーミュラはグリッドビュー 表示です。(テキストビュー内の) JSON ドキュメントコンテンツ  内では、フォーミュラは各テーブル-行アイテムのために繰り返されています。

JSONGridViewFormulasInTables01

(下のスクリーンショットのハイライトされたセル同様)単一のフォーミュラが異なる場合でも各フォーミュラは対応するセル内に表示されます。

JSONGridViewFormulasInTables02

全てのフォーミュラの再評価

ドキュメント内のすべてのフォーミュラの結果を更新するには、メニューコマンド 「JSON | 全てを再評価する」をクリックします。

 

関連したアクションのためのプロシージャ

 

以下のようにテーブルに新規の空の列を追加します: テーブルディスプレイからリスト表示に切り替え、リスト表示内の key:value ペアのいずれかをクリックし、新規の key:value ペアをアイテムのコンテキストメニューを使用して追加します。テーブルディスプレイに切り替える場合、新規の列が追加または挿入された新規の key:value ペアのために作成されます。グリッドビューでこの列を編集することができます。

フォーミュラがヘッダーに表示されるようにテーブル列のすべてのフォーミュラが同じの場合、および個別のセルのために異なるフォーミュラを作成する場合、リスト表示に切り替え、セルのフォーミュラを編集します。テーブルディスプレイに切り替えると、フォーミュラは(全てのセルのために)個別のセルのために表示されます。

式内に新規のラインを追加するには、「Ctrl+Enter」を押します。

 

(C) 2015-2021 Altova GmbH