Форматування результату поля
Форматування результату поля
У цьому посібнику показано, як керувати числовим, датою/часом та загальним форматуванням, що застосовується до обчисленого результату поля в Aspose.Words FOSS для .NET, використовуючи клас FieldFormat, перелік GeneralFormat та GeneralFormatCollection. Кожен екземпляр Field надає ці перемикачі форматування через свою властивість Format; ця сторінка — глибоке занурення у те, що пропонує ця властивість.
Доступ до форматування поля
Кожен Field — а також його типізовані підкласи, такі як FieldDate, FieldCreateDate і FieldSymbol — надає властивість Format типу FieldFormat, що використовується для типізованого доступу до числового, датового та часового, а також загального форматування поля. Прочитайте Field.Format, щоб переглянути або змінити перемикачі, прикріплені до коду поля, без ручного редагування сирого тексту коду поля.
Зображення числових та датових/часових форматів
FieldFormat.NumericFormat — це записувана властивість string, що містить форматування, застосоване до результату числового поля. FieldFormat.DateTimeFormat — це записувана властивість string, що містить форматування, застосоване до результату поля дати та часу. Встановіть будь-яку з цих властивостей, щоб змінити спосіб, у який відповідний тип поля виводить своє обчислене значення.
Загальні формати
FieldFormat.GeneralFormats повертає GeneralFormatCollection — формати загального призначення, застосовані до числового, текстового або будь-якого результату поля. Його члени беруться з переліку 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 | Перелік загальних перемикачів форматування (перетворення регістру, системи нумерації, формати полів злиття) |
GeneralFormatCollection | Типізована колекція GeneralFormat значень; Add, Remove, RemoveAt, Count, GetEnumerator |