Foxtable(狐表)用户栏目专家坐堂 → [求助]利用控件给记录赋值的判断


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

主题:[求助]利用控件给记录赋值的判断

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


加好友 发短信
等级:童狐 帖子:267 积分:2562 威望:0 精华:0 注册:2008/11/9 18:30:00
[求助]利用控件给记录赋值的判断  发帖心情 Post By:2015/8/21 14:31:00 [只看该作者]

我将组合框里的值赋给记录,
因为有时候要批量修改数据,
如何设定,让控件是空值时自动跳过,仅根据有值的控件对记录赋值?

图片点击可在新窗口打开查看此主题相关图片如下:批量赋值.png
图片点击可在新窗口打开查看

我写了代码,但如果不涉及修改的控件是空值时,会用空值覆盖已有数据。
Dim bxr As WinForm.TextBox = e.Form.Controls("被选人")
Dim mr As WinForm.CheckBox = e.Form.Controls("默认")
Dim qj As WinForm.CheckBox = e.Form.Controls("请假")
Dim rq As WinForm.DateTimePicker = e.Form.Controls("日期")
Dim ld As WinForm.ComboBox = e.Form.Controls("路队")
Dim yc As WinForm.ComboBox = e.Form.Controls("用餐")
Dim wx As WinForm.ComboBox = e.Form.Controls("午休")
Dim zy As WinForm.ComboBox = e.Form.Controls("作业")
Dim tdyz As WinForm.ComboBox = e.Form.Controls("团队印章")
Dim cf As WinForm.ComboBox = e.Form.Controls("惩罚")
Dim yq As WinForm.ComboBox = e.Form.Controls("运气")
Dim sm As WinForm.TextBox = e.Form.Controls("说明")


If bxr.value IsNot Nothing Then
    
    Dim Multi As String = bxr.value
    Dim vls() As String = Multi.split(",")
    Dim lsh As String = Format(today,"yyyyMMdd") '生成编号的前6位,4位年,2位月.2位日期
    For Each vl As String In vls
        Dim dr As DataRow = DataTables("学生信息").Find("姓名 = '" & vl & "'")
        If dr IsNot Nothing Then
            
            Dim dr2 As DataRow = DataTables("龙源宝藏").Find("流水号 = '" & dr("学生编号") & "-" & lsh & "'")
            If dr2 IsNot Nothing Then
                dr2("路队") = ld.value
                dr2("用餐") = yc.value
                dr2("午休") = wx.value
                dr2("作业") = zy.value
                dr2("团队印章") = tdyz.value
                dr2("惩罚") = cf.value
                dr2("运气") = yq.value
                dr2("说明") = sm.value
                
            Else
                Dim r As Row = Tables("龙源宝藏").AddNew
                r("姓名") = dr("姓名")
                r("单位") = dr("单位")
                r("学生编号") = dr("学生编号")
                r("日期") = Today
                r("流水号") = dr("学生编号") & "-" & lsh
                r("路队") = ld.value
                r("用餐") = yc.value
                r("午休") = wx.value
                r("作业") = zy.value
                r("团队印章") = tdyz.value
                r("惩罚") = cf.value
                r("运气") = yq.value
                r("说明") = sm.value
            End If
        End If
    Next
    
End If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/21 14:39:00 [只看该作者]

 

If ld.Value IsNot Nothing Then r("路队") = ld.value

If yc.Value IsNot Nothing Then r("用餐") = yc.value

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


加好友 发短信
等级:童狐 帖子:267 积分:2562 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/8/21 14:45:00 [只看该作者]

必须一个一个写判断吗,有没有批量的或者更高效的方法?

或者我的这个设计思路是不是不够高效?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/21 14:48:00 [只看该作者]

必须一个一个的比较

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


加好友 发短信
等级:童狐 帖子:267 积分:2562 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/8/21 14:58:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:批量赋值2.png
图片点击可在新窗口打开查看

这部分的判断语句为什么不需要用
end if 来结束?
而且我为每一句加end if 的话,代码是错误的。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/21 15:00:00 [只看该作者]

如果只有一行代码,可以不写end if

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


加好友 发短信
等级:童狐 帖子:267 积分:2562 威望:0 精华:0 注册:2008/11/9 18:30:00
  发帖心情 Post By:2015/8/21 15:02:00 [只看该作者]

不吝赐教,非常感谢。

 回到顶部