Định dạng Kết quả Trường
Định dạng kết quả trường
Hướng dẫn này chỉ ra cách kiểm soát định dạng số, ngày/giờ và định dạng chung được áp dụng cho kết quả tính toán của một trường trong Aspose.Words FOSS cho .NET, sử dụng lớp FieldFormat, enum GeneralFormat, và GeneralFormatCollection. Mỗi thể hiện Field đều tiết lộ các công tắc định dạng này qua thuộc tính Format của nó; trang này là phần khám phá sâu về những gì thuộc tính đó cung cấp.
Truy cập định dạng của trường
Mỗi Field — và các lớp con đã được định kiểu như FieldDate, FieldCreateDate, và FieldSymbol — tiết lộ một thuộc tính Format có kiểu FieldFormat, được dùng để truy cập có kiểu vào định dạng số, ngày và giờ, và định dạng chung của trường. Đọc Field.Format để kiểm tra hoặc thay đổi các công tắc gắn vào mã của trường mà không cần chỉnh sửa thủ công văn bản mã thô của trường.
Hình ảnh định dạng số và ngày/giờ
FieldFormat.NumericFormat là một thuộc tính string có thể ghi được, chứa định dạng được áp dụng cho kết quả trường số. FieldFormat.DateTimeFormat là một thuộc tính string có thể ghi được, chứa định dạng được áp dụng cho kết quả trường ngày và giờ. Đặt bất kỳ thuộc tính nào để thay đổi cách loại trường tương ứng hiển thị giá trị đã tính.
Định dạng chung
FieldFormat.GeneralFormats trả về một GeneralFormatCollection — các định dạng đa năng được áp dụng cho một kết quả số, văn bản hoặc bất kỳ trường nào. Các thành viên của nó được lấy từ enum GeneralFormat, bao gồm các biến đổi chữ hoa/thường (Upper, Lower, FirstCap, Caps), đánh số La Mã và thứ tự (UppercaseRoman, LowercaseRoman, Ordinal, OrdText), tiền tệ và văn bản số đếm (DollarText, BahtText, CardText), hệ thống đánh số theo địa phương (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), và các giá trị riêng cho trường hợp hợp nhất CharFormat, MergeFormat, và MergeFormatInet. None xóa định dạng chung.
Quản lý GeneralFormatCollection
GeneralFormatCollection thực hiện IEnumerable<GeneralFormat>, vì vậy bạn có thể lặp lại nó bằng GetEnumerator() trong một vòng lặp foreach. Gọi Add(item) để thêm một giá trị GeneralFormat, Remove(item) để xóa mọi lần xuất hiện của một giá trị, hoặc RemoveAt(index) để xóa giá trị tại vị trí cụ thể. Count báo cáo số lượng định dạng chung hiện đang được áp dụng.
Mẹo và Thực hành Tốt nhất
- Đặt
Field.Format.NumericFormathoặcField.Format.DateTimeFormatthay vì nhúng một hình ảnh định dạng trực tiếp vào chuỗi mã trường — thuộc tính đã gõ giữ cho mã trường và công tắc định dạng của nó đồng bộ. - Kết hợp nhiều giá trị
GeneralFormat(ví dụUppervàMergeFormat) bằng cách thêm từng giá trị vàoGeneralFormatsriêng biệt; bộ sưu tập cho phép hơn một mục nhập. - Sau khi thay đổi bất kỳ thuộc tính
FieldFormatnào, gọiUpdate()trên trường sở hữu để định dạng mới được phản ánh trongResult/DisplayResult. - Sử dụng
GeneralFormat.Noneđể xóa một mục định dạng chung một cách rõ ràng thay vì để lại các giá trị định dạng cũ trong bộ sưu tập. - Kiểm tra
GeneralFormatCollection.Counttrước khi giả định một trường không có định dạng chung nào được áp dụng — một bộ sưu tập trống và một bộ sưu tập chứaNonelà hai trạng thái khác nhau.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Cách khắc phục |
|---|---|---|
Thay đổi NumericFormat không có hiệu quả nào hiển thị | Trường không được tính lại sau khi thay đổi | Gọi Update() trên trường sau khi chỉnh sửa bất kỳ thuộc tính FieldFormat nào |
Các định dạng chung trùng lặp xuất hiện trong GeneralFormats | Add(item) đã được gọi nhiều hơn một lần cho cùng một giá trị GeneralFormat | Kiểm tra GeneralFormatCollection.Count hoặc lặp lại trước khi thêm, hoặc gọi Remove(item) trước |
Mục nhập sai đã bị xóa khỏi GeneralFormats | RemoveAt(index) đã được gọi với một chỉ mục đã dịch chuyển sau một lần xóa trước đó | Kiểm tra Count và duyệt lại bộ sưu tập trước khi xóa theo chỉ mục |
FAQ
FieldFormat được dùng để làm gì?
Đó là đối tượng định dạng có kiểu được cung cấp bởi Field.Format, cho phép truy cập vào định dạng số của trường (NumericFormat), định dạng ngày/giờ (DateTimeFormat), và các định dạng chung (GeneralFormats).
Một trường có thể có hơn một định dạng chung được áp dụng không?
Có — GeneralFormats là một GeneralFormatCollection, và bạn có thể Add hơn một giá trị GeneralFormat cho nó.
Làm sao để xóa tất cả định dạng chung khỏi một trường?
Lặp lại GeneralFormats và gọi Remove(item) cho mỗi giá trị, hoặc RemoveAt(index) cho một mục cụ thể.
Việc thiết lập các thuộc tính FieldFormat có tự động làm mới văn bản hiển thị của trường không?
Không — gọi Update() trên trường sau khi thay đổi các thuộc tính Format của nó để Result và DisplayResult phản ánh định dạng mới.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
FieldFormat | Truy cập có kiểu vào định dạng số, ngày/giờ và chung của một trường; được cung cấp qua Field.Format |
FieldFormat.NumericFormat | Mẫu định dạng được áp dụng cho kết quả trường số |
FieldFormat.DateTimeFormat | Mẫu định dạng được áp dụng cho kết quả trường ngày/giờ |
FieldFormat.GeneralFormats | GeneralFormatCollection của các định dạng chung được áp dụng cho kết quả trường |
GeneralFormat | Liệt kê các công tắc định dạng chung (biến đổi chữ hoa/thường, hệ thống đánh số, định dạng trường hợp ghép) |
GeneralFormatCollection | Bộ sưu tập đã định kiểu của các giá trị GeneralFormat; Add, Remove, RemoveAt, Count, GetEnumerator |