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,UseSakaEraCalendarellerUseUmAlQuraCalendar) och anropa sedanUpdate()på fältet — att bara ändra egenskapen beräknar inte omResult. - Ställ in endast en kalenderswitch till
truepå en given fältinstans; att kombinera fler än en ger ett tvetydigt resultat. - Använd
Field.Format(enFieldFormat, 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 —
FieldSaveDateochFieldPrintDateläser tidsstämplar som sparats i dokumentet, medanFieldDatevisar det datum fältet uppdateras.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| Kalenderväxeln har ingen effekt på det visade resultatet | Fältet beräknades inte om efter att egenskapen sattes | Anropa Update() på fältinstansen efter att ha satt UseLunarCalendar, UseSakaEraCalendar eller UseUmAlQuraCalendar |
UseLastFormat kompilerar inte på FieldPrintDate eller FieldSaveDate | Den egenskapen finns endast på FieldDate | Använd FieldDate för application-format-follows-beteende, eller sätt Format explicit på de andra klasserna |
| Resultatet visar fel kalendersystem | Fler än en kalenderväxel sattes till true på samma fält | Stä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/Metod | Beskrivning |
|---|---|
FieldDate | Implementerar fältet DATE |
FieldCreateDate | Implementerar fältet CREATEDATE |
FieldPrintDate | Implementerar fältet PRINTDATE |
FieldSaveDate | Implementerar fältet SAVEDATE |
UseLunarCalendar | Renderar resultatet med den hijri-lunära eller hebreiska lunära kalendern |
UseSakaEraCalendar | Renderar resultatet med Saka Era-kalendern |
UseUmAlQuraCalendar | Renderar resultatet med Um-al-Qura-kalendern |
FieldDate.UseLastFormat | Använder ett format som senast användes av värdapplikationen för ett nytt DATE-fält |
IFieldWithCalendar | Gränssnitt som implementeras av alla fyra klasser för kalendermedvetna fältresultat |