ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19
プロジェクトメソッド参照

プロジェクトメソッド参照  


 

概要  

4D View Pro ではフォーミュラ内にて4D プロジェクトメソッドを呼び出すことができます。4D プロジェクトメソッドを使用することで、4D View Pro ドキュメントの可能性を拡大させることができます。4D メソッドは4D View Pro エリアから引数を受け取ることができ、また値を返すことができます。セキュリティ上の理由から、明示的に許可されたメソッドのみがユーザーによって呼び出し可能です。

4D View Pro フォーミュラ内で呼び出すためには、プロジェクトメソッドは以下の条件を満たしている必要があります:

  • 参照されている: VP SET CUSTOM FUNCTIONS(推奨) またはVP SET ALLOWED METHODS コマンドを使用して明示的に宣言されている。
  • 実行可能: メソッドがホストデータベースに所属しているか、コンポーネントに読み込まれていて"コンポーネントとホストデータベース間で共有" オプションが有効化されている(プロジェクト メソッドの共有 参照)。
  • 既存の4D View Pro ファンクションと競合していない: 4D View Pro ファンクションと同じ名前のプロジェクトメソッドを呼び出した場合、ファンクションの方が呼び出されます。

注: VP SET CUSTOM FUNCTIONS またはVP SET ALLOWED METHODS コマンドがセッション中に一度も実行されていない場合、4D View Pro カスタムファンクションには 4D の SET ALLOWED METHODS コマンドで一般的に許可されたメソッドが使用できます。この場合、プロジェクトメソッド名は JavaScript Identifier Grammar (ECMA Script standard 参照) に則している必要があります。
設定ダイアログボックス内の全体フィルタリングオプション (データアクセス権参照) はいずれの場合でも無視されます。

4D プロジェクトメソッドを使用して4D View Pro エリアのセル内に"Hello World" と表示したい場合を考えます:

  1. 以下のコードを持つ、"myMethod" プロジェクトメソッドを作成します:
     #DECLARE->$hw Text
     $hw:="Hello World"
  2. 4D View Pro エリアを含んでいるフォーメソッドにおいて、以下のように書きます:
     Case of
        :(Form event code=On Load)
           var $o : Object
           $o:=New object
      // "myMethod" メソッドから "vpHello" ファンクションを定義する
           $o.vpHello:=New object
           $o.vpHello.formula:=Formula(myMethod)
           VP SET CUSTOM FUNCTIONS("ViewProArea";$o)
     End case
  3. 4D View Pro エリア内でセルの中身を編集し、以下のように入力します:

    "myMethod" が4D によって呼ばれ、セルは以下のように表示します:

引数  

以下のシンタックスを使用することで、4D プロジェクトメソッドに引数を渡すことができます:

=METHODNAME(param1,param2,...,paramN)

これらの引数はmethodName のメソッドに、$1, $2...$N として受け取られます。

( ) は、例え引数を渡さない場合でも必須であるという点に注意してください:

=METHODWITHOUTNAME()

VP SET CUSTOM FUNCTIONS (またはVP SET ALLOWED METHODS)コマンドに渡す関数オブジェクトの parameters コレクションを介して引数の名称、型、番号を指定することができます。また、任意の minParamsmaxParams プロパティを指定することで、ユーザーが渡せる引数の数を管理することもできます。

引数を宣言しない場合、値は順番にメソッドに受け渡され ($1, $2 ... に値が入ります)、型は自動的に変換されます。日付(js タイプ): 4D メソッド内では、二つのプロパティを持つC_OBJECT として渡されます:

プロパティ詳細
value日付日付値
time実数秒単位の時間

4D プロジェクトメソッドはまた、$0 を介して4D View Pro セルフォーミュラ内に値を返すこともできます。返される引数としては、以下のデータ型がサポートされます:

  • C_TEXT (4D View Pro 内では文字列に変換される)
  • C_REAL/C_LONGINT (4D View Pro 内では数値に変換される)
  • C_DATE (4D View Pro 内ではJS 日付型(時間、分、秒 = 0)に変換される)
  • C_TIME (4D View Pro 内ではJS 日付型(基準日に基づいた日付、例: 1899/12/30)に変換される)
  • C_BOOLEAN (4D View Pro 内ではブールに変換される)
  • C_PICTURE (jpg,png,gif,bmp,svg タイプ。他のタイプはpng に変換される) URI(data:image/png;base64,xxxx)を作成し、フォーミュラが実行された4D View Pro のセルの背景画像として使用される。
  • C_OBJECT 次の2つのプロパティを格納するため、日時の受け渡しが可能。
    プロパティ詳細
    value日付日付値
    time実数秒単位の時間

4D メソッドが何も返さない場合、空の文字列が自動的に返されます。

以下の場合にはエラーが4D View Pro のセル内に返されます:

  • 4D メソッドが上記以外の型を返す場合
  • 4D メソッドの実行中にエラーが発生して、ユーザーが"閉じる"ボタンを押した場合



参照 

USE 4D FORMULAS IN YOUR SPREADSHEET (blog post)
VP SET ALLOWED METHODS
VP SET CUSTOM FUNCTIONS

 
プロパティ 

プロダクト: 4D
テーマ: 数式等の差し込み

 
ページの目次 
 
履歴 

初出: 4D v17 R2

 
ARTICLE USAGE

4D View Pro リファレンス ( 4D v19)