Форматирование результата поля

Форматирование результата поля

Форматирование результата поля

Это руководство показывает, как управлять числовым, датой/временем и общим форматированием, применяемым к вычисленному результату поля в 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
Дублирующиеся общие форматы появляются в GeneralFormatsAdd(item) был вызван более одного раза для того же значения GeneralFormatПроверьте GeneralFormatCollection.Count или выполните итерацию перед добавлением, либо сначала вызовите Remove(item)
Неправильная запись удалена из GeneralFormatsRemoveAt(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.GeneralFormatsGeneralFormatCollection из общих форматов, применённых к результату поля
GeneralFormatПеречисление общих переключателей форматирования (преобразования регистра, системы счисления, форматы полей слияния)
GeneralFormatCollectionТипизированная коллекция значений GeneralFormat; Add, Remove, RemoveAt, Count, GetEnumerator

См. также:

 Русский