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, UseSakaEraCalendar sau UseUmAlQuraCalendar) și apoi apelaţi Update() pe câmp — modificarea proprietăţii singură nu recalculează Result.
  • Setaţi un singur comutator de calendar la true pentru o anumită instanță de câmp; combinarea a mai multor comutatoare produce un rezultat ambiguu.
  • Utilizaţi Field.Format (un FieldFormat, 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 și FieldPrintDate citesc marcajele de timp înregistrate în document, în timp ce FieldDate reflectă data la care câmpul este actualizat.

Probleme comune

ProblemăCauzăRemediere
Comutarea calendarului nu are niciun efect asupra rezultatului afișatCâ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 FieldSaveDateAcea proprietate există doar pe FieldDateFolosește FieldDate pentru comportamentul application-format-follows sau setează Format explicit pe celelalte clase
Rezultatul afișează sistemul de calendar greșitMai mult de un comutator de calendar a fost setat la true pe același câmpSetaț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:
FieldDateImplementează câmpul DATE
FieldCreateDateImplementează câmpul CREATEDATE
FieldPrintDateImplementează câmpul PRINTDATE
FieldSaveDateImplementează câmpul SAVEDATE
UseLunarCalendarRedă rezultatul utilizând calendarul Hijri Lunar sau calendarul ebraic Lunar
UseSakaEraCalendarRedă rezultatul utilizând calendarul Saka Era
UseUmAlQuraCalendarRedă rezultatul utilizând calendarul Um-al-Qura
FieldDate.UseLastFormatFolosește un format utilizat ultima dată de aplicația gazdă pentru un nou câmp DATE
IFieldWithCalendarInterfață implementată de toate cele patru clase pentru rezultate de câmp sensibile la calendar

Vezi și:

 Română