ドキュメント自動化フィールド(IF、COMPARE、MACROBUTTON、その他)
ドキュメント自動化フィールド(IF、COMPARE、その他)
このガイドでは、Word のドキュメント自動化フィールド ファミリーの使用方法を示します Aspose.Words .NET 用 FOSS – 条件付きテキストを制御し、ドキュメントスコープの変数を格納し、マクロ、ナビゲーション、印刷動作を連携させるフィールドで、単に計算結果を表示するだけではありません。各は Field サブクラスは Aspose.Words.Fields 名前空間: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton、および FieldPrint。それらすべてはコア Field 以下で説明されているメンバー フィールドの操作 – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, および Format – このページでは、各項目に固有の内容を取り上げています。
条件テキスト(FieldIf)
FieldIf は実装します IF フィールド。 LeftExpression, ComparisonOperator, および RightExpression 条件を記述する – 同じ3部構成の形が使用される IComparisonExpressionEvaluator (参照 フィールドの操作) – および TrueText / FalseText 2つの可能な結果を保持します。Call EvaluateCondition() 条件を直接評価します; それは a を返します FieldIfComparisonResult 値: True, False, または Error.
値の比較(FieldCompare)
FieldCompare は COMPARE フィールドを実装します。FieldIf と同様に、比較を記述するための LeftExpression、ComparisonOperator、RightExpression を公開しますが、2つのテキスト代替を切り替えるのではなく、ブール型の結果を生成します。
ドキュメント変数(FieldDocVariable)
FieldDocVariable は DOCVARIABLE フィールドを実装し、VariableName プロパティを介して名前付きのドキュメントスコープ変数を読み取ります。
ボタン: FieldGoToButton と FieldMacroButton
FieldGoToButton は GOTOBUTTON フィールドを実装します: Location はジャンプ先のブックマーク、ページ、またはその他の宛先の名前を指定し、DisplayText は文書に表示されるラベルです。FieldMacroButton は MACROBUTTON フィールドを実装します: MacroName は実行するマクロの名前を指定し、DisplayText はラベルです。FieldIf と FieldMacroButton はさらに IMergeFieldSurrogate を実装しており、これは Word の差し込み印刷対応フィールドが自分自身を置換可能なコンテンツとしてマークするために使用するインターフェイスです。
FieldPrint を使用した印刷指示
FieldPrint は PRINT フィールドを実装します: PrinterInstructions と PostScriptGroup は文書に直接埋め込まれたプリンター固有の指示を保持します。
ヒントとベストプラクティス
- 自分で
TrueText/FalseTextを解析する必要なく、FieldIf.EvaluateCondition()を使用して条件の結果 (FieldIfComparisonResult) を読み取ります。 FieldCompareとFieldIfは同じLeftExpression/ComparisonOperator/RightExpression形状を共有しています――比較式を構築または検査するコードは、両方のフィールドタイプで再利用できます。- これらはすべてであることを覚えておいてください
Fieldサブクラス:GetFieldCode(),Update(),Remove()、そしてUnlink()from フィールドの操作 ここでも全く同じ方法で適用します。
よくある問題
| 問題 | 原因 | 修正 |
|---|---|---|
FieldIf.EvaluateCondition() は Error を返します | 条件のオペランドまたは演算子は記述どおりに評価できませんでした | 有効な値かどうか、LeftExpression、ComparisonOperator、および RightExpression を確認してください |
FieldDocVariable の結果が期待される変数の値を反映していません | VariableName がドキュメント内に実際に存在する変数名と一致しません | Result を読み取る前に、正確な変数名とその存在を確認してください |
FieldGoToButton/FieldMacroButton の表示テキストが Word の表示と一致しません | DisplayText がフィールドの更新前に読み取られたか、対応する Update() 呼び出しなしに設定されました | フィールドに対して Update() を呼び出すか、変更後に DisplayText を再読込してください |
FAQ
条件付き IF フィールドの結果はどのように読み取りますか?
生の FieldIfComparisonResult を取得するには FieldIf.EvaluateCondition() を呼び出すか、フィールドが切り替える 2 つの文字列リテラル代替項目を取得するには TrueText / FalseText を読み取ります。
FieldIf と FieldCompare の違いは何ですか?
FieldIf(IF フィールド)は条件に基づいて TrueText と FalseText を切り替えます。FieldCompare(COMPARE フィールド)は同じ比較形を共有しますが、代替テキストではなくブール型の結果を生成します。
DOCVARIABLE フィールドから文書変数の名前を取得するにはどうすればよいですか?
「FieldDocVariable.VariableName」を読む。
GOTOBUTTON フィールドの宛先はどうやって見つけますか?
Read FieldGoToButton.Location; DisplayText は、ドキュメント内のボタンに表示されるラベルを提供します。
API Reference 概要
| クラス / 列挙型 | 説明 |
|---|---|
FieldIf | IF フィールド; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | Enum FieldIf.EvaluateCondition() の結果: True, False, Error |
FieldCompare | COMPARE フィールド; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | DOCVARIABLE フィールド; VariableName |
FieldGoToButton | GOTOBUTTON field; Location, DisplayText |
FieldMacroButton | MACROBUTTON フィールド; MacroName, DisplayText |
FieldPrint | PRINT フィールド; PrinterInstructions, PostScriptGroup |