Insert DateTime.now() Lightswitch HTML

Insert DateTime.now() Lightswitch HTML

本文关键字:Lightswitch HTML DateTime now Insert      更新时间:2023-09-26

我正在尝试将当前日期/时间写入SQL中的字段,数据类型为Lightswitch HTML中的DateTime。

基本上,当用户将任何编辑保存到特定屏幕时,我希望记录日期和时间并将其显示在屏幕上。

在LS中,我有一个名为DtLastChangedBy的属性。它是 SQL 中的"日期时间"列。

我正在选择AddEditScreen并选择> before_applyChanges编写代码来修改该方法。

到目前为止,我已经尝试过这样的事情...

myapp.AddEditDevice.beforeApplyChanges = function (screen) {
  // Write code here.
  screen.AddEditDevice.DtLastChangeBy
  return Date.now();
};

但我认为我的 js 非常缺乏 =(。

有什么建议吗?我最终也想返回登录用户,因此它将显示 X 用户上次在 X 时间保存此记录。

谢谢!

最优雅的方法是使用服务器端的"entity_Created"和"entities_Updating"方法。

这可确保为客户端和服务器生成的更新更新字段。 它还可以轻松适应更新用户字段(如帖子末尾所建议的那样)。

要实现此方法,您需要在设备表的设计器屏幕上选择"编写代码"按钮,然后选择两个相应的"常规方法"选项。

这将允许您将以下 c# 代码引入"entity_Created"常规方法:

partial void Device_Created()
{
    this.DtLastChangeBy = DateTime.Now;
    this.UserLastChangeBy = this.Application.User.Name;
}

并将以下纳入"entity_Updating"的一般方法:

partial void Devices_Updating(Device entity)
{
    entity.DtLastChangeBy = DateTime.Now;
    entity.UserLastChangeBy = this.Application.User.Name;
}

在上面的代码片段中,我使用了字段名称"UserLastChangeBy"来镜像您用于日期时间字段的名称。

我正在使用"答案",以便我可以发布代码。我用它来管理浏览屏幕刷新...

myapp.BrowseDevices.Devices_ItemTap_execute = function (screen) {
// Write code here.
myapp.showAddEditDevice(screen.Devices.selectedItem, {
    //beforeShown: function (addEditOrderLines) {
    //addEditOrderLines.OrderLines = screen.OrderLines.selectedItem;
    //},
    afterClosed: function (addEditDevice, navigationAction) {
        if (navigationAction === msls.NavigateBackAction.commit) {
            screen.Devices.refresh();
        }
    }
});

};

如果有更流畅/优雅的方法可以做到这一点,我很想知道!我相信日期问题可以在其他地方解决(?

谢谢!