Campi Data e Ora

Campi Data e Ora

Questa guida mostra come lavorare con le classi di campo data e ora sensibili al calendario in Aspose.Words FOSS per .NET — FieldDate, FieldCreateDate, FieldPrintDate, e FieldSaveDate — che implementano Word’s DATE, CREATEDATE, PRINTDATE, e SAVEDATE campi rispettivamente. Ogni classe deriva da Field e implementa IFieldWithCalendar; per il modello di base Field del modello di oggetto stesso (aggiornamento, scollegamento, rimozione e formattazione di qualsiasi campo), vedere il Lavorare con i campi guida.


Le quattro classi di campo data e ora

FieldDate implementa il campo DATE. FieldCreateDate implementa CREATEDATE, la data di creazione del documento. FieldPrintDate implementa PRINTDATE, la data dell’ultima stampa del documento. FieldSaveDate implementa SAVEDATE, la data dell’ultimo salvataggio del documento. Tutte e quattro sono sottoclassi di Field e implementano IFieldCodeTokenInfoProvider e IFieldWithCalendar, quindi condividono i membri GetFieldCode(), Update(), Unlink(), Remove() e di formattazione (Format) di Field, insieme ai propri interruttori di calendario descritti di seguito.


Selezionare un calendario non gregoriano

Ciascuna delle quattro classi espone UseLunarCalendar (bool) per rendere il risultato usando il calendario lunare Hijri o il calendario lunare ebraico, UseSakaEraCalendar (bool) per il calendario dell’Era Saka e UseUmAlQuraCalendar (bool) per il calendario Um-al-Qura. Imposta la proprietà corrispondente su true prima di chiamare Update() per far ricalcolare al campo il suo risultato usando quel sistema di calendario invece del calendario gregoriano predefinito.


Interruttore Applicazione-Formato di FieldDate

FieldDate espone inoltre UseLastFormat (bool), che controlla se il campo utilizza un formato usato l’ultima volta dall’applicazione host quando viene inserito un nuovo campo DATE. FieldCreateDate, FieldPrintDate e FieldSaveDate non espongono questa proprietà.


Suggerimenti e Buone Pratiche

  • Imposta un interruttore di calendario (UseLunarCalendar, UseSakaEraCalendar o UseUmAlQuraCalendar) e poi chiama Update() sul campo — modificare solo la proprietà non ricalcola Result.
  • Imposta un solo interruttore di calendario su true per una determinata istanza del campo; combinare più di uno produce un risultato ambiguo.
  • Usa Field.Format (un FieldFormat, trattato nella Formattazione del risultato del campo guida) insieme a questi interruttori del calendario per controllare anche l’immagine di formattazione numerica o data/ora applicata al risultato.
  • Scegli la classe che corrisponde alla semantica di cui hai bisogno — FieldSaveDate e FieldPrintDate leggono i timestamp registrati nel documento, mentre FieldDate riflette la data in cui il campo viene aggiornato.

Problemi Comuni

ProblemaCausaCorrezione
Il cambio di calendario non ha effetto sul risultato visualizzatoIl campo non è stato ricalcolato dopo che la proprietà è stata impostataChiama Update() sull’istanza del campo dopo aver impostato UseLunarCalendar, UseSakaEraCalendar o UseUmAlQuraCalendar
UseLastFormat non compila su FieldPrintDate o FieldSaveDateQuella proprietà esiste solo su FieldDateUsa FieldDate per il comportamento application-format-follows, oppure imposta Format esplicitamente sulle altre classi
Il risultato mostra il sistema di calendario erratoPiù di un interruttore di calendario è stato impostato su true nello stesso campoImposta solo uno di UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar per istanza di campo

FAQ

Qual è la differenza tra FieldDate e FieldCreateDate?

FieldDate implementa il campo DATE (ricalcola alla data corrente ogni volta che si aggiorna); FieldCreateDate implementa CREATEDATE (la data in cui il documento è stato creato).

Come faccio a far utilizzare al campo data il calendario lunare Hijri?

Imposta UseLunarCalendar = true sull’istanza FieldDate, FieldCreateDate, FieldPrintDate o FieldSaveDate, quindi chiama Update().

Quale delle quattro classi registra quando un documento è stato salvato per l’ultima volta?

FieldSaveDate, che implementa il campo SAVEDATE.

Queste classi supportano immagini di formattazione personalizzate, non solo gli switch del calendario?

Sì — ciascuno espone un Format proprietà (FieldFormat) ereditata dall’infrastruttura di base del campo; vedi la Formattazione del risultato del campo guida per NumericFormat and DateTimeFormat.


API Reference Riepilogo

Classe/MetodoDescrizione
FieldDateImplementa il campo DATE
FieldCreateDateImplementa il campo CREATEDATE
FieldPrintDateImplementa il campo PRINTDATE
FieldSaveDateImplementa il campo SAVEDATE
UseLunarCalendarRenderizza il risultato utilizzando il calendario lunare Hijri o il calendario lunare ebraico
UseSakaEraCalendarRenderizza il risultato utilizzando il calendario dell’Era Saka
UseUmAlQuraCalendarRenderizza il risultato utilizzando il calendario Um-al-Qura
FieldDate.UseLastFormatUtilizza un formato usato per l’ultima volta dall’applicazione di hosting per un nuovo campo DATE
IFieldWithCalendarInterfaccia implementata da tutte e quattro le classi per i risultati dei campi sensibili al calendario

Vedi anche

 Italiano