Buscar..


Introducción

Este tema lo guiará a través de las diferentes opciones disponibles en Acumatica Framework para crear campos de fecha y hora en una clase de acceso a datos (DAC).

El atributo DateAndTime de PX (DB)

El atributo PXDBDateAndTime y el atributo PXDateAndTime están diseñados para funcionar con un campo DAC del Nullable<DateTime> ( DateTime? ) De Nullable<DateTime> y almacenan las partes de valor de fecha y hora dentro de un solo campo:

#region UsrDateAndTime
public abstract class usrDateAndTimeAttribute : IBqlField
{ }

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

Desde la perspectiva de la interfaz de usuario, para un campo decorado con PXDBDateAndTimeAttribute o PXDateAndTimeAttribute , se espera que uno cree controles de entrada separados para las partes de valor de fecha y hora:

introduzca la descripción de la imagen aquí

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

o columnas de cuadrícula separadas para ingresar y mostrar los valores de fecha y hora:

introduzca la descripción de la imagen aquí

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

El atributo PXDBTime

El atributo PXDBTime está diseñado para funcionar con un campo DAC del tipo Nullable<DateTime> ( DateTime? ) Y almacenar solo la parte de tiempo sin fecha dentro de 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

En la interfaz de usuario, para un campo decorado con PXDBTimeAttribute, el sistema crea un control de entrada que acepta solo los valores de tiempo en un formulario:

introduzca la descripción de la imagen aquí

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

y dentro de una celda de cuadrícula:

introduzca la descripción de la imagen aquí

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

El atributo de atributo de fecha PX (DB)

El atributo PXDBDate y el atributo PXDate están diseñados para funcionar con un campo DAC del tipo de Nullable<DateTime> ( DateTime? ) Y almacenan el valor de la fecha con una parte de tiempo opcional dentro de un solo campo. Wheather PX (DB) DateAttribute debería ahorrar tiempo además de que la fecha en un campo DAC está definida por la propiedad PreserveTime : cuando PreserveTime se establece en Verdadero , la parte de tiempo de un valor de campo se conserva, de lo contrario, solo se guarda la parte de fecha en 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

En la interfaz de usuario, para un campo decorado con PXDBDateAttribute o PXDateAttribute, el sistema crea un control de entrada que acepta solo valores de fecha o valores de fecha y hora según el valor de la propiedad PreserveTime . Este concepto funciona exactamente igual en un formulario:

introduzca la descripción de la imagen aquí

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

y dentro de una celda de cuadrícula:

introduzca la descripción de la imagen aquí

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

El atributo PXDBTimeSpan

El atributo PXDBTimeSpan está diseñado para funcionar con un campo DAC del tipo Nullable<int> ( int? ) Y almacenar el valor de tiempo dentro de un campo DAC como el número de minutos transcurridos desde la medianoche:

#region UsrTimeInt
public abstract class usrTimeInt : IBqlField
{ }

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

En la interfaz de usuario, para un campo decorado con PXDBTimeSpanAttribute, el sistema crea un menú desplegable con valores de intervalo de media hora en un formulario:

introduzca la descripción de la imagen aquí

y dentro de una celda de cuadrícula:

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

introduzca la descripción de la imagen aquí

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

El atributo PXTimeList

El atributo PXTimeList está diseñado para trabajar con un campo DAC del tipo Nullable<int> ( int? ) Y almacenar el valor del intervalo de tiempo dentro de un campo DAC como un número de minutos:

#region UsrTimeSpan
public abstract class usrTimeSpan : IBqlField
{ }

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

En la interfaz de usuario, para un campo decorado con PXTimeListAttribute, el sistema crea un menú desplegable con valores de intervalo de 30 minutos en un formulario:

introduzca la descripción de la imagen aquí

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

y dentro de una celda de cuadrícula:

introduzca la descripción de la imagen aquí

<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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow