ฟิลด์อัตโนมัติของเอกสาร (IF, COMPARE, MACROBUTTON, และอื่น ๆ)
ฟิลด์อัตโนมัติของเอกสาร (IF, COMPARE, และอื่น ๆ)
คู่มือนี้แสดงวิธีทำงานกับกลุ่มฟิลด์การอัตโนมัติของเอกสารใน Word Aspose.Words FOSS สำหรับ .NET – ฟิลด์ที่ขับเคลื่อนข้อความตามเงื่อนไข, เก็บตัวแปรระดับเอกสาร, และเชื่อมต่อแมโคร, การนำทาง, และพฤติกรรมการพิมพ์, แทนที่จะเพียงแสดงค่าที่คำนวณได้. แต่ละฟิลด์เป็น Field คลาสย่อยใน Aspose.Words.Fields เนมสเปซ: FieldIf, FieldCompare, FieldDocVariable, FieldGoToButton, FieldMacroButton, และ FieldPrint. ทั้งหมดนี้สืบทอด core Field สมาชิกที่อธิบายไว้ใน การทำงานกับฟิลด์ – GetFieldCode(), Update(), Remove(), Unlink(), Start/Separator/End, Result, และ Format – หน้านี้ครอบคลุมสิ่งที่เป็นเฉพาะสำหรับแต่ละรายการ.
ข้อความตามเงื่อนไขด้วย FieldIf
FieldIf ทำงานตาม IF ฟิลด์. LeftExpression, ComparisonOperator, และ RightExpression อธิบายเงื่อนไข – รูปแบบสามส่วนเดียวกันที่ใช้โดย IComparisonExpressionEvaluator (ดู การทำงานกับฟิลด์) – และ TrueText / FalseText ถือผลลัพธ์สองแบบที่เป็นไปได้. เรียก EvaluateCondition() เพื่อตรวจสอบเงื่อนไขโดยตรง; มันคืนค่า FieldIfComparisonResult ค่า: True, False, หรือ Error.
การเปรียบเทียบค่าโดยใช้ FieldCompare
FieldCompare ใช้ฟิลด์ COMPARE. เช่นเดียวกับ FieldIf, มันเปิดเผย LeftExpression, ComparisonOperator, และ RightExpression เพื่ออธิบายการเปรียบเทียบ, แต่ให้ผลลัพธ์แบบบูลีนแทนการสลับระหว่างข้อความสองตัวเลือก.
ตัวแปรเอกสารด้วย FieldDocVariable
FieldDocVariable ทำหน้าที่เป็นฟิลด์ DOCVARIABLE, โดยอ่านตัวแปรที่กำหนดชื่อในระดับเอกสารผ่านคุณสมบัติ VariableName ของมัน.
ปุ่ม: FieldGoToButton และ FieldMacroButton
FieldGoToButton ทำหน้าที่เป็นฟิลด์ GOTOBUTTON: Location ระบุชื่อบุ๊กมาร์ก, หน้า, หรือปลายทางอื่นที่ต้องการกระโดดไป, และ DisplayText คือป้ายชื่อที่แสดงในเอกสาร. FieldMacroButton ทำหน้าที่เป็นฟิลด์ MACROBUTTON: MacroName ระบุชื่อมาโครที่ต้องเรียกใช้และ DisplayText คือป้ายชื่อ. ทั้ง FieldIf และ FieldMacroButton ยังทำหน้าที่ตาม IMergeFieldSurrogate, อินเทอร์เฟซที่ฟิลด์ที่รองรับเมลเมิร์จของ Word ใช้เพื่อทำเครื่องหมายว่าตนเป็นเนื้อหาที่สามารถแทนที่ได้.
คำแนะนำการพิมพ์ด้วย FieldPrint
FieldPrint ทำหน้าที่เป็นฟิลด์ PRINT: PrinterInstructions และ PostScriptGroup เก็บคำสั่งเฉพาะเครื่องพิมพ์ที่ฝังอยู่โดยตรงในเอกสาร.
เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ใช้
FieldIf.EvaluateCondition()เพื่ออ่านผลลัพธ์ของเงื่อนไข (FieldIfComparisonResult) โดยไม่ต้องพาร์สTrueText/FalseTextด้วยตนเอง. 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 แบบมีเงื่อนไขได้อย่างไร?
เรียก FieldIf.EvaluateCondition() เพื่อรับ FieldIfComparisonResult ดิบ หรืออ่าน TrueText / FalseText เพื่อดูทางเลือกข้อความสองแบบที่ฟิลด์สลับระหว่างกัน.
ความแตกต่างระหว่าง FieldIf กับ FieldCompare คืออะไร?
FieldIf (ฟิลด์ IF) สลับระหว่าง TrueText และ FalseText ตามเงื่อนไขของมัน. FieldCompare (ฟิลด์ COMPARE) มีรูปแบบการเปรียบเทียบเดียวกันแต่ให้ผลลัพธ์ในรูปแบบบูลีนแทนข้อความทางเลือก.
ฉันจะอ่านชื่อของตัวแปรเอกสารจากฟิลด์ DOCVARIABLE ได้อย่างไร?
อ่าน FieldDocVariable.VariableName.
ฉันจะหาปลายทางของฟิลด์ GOTOBUTTON ได้อย่างไร?
อ่าน FieldGoToButton.Location; DisplayText ให้ป้ายกำกับที่แสดงบนปุ่มในเอกสาร.
API Reference สรุป
| คลาส / Enum | คำอธิบาย |
|---|---|
FieldIf | IF field; LeftExpression, ComparisonOperator, RightExpression, TrueText, FalseText, EvaluateCondition() |
FieldIfComparisonResult | ผลลัพธ์ Enum ของ FieldIf.EvaluateCondition(): True, False, Error |
FieldCompare | ฟิลด์ COMPARE; LeftExpression, ComparisonOperator, RightExpression |
FieldDocVariable | ฟิลด์ DOCVARIABLE; VariableName |
FieldGoToButton | ฟิลด์ GOTOBUTTON; Location, DisplayText |
FieldMacroButton | MACROBUTTON ฟิลด์; MacroName, DisplayText |
FieldPrint | PRINT ฟิลด์; PrinterInstructions, PostScriptGroup |