Các trường ngày và thời gian
Trường Ngày và Giờ
Hướng dẫn này chỉ cách làm việc với các lớp trường ngày và giờ nhận thức lịch trong Aspose.Words FOSS cho .NET — FieldDate, FieldCreateDate, FieldPrintDate, và FieldSaveDate — mà triển khai các trường của Word DATE, CREATEDATE, PRINTDATE, và SAVEDATE trường tương ứng. Mỗi lớp kế thừa từ Field và triển khai IFieldWithCalendar; đối với mô hình cơ bản Field mô hình đối tượng tự nó (cập nhật, hủy liên kết, xóa và định dạng bất kỳ trường nào), xem the Làm việc với các Trường hướng dẫn.
Bốn Lớp Trường Ngày và Giờ
FieldDate triển khai trường DATE. FieldCreateDate triển khai CREATEDATE, ngày tài liệu được tạo. FieldPrintDate triển khai PRINTDATE, ngày tài liệu được in lần cuối. FieldSaveDate triển khai SAVEDATE, ngày tài liệu được lưu lần cuối. Bốn lớp đều là lớp con của Field và triển khai IFieldCodeTokenInfoProvider và IFieldWithCalendar, do đó chúng chia sẻ Field’s GetFieldCode(), Update(), Unlink(), Remove(), và các thành viên định dạng (Format) cùng với các công tắc lịch riêng của chúng được mô tả bên dưới.
Chọn Lịch Không Dùng Dương Lịch
Mỗi một trong bốn lớp đều cung cấp UseLunarCalendar (bool) để hiển thị kết quả bằng lịch Hijri Lunar hoặc Hebrew Lunar, UseSakaEraCalendar (bool) cho lịch Saka Era, và UseUmAlQuraCalendar (bool) cho lịch Um-al-Qura. Đặt thuộc tính tương ứng thành true trước khi gọi Update() để trường tính lại kết quả của nó bằng hệ thống lịch đó thay vì dương lịch mặc định.
Công tắc Định dạng Ứng dụng của FieldDate
FieldDate còn cung cấp UseLastFormat (bool), cho phép kiểm soát việc trường có sử dụng định dạng cuối cùng được ứng dụng chủ quản sử dụng khi một trường DATE mới được chèn. FieldCreateDate, FieldPrintDate và FieldSaveDate không cung cấp thuộc tính này.
Mẹo và Thực hành Tốt nhất
- Đặt công tắc lịch (
UseLunarCalendar,UseSakaEraCalendarhoặcUseUmAlQuraCalendar) và sau đó gọiUpdate()trên trường — chỉ thay đổi thuộc tính không tự động tính lạiResult. - Chỉ đặt một công tắc lịch thành
truecho một thể hiện trường nhất định; kết hợp nhiều hơn một sẽ tạo ra kết quả mơ hồ. - Sử dụng
Field.Format(aFieldFormat, được đề cập trong Định dạng Kết quả Trường hướng dẫn) cùng với các công tắc lịch này để cũng kiểm soát định dạng số hoặc ngày/giờ được áp dụng cho kết quả. - Chọn lớp phù hợp với ngữ nghĩa bạn cần —
FieldSaveDatevàFieldPrintDateđọc dấu thời gian được ghi trong tài liệu, trong khiFieldDatephản ánh bất kỳ ngày nào mà trường được cập nhật.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Sửa |
|---|---|---|
| Công tắc lịch không ảnh hưởng đến kết quả hiển thị | Trường không được tính lại sau khi thuộc tính được đặt | Gọi Update() trên thể hiện trường sau khi đặt UseLunarCalendar, UseSakaEraCalendar hoặc UseUmAlQuraCalendar |
UseLastFormat không biên dịch được trên FieldPrintDate hoặc FieldSaveDate | Thuộc tính đó chỉ tồn tại trên FieldDate | Sử dụng FieldDate cho hành vi application-format-follows, hoặc đặt Format một cách rõ ràng trên các lớp khác |
| Kết quả hiển thị hệ thống lịch sai | Nhiều hơn một công tắc lịch đã được đặt thành true trên cùng một trường | Chỉ đặt một trong số UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar cho mỗi thể hiện trường |
FAQ
Sự khác biệt giữa FieldDate và FieldCreateDate là gì?
FieldDate triển khai trường DATE (tính lại ngày hiện tại mỗi khi nó cập nhật); FieldCreateDate triển khai CREATEDATE (ngày tài liệu được tạo).
Làm thế nào để tôi làm cho trường ngày sử dụng lịch Hijri Lunar?
Đặt UseLunarCalendar = true trên thể hiện FieldDate, FieldCreateDate, FieldPrintDate hoặc FieldSaveDate, sau đó gọi Update().
Lớp nào trong bốn lớp theo dõi thời điểm tài liệu được lưu lần cuối?
FieldSaveDate, triển khai trường SAVEDATE.
Các lớp này có hỗ trợ hình ảnh định dạng tùy chỉnh, chứ không chỉ các công tắc lịch?
Có — mỗi cái đều cung cấp một Format thuộc tính (FieldFormat) được kế thừa từ hạ tầng trường cơ bản; xem Định dạng Kết quả Trường hướng dẫn cho NumericFormat and DateTimeFormat.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
FieldDate | Triển khai trường DATE |
FieldCreateDate | Triển khai trường CREATEDATE |
FieldPrintDate | Triển khai trường PRINTDATE |
FieldSaveDate | Thực hiện trường SAVEDATE |
UseLunarCalendar | Hiển thị kết quả bằng lịch Hijri Lunar hoặc Hebrew Lunar |
UseSakaEraCalendar | Hiển thị kết quả bằng lịch Saka Era |
UseUmAlQuraCalendar | Hiển thị kết quả bằng lịch Um-al-Qura |
FieldDate.UseLastFormat | Sử dụng định dạng lần cuối được ứng dụng lưu trữ sử dụng cho trường DATE mới |
IFieldWithCalendar | Giao diện được thực hiện bởi cả bốn lớp cho các kết quả trường nhận thức lịch |