Foxtable(狐表)用户栏目专家坐堂 → 无法保存行


  共有1746人关注过本帖树形打印复制链接

主题:无法保存行

帅哥哟,离线,有人找我吗?
dahai
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:719 威望:0 精华:0 注册:2019/1/9 15:59:00
无法保存行  发帖心情 Post By:2024/3/2 21:20:00 [显示全部帖子]

我用的是阿里云sql数据库,在datacolchanged代码如下

If e.DataCol.Name = "创建日期" Then
    If e.DataRow.IsNull("创建日期") Then
        e.DataRow("退货单编号") = Nothing
    Else
        Dim d As Date = e.DataRow("创建日期")
        Dim y As Integer = d.Year
        Dim m As Integer = d.Month
        Dim Days As Integer = Date.DaysInMonth(y, m)
        Dim fd As Date = New Date(y, m, 1) 
        Dim ld As Date = New Date(y, m, Days
        Dim bh As String = "TC" & Format(d, "yyyyMM") 
        If e.DataRow("退货单编号").StartsWith(bh) = False Then
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.SQLCompute("Max(退货单编号)", "创建日期 >= '" & fd & "' And 创建日期 <= '" & ld & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该月的最大编号
            If max > "" Then 
                idx = CInt(max.Substring(8, 4)) + 1 
            Else
                idx = 1 
            End If
            e.DataRow("退货单编号") = bh & Format(idx, "0000")
        End If
    End If
    e.DataRow.save()
End If

新增行后,并不会自动保存,我不清楚问题出在哪里,请专家帮忙看一下问题出在哪,谢谢!


 回到顶部
帅哥哟,离线,有人找我吗?
dahai
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:719 威望:0 精华:0 注册:2019/1/9 15:59:00
回复:(有点蓝)新增行后,输入"创建日期"才会保存的...  发帖心情 Post By:2024/3/4 10:37:00 [显示全部帖子]

datarowadding 设置了 e.datarow("创建日期") = date.today 并且也自动生成了编号,程序上e.datarow.save()是在datarowadding和datacolchanged之后的。所以我觉得应该可以自动保存才对。

 回到顶部
帅哥哟,离线,有人找我吗?
dahai
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:84 积分:719 威望:0 精华:0 注册:2019/1/9 15:59:00
回复:(有点蓝)datarowadding 事件改为放到dat...  发帖心情 Post By:2024/3/4 13:55:00 [显示全部帖子]

谢谢版主,问题解决了。看了帮助文件datarowadding 和 datarowadded的区别,我还是不太理解,帮助文件中,自动生成编号的例子,为什么不在 datarowadded中自动生成日期,而使用datarowadding

 回到顶部