Câmpuri de dată și oră
Câmpuri de dată și oră
Acest ghid arată cum să lucraţi cu clasele de câmpuri de dată și oră conștiente de calendar în Aspose.Words FOSS pentru .NET — FieldDate, FieldCreateDate, FieldPrintDate, și FieldSaveDate — care implementează Word DATE, CREATEDATE, PRINTDATE, și SAVEDATE câmpuri, respectiv. Fiecare clasă derivă din Field și implementează IFieldWithCalendar; pentru baza Field modelului de obiecte în sine (actualizarea, deconectarea, eliminarea și formatarea oricărui câmp), consultaţi the Lucrul cu câmpuri ghid.
Cele patru clase de câmpuri de dată și oră
FieldDate implementează câmpul DATE. FieldCreateDate implementează CREATEDATE, data creării documentului. FieldPrintDate implementează PRINTDATE, data ultimei tipăriri a documentului. FieldSaveDate implementează SAVEDATE, data ultimei salvări a documentului. Toate cele patru sunt subclase ale Field și implementează IFieldCodeTokenInfoProvider și IFieldWithCalendar, astfel că împărtășesc membrii GetFieldCode(), Update(), Unlink(), Remove() și de formatare (Format) ai Field, pe lângă propriile comutatoare de calendar descrise mai jos.
Selectarea unui calendar non-gregorian
Fiecare dintre cele patru clase expune UseLunarCalendar (bool) pentru a reda rezultatul utilizând calendarul Hijri Lunar sau calendarul Hebrei Lunar, UseSakaEraCalendar (bool) pentru calendarul Saka Era și UseUmAlQuraCalendar (bool) pentru calendarul Um-al-Qura. Setați proprietatea corespunzătoare la true înainte de a apela Update() pentru ca câmpul să recalculze rezultatul utilizând acel sistem de calendar în locul calendarului gregorian implicit.
Comutatorul de aplicație-format al lui FieldDate
FieldDate expune suplimentar UseLastFormat (bool), care controlează dacă câmpul folosește un format utilizat ultima dată de aplicația gazdă când este inserat un nou câmp DATE. FieldCreateDate, FieldPrintDate și FieldSaveDate nu expun această proprietate.
Sfaturi și bune practici
- Setaţi un comutator de calendar (
UseLunarCalendar,UseSakaEraCalendarsauUseUmAlQuraCalendar) și apoi apelaţiUpdate()pe câmp — modificarea proprietăţii singură nu recalculeazăResult. - Setaţi un singur comutator de calendar la
truepentru o anumită instanță de câmp; combinarea a mai multor comutatoare produce un rezultat ambiguu. - Utilizaţi
Field.Format(unFieldFormat, acoperit în Formatarea rezultatului câmpului ghid) alături de aceste comutatoare de calendar pentru a controla, de asemenea, imaginea de formatare numerică sau de dată/oră aplicată rezultatului. - Alegeţi clasa care corespunde semanticiului de care aveţi nevoie —
FieldSaveDateșiFieldPrintDatecitesc marcajele de timp înregistrate în document, în timp ceFieldDatereflectă data la care câmpul este actualizat.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
| Comutarea calendarului nu are niciun efect asupra rezultatului afișat | Câmpul nu a fost recalculat după ce proprietatea a fost setată | Apelă Update() pe instanța câmpului după setarea lui UseLunarCalendar, UseSakaEraCalendar sau UseUmAlQuraCalendar |
UseLastFormat nu se compilează pe FieldPrintDate sau FieldSaveDate | Acea proprietate există doar pe FieldDate | Folosește FieldDate pentru comportamentul application-format-follows sau setează Format explicit pe celelalte clase |
| Rezultatul afișează sistemul de calendar greșit | Mai mult de un comutator de calendar a fost setat la true pe același câmp | Setați doar unul dintre UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar pentru fiecare instanță de câmp |
FAQ
Care este diferența dintre FieldDate și FieldCreateDate?
FieldDate implementează câmpul DATE (recalculează data curentă de fiecare dată când se actualizează); FieldCreateDate implementează CREATEDATE (data la care documentul a fost creat).
Cum pot face ca un câmp de dată să folosească calendarul Hijri Lunar?
Setați UseLunarCalendar = true pe instanța FieldDate, FieldCreateDate, FieldPrintDate sau FieldSaveDate, apoi apelați Update().
Care dintre cele patru clase urmărește când a fost salvat ultima dată un document?
FieldSaveDate, care implementează câmpul SAVEDATE.
Aceste clase suportă imagini de formatare personalizate, nu doar comutatoare de calendar?
Da — fiecare expune un Format proprietate (FieldFormat) moștenită de la infrastructura de bază a câmpului; vedeți Formatarea rezultatului câmpului ghid pentru NumericFormat and DateTimeFormat.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
FieldDate | Implementează câmpul DATE |
FieldCreateDate | Implementează câmpul CREATEDATE |
FieldPrintDate | Implementează câmpul PRINTDATE |
FieldSaveDate | Implementează câmpul SAVEDATE |
UseLunarCalendar | Redă rezultatul utilizând calendarul Hijri Lunar sau calendarul ebraic Lunar |
UseSakaEraCalendar | Redă rezultatul utilizând calendarul Saka Era |
UseUmAlQuraCalendar | Redă rezultatul utilizând calendarul Um-al-Qura |
FieldDate.UseLastFormat | Folosește un format utilizat ultima dată de aplicația gazdă pentru un nou câmp DATE |
IFieldWithCalendar | Interfață implementată de toate cele patru clase pentru rezultate de câmp sensibile la calendar |