メインコンテンツまでスキップ
バージョン: 20 R7 BETA

WP INSERT FORMULA

WP INSERT FORMULA ( targetObj ; formula ; mode {; rangeUpdate} )

引数説明
targetObjObjectレンジまたは要素または4D Write Proドキュメント
formulaObjectフォーミュラオブジェクト
modeNumber挿入モード
rangeUpdateNumber挿入されたコンテンツをレンジ内に含めるか含めないかを指定

説明

WP INSERT FORMULA コマンドは、targetObj 引数で指定したターゲット内にformula 引数のフォーミュラを、mode 引数で指定したモードで挿入します。

targetObj 引数には、以下のものを渡すことができます:

  • レンジ
  • 要素(表 / 行 / セル / 段落 / 本文 / ヘッダー / フッター / セクション / サブセクション / インライン画像)
  • 4D Write Pro ドキュメント

formula 引数には、評価される4D フォーミュラを渡します。以下のものを渡すことができます:

  • Formula または Formula from string コマンドで作成された フォーミュラオブジェクト
  • または以下の2つのプロパティを格納しているオブジェクト:
    | プロパティ | | 詳細 |
    | --------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | name | 文字列 | ドキュメント内で表示するフォーミュラの名前 |
    | formula | オブジェクト | Formula または Formula from string コマンドで作成された フォーミュラオブジェクト |

フォーミュラのname プロパティがあるオブジェクトを使用する場合、ドキュメント内で、フォーミュラが参照として表示される場合にはフォーミュラ参照ではなくそのname の名前が表示され、値または記号として表示される場合にはフォーミュラtip に名前が表示されます。name プロパティが空の文字列を格納しているか省略されている場合、それはオブジェクトから削除され、デフォルトでフォーミュラが表示されます。詳細な情報については、フォーミュラの管理 のページを参照してください。

mode 引数には、使用する挿入モードを指定する、以下の定数のいづれか一つを渡します:

定数コメント
wk append倍長整数2コンテンツをターゲットの終わりに挿入する
wk prepend倍長整数1コンテンツをターゲットの始めに挿入する
wk replace倍長整数0ターゲットのコンテンツを置き換える
  • targetObj 引数のターゲットがレンジである場合、任意のrangeUpdate 引数に以下の定数のいづれか一つを渡すことで、結果のレンジにformula 引数のフォーミュラが含まれるかどうかを指定することができます:
定数コメント
wk exclude from range倍長整数1更新されたレンジには、以前のコンテンツのみを含める
wk include in range倍長整数0更新されたレンジに挿入コンテンツを含める

rangeUpdate 引数を渡さない場合、デフォルトで挿入されたformula 引数のフォーミュラは、結果のレンジに含まれます。

  • targetObj 引数のターゲットがレンジでない場合、rangeUpdate 引数は無視されます。

注意: フォーミュラオブジェクトは、呼び出されたときに、そのフォーミュラオブジェクトを作成したデータベースまたはコンポーネントのコンテキスト内で評価されるという点に注意してください。

例題 1

全てのCurrent date フォーミュラを、フォーマットされた文字列で置き換えたい場合を考えます:

 var $_formulas : Collection
 var $find;$newFormula : Object
 
  // 検索するフォーミュラを定義
 $find:=Formula(Current date)
 
  // 置換するフォーミュラを定義
 $newFormula:=Formula(String(Current date;System date long))
 
  // ドキュメント内にあるフォーミュラを全て検索
 $_formulas:=WP Get formulas(WriteProArea)
 
  // WP Get formulas から取得したコレクション内をクエリする
 $_formulas:=$_formulas.query("formula.source =:1";$find.source)
 
  // それぞれのフォーミュラを置き換える
 For each($formula;$_formulas)
    WP INSERT FORMULA($formula.range;$newFormula;wk replace)
 End for each

例題 2

顧客の名前にフォーミュラによる名前を使用したい場合を考えます:

  //データを追加する
 $data:=New object("customer";New object("lastname";"Smith";"firstname";"John"))
 WP SET DATA CONTEXT(WPArea;$data)
 
  //name プロパティを持つフォーミュラオブジェクトを作成する
 $o:=New object
 $o.formula:=Formula(This.data.customer.firstname+" "+This.data.customer.lastname)
 $o.name:="Customer name"
 
  //テキストとして挿入
 $range:=WP Text range(WPArea;wk start text;wk end text)
 WP SET TEXT($range;"Dear ";wk append)
 WP INSERT FORMULA($range;$o;wk append)

使用した結果:

参照

WP COMPUTE FORMULAS
WP FREEZE FORMULAS
WP Get formulas
フォーミュラの管理