Ricerca…


introduzione

Questo argomento ti guiderà attraverso le diverse opzioni disponibili in Acumatica Framework per creare campi di data e ora in una classe di accesso ai dati (DAC).

L'attributo DateAndTime PX (DB)

L'attributo PXDBDateAndTime e l'attributo PXDateAndTime sono progettati per funzionare con un campo DAC del tipo Nullable<DateTime> ( DateTime? ) E archiviare entrambe le parti del valore di data e ora all'interno di un singolo campo:

#region UsrDateAndTime
public abstract class usrDateAndTimeAttribute : IBqlField
{ }

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

Dal punto di vista dell'interfaccia utente, per un campo decorato con PXDBDateAndTimeAttribute o PXDateAndTimeAttribute , è prevista la creazione di controlli di input separati per le parti del valore di data e ora:

inserisci la descrizione dell'immagine qui

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

o colonne della griglia separate per inserire e visualizzare i valori di data e ora:

inserisci la descrizione dell'immagine qui

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

L'attributo PXDBTime

L'attributo PXDBTime è progettato per funzionare con un campo DAC del tipo Nullable<DateTime> ( DateTime? ) E memorizzare solo la parte dell'ora senza data all'interno di un campo DAC:

#region UsrTime
public abstract class usrTime : IBqlField
{ }

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

Nell'interfaccia utente, per un campo decorato con PXDBTimeAttribute, il sistema crea un controllo di input che accetta solo i valori temporali su un modulo:

inserisci la descrizione dell'immagine qui

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

e all'interno di una cella della griglia:

inserisci la descrizione dell'immagine qui

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

L'attributo DateAttribute PX (DB)

L'attributo PXDBDate e l'attributo PXDate sono progettati per funzionare con un campo DAC del tipo Nullable<DateTime> ( DateTime? ) E memorizzano il valore della data con una parte temporale facoltativa all'interno di un singolo campo. Wheather PX (DB) DateAttribute dovrebbe risparmiare tempo oltre alla data in un campo DAC è definito dalla proprietà PreserveTime : quando PreserveTime è impostato su True , la parte temporale di un valore di campo viene conservata, altrimenti solo la parte di data viene salvata in un Campo 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

Nell'interfaccia utente, per un campo decorato con PXDBDateAttribute o PXDateAttribute, il sistema crea un controllo di input che accetta solo valori di data o entrambi i valori di data e ora in base al valore della proprietà PreserveTime . Questo concetto funziona esattamente allo stesso modo su un modulo:

inserisci la descrizione dell'immagine qui

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

e all'interno di una cella della griglia:

inserisci la descrizione dell'immagine qui

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

L'attributo PXDBTimeSpan

L'attributo PXDBTimeSpan è progettato per funzionare con un campo DAC del tipo Nullable<int> ( int? ) Nullable<int> e il valore del tempo di archiviazione all'interno di un campo DAC come il numero di minuti trascorsi dalla mezzanotte:

#region UsrTimeInt
public abstract class usrTimeInt : IBqlField
{ }

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

Nell'interfaccia utente, per un campo decorato con PXDBTimeSpanAttribute, il sistema crea un menu a discesa con valori dell'intervallo di mezz'ora su un modulo:

inserisci la descrizione dell'immagine qui

e all'interno di una cella della griglia:

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

inserisci la descrizione dell'immagine qui

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

L'attributo PXTimeList

L'attributo PXTimeList è progettato per funzionare con un campo DAC del tipo Nullable<int> ( int? ) Nullable<int> e il valore di intervallo di tempo di archiviazione in un campo DAC come un numero di minuti:

#region UsrTimeSpan
public abstract class usrTimeSpan : IBqlField
{ }

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

Nell'interfaccia utente, per un campo decorato con PXTimeListAttribute, il sistema crea un menu a discesa con valori di intervallo di 30 minuti su un modulo:

inserisci la descrizione dell'immagine qui

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

e all'interno di una cella della griglia:

inserisci la descrizione dell'immagine qui

<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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow