การจัดรูปแบบผลลัพธ์ของฟิลด์
การจัดรูปแบบผลลัพธ์ของฟิลด์
คู่มือนี้แสดงวิธีการควบคุมการจัดรูปแบบเชิงตัวเลข, วันที่/เวลา, และทั่วไปที่ใช้กับผลลัพธ์ที่คำนวณของฟิลด์ใน Aspose.Words FOSS สำหรับ .NET, โดยใช้คลาส FieldFormat, enum GeneralFormat, และ GeneralFormatCollection. ทุกอินสแตนซ์ของ Field จะเปิดเผยสวิตช์การจัดรูปแบบเหล่านี้ผ่านคุณสมบัติ Format; หน้านี้เป็นการเจาะลึกในสิ่งที่คุณสมบัตินี้นำเสนอ.
การเข้าถึงการจัดรูปแบบของฟิลด์
ทุก Field — รวมถึงซับคลาสที่กำหนดประเภทเช่น FieldDate, FieldCreateDate, และ FieldSymbol — จะเปิดเผยคุณสมบัติ Format ที่มีประเภท FieldFormat, ใช้สำหรับการเข้าถึงแบบกำหนดประเภทต่อการจัดรูปแบบเชิงตัวเลข, วันที่และเวลา, และทั่วไปของฟิลด์. อ่าน Field.Format เพื่อสำรวจหรือเปลี่ยนสวิตช์ที่แนบกับโค้ดของฟิลด์โดยไม่ต้องแก้ไขด้วยมือข้อความโค้ดดิบของฟิลด์.
ภาพตัวอย่างการจัดรูปแบบเชิงตัวเลขและวันที่/เวลา
FieldFormat.NumericFormat เป็นคุณสมบัติ string ที่สามารถเขียนได้ซึ่งเก็บการจัดรูปแบบที่ใช้กับผลลัพธ์ของฟิลด์เชิงตัวเลข. FieldFormat.DateTimeFormat เป็นคุณสมบัติ string ที่สามารถเขียนได้ซึ่งเก็บการจัดรูปแบบที่ใช้กับผลลัพธ์ของฟิลด์วันที่และเวลา. ตั้งค่าคุณสมบัติใดคุณสมบัติหนึ่งเพื่อเปลี่ยนวิธีที่ประเภทฟิลด์ที่สอดคล้องกันแสดงค่าที่คำนวณได้.
รูปแบบทั่วไป
FieldFormat.GeneralFormats คืนค่า GeneralFormatCollection — รูปแบบอเนกประสงค์ที่ใช้กับผลลัพธ์เชิงตัวเลข, ข้อความ, หรือฟิลด์ใด ๆ สมาชิกของมันถูกดึงมาจาก enum GeneralFormat ซึ่งครอบคลุมการแปลงตัวอักษร (Upper, Lower, FirstCap, Caps), การนับแบบโรมันและลำดับ (UppercaseRoman, LowercaseRoman, Ordinal, OrdText), สกุลเงินและข้อความจำนวนเต็ม (DollarText, BahtText, CardText), ระบบการนับเลขตามท้องถิ่น (Aiueo, Arabic, ArabicAbjad, ArabicAlpha, ArabicDash, ChineseNum1–ChineseNum3, KanjiNum1–KanjiNum3, Hebrew1, Hebrew2, Ganada, Chosung, Zodiac1–Zodiac3, ThaiArabic, ThaiCardText, ThaiLetter, HindiArabic, HindiCardText, HindiLetter1, HindiLetter2, VietCardText, DBNum1–DBNum4, DBChar, SBChar, GB1–GB4, Hex, CircleNum, UppercaseAlphabetic, LowercaseAlphabetic), และค่าที่เฉพาะเจาะจงสำหรับฟิลด์รวม CharFormat, MergeFormat, และ MergeFormatInet. None ล้างการจัดรูปแบบทั่วไป.
การจัดการ GeneralFormatCollection
GeneralFormatCollection ใช้ IEnumerable<GeneralFormat> ดังนั้นคุณสามารถวนซ้ำได้ด้วย GetEnumerator() ในลูป foreach. เรียก Add(item) เพื่อเพิ่มค่าประเภท GeneralFormat, Remove(item) เพื่อลบทุกการปรากฏของค่า, หรือ RemoveAt(index) เพื่อลบค่าที่ตำแหน่งเฉพาะ. Count รายงานจำนวนรูปแบบทั่วไปที่กำลังใช้งานอยู่.
เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ตั้งค่า
Field.Format.NumericFormatหรือField.Format.DateTimeFormatแทนการฝังภาพการจัดรูปแบบโดยตรงในสตริงโค้ดฟิลด์ — คุณสมบัติที่พิมพ์ไว้จะทำให้โค้ดฟิลด์และสวิตช์การจัดรูปแบบของมันสอดคล้องกัน. - ผสานค่าหลายค่า
GeneralFormat(เช่นUpperและMergeFormat) โดยเพิ่มแต่ละค่าไปยังGeneralFormatsแยกกัน; คอลเลกชันอนุญาตให้มีรายการมากกว่าหนึ่งรายการ. - หลังจากเปลี่ยนแปลงคุณสมบัติ
FieldFormatใด ๆ ให้เรียกUpdate()บนฟิลด์เจ้าของเพื่อให้การจัดรูปแบบใหม่สะท้อนในResult/DisplayResult. - ใช้
GeneralFormat.Noneเพื่อเคลียร์รายการรูปแบบทั่วไปอย่างชัดเจนแทนการปล่อยค่าการจัดรูปแบบที่ล้าสมัยไว้ในคอลเลกชัน. - ตรวจสอบ
GeneralFormatCollection.Countก่อนสันนิษฐานว่าฟิลด์ไม่มีการจัดรูปแบบทั่วไปที่ใช้ — คอลเลกชันว่างและคอลเลกชันที่มีNoneเป็นสถานะที่แตกต่างกัน.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ไข |
|---|---|---|
การเปลี่ยน NumericFormat ไม่มีผลที่มองเห็นได้ | ฟิลด์ไม่ได้คำนวณใหม่หลังจากการเปลี่ยนแปลง | เรียก Update() บนฟิลด์หลังจากแก้ไขคุณสมบัติ FieldFormat ใด ๆ |
รูปแบบทั่วไปซ้ำปรากฏใน GeneralFormats | Add(item) ถูกเรียกมากกว่าหนึ่งครั้งสำหรับค่า GeneralFormat เดียวกัน | ตรวจสอบ GeneralFormatCollection.Count หรือทำการวนซ้ำก่อนเพิ่ม, หรือเรียก Remove(item) ก่อน |
รายการที่ผิดพลาดถูกลบออกจาก GeneralFormats | RemoveAt(index) ถูกเรียกด้วยดัชนีที่เปลี่ยนตำแหน่งหลังจากการลบก่อนหน้า | ตรวจสอบ Count และวนซ้ำคอลเลกชันอีกครั้งก่อนลบด้วยดัชนี |
FAQ
FieldFormat ใช้เพื่ออะไร?
มันเป็นออบเจ็กต์การจัดรูปแบบแบบกำหนดชนิดที่เปิดเผยโดย Field.Format, ให้เข้าถึงรูปแบบเชิงตัวเลขของฟิลด์ (NumericFormat), รูปแบบวัน/เวลา (DateTimeFormat), และรูปแบบทั่วไป (GeneralFormats).
ฟิลด์สามารถมีรูปแบบทั่วไปหลายรูปแบบที่ใช้ได้หรือไม่?
ใช่ — GeneralFormats เป็น GeneralFormatCollection, และคุณสามารถ Add มากกว่าหนึ่งค่า GeneralFormat ให้กับมันได้.
ฉันจะลบการจัดรูปแบบทั่วไปทั้งหมดออกจากฟิลด์ได้อย่างไร?
วนซ้ำ GeneralFormats และเรียก Remove(item) สำหรับแต่ละค่า หรือ RemoveAt(index) สำหรับรายการเฉพาะ.
การตั้งค่าคุณสมบัติของ FieldFormat จะทำให้ข้อความที่แสดงในฟิลด์รีเฟรชโดยอัตโนมัติหรือไม่?
ไม่ — เรียก Update() บนฟิลด์หลังจากเปลี่ยนคุณสมบัติ Format เพื่อให้ Result และ DisplayResult แสดงรูปแบบใหม่.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
FieldFormat | การเข้าถึงแบบระบุประเภทของฟิลด์สำหรับการจัดรูปแบบเชิงตัวเลข, วันที่/เวลา, และการจัดรูปแบบทั่วไป; เปิดเผยผ่าน Field.Format |
FieldFormat.NumericFormat | รูปแบบการจัดรูปภาพที่ใช้กับผลลัพธ์ของฟิลด์ตัวเลข |
FieldFormat.DateTimeFormat | รูปแบบการจัดรูปภาพที่ใช้กับผลลัพธ์ของฟิลด์วันที่/เวลา |
FieldFormat.GeneralFormats | GeneralFormatCollection ของรูปแบบทั่วไปที่ใช้กับผลลัพธ์ของฟิลด์ |
GeneralFormat | Enum ของสวิตช์การจัดรูปแบบทั่วไป (การแปลงตัวพิมพ์, ระบบการนับเลข, รูปแบบฟิลด์ผสาน) |
GeneralFormatCollection | คอลเลกชันแบบกำหนดประเภทของค่า GeneralFormat; Add, Remove, RemoveAt, Count, GetEnumerator |