Formatering av fältresultat
Fältresultatformatering
Denna guide visar hur man styr den numeriska, datum/tid- och generella formateringen som tillämpas på ett fälts beräknade resultat i Aspose.Words FOSS för .NET, med hjälp av klassen FieldFormat, enumen GeneralFormat och GeneralFormatCollection. Varje Field-instans exponerar dessa formateringsväxlar via sin egenskap Format; den här sidan är en djupdykning i vad den egenskapen erbjuder.
Åtkomst till fältets formatering
Varje Field — och dess typade underklasser såsom FieldDate, FieldCreateDate och FieldSymbol — exponerar en Format-egenskap av typen FieldFormat, som används för typad åtkomst till fältets numeriska, datum- och tids- samt generella formatering. Läs Field.Format för att granska eller ändra växlarna som är kopplade till ett fälts kod utan att manuellt redigera den råa fältkodstexten.
Numeriska och datum/tid-formatbilder
FieldFormat.NumericFormat är en skrivbar string-egenskap som innehåller den formatering som tillämpas på ett numeriskt fältresultat. FieldFormat.DateTimeFormat är en skrivbar string-egenskap som innehåller den formatering som tillämpas på ett datum- och tidsfältresultat. Ställ in någon av egenskaperna för att ändra hur den motsvarande fälttypen renderar sitt beräknade värde.
Generella format
FieldFormat.GeneralFormats returnerar ett GeneralFormatCollection — allmänt syftande format som tillämpas på ett numeriskt, text- eller vilket fältresultat som helst. Dess medlemmar hämtas från GeneralFormat-enumerationen, som omfattar skiftlägesomvandlingar (Upper, Lower, FirstCap, Caps), romersk och ordinal numrering (UppercaseRoman, LowercaseRoman, Ordinal, OrdText), valuta och kardinal text (DollarText, BahtText, CardText), lokalspecifika talsystem (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), och de merge-fältsspecifika värdena CharFormat, MergeFormat och MergeFormatInet. None rensar allmänt format.
Hantera GeneralFormatCollection
GeneralFormatCollection implementerar IEnumerable<GeneralFormat>, så du kan iterera över den med GetEnumerator() i en foreach-loop. Anropa Add(item) för att lägga till ett GeneralFormat-värde, Remove(item) för att ta bort varje förekomst av ett värde, eller RemoveAt(index) för att ta bort värdet på en specifik position. Count rapporterar hur många allmänna format som för närvarande är tillämpade.
Tips och bästa praxis
- Ange
Field.Format.NumericFormatellerField.Format.DateTimeFormatistället för att bädda in en formateringsbild direkt i fältkodens sträng — den typade egenskapen håller fältkoden och dess formateringsväxel i synk. - Kombinera flera
GeneralFormat-värden (till exempelUpperochMergeFormat) genom att lägga till varje ett iGeneralFormatsindividuellt; samlingen tillåter fler än ett objekt. - Efter att ha ändrat någon
FieldFormat-egenskap, anropaUpdate()på det ägande fältet så att den nya formateringen återspeglas iResult/DisplayResult. - Använd
GeneralFormat.Noneför att uttryckligen rensa en allmän formatpost snarare än att lämna föråldrade formateringsvärden i samlingen. - Kontrollera
GeneralFormatCollection.Countinnan du antar att ett fält saknar generell formatering — en tom samling och en samling som innehållerNoneär olika tillstånd.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
Att ändra NumericFormat har ingen synlig effekt | Fältet beräknades inte om efter ändringen | Anropa Update() på fältet efter att du har redigerat någon FieldFormat-egenskap |
Duplicerade allmänna format visas i GeneralFormats | Add(item) anropades mer än en gång för samma GeneralFormat-värde | Kontrollera GeneralFormatCollection.Count eller iterera innan du lägger till, eller anropa Remove(item) först |
Fel post borttagen från GeneralFormats | RemoveAt(index) anropades med ett index som skiftade efter en tidigare borttagning | Kontrollera Count och iterera samlingen igen innan du tar bort med index |
FAQ
Vad används FieldFormat till?
Det är det typade formateringsobjektet som exponeras av Field.Format, vilket ger åtkomst till ett fälts numeriska format (NumericFormat), datum-/tidformat (DateTimeFormat) och generella format (GeneralFormats).
Kan ett fält ha mer än ett generellt format tillämpat?
Ja — GeneralFormats är en GeneralFormatCollection, och du kan Add mer än ett GeneralFormat-värde till den.
Hur tar jag bort all generell formatering från ett fält?
Iterera GeneralFormats och anropa Remove(item) för varje värde, eller RemoveAt(index) för en specifik post.
Uppdateras fältets visade text automatiskt när FieldFormat-egenskaperna sätts?
Nej — anropa Update() på fältet efter att ha ändrat dess Format-egenskaper så att Result och DisplayResult återspeglar den nya formateringen.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
FieldFormat | Typad åtkomst till ett fälts numeriska, datum/tids- och allmänna formatering; exponeras via Field.Format |
FieldFormat.NumericFormat | Formateringsmall tillämpad på ett numeriskt fältresultat |
FieldFormat.DateTimeFormat | Formateringsmall tillämpad på ett datum/tid-fältresultat |
FieldFormat.GeneralFormats | GeneralFormatCollection av allmänna format som tillämpas på fältresultatet |
GeneralFormat | Enum av allmänna formateringsväxlar (skiftlägesomvandlingar, nummersystem, sammanfogningsfältformat) |
GeneralFormatCollection | Typad samling av GeneralFormat värden; Add, Remove, RemoveAt, Count, GetEnumerator |