Recherche…


Introduction

Cette rubrique présente différentes options disponibles dans l’Acumatica Framework pour créer des champs de date et d’heure dans une classe DAC (Data Access Class).

L'attribut DateAndTime PX (DB)

L'attribut PXDBDateAndTime et l'attribut PXDateAndTime sont conçus pour fonctionner avec un champ DAC du type Nullable<DateTime> ( DateTime? ) Et stockent les parties de valeur de date et d'heure dans un seul champ:

#region UsrDateAndTime
public abstract class usrDateAndTimeAttribute : IBqlField
{ }

[PXDBDateAndTime(
    DisplayNameDate = "Date Value Part",
    DisplayNameTime = "Time Value Part")]
public DateTime? UsrDateAndTime { get; set; }
#endregion

Du point de vue de l'interface utilisateur, pour un champ décoré avec PXDBDateAndTimeAttribute ou PXDateAndTimeAttribute , on doit créer des contrôles d'entrée distincts pour les parties de valeur de date et d'heure:

entrer la description de l'image ici

<px:PXDateTimeEdit runat="server" ID="edUsrDate" DataField="UsrDateAndTime_Date" />
<px:PXDateTimeEdit runat="server" ID="edUsrTime" DataField="UsrDateAndTime_Time" TimeMode="True" />

ou séparer des colonnes de grille pour saisir et afficher les valeurs de date et d'heure:

entrer la description de l'image ici

<Columns>
    ...
    <px:PXGridColumn DataField="UsrDateAndTime_Date" Width="90px" />
    <px:PXGridColumn DataField="UsrDateAndTime_Time" Width="90px" TimeMode="True" />
    ...
</Columns>

L'attribut PXDBTime

L'attribut PXDBTime est conçu pour fonctionner avec un champ DAC du type Nullable<DateTime> ( DateTime? ) Et ne stocke que la partie heure sans date dans un champ DAC:

#region UsrTime
public abstract class usrTime : IBqlField
{ }

[PXDBTime(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "Time Only Value")]
public DateTime? UsrTime { get; set; }
#endregion

Dans l'interface utilisateur, pour un champ décoré avec PXDBTimeAttribute, le système crée un contrôle d'entrée acceptant uniquement les valeurs de temps à la fois sur un formulaire:

entrer la description de l'image ici

<px:PXDateTimeEdit runat="server" ID="edUsrTime" DataField="UsrTime" TimeMode="True" />

et dans une cellule de la grille:

entrer la description de l'image ici

<Columns>
    ...
    <px:PXGridColumn DataField="UsrTime" Width="120px" TimeMode="True" />
    ...
</Columns>

L'attribut DateAttribute PX (DB)

L'attribut PXDBDate et l'attribut PXDate sont conçus pour fonctionner avec un champ DAC du type Nullable<DateTime> ( DateTime? ) Et une valeur de date de stockage avec une partie heure facultative dans un seul champ. Wheather PX (DB) DateAttribute devrait gagner du temps en plus de la date dans un champ DAC défini par la propriété PreserveTime : lorsque PreserveTime est défini sur True , la partie heure d'une valeur de champ est conservée, sinon seule la partie date est enregistrée dans un Champ DAC:

#region UsrDateTime
public abstract class usrDateTime : IBqlField
{ }

[PXDBDate(PreserveTime = true, InputMask = "g")]
[PXUIField(DisplayName = "DateTime Value")]
public DateTime? UsrDateTime { get; set; }
#endregion

#region UsrDate
public abstract class usrDate : IBqlField
{ }

[PXDBDate]
[PXUIField(DisplayName = "Date Value")]
public DateTime? UsrDate { get; set; }
#endregion

Dans l'interface utilisateur, pour un champ décoré avec PXDBDateAttribute ou PXDateAttribute, le système crée un contrôle d'entrée acceptant uniquement les valeurs de date ou les valeurs de date et d'heure en fonction de la valeur de la propriété PreserveTime . Ce concept fonctionne exactement de la même manière sur un formulaire:

entrer la description de l'image ici

<px:PXDateTimeEdit runat="server" ID="edUsrDateTime" DataField="UsrDateTime" Size="SM" />
<px:PXDateTimeEdit runat="server" ID="edUsrDate" DataField="UsrDate" />

et dans une cellule de la grille:

entrer la description de l'image ici

<Columns>
    ...
    <px:PXGridColumn DataField="UsrDateTime" Width="130px" />
    <px:PXGridColumn DataField="UsrDate" Width="90px" />
    ...
</Columns>

L'attribut PXDBTimeSpan

L'attribut PXDBTimeSpan est conçu pour fonctionner avec un champ DAC du type Nullable<int> ( int? ) Et stocker la valeur dans un champ DAC comme le nombre de minutes écoulées depuis minuit:

#region UsrTimeInt
public abstract class usrTimeInt : IBqlField
{ }

[PXDBTimeSpan(DisplayMask = "t", InputMask = "t")]
[PXUIField(DisplayName = "Time Value")]
public int? UsrTimeInt { get; set; }
#endregion

Dans l'interface utilisateur, pour un champ décoré avec PXDBTimeSpanAttribute, le système crée une liste déroulante avec des valeurs d'intervalle d'une demi-heure sur un formulaire:

entrer la description de l'image ici

et dans une cellule de la grille:

<px:PXDateTimeEdit runat="server" ID="edUsrTimeInt" DataField="UsrTimeInt" TimeMode="true" />

entrer la description de l'image ici

<px:PXGridColumn DataField="UsrTimeInt" Width="90px" TimeMode="true" />

L'attribut PXTimeList

L'attribut PXTimeList est conçu pour fonctionner avec un champ DAC du type Nullable<int> ( int? ) Et stocker la valeur de période dans un champ DAC en nombre de minutes:

#region UsrTimeSpan
public abstract class usrTimeSpan : IBqlField
{ }

[PXDBInt]
[PXTimeList]
[PXUIField(DisplayName = "Time Span")]
public int? UsrTimeSpan { get; set; }
#endregion

Dans l'interface utilisateur, pour un champ décoré avec PXTimeListAttribute, le système crée une liste déroulante avec des valeurs d'intervalle de 30 minutes sur un formulaire:

entrer la description de l'image ici

<px:PXTimeSpan ID="edUsrTimeSpan" runat="server" DataField="UsrTimeSpan" InputMask="hh:mm" />

et dans une cellule de la grille:

entrer la description de l'image ici

<RowTemplate>
    ...
    <px:PXTimeSpan ID="edgUsrTimeSpan" runat="server" DataField="UsrTimeSpan" InputMask="hh:mm" />
    ...
</RowTemplate>
<Columns>
...
    <px:PXGridColumn DataField="UsrTimeSpan" Width="90px" RenderEditorText="True" />
...
</Columns>


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow