插入 DateTime.now() Lightswitch HTML

Insert DateTime.now() Lightswitch HTML

我正在尝试将当前 date/time 写入 SQL 中的一个字段,数据类型是 DateTime,在 Lightswitch HTML.

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

在 LS 中,我有一个 属性 叫做 DtLastChangedBy。它是 SQL.

中的 DateTime 列

我正在选择 AddEditScreen 并选择 Write Code > before_applyChanges 来修改方法。

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

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

但是我觉得我的js很欠缺=(.

有什么建议吗?我最终也会喜欢 return 登录用户,因此它会显示 X 用户最后在 X 时间保存此记录。

谢谢!

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

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

要实施此方法,您需要 select 设备 table 设计器屏幕上的 'Write Code' 按钮和 select 两个相应的 'General Methods' 选项。

这将允许您将以下 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' 来反映您在 DateTime 字段中使用的名称。

我正在使用 'answer',所以我可以 post 编码。我用它来管理浏览屏幕刷新...

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();
        }
    }
});

};

如果有更smooth/elegant的方法可以做到这一点,我很想知道!我确定日期问题可以在其他地方解决(?)。

谢谢!