Szukaj…


Wprowadzenie

W tym temacie opisano różne opcje dostępne w programie Acumatica Framework, aby utworzyć pola daty i godziny w klasie dostępu do danych (DAC).

Atrybut DateAndTime PX (DB)

Atrybut PXDBDateAndTime i atrybut PXDateAndTime są zaprojektowane do pracy z polem DAC typu Nullable<DateTime> ( DateTime? ) I przechowują części wartości daty i godziny w jednym polu:

#region UsrDateAndTime
public abstract class usrDateAndTimeAttribute : IBqlField
{ }

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

Z punktu widzenia interfejsu użytkownika, dla pola ozdobionego PXDBDateAndTimeAttribute lub PXDateAndTimeAttribute , oczekuje się utworzenia osobnych kontrolek wejściowych dla części wartości daty i godziny:

wprowadź opis zdjęcia tutaj

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

lub oddzielne kolumny siatki, aby wprowadzić i wyświetlić wartości daty i godziny:

wprowadź opis zdjęcia tutaj

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

Atrybut PXDBTime

Atrybut PXDBTime jest zaprojektowany do pracy z polem DAC typu Nullable<DateTime> ( DateTime? ) I przechowuje tylko część czasu bez daty w polu DAC:

#region UsrTime
public abstract class usrTime : IBqlField
{ }

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

W interfejsie użytkownika dla pola ozdobionego PXDBTimeAttribute system tworzy formant wejściowy akceptujący tylko wartości czasu zarówno w formularzu:

wprowadź opis zdjęcia tutaj

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

oraz w komórce siatki:

wprowadź opis zdjęcia tutaj

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

Atrybut DateAttribute PX (DB)

Atrybut PXDBDate i PXDate są zaprojektowane do pracy z polem DAC typu Nullable<DateTime> ( DateTime? ) I przechowują wartość daty z opcjonalną częścią czasu w jednym polu. Wheather PX (DB) DateAttribute powinien oszczędzać czas oprócz daty w polu DAC jest zdefiniowane przez właściwość PreserveTime : gdy PreserveTime jest ustawione na True , część czasu wartości pola jest zachowywana, w przeciwnym razie tylko część daty jest zapisywana w Pole 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

W interfejsie użytkownika dla pola ozdobionego PXDBDateAttribute lub PXDateAttribute system tworzy formant wejściowy akceptujący tylko wartości daty lub obie wartości daty i godziny, w zależności od wartości właściwości PreserveTime . Ta koncepcja działa dokładnie tak samo na formularzu:

wprowadź opis zdjęcia tutaj

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

oraz w komórce siatki:

wprowadź opis zdjęcia tutaj

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

Atrybut PXDBTimeSpan

Atrybut PXDBTimeSpan jest przeznaczony do pracy z polem DAC typu Nullable<int> ( int? ) I do przechowywania wartości czasu w polu DAC jako liczby minut minionych od północy:

#region UsrTimeInt
public abstract class usrTimeInt : IBqlField
{ }

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

W interfejsie użytkownika dla pola ozdobionego PXDBTimeSpanAttribute system tworzy listę rozwijaną z wartościami półgodzinnymi, zarówno w formularzu:

wprowadź opis zdjęcia tutaj

oraz w komórce siatki:

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

wprowadź opis zdjęcia tutaj

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

Atrybut PXTimeList

Atrybut PXTimeList jest przeznaczony do pracy z polem DAC typu Nullable<int> ( int? ) I do przechowywania wartości przedziału czasu w polu DAC jako liczbę minut:

#region UsrTimeSpan
public abstract class usrTimeSpan : IBqlField
{ }

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

W interfejsie użytkownika dla pola ozdobionego PXTimeListAttribute system tworzy listę rozwijaną z 30-minutowymi wartościami interwałów w formie:

wprowadź opis zdjęcia tutaj

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

oraz w komórce siatki:

wprowadź opis zdjęcia tutaj

<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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow