Pole data a času
Pole data a času
Tento průvodce ukazuje, jak pracovat s kalendářsky-vědomými třídami polí pro datum a čas v Aspose.Words FOSS pro .NET — FieldDate, FieldCreateDate, FieldPrintDate, a FieldSaveDate — které implementují Wordovy DATE, CREATEDATE, PRINTDATE, a SAVEDATE pole příslušně. Každá třída dědí z Field a implementuje IFieldWithCalendar; pro základní Field objektový model samotný (aktualizace, odpojení, odstraňování a formátování libovolného pole), viz the Práce s poli průvodce.
Čtyři třídy polí data a času
FieldDate implementuje pole DATE. FieldCreateDate implementuje CREATEDATE, datum vytvoření dokumentu. FieldPrintDate implementuje PRINTDATE, datum posledního tisku dokumentu. FieldSaveDate implementuje SAVEDATE, datum posledního uložení dokumentu. Všechny čtyři jsou podtřídami Field a implementují IFieldCodeTokenInfoProvider a IFieldWithCalendar, takže sdílejí Field``GetFieldCode(), Update(), Unlink(), Remove() a formátovací (Format) členy spolu s vlastními přepínači kalendáře popsanými níže.
Výběr negregoriánského kalendáře
Každá ze čtyř tříd poskytuje UseLunarCalendar (bool) pro vykreslení výsledku pomocí hidžského lunárního nebo hebrejského lunárního kalendáře, UseSakaEraCalendar (bool) pro kalendář éry Saka a UseUmAlQuraCalendar (bool) pro kalendář Um-al-Qura. Nastavte odpovídající vlastnost na true před voláním Update(), aby pole přepočítalo svůj výsledek pomocí tohoto kalendářního systému místo výchozího gregoriánského kalendáře.
FieldDate’s Přepínač formátu aplikace
FieldDate také zpřístupňuje UseLastFormat (bool), což řídí, zda pole použije formát naposledy použitý hostitelskou aplikací při vložení nového pole DATE. FieldCreateDate, FieldPrintDate a FieldSaveDate tuto vlastnost nezpřístupňují.
Tipy a osvědčené postupy
- Nastavte kalendářový přepínač (
UseLunarCalendar,UseSakaEraCalendarneboUseUmAlQuraCalendar) a poté zavolejteUpdate()na poli — změna samotné vlastnosti nepřepočítáResult. - Pro danou instanci pole nastavte pouze jeden kalendářový přepínač na
true; kombinace více než jednoho vede k nejednoznačnému výsledku. - Použijte
Field.Format(aFieldFormat, uvedeno v Formátování výsledků pole průvodce) spolu s těmito přepínači kalendáře také řídit číselný nebo datum/časový formátovací vzor aplikovaný na výsledek. - Vyberte třídu, která odpovídá požadované sémantice —
FieldSaveDateaFieldPrintDatečtou časové razítka zaznamenaná v dokumentu, zatímcoFieldDateodráží jakékoli datum, kdy je pole aktualizováno.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Přepínač kalendáře nemá žádný vliv na zobrazený výsledek | Pole nebylo přepočítáno po nastavení vlastnosti | Zavolejte Update() na instanci pole po nastavení UseLunarCalendar, UseSakaEraCalendar nebo UseUmAlQuraCalendar |
UseLastFormat se nekompiluje na FieldPrintDate nebo FieldSaveDate | Tato vlastnost existuje pouze v FieldDate | Použijte FieldDate pro chování application-format-follows, nebo nastavte Format explicitně na ostatních třídách |
| Výsledek ukazuje nesprávný kalendářní systém | Na stejném poli byl nastaven více než jeden přepínač kalendáře na true | Nastavte pouze jeden z UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar na každou instanci pole |
FAQ
Jaký je rozdíl mezi FieldDate a FieldCreateDate?
FieldDate implementuje pole DATE (přepočítává se na aktuální datum při každé aktualizaci); FieldCreateDate implementuje CREATEDATE (datum vytvoření dokumentu).
Jak mohu nastavit pole data tak, aby používalo kalendář Hijri (lunární)?
Nastavte UseLunarCalendar = true na instanci FieldDate, FieldCreateDate, FieldPrintDate nebo FieldSaveDate, poté zavolejte Update().
Která ze čtyř tříd sleduje, kdy byl dokument naposledy uložen?
FieldSaveDate, která implementuje pole SAVEDATE.
Podporují tyto třídy vlastní formátování obrázků, nejen přepínače kalendářů?
Ano — každý vystavuje a Format vlastnost (FieldFormat) zděděno z infrastruktury základního pole; viz Formátování výsledků pole průvodce pro NumericFormat and DateTimeFormat.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
FieldDate | Implementuje pole DATE |
FieldCreateDate | Implementuje pole CREATEDATE |
FieldPrintDate | Implementuje pole PRINTDATE |
FieldSaveDate | Implementuje pole SAVEDATE |
UseLunarCalendar | Vykresluje výsledek pomocí lunárního kalendáře Hijri nebo hebrejského lunárního kalendáře |
UseSakaEraCalendar | Vykresluje výsledek pomocí kalendáře Saka Era |
UseUmAlQuraCalendar | Vykresluje výsledek pomocí kalendáře Um-al-Qura |
FieldDate.UseLastFormat | Používá formát naposledy použitý hostitelskou aplikací pro nové pole DATE |
IFieldWithCalendar | Rozhraní implementované všemi čtyřmi třídami pro kalendářově-vědomé výsledky polí |