DateTime на мобильном устройстве не отображается после строки RowSelected - PullRequest
0 голосов
/ 16 апреля 2020

Добрый день. У меня есть селектор даты на экране моего мобильного телефона. Я установил поле в DateTime.Now во время RowInserting и RowSelected. Когда я смотрю на поле с помощью мобильного приложения, оно становится пустым только при сохранении даты / времени.

Как отобразить дату и время при открытии мобильной страницы?

    protected virtual void BNExportedDocuments_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
    {
        BNExportedDocuments doc = Documents.Current;
        if (doc == null) return;
        if ( string.IsNullOrWhiteSpace(doc.CollectedDate.ToString()))
        {
            doc.CollectedDate = DateTime.Now;
        }
    }

У меня тот же код в BNExportedDocuments_RowInserting

, затем в моей мобильной части:

add screen SO304050 {
 add container "Documents" {

 add field "DocumentNo"
 add field "CollectedDate"
 add field "CollectedBy"
 add field "PhoneNo" 
 add field "PhoneNo_"
 add recordAction "SignReport"{
  behavior = SignReport
  displayName = "Sign"
  icon = "system://Pen"
 } 
 add recordAction "Save"{
  behavior = Save
  after = close
  icon = "system://Check"
}
add recordAction "Cancel" {
    behavior = Cancel
}
}
}

1 Ответ

0 голосов
/ 22 апреля 2020

Вам понадобятся отдельные компоненты для даты и времени в мобильном приложении. Вы можете обратиться к стандартному экрану задач (CR306020) в мобильном приложении Acumatica для получения даты напоминания и времени напоминания.

Украсьте поле данных с помощью PXDBDateAndTime атрибута.

public abstract class remindAtDate: PX.Data.BQL.BqlDateTime.Field<remindAtDate> { }

[PXDBDateAndTime(InputMask = "g", PreserveTime = true, UseTimeZone = true)]
[PXUIField(DisplayName = "Collected Date")]
public virtual DateTime? RemindAtDate { get; set; }

При этом поле DA C может быть представлено в пользовательском интерфейсе двумя элементами управления вводом (один для даты и другой для времени)

enter image description here

...