Foxtable(狐表)用户栏目专家坐堂 → 表中必填字段禁止为空的通用代码(已解决)


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

主题:表中必填字段禁止为空的通用代码(已解决)

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/4 13:53:00 [显示全部帖子]

 代码大概这样吧。

'集合系统表中所有有必填字段的表
Dim tbs As String
tbs = DataTables("必填字段").GetComboListString("表名","必填字段 is not Null ")
If tbs > "" Then
    tbs = "'" & tbs.replace("|","','")  & "'" '将字符串转成in可用的格式
End If

'保存前检查不为空的列是否为空
If tbs.contains(e.DataTable.Name)  Then
    Dim dr As DataRow = DataTables("必填字段").Find("表名 = '" & e.DataTable.Name & "'")
    Dim s As String = dr("必填字段")
    Dim ss() As String = s.split("\")
    For i As Integer = 0 To ss.Length - 1
        If e.DataRow.IsNull(ss(i)) Then
            MessageBox.Show("'" & e.DataTable.Name & "'的" & "'" & ss(i) & "列'不能为空!")
            Tables(e.DataTable.Name).Position = Tables(e.DataTable.Name).FindRow(e.DataRow)
            MainTable = Tables(e.DataTable.Name)
            e.Cancel = True
            Exit For
        End If
    Next
End If

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/4 14:31:00 [显示全部帖子]

 beforesavedatarow这个事件只是针对datatable的

 最多可以做到的是用一个全局变量记录当前录入的表名称,比如关联表(订单.订单明细),如果e.datatable.name是(订单明细),就定位到记录的那个表。

 也就是关联表优先于实际表。

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/4 16:48:00 [显示全部帖子]

呃,你这样没有意义,因为maintable不能定义到关联表。

 回到顶部