การสร้างฟิลด์ด้วย FieldBuilder

การสร้างฟิลด์ด้วย FieldBuilder

การสร้างฟิลด์ด้วย FieldBuilder

คู่มือนี้แสดงวิธีสร้างฟิลด์ Word ตั้งแต่ต้นใน Aspose.Words FOSS สำหรับ .NET โดยใช้ FieldBuilder and FieldArgumentBuilder, แทนที่จะทำงานกับฟิลด์ที่มีอยู่แล้วในเอกสาร สำหรับการอ่าน, ปรับปรุง หรือการลบฟิลด์ที่มีอยู่แล้ว, ดูที่ การทำงานกับฟิลด์ คู่มือ.


การสร้างฟิลด์ด้วย FieldBuilder

FieldBuilder สร้างฟิลด์จากโทเคนโค้ดฟิลด์ — อาร์กิวเมนต์และสวิตช์ สร้างหนึ่งโดยใช้ new FieldBuilder(fieldType) โดยส่ง FieldType ของฟิลด์ที่คุณต้องการสร้าง เพิ่มอาร์กิวเมนต์ด้วยเมธอด AddArgument(argument) ที่ overload ไว้ ซึ่งรับ string, int, double, FieldBuilder ที่ซ้อนกัน, หรือ FieldArgumentBuilder เพิ่มสวิตช์ด้วยเมธอดที่ overload ไว้ AddSwitch(switchName), AddSwitch(switchName, switchArgument) (string), หรือ AddSwitch(switchName, switchArgument) (int/double).


การแทรกฟิลด์ที่สร้างขึ้น

เมื่อ FieldBuilder มีอาร์กิวเมนต์และสวิตช์แล้ว ให้เรียก BuildAndInsert(refNode) เพื่อแทรกลงในเอกสาร — overload หนึ่งรับโหนด Inline และแทรกฟิลด์ก่อนโหนดนั้น, อีก overload หนึ่งรับ Paragraph และแทรกฟิลด์ที่ส่วนท้ายของย่อมนั้น.


การสร้างอาร์กิวเมนต์ซับซ้อนด้วย FieldArgumentBuilder

FieldArgumentBuilder สร้างอาร์กิวเมนต์ฟิลด์ซับซ้อนที่ประกอบด้วยฟิลด์, โหนด, และข้อความธรรมดา สำหรับกรณีที่อาร์กิวเมนต์เดียวต้องการมากกว่าข้อความธรรมดา สร้างหนึ่งด้วย new FieldArgumentBuilder(), จากนั้นเรียก AddText(text) เพื่อเพิ่มข้อความธรรมดา, AddNode(node) เพื่อเพิ่มโหนด Inline, หรือ AddField(fieldBuilder) เพื่อใส่ฟิลด์อื่น (สร้างด้วย FieldBuilder ของมันเอง) ภายในอาร์กิวเมนต์ ส่ง FieldArgumentBuilder ที่เสร็จสมบูรณ์ให้กับ FieldBuilder.AddArgument(argument) เพื่อใช้เป็นหนึ่งในอาร์กิวเมนต์ของฟิลด์ภายนอก.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ใช้ FieldBuilder เมื่อต้องสร้างประเภทฟิลด์ที่ไม่ได้รับการสนับสนุนโดยคลาสฟิลด์เฉพาะ (เช่น FieldDate หรือ FieldSymbol) หรือเมื่อสร้างโค้ดฟิลด์โดยอัตโนมัติจากข้อมูลแทนการเขียนด้วยมือ.
  • ใส่ฟิลด์ลูกภายในอาร์กิวเมนต์ของฟิลด์ภายนอกด้วย FieldBuilder.AddArgument(FieldBuilder) ในกรณีง่าย ๆ หรือสร้างอาร์กิวเมนต์ผสมของข้อความ, โหนด, และฟิลด์ซ้อนกันด้วย FieldArgumentBuilder เมื่ออาร์กิวเมนต์มีมากกว่าฟิลด์เดียว.
  • เลือกการ overload ของ BuildAndInsert(refNode) ที่ตรงกับตำแหน่งที่คุณต้องการให้ฟิลด์วาง — ก่อนโหนด Inline เฉพาะ, หรือที่ท้ายของ Paragraph.
  • หลังจาก BuildAndInsert, ปฏิบัติกับผลลัพธ์เช่นฟิลด์อื่น ๆ ในต้นไม้ — ตัวอย่างเช่น, เรียก Update() บนผลลัพธ์หากประเภทฟิลด์ต้องการการคำนวณใหม่อย่างชัดเจน.

ปัญหาที่พบบ่อย

ปัญหาสาเหตุวิธีแก้ไข
BuildAndInsert กำหนดเป้าหมายไปยังตำแหน่งที่ไม่ถูกต้องใช้ overload ที่ไม่ถูกต้องสำหรับจุดแทรกที่ต้องการส่งโหนด Inline เพื่อแทรกก่อนมัน, หรือ Paragraph เพื่อแทรกที่ส่วนท้ายของมัน
อาร์กิวเมนต์ฟิลด์จะไม่รับข้อความธรรมดาและโหนดพร้อมกันAddArgument ถูกเรียกด้วย string/int/double เดียวแทนอาร์กิวเมนต์ที่ประกอบกันสร้างอาร์กิวเมนต์ผสมด้วย FieldArgumentBuilder (AddText, AddNode, AddField) แล้วส่งให้ AddArgument
ค่า switch ไม่ได้รับการรับรู้ในโค้ดฟิลด์ที่สร้างขึ้นAddSwitch(switchName) ถูกใช้ในขณะที่ switch จริง ๆ แล้วต้องการอาร์กิวเมนต์ใช้ overload AddSwitch(switchName, switchArgument) พร้อมค่าข้อความ, int หรือ double ของ switch

FAQ

เมื่อใดควรใช้ FieldBuilder แทนการแทรกโค้ดฟิลด์ที่เตรียมไว้ล่วงหน้า?

ใช้ FieldBuilder เมื่อคุณต้องการควบคุมอย่างชัดเจนต่ออาร์กิวเมนต์และสวิตช์ของฟิลด์ขณะสร้างโดยโปรแกรม มากกว่าการแทรกสตริงโค้ดฟิลด์ที่เตรียมไว้ล่วงหน้า.

ฉันจะเพิ่มอาร์กิวเมนต์มากกว่าหนึ่งรายการให้กับฟิลด์ได้อย่างไร?

เรียก AddArgument หนึ่งครั้งต่ออาร์กิวเมนต์ — ฟังก์ชันนี้ทำงานหลายรูปแบบสำหรับ string, int, double, FieldBuilder ที่ซ้อนกัน, และ FieldArgumentBuilder.

ฉันสามารถสร้างฟิลด์ที่อาร์กิวเมนต์ประกอบด้วยข้อความและฟิลด์อื่นผสมกันได้หรือไม่?

ได้ — ใช้ FieldArgumentBuilder เรียก AddText, AddNode และ AddField ตามต้องการ แล้วส่งผลลัพธ์ให้กับ FieldBuilder.AddArgument.

ฉันจะใส่ฟิลด์ที่สร้างเสร็จลงในเอกสารอย่างไร?

เรียก BuildAndInsert(refNode) โดยส่งโหนด Inline (แทรกก่อนโหนดนั้น) หรือ Paragraph (แทรกที่ส่วนท้ายของมัน).


API Reference สรุป

คลาส/เมธอดคำอธิบาย
FieldBuilderสร้างฟิลด์จากโทเคนโค้ดฟิลด์ (อาร์กิวเมนต์และสวิตช์)
FieldBuilder(fieldType)คอนสตรัคเตอร์ที่รับ FieldType เพื่อสร้าง
FieldBuilder.AddArgument(argument)เพิ่มอาร์กิวเมนต์ (string, int, double, FieldBuilder หรือ FieldArgumentBuilder)
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument)เพิ่มสวิตช์ฟิลด์ ไม่ว่าจะมีค่าหรือไม่มีค่า
FieldBuilder.BuildAndInsert(refNode)แทรกฟิลด์ที่สร้างไว้ก่อนโหนด Inline หรือที่ส่วนท้ายของ Paragraph
FieldArgumentBuilderสร้างอาร์กิวเมนต์ฟิลด์ซับซ้อนจากข้อความ, โหนด, และฟิลด์ที่ซ้อนกัน
FieldArgumentBuilder.AddText(text)เพิ่มข้อความธรรมดาเข้าไปในอาร์กิวเมนต์
FieldArgumentBuilder.AddNode(node)เพิ่มโหนด Inline ไปยังอาร์กิวเมนต์
FieldArgumentBuilder.AddField(fieldBuilder)ฝังฟิลด์ที่สร้างโดย FieldBuilder เข้าไปในอาร์กิวเมนต์

ดูเพิ่มเติม

 ภาษาไทย