Datum- och tidsfält

Datum- och tidsfält

Denna guide visar hur man arbetar med de kalendermedvetna datum- och tidsfältklasserna i Aspose.Words FOSS för .NET — FieldDate, FieldCreateDate, FieldPrintDate, och FieldSaveDate — som implementerar Word’s DATE, CREATEDATE, PRINTDATE, och SAVEDATE fält respektive. Varje klass ärver från Field och implementerar IFieldWithCalendar; för den grundläggande Field objektmodellen själv (uppdatering, avlänkning, borttagning och formatering av vilket fält som helst), se the Arbeta med fält guide.


De fyra datum- och tidsfältklasserna

FieldDate implementerar DATE-fältet. FieldCreateDate implementerar CREATEDATE, datumet dokumentet skapades. FieldPrintDate implementerar PRINTDATE, datumet dokumentet senast trycktes. FieldSaveDate implementerar SAVEDATE, datumet dokumentet senast sparades. Alla fyra är underklasser till Field och implementerar IFieldCodeTokenInfoProvider och IFieldWithCalendar, så de delar Fields GetFieldCode(), Update(), Unlink(), Remove() och formateringsmedlemmar (Format) tillsammans med sina egna kalenderswitchar som beskrivs nedan.


Välja en icke-gregoriansk kalender

Varje av de fyra klasserna exponerar UseLunarCalendar (bool) för att rendera resultatet med den hijriiska månkalendaren eller den hebreiska månkalendaren, UseSakaEraCalendar (bool) för Saka-erakalendaren och UseUmAlQuraCalendar (bool) för Um-al-Qura-kalendaren. Ställ in motsvarande egenskap till true innan du anropar Update() för att låta fältet omberäkna sitt resultat med det kalenderformatet istället för den standardgregorianska kalendern.


FieldDate s applikationsformat-växel

FieldDate exponerar dessutom UseLastFormat (bool), vilket styr om fältet använder ett format som senast användes av värdprogrammet när ett nytt DATE fält infogas. FieldCreateDate, FieldPrintDate och FieldSaveDate exponerar inte denna egenskap.


Tips och bästa praxis

  • Ställ in en kalenderswitch (UseLunarCalendar, UseSakaEraCalendar eller UseUmAlQuraCalendar) och anropa sedan Update() på fältet — att bara ändra egenskapen beräknar inte om Result.
  • Ställ in endast en kalenderswitch till true på en given fältinstans; att kombinera fler än en ger ett tvetydigt resultat.
  • Använd Field.Format (en FieldFormat, täckt i Fältresultatformatering guide) tillsammans med dessa kalenderswitchar för att även kontrollera den numeriska eller datum/tidsformateringsmall som tillämpas på resultatet.
  • Välj den klass som matchar den semantik du behöver — FieldSaveDate och FieldPrintDate läser tidsstämplar som sparats i dokumentet, medan FieldDate visar det datum fältet uppdateras.

Vanliga problem

ProblemOrsakLösning
Kalenderväxeln har ingen effekt på det visade resultatetFältet beräknades inte om efter att egenskapen sattesAnropa Update() på fältinstansen efter att ha satt UseLunarCalendar, UseSakaEraCalendar eller UseUmAlQuraCalendar
UseLastFormat kompilerar inte på FieldPrintDate eller FieldSaveDateDen egenskapen finns endast på FieldDateAnvänd FieldDate för application-format-follows-beteende, eller sätt Format explicit på de andra klasserna
Resultatet visar fel kalendersystemFler än en kalenderväxel sattes till true på samma fältStäll in endast en av UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar per fältinstans

FAQ

Vad är skillnaden mellan FieldDate och FieldCreateDate?

FieldDate implementerar DATE-fältet (omräknar till aktuellt datum varje gång det uppdateras); FieldCreateDate implementerar CREATEDATE (datumet då dokumentet skapades).

Hur gör jag så att ett datumfält använder Hijri Lunar-kalendern?

Ställ in UseLunarCalendar = true på FieldDate, FieldCreateDate, FieldPrintDate eller FieldSaveDate-instansen, sedan anropa Update().

Vilken av de fyra klasserna spårar när ett dokument senast sparades?

FieldSaveDate, som implementerar SAVEDATE-fältet.

Stöder dessa klasser anpassade formateringsbilder, inte bara kalenderomkopplare?

Ja — varje exponerar en Format egenskap (FieldFormat) ärvd från den grundläggande fältinfrastrukturen; se den Fältresultatformatering guide för NumericFormat and DateTimeFormat.


API Reference Sammanfattning

Klass/MetodBeskrivning
FieldDateImplementerar fältet DATE
FieldCreateDateImplementerar fältet CREATEDATE
FieldPrintDateImplementerar fältet PRINTDATE
FieldSaveDateImplementerar fältet SAVEDATE
UseLunarCalendarRenderar resultatet med den hijri-lunära eller hebreiska lunära kalendern
UseSakaEraCalendarRenderar resultatet med Saka Era-kalendern
UseUmAlQuraCalendarRenderar resultatet med Um-al-Qura-kalendern
FieldDate.UseLastFormatAnvänder ett format som senast användes av värdapplikationen för ett nytt DATE-fält
IFieldWithCalendarGränssnitt som implementeras av alla fyra klasser för kalendermedvetna fältresultat

Se även

 Svenska