Форматирование результата поля
Форматирование результата поля
Это руководство показывает, как управлять числовым, датой/временем и общим форматированием, применяемым к вычисленному результату поля в 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 |