ฟิลด์วันที่และเวลา
ฟิลด์วันที่และเวลา
คู่มือฉบับนี้แสดงวิธีทำงานกับคลาสฟิลด์วันที่และเวลาที่รับรู้ปฏิทินใน Aspose.Words FOSS สำหรับ .NET — FieldDate, FieldCreateDate, FieldPrintDate, และ FieldSaveDate — ซึ่งนำไปใช้กับ Word’s DATE, CREATEDATE, PRINTDATE, และ SAVEDATE ฟิลด์ตามลำดับ แต่ละคลาสสืบทอดมาจาก Field และนำไปใช้ IFieldWithCalendar; สำหรับฐาน Field โมเดลวัตถุเอง (การอัปเดต, การยกเลิกการเชื่อมโยง, การลบ, และการจัดรูปแบบฟิลด์ใด ๆ) ดูที่ ทำงานกับฟิลด์ คู่มือ.
สี่คลาสฟิลด์วันที่และเวลา
FieldDate ทำหน้าที่เป็นฟิลด์ DATE. FieldCreateDate ทำหน้าที่เป็น CREATEDATE, วันที่เอกสารถูกสร้างขึ้น. FieldPrintDate ทำหน้าที่เป็น PRINTDATE, วันที่เอกสารถูกพิมพ์ครั้งสุดท้าย. FieldSaveDate ทำหน้าที่เป็น SAVEDATE, วันที่เอกสารถูกบันทึกครั้งสุดท้าย. ทั้งสี่เป็นคลาสย่อยของ Field และดำเนินการ IFieldCodeTokenInfoProvider และ IFieldWithCalendar, ดังนั้นพวกมันจึงแชร์ Field ที่มี GetFieldCode(), Update(), Unlink(), Remove(), และสมาชิกการจัดรูปแบบ (Format) พร้อมกับสวิตช์ปฏิทินของตนเองที่อธิบายด้านล่าง.
การเลือกปฏิทินที่ไม่ใช่แบบ Gregorian
แต่ละคลาสสี่ตัวเปิดเผย UseLunarCalendar (bool) เพื่อแสดงผลโดยใช้ปฏิทิน Hijri Lunar หรือ Hebrew Lunar, UseSakaEraCalendar (bool) สำหรับปฏิทิน Saka Era, และ UseUmAlQuraCalendar (bool) สำหรับปฏิทิน Um-al-Qura. ตั้งค่าคุณสมบัติตรงกับที่ต้องการเป็น true ก่อนเรียก Update() เพื่อให้ฟิลด์คำนวณผลลัพธ์ใหม่โดยใช้ระบบปฏิทินนั้นแทนปฏิทิน Gregorian เริ่มต้น.
สวิตช์รูปแบบการใช้งานของ FieldDate
FieldDate ยังเปิดเผย UseLastFormat (bool) ซึ่งควบคุมว่าฟิลด์จะใช้รูปแบบที่แอปพลิเคชันโฮสต์ใช้ครั้งสุดท้ายเมื่อมีการแทรกฟิลด์ DATE ใหม่หรือไม่. FieldCreateDate, FieldPrintDate และ FieldSaveDate ไม่ได้เปิดเผยคุณสมบัตินี้.
เคล็ดลับและแนวทางปฏิบัติที่ดีที่สุด
- ตั้งสวิตช์ปฏิทิน (
UseLunarCalendar,UseSakaEraCalendarหรือUseUmAlQuraCalendar) แล้วเรียกUpdate()บนฟิลด์ — การเปลี่ยนแค่คุณสมบัตินั้นไม่ได้คำนวณใหม่Result. - ตั้งสวิตช์ปฏิทินให้เป็น
trueเพียงค่าเดียวบนอินสแตนซ์ฟิลด์ที่กำหนด; การรวมมากกว่าหนึ่งค่าจะทำให้ผลลัพธ์คลุมเครือ. - ใช้
Field.Format(aFieldFormat, ที่ครอบคลุมใน การจัดรูปแบบผลลัพธ์ฟิลด์ guide) พร้อมกับสวิตช์ปฏิทินเหล่านี้เพื่อควบคุมรูปแบบการแสดงผลเชิงตัวเลขหรือวันที่/เวลา ที่นำไปใช้กับผลลัพธ์ด้วย. - เลือกคลาสที่ตรงกับความหมายที่คุณต้องการ —
FieldSaveDateและFieldPrintDateอ่านค่า timestamp ที่บันทึกในเอกสาร, ในขณะที่FieldDateแสดงวันที่ที่ฟิลด์ถูกอัปเดต.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
| การสลับปฏิทินไม่มีผลต่อผลลัพธ์ที่แสดง | ฟิลด์ไม่ได้คำนวณใหม่หลังจากตั้งค่าคุณสมบัติ | เรียก Update() บนอินสแตนซ์ของฟิลด์หลังจากตั้งค่า UseLunarCalendar, UseSakaEraCalendar หรือ UseUmAlQuraCalendar |
UseLastFormat ไม่สามารถคอมไพล์บน FieldPrintDate หรือ FieldSaveDate | คุณสมบัตินั้นมีอยู่เฉพาะบน FieldDate | ใช้ FieldDate สำหรับพฤติกรรม application-format-follows หรือกำหนด Format อย่างชัดเจนบนคลาสอื่น ๆ |
| ผลลัพธ์แสดงระบบปฏิทินที่ไม่ถูกต้อง | มีสวิตช์ปฏิทินมากกว่าหนึ่งตัวที่ตั้งค่าเป็น true บนฟิลด์เดียวกัน | ตั้งค่าเพียงหนึ่งค่าใน UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar ต่อแต่ละอินสแตนซ์ของฟิลด์ |
FAQ
อะไรคือความแตกต่างระหว่าง FieldDate และ FieldCreateDate?
FieldDate ใช้ฟิลด์ DATE (คำนวณใหม่เป็นวันที่ปัจจุบันทุกครั้งที่อัปเดต); FieldCreateDate ใช้ CREATEDATE (วันที่เอกสารถูกสร้าง).
ฉันจะทำให้ฟิลด์วันที่ใช้ปฏิทินฮิจรีลูนาร์ได้อย่างไร?
ตั้งค่า UseLunarCalendar = true บนอินสแตนซ์ FieldDate, FieldCreateDate, FieldPrintDate หรือ FieldSaveDate, แล้วเรียก Update().
คลาสใดในสี่คลาสที่ติดตามเวลาที่เอกสารถูกบันทึกล่าสุด?
FieldSaveDate, ซึ่งใช้ฟิลด์ SAVEDATE.
คลาสเหล่านี้รองรับการจัดรูปแบบรูปภาพแบบกำหนดเองได้หรือไม่ ไม่ใช่แค่การสลับปฏิทิน?
ใช่ — แต่ละจะเปิดเผย a Format property (FieldFormat) สืบทอดจากโครงสร้างพื้นฐานฟิลด์ฐาน; ดูที่ การจัดรูปแบบผลลัพธ์ฟิลด์ คู่มือสำหรับ NumericFormat and DateTimeFormat.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
FieldDate | ทำการใช้งานฟิลด์ DATE |
FieldCreateDate | ทำงานกับฟิลด์ CREATEDATE |
FieldPrintDate | ทำงานกับฟิลด์ PRINTDATE |
FieldSaveDate | ทำงานกับฟิลด์ SAVEDATE |
UseLunarCalendar | เรนเดอร์ผลลัพธ์โดยใช้ปฏิทินจันทรคติ Hijri Lunar หรือปฏิทินจันทรคติ Hebrew Lunar |
UseSakaEraCalendar | แสดงผลโดยใช้ปฏิทินสากะ |
UseUmAlQuraCalendar | แสดงผลโดยใช้ปฏิทินอุม-อัล-คูร่า |
FieldDate.UseLastFormat | ใช้รูปแบบที่แอปพลิเคชันโฮสต์ใช้ครั้งสุดท้ายสำหรับฟิลด์ DATE ใหม่ |
IFieldWithCalendar | อินเทอร์เฟซที่คลาสสี่คลาสทั้งหมดนำไปใช้สำหรับผลลัพธ์ของฟิลด์ที่รับรู้ปฏิทิน |