ฟิลด์วันที่และเวลา

ฟิลด์วันที่และเวลา

ฟิลด์วันที่และเวลา

คู่มือฉบับนี้แสดงวิธีทำงานกับคลาสฟิลด์วันที่และเวลาที่รับรู้ปฏิทินใน 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 (a FieldFormat, ที่ครอบคลุมใน การจัดรูปแบบผลลัพธ์ฟิลด์ 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อินเทอร์เฟซที่คลาสสี่คลาสทั้งหมดนำไปใช้สำหรับผลลัพธ์ของฟิลด์ที่รับรู้ปฏิทิน

ดูเพิ่มเติม

 ภาษาไทย