Suche…


Einführung

In diesem Thema werden die verschiedenen in Acumatica Framework verfügbaren Optionen zum Erstellen von Datums- und Uhrzeitfeldern in einer Datenzugriffsklasse (DAC) erläutert.

Das PX (DB) DateAndTime-Attribut

Das PXDBDateAndTime- Attribut und das PXDateAndTime- Attribut arbeiten mit einem DAC-Feld des Nullable<DateTime> ( DateTime? ) Zusammen und speichern sowohl Datums- als auch Zeitwertteile in einem einzigen Feld:

#region UsrDateAndTime
public abstract class usrDateAndTimeAttribute : IBqlField
{ }

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

Aus der Sicht der Benutzeroberfläche wird erwartet, dass für ein Feld, das mit PXDBDateAndTimeAttribute oder PXDateAndTimeAttribute dekoriert ist, entweder separate Eingabesteuerelemente für Datums- und Zeitwertteile erstellt werden:

Geben Sie hier die Bildbeschreibung ein

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

oder separate Rasterspalten, um Datums- und Uhrzeitwerte einzugeben und anzuzeigen:

Geben Sie hier die Bildbeschreibung ein

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

Das PXDBTime-Attribut

Das PXDBTime- Attribut kann mit einem DAC-Feld des Nullable<DateTime> ( DateTime? ) DateTime? und speichert nur den Zeitabschnitt ohne Datum in einem DAC-Feld:

#region UsrTime
public abstract class usrTime : IBqlField
{ }

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

In der Benutzeroberfläche erstellt das System für ein mit PXDBTimeAttribute dekoriertes Feld ein Eingabesteuerelement, das nur Zeitwerte in einem Formular akzeptiert:

Geben Sie hier die Bildbeschreibung ein

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

und innerhalb einer Gitterzelle:

Geben Sie hier die Bildbeschreibung ein

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

Das PX (DB) DateAttribute-Attribut

Das PXDBDate- Attribut und das PXDate- Attribut arbeiten mit einem DAC-Feld vom Typ Nullable<DateTime> ( DateTime? ) Zusammen und speichern den Datumswert mit einem optionalen DateTime? in einem einzelnen Feld. Wenn PX (DB) DateAttribute zusätzlich zum Datum Zeit in einem DAC-Feld sparen soll, wird dies durch die PreserveTime- Eigenschaft definiert: Wenn PreserveTime auf True gesetzt ist , wird der Zeitteil eines Feldwerts beibehalten DAC-Feld:

#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

In der Benutzeroberfläche erstellt das System für ein mit PXDBDateAttribute oder PXDateAttribute dekoriertes Feld ein Eingabesteuerelement, das abhängig vom Wert der PreserveTime- Eigenschaft entweder nur Datumswerte oder sowohl Datums- als auch Uhrzeitwerte akzeptiert. Dieses Konzept funktioniert in einem Formular genauso:

Geben Sie hier die Bildbeschreibung ein

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

und innerhalb einer Gitterzelle:

Geben Sie hier die Bildbeschreibung ein

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

Das PXDBTimeSpan-Attribut

Das Attribut PXDBTimeSpan kann mit einem DAC-Feld vom Typ Nullable<int> ( int? ) Arbeiten und speichert den Zeitwert in einem DAC-Feld als Anzahl der seit Mitternacht verstrichenen Minuten:

#region UsrTimeInt
public abstract class usrTimeInt : IBqlField
{ }

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

In der Benutzeroberfläche erstellt das System für ein Feld, das mit PXDBTimeSpanAttribute dekoriert ist, eine Dropdown- Liste mit Intervallen von jeweils einer halben Stunde in einem Formular:

Geben Sie hier die Bildbeschreibung ein

und innerhalb einer Gitterzelle:

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

Geben Sie hier die Bildbeschreibung ein

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

Das PXTimeList-Attribut

Das PXTimeList- Attribut kann mit einem DAC-Feld des Nullable<int> ( int? ) Arbeiten und speichert den Wert der Zeitspanne in einem DAC-Feld in Minuten.

#region UsrTimeSpan
public abstract class usrTimeSpan : IBqlField
{ }

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

In der Benutzeroberfläche erstellt das System für ein Feld, das mit PXTimeListAttribute dekoriert ist, eine Dropdown- Liste mit 30-Minuten-Intervallwerten in einem Formular:

Geben Sie hier die Bildbeschreibung ein

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

und innerhalb einer Gitterzelle:

Geben Sie hier die Bildbeschreibung ein

<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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow