Champs de date et d'heure

Champs de date et d’heure

Ce guide montre comment travailler avec les classes de champs de date et d’heure sensibles au calendrier dans Aspose.Words FOSS pour .NET — FieldDate, FieldCreateDate, FieldPrintDate, et FieldSaveDate — qui implémentent les champs Word’s DATE, CREATEDATE, PRINTDATE, et SAVEDATE champs respectivement. Chaque classe dérive de Field et implémente IFieldWithCalendar; pour le modèle de base Field du modèle d’objet lui-même (mise à jour, détachement, suppression et formatage de tout champ), voir le Travailler avec les champs guide.


Les quatre classes de champs de date et d’heure

FieldDate implémente le champ DATE. FieldCreateDate implémente CREATEDATE, la date de création du document. FieldPrintDate implémente PRINTDATE, la date à laquelle le document a été imprimé pour la dernière fois. FieldSaveDate implémente SAVEDATE, la date à laquelle le document a été enregistré pour la dernière fois. Les quatre sont des sous-classes de Field et implémentent IFieldCodeTokenInfoProvider et IFieldWithCalendar, de sorte qu’ils partagent les membres GetFieldCode(), Update(), Unlink(), Remove() et de formatage (Format) de Field, ainsi que leurs propres commutateurs de calendrier décrits ci-dessous.


Sélection d’un calendrier non grégorien

Chacune des quatre classes expose UseLunarCalendar (bool) pour rendre le résultat en utilisant le calendrier lunaire Hijri ou le calendrier lunaire hébreu, UseSakaEraCalendar (bool) pour le calendrier de l’ère Saka, et UseUmAlQuraCalendar (bool) pour le calendrier Um-al-Qura. Définissez la propriété correspondante sur true avant d’appeler Update() afin que le champ recalculte son résultat en utilisant ce système de calendrier au lieu du calendrier grégorien par défaut.


Commutateur Application-Format de FieldDate

FieldDate expose également UseLastFormat (bool), qui contrôle si le champ utilise le format dernièrement utilisé par l’application hôte lorsqu’un nouveau champ DATE est inséré. FieldCreateDate, FieldPrintDate et FieldSaveDate n’exposent pas cette propriété.


Conseils et bonnes pratiques

  • Définissez un commutateur de calendrier (UseLunarCalendar, UseSakaEraCalendar ou UseUmAlQuraCalendar) puis appelez Update() sur le champ — modifier uniquement la propriété ne recalcule pas Result.
  • Définissez un seul commutateur de calendrier sur true pour une instance de champ donnée; combiner plus d’un produit un résultat ambigu.
  • Utiliser Field.Format (un FieldFormat, couvert dans le Mise en forme du résultat du champ guide) ainsi qu’avec ces commutateurs de calendrier pour également contrôler le format numérique ou date/heure appliqué au résultat.
  • Choisissez la classe qui correspond à la sémantique dont vous avez besoin — FieldSaveDate et FieldPrintDate lisent les horodatages enregistrés dans le document, tandis que FieldDate reflète la date à laquelle le champ est mis à jour.

Problèmes courants

ProblèmeCauseCorrection
Le commutateur de calendrier n’a aucun effet sur le résultat affichéLe champ n’a pas été recalculé après que la propriété a été définieAppelez Update() sur l’instance du champ après avoir défini UseLunarCalendar, UseSakaEraCalendar ou UseUmAlQuraCalendar
UseLastFormat ne compile pas sur FieldPrintDate ou FieldSaveDateCette propriété n’existe que sur FieldDateUtilisez FieldDate pour le comportement application-format-follows, ou définissez Format explicitement sur les autres classes
Le résultat indique le mauvais système de calendrierPlus d’un commutateur de calendrier a été défini sur true dans le même champDéfinissez uniquement l’un de UseLunarCalendar, UseSakaEraCalendar, UseUmAlQuraCalendar par instance de champ

FAQ

Quelle est la différence entre FieldDate et FieldCreateDate ?

FieldDate implémente le champ DATE (recalcule à la date actuelle à chaque mise à jour); FieldCreateDate implémente CREATEDATE (la date de création du document).

Comment faire en sorte qu’un champ date utilise le calendrier lunaire hijri?

Définissez UseLunarCalendar = true sur l’instance FieldDate, FieldCreateDate, FieldPrintDate ou FieldSaveDate, puis appelez Update().

Laquelle des quatre classes suit la date de la dernière sauvegarde d’un document?

FieldSaveDate, qui implémente le champ SAVEDATE.

Ces classes prennent-elles en charge la mise en forme personnalisée d’images, et pas seulement les commutateurs de calendrier?

Oui — chacun expose un Format propriété (FieldFormat) Mise en forme du résultat du champ guide pour NumericFormat and DateTimeFormat.


API Reference Résumé

Classe/MéthodeDescription
FieldDateImplémente le champ DATE
FieldCreateDateImplémente le champ CREATEDATE
FieldPrintDateImplémente le champ PRINTDATE
FieldSaveDateImplémente le champ SAVEDATE
UseLunarCalendarRend le résultat en utilisant le calendrier Hijri Lunar ou le calendrier Hebrew Lunar
UseSakaEraCalendarRend le résultat en utilisant le calendrier Saka Era
UseUmAlQuraCalendarRend le résultat en utilisant le calendrier Um-al-Qura
FieldDate.UseLastFormatUtilise le format utilisé en dernier par l’application d’hébergement pour un nouveau champ DATE
IFieldWithCalendarInterface implémentée par les quatre classes pour les résultats de champ sensibles au calendrier

Voir aussi

 Français