以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 一表自动填充到其他多个表中 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97916) |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/21 9:11:00 -- 一表自动填充到其他多个表中 有个计划总表,想把这个表里面的计划按事先设好的比例,自动填充到手术室和外科中(可能会有多个其他科室的表) 下面是图示,请问老师改如何实现。
|
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/21 9:11:00 -- 此主题相关图片如下:比例.jpg
|
||||
-- 作者:有点色 -- 发布时间:2017/3/21 9:24:00 -- DataColChanged事件
Dim dt1 As DataTable = DataTables("计划总表") |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/21 9:43:00 -- 谢谢 完美解决 再次感谢! |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/23 23:33:00 -- 请教老师一个问题为什么这条语句不用ENDIF If dr2 Is Nothing Then dr2 = dt1.addnew |
||||
-- 作者:有点色 -- 发布时间:2017/3/23 23:57:00 -- 那个是简写,只要一条语句的时候,可以那样写。
If dr2 Is Nothing Then dr2 = dt1.addnew End If |
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/24 8:09:00 -- 明白了 谢谢,但问题又来了: Dim dt4 As DataTable = DataTables("领用总表") \'产品在各个科室的占用比例在这个DataTables("领用总表")表中 Dim dt2 As DataTable = DataTables("计划分派手术室") Dim dr1 As DataRow = e.DataRow Dim flt As String = "字典编码 = \'" & dr1("字典编码") & "\'" Dim dr2 As DataRow = dt2.Find(flt) \'【这条语句不太懂,刚开始的时候表DataTables("计划分派手术室")是空的,即没有数据,如果没有数据,这条语句应该有问题吧】 If e.DataCol.Name = "逻辑列" AndAlso e.DataRow("逻辑列") = True Then \'【在这个代码的表中(采购计划表)加入逻辑列,只要选中,则把选中的数据按下面的条件复制到表DataTables("计划分派手术室")中】 Dim fdr As DataRow = dt4.Find(flt) If fdr("字典编码")<>"" Then \'如果字典编码在占比表中找到 Dim dr As DataRow = DataTables("计划分派手术室").AddNew For Each dc As DataCol In DataTables("计划分派手术室").DataCols dr(dc.Name) = e.DataRow(dc.Name) Next If fdr IsNot Nothing Then dr2("数量") = fdr("手术室") * dr1("数量") Else dr2("数量")=0 End If End If End If 但运行代码的时候提示: .NET Framework 版本:2.0.50727.5466 Foxtable 版本:2016.7.29.1 错误所在事件:表,采购计划表,DataColChanged 详细错误信息: 调用的目标发生了异常。 未将对象引用设置到对象的实例。 请老师有空帮指点一下,再次感谢! [此贴子已经被作者于2017/3/24 8:11:43编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2017/3/24 8:48:00 -- 看代码要看前后的逻辑,3楼的代码,如果没有数据下面一句就会增加一行 Dim dr2 As DataRow = dt2.Find(flt) If dr2 Is Nothing Then dr2 = dt1.addnew 运行3楼的代码,好好理解一下
|
||||
-- 作者:蓝蚂蚁 -- 发布时间:2017/3/26 19:07:00 -- 多谢有点色和有点蓝老师的解答,谢谢。问题已经解决 |