4D View Pro: 行と列を管理する新しいコマンド

スプレッドシートは、素晴らしい汎用性のあるツールです。ダッシュボードから入出力UI まで、4D View Pro が提供するスプレッドシートは、エンドユーザーが遭遇する多くの状況を迅速に解決することができます。

以前、4D View Pro の表組み機能 を使って、データコレクションを表示・修正する方法を紹介しました。必要に応じて、この表組みに後から列を追加・削除することが必要なことがあります。4D v19 R7 では、表組みの列と行を管理するため、いくつかの新しいコマンドが 4D View Pro に追加されました。どのように機能するか見てみましょう。

HDI: 4D View Pro: 表組みの列の管理

 

列を追加・削除する前に、まずは対象となる 4D View Pro の表組みが必要です。以下の例では、”People” というデータベーステーブルのデータを表示する 4D View Pro の表組みを作成しています。

$context:=New object
$context.people:=ds.People.all().toCollection()

VP SET DATA CONTEXT("ViewProArea"; $context)

$parameter:=New object
$parameter.tableColumns:=New collection
$parameter.tableColumns.push(New object("name"; "Phone"; "dataField"; "Phone"))
$parameter.tableColumns.push(New object("name"; "Email"; "dataField"; "email"))
$parameter.tableColumns.push(New object("name"; "Country"; "dataField"; "Country"))

VP CREATE TABLE(VP Cells("ViewProArea"; 2; 1; 3; 1); "PeopleTable"; "people"; $parameter)

表組みへの列の挿入

VP INSERT TABLE COLUMNS コマンドを使用すると、必要に応じていつでも表に列を挿入することができます。たとえば、4D View Pro の表組みの先頭列の前に新しい列を 2つ表示したい場合:

VP INSERT TABLE COLUMNS("ViewProArea"; "PeopleTable"; 0; 2;vk table insert before)
// 0 は表組みの先頭列を指します

 

blank

空の列が 2つ表に追加されました。今度は VP SET TABLE COLUMN ATTRIBUTES を使ってこれらの列を Firstname と Lastname フィールドで埋めてみましょう:

$param:=New object
// データコンテキストの Firstname フィールドに列をバインドします
$param.dataField:="Firstname"
// 列のデフォルト名を "First name" に変更します
$param.name:="First name"
VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 0; $param)

$param:=New object
// データコンテキストの Lastname フィールドに列をバインドします
$param.dataField:="Lastname"
// 列のデフォルト名を "Last name" に変更します
$param.name:="Last name"
VP SET TABLE COLUMN ATTRIBUTES("ViewProArea"; "PeopleTable"; 1; $param)

blank

行の挿入と削除

同じように VP INSERT TABLE ROWS コマンドを使って、テーブルに空の行を挿入することができます:

VP INSERT TABLE ROWS("ViewProArea"; "PeopleTable"; 1; 2)

blank

 VP INSERT TABLE COLUMNS とは異なり、VP INSERT TABLE ROWS の効果は見た目の変化に止まらないことに注意が必要です。VP INSERT TABLE COLUMNS は、シートに列を挿入するだけですが、VP INSERT TABLE ROWS はシートに行を挿入するだけでなく、データコンテキストのコレクション内にも新しい行を 2 つ作成します。

たとえば、この例で VP Get data context を使用すると、people コレクションに 2つの新しい空の行 (people[1] およびpeople[2]) が追加されているのがわかります。

$data:=VP Get data context("ViewProArea")

blank

この後、挿入された空のセルに何らかのデータを書き込んだ場合:

blank

新しいデータに対応する属性が自動的に追加されます。people[1] に追加された詳細を確認してみましょう:

データ:=VP Get data context("ViewProArea")

blank

行を削除した場合にも、同じように動作します。たとえば、先頭の 2行を残してそれ以外をすべて削除すると、行は表組みの見た目から削除されるだけでなく、データコンテキストからもなくなります:

VP REMOVE TABLE ROWS("ViewProArea"; "contexttest"; 2; 10)

blank

$data:=VP Get data context("ViewProArea")

blank

このように、データコンテキスト と表組みを関連付けると、4D View Pro でコレクションを管理するのがとても簡単になります。

上記の HDI と ドキュメント で機能の詳細を確認してみてください。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。