4D View Pro: 4D のフォーミュラをスプレッドシートで使用する

4D v18 R5 では、プログラミングを楽にする VP SET CUSTOM FUNCTIONS という新しいコマンドを導入しました! このコマンドは、4D View Pro で 4Dフォーミュラを実行するカスタムファンクションを作成します。

このコマンドのおかげで、4D のコマンド、フィールド、変数やメソッド、または任意の式を、セルのフォーミュラとして使用できるようになりました。たとえば、4D View Pro で変数を使用するためだけにメソッドを作成する必要はなくなり、Formula に引数として渡すだけで十分です。

HDI: 4D View Pro: カスタムファンクション

VP SET CUSTOM FUNCTIONS を使うことで、4D View Pro から次のものにアクセスが可能となります:

  • 4D変数
  • フィールド
  • メソッド
  • 4Dコマンド

 

On Load イベント中に、4D View Pro からアクセスしたい 4D式をすべて宣言する必要があります。

まず、オブジェクトを作成し、オブジェクトの属性を使って、ファンクション名を定義します:

$o:=New object

// 4D View Pro で使用されるファンクション名: "DRIVERS_LICENCE"
$o.DRIVERS_LICENCE:=New object

次に、式に基づいたフォーミュラを格納する formula 属性を追加します。この式は、セルで使用されたときに計算されます。

DRIVERS_LICENCE 関数が、以下のものを参照している場合の書き方:

  • プロセス変数

$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)

  • テーブルのフィールド

$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)

  • メソッド

$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)

  • 4Dコマンド

$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))

  • 4D式:

$o.DRIVERS_LICENCE.formula:=Formula(ds.Users.get($1).DriverLicence)
$o.DRIVERS_LICENCE.parameters:=New collection
$o.DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint))

ファンクションの動作を説明する概要を追加することができます:

$o.DRIVERS_LICENCE.summary:="運転免許の卒業検定の結果を返します"

また、メソッドを参照する場合は、ファンクションが受けとる引数の名前や型など、いくつかのパラメーターを追加することができます:


$o
.BIRTH_INFORMATION:=New object
$o.BIRTH_INFORMATION.formula:=Formula(BirthInformation)
$o.BIRTH_INFORMATION.parameters:=New collection
$o.BIRTH_INFORMATION.parameters.push(New object("name";"First name";"type";Is text))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Birthday";"type";Is date))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Time of birth";"type";Is time))
$o.BIRTH_INFORMATION.summary:="渡された情報に基づいて、フォーマットされた文字列を返します"

オブジェクトにすべての情報を入力し終えたら、4D View Pro で利用できるように VP SET CUSTOM FUNCTIONS コマンドにこのオブジェクトを渡すだけです。

VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)

これで、完成です。4D View Pro で新しいカスタムファンクションが利用できます:

blank

 

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