Pola daty i czasu

Pola daty i czasu

Ten przewodnik pokazuje, jak pracować z klasami pól daty i czasu uwzględniającymi kalendarz w Aspose.Words FOSS dla .NET — FieldDate, FieldCreateDate, FieldPrintDate, oraz FieldSaveDate — które implementują Word’s DATE, CREATEDATE, PRINTDATE, oraz SAVEDATE odpowiednio pola. Każda klasa dziedziczy po Field i implementuje IFieldWithCalendar; dla podstawowego Field modelu obiektowego (aktualizowanie, odłączanie, usuwanie i formatowanie dowolnego pola), zobacz the Praca z polami przewodnik.


Cztery klasy pól daty i czasu

FieldDate implementuje pole DATE. FieldCreateDate implementuje CREATEDATE, datę utworzenia dokumentu. FieldPrintDate implementuje PRINTDATE, datę ostatniego wydrukowania dokumentu. FieldSaveDate implementuje SAVEDATE, datę ostatniego zapisania dokumentu. Wszystkie cztery są podklasami Field i implementują IFieldCodeTokenInfoProvider oraz IFieldWithCalendar, więc dzielą członków Field: GetFieldCode(), Update(), Unlink(), Remove() oraz formatowanie (Format) opisane poniżej.


Wybór kalendarza niegregoriańskiego

Każda z czterech klas udostępnia UseLunarCalendar (bool), aby renderować wynik z użyciem kalendarza Hijri Lunar lub Hebrew Lunar, UseSakaEraCalendar (bool) dla kalendarza Saka Era oraz UseUmAlQuraCalendar (bool) dla kalendarza Um-al-Qura. Ustaw odpowiednią właściwość na true przed wywołaniem Update(), aby pole przeliczyło swój wynik przy użyciu tego systemu kalendarzowego zamiast domyślnego kalendarza gregoriańskiego.


FieldDate – przełącznik Application-Format

FieldDate dodatkowo udostępnia UseLastFormat (bool), które kontroluje, czy pole używa formatu ostatnio używanego przez aplikację hostującą, gdy wstawiane jest nowe pole DATE. FieldCreateDate, FieldPrintDate i FieldSaveDate nie udostępniają tej właściwości.


Wskazówki i najlepsze praktyki

  • Ustaw przełącznik kalendarza (UseLunarCalendar, UseSakaEraCalendar lub UseUmAlQuraCalendar) i następnie wywołaj Update() na polu — zmiana samej właściwości nie przelicza Result.
  • Ustaw tylko jeden przełącznik kalendarza na true w danej instancji pola; łączenie więcej niż jednego powoduje niejednoznaczny wynik.
  • Użyj Field.Format (a FieldFormat, zawarte w Formatowanie Wyników Pola przewodnik) wraz z tymi przełącznikami kalendarza, aby również kontrolować obraz formatowania liczbowego lub daty/czasu zastosowanego do wyniku.
  • Wybierz klasę, która odpowiada potrzebnej semantyce — FieldSaveDate i FieldPrintDate odczytują znaczniki czasu zapisane w dokumencie, podczas gdy FieldDate odzwierciedla dowolną datę, kiedy pole jest aktualizowane.

Typowe problemy

ProblemPrzyczynaNaprawa
Przełącznik kalendarza nie ma wpływu na wyświetlany wynikPole nie zostało przeliczone po ustawieniu właściwościWywołaj Update() na instancji pola po ustawieniu UseLunarCalendar, UseSakaEraCalendar lub UseUmAlQuraCalendar
UseLastFormat nie kompiluje się na FieldPrintDate lub FieldSaveDateTa właściwość istnieje tylko w FieldDateUżyj FieldDate dla zachowania application-format-follows lub ustaw Format jawnie w pozostałych klasach
Wynik pokazuje niewłaściwy system kalendarzowyWięcej niż jeden przełącznik kalendarza zostało ustawione na true w tym samym poluUstaw tylko jedną z UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar na jedną instancję pola

FAQ

Jaka jest różnica między FieldDate a FieldCreateDate?

FieldDate implementuje pole DATE (przelicza na bieżącą datę za każdym razem, gdy się aktualizuje); FieldCreateDate implementuje CREATEDATE (datę utworzenia dokumentu).

Jak sprawić, aby pole daty używało kalendarza Hijri Lunar?

Ustaw UseLunarCalendar = true w instancji FieldDate, FieldCreateDate, FieldPrintDate lub FieldSaveDate, a następnie wywołaj Update().

Która z czterech klas śledzi, kiedy dokument został ostatnio zapisany?

FieldSaveDate, który implementuje pole SAVEDATE.

Czy te klasy obsługują własne obrazy formatowania, a nie tylko przełączniki kalendarza?

Tak — każdy udostępnia a Format właściwość (FieldFormat) odziedziczona z podstawowej infrastruktury pola; zobacz the Formatowanie Wyników Pola przewodnik dla NumericFormat and DateTimeFormat.


API Reference Podsumowanie

Klasa/MetodaOpis
FieldDateImplementuje pole DATE
FieldCreateDateImplementuje pole CREATEDATE
FieldPrintDateImplementuje pole PRINTDATE
FieldSaveDateImplementuje pole SAVEDATE
UseLunarCalendarRenderuje wynik przy użyciu kalendarza księżycowego Hijri lub kalendarza księżycowego hebrajskiego
UseSakaEraCalendarRenderuje wynik przy użyciu kalendarza Saka Era
UseUmAlQuraCalendarRenderuje wynik przy użyciu kalendarza Um-al-Qura
FieldDate.UseLastFormatUżywa formatu ostatnio używanego przez aplikację hostującą dla nowego pola DATE
IFieldWithCalendarInterfejs zaimplementowany przez wszystkie cztery klasy dla wyników pól zależnych od kalendarza

Zobacz także

 Polski