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

ホーム

 
4D v18
式の管理

式の管理  


 

概要  

4D Write Pro ドキュメントには、変数やフィールドに加え、フォーミュラやプロジェクトメソッド、4D コマンドなどの動的な4D式への参照を含めることができます。ページ番号などの特定の変数も参照することができます(以下の式の挿入 を参照してください)。

式はST INSERT EXPRESSION コマンドを使用することで4D Write Pro エリアに挿入することができます。ST Get expression コマンドを使用して読み出しもできますが、WP Get text および ST Get plain text コマンドを使用することでも返されます。

許可された式(以下参照)、挿入された時、ドキュメントの表示時・印刷時、あるいはST COMPUTE EXPRESSIONS コマンドが呼び出されたときに評価されます。ST FREEZE EXPRESSIONS コマンドを呼び出した場合には式は固定された値になります(ただし$wp_pageNumber および $wp_pageCount 変数を除く、以下参照)。

例題  

4D Write Pro エリアの選択範囲を変数の中身で置き換えたい場合を考えます:

 C_TEXT(fullName)
 fullName:="John Smith"
 
 Case of
    :(Form event code=On Clicked)
       ST INSERT EXPRESSION(myArea;"fullName";ST Start highlight;ST End highlight)
 End case

セキュリティ上の理由により、適切でない式が使用されてしまったり、データベースに想定外の変更を加えるなどの影響を与えてしまったりしないよう、動的な式の評価は開発者によって制限する必要があります。例えば、DELETE SELECTION のようなコマンドや "DeleteOrders" といったメソッドの実行は制限したほうがよいでしょう。

データベースレベルで定義されている4Dの通常のフィルタリングオプションを使用する場合を考えます。このオプションは "データベース設定" ダイアログのセキュリティページで提供されています:

デフォルトでは、すべてのユーザーに対して制限が課されるため、明示的に許可されたコマンドやメソッド以外を使用すると、評価エラーが発生します。この制限を部分的に緩和することも (Designer と Administrator は制限しない)、誰も制限しないことも可能です。このオプションは 4D データベース全体に対して有効で、ユーザーによるフォーミュラの評価をすべて管理します。このオプションについての詳細は、デザインリファレンスマニュアルを参照ください。

制限が有効になっている場合:

  • ユーザーはフォーミュラエディターの右端にあるコマンドリストに表示されているコマンドしか使用できません:
  • ユーザーはプロジェクトメソッドを実行できません。4D Write ドキュメントで使用するには、 SET ALLOWED METHODS コマンドを使って明示的に許可する必要があります。

4D Write Pro ドキュメント内で式の評価中に許可されていない 4D コマンドやメソッドが見つかると、値が " ## Error # 48" に置き換わります。

例題  

4D Write Pro ドキュメントに次の式を挿入します:

 ST INSERT EXPRESSION(*;"WriteProArea";"Gender")

セキュリティの設定で制限がかかっていると、Gender メソッドは評価されません:

その場合には次のようなコードを実行します:

 ARRAY TEXT(aTallow;1)
 aTallow{1}:="Gender"
 SET ALLOWED METHODS(aTallow)

すると Gender メソッドが評価され、値が返されます:

以前のリリースでは、4D Write Pro ドキュメントのフィルタリング機能は有効になっていませんでした。4D Write Pro ドキュメントで 4D メソッドを参照しているデータベースを 4D v16 以上に変換した場合、これらは評価されなくなり、"## Error # 48" メッセージが表示されます。このような場合には、SET ALLOWED METHODS コマンドを使用して、当該メソッドを許可リストに追加します。

ST INSERT EXPRESSION コマンドを使って、ドキュメントやページの属性に関連づいた式をドキュメントエリアのどこ(本文、ヘッダー、フッター)にでも挿入することができます。

式のシンタックス説明
$wp_titleテキストwk title 属性が定義するタイトル
$wp_authorテキストwk author 属性が定義する著者名
$wp_subjectテキストwk subject 属性が定義する題名
$wp_companyテキストwk company 属性が定義する会社
$wp_notesテキストwk notes 属性が定義するコメント
$wp_dateCreation日付wk date creation 属性が定義する作成日
$wp_dateModified日付wk date modified 属性が定義する最終更新日
$wp_pageNumber倍長整数定義されているページ番号:ドキュメントの先頭からのページ数(デフォルト) あるいはセクションの先頭からのページ数(セクションの開始ページから定義されている場合)。この式は必ず動的であり、ST FREEZE EXPRESSIONS コマンドによって影響されることはありません。
$wp_pageCount倍長整数ページ総数。この式は必ず動的であり、ST FREEZE EXPRESSIONS コマンドによって影響されることはありません。

 

式を挿入するには、まずカーソルが任意のエリア (ヘッダー、フッター、ドキュメント本文) にあることを確認し、ST INSERT EXPRESSION コマンドをコールします。例えば、選択したフッターエリアにページ番号を挿入する場合:

 ST INSERT EXPRESSION(*;"4DWPArea";"$wp_pageNumber")

例えば、下のようなドキュメントデザインを定義することができます:

4D Writ Pro ドキュメントの挿入されたテーブルおよびフィールド式は、データベースのバーチャルストラクチャー定義をサポートします。フォーミュラに公開されるバーチャルストラクチャーは、SET FIELD TITLES(...;*) および SET TABLE TITLES(...;*) コマンドを通して定義されます。

バーチャルストラクチャーが定義されている場合、4D Write Pro ドキュメントがフィールドを含んでいる式への参照を表示するとき、そのバーチャル名前が表示され、値は表示されません。参照を管理するコマンドは以下の表示応じて、バーチャルの名前/実際の名前を受け取り、あるいは使用します:

コマンドバーチャルストラクチャーのサポート
WP Get textexpressions 引数にwk expressions as source オプションが設定されている場合にはバーチャルストラクチャー名を返す。
ST Get plain textrefMode 引数にST 4D Expressions as sources オプションが設定されている場合にはバーチャルストラクチャー名を返す。
ST Get expressionバーチャルストラクチャーを無視します。常に実際のテーブル/フィールド名を返します。
ST INSERT EXPRESSIONバーチャルストラクチャーを無視します。常に実際のテーブル/フィールド名を受け取ります。

注: ドキュメントが"式を表示"モードで表示されているとき、バーチャルストラクチャーに属していないテーブルまたはフィールドへの参照は"?"文字付きで表示されます。例えばあるフィールドがバーチャルストラクチャー内で定義されていなければ、 [VirtualTableName]? と表示されます。



参照 

Download HDI database
スタイル付テキストテーマのコマンドの使用

 
プロパティ 

プロダクト: 4D
テーマ: 式の管理

 
ページの目次 
 
履歴 

初出: 4D v16
変更: 4D v17 R4

 
ARTICLE USAGE

4D Write Proリファレンス ( 4D v18)