以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码执行过程报错,请老师给看看 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=114781) |
-- 作者:huizhong -- 发布时间:2018/2/22 10:12:00 -- 代码执行过程报错,请老师给看看 老师,我在表事件的DataColChanged中输入了一段代码,用于审批之用,但是,代码执行过程报错,显示:调用目标有问题,请老师看看以下代码,如果第2-4行代码不写就没问题,但是加上就不行 If e.DataRow("三审") = "同意" Then e.DataRow("三审时间") = Date.Today e.DataRow("三审人") = User.Name e.DataRow("三审结论") = "同意" Dim nma() As String = {"项目编号","项目全称","立项人姓名","所属公司","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名","立项合同标的额","预计支付虚开发票额","预计支付客户返佣额","预计虚开及返佣税点","预计其他收入","立项收入合计","预计项目成本","其中无票成本","无票成本税点","预计食宿行费","立项成本合计","立项单毛利","立项单毛利率","审批流"} \'A表数据来源列 Dim nmb() As String = {"项目编号","项目全称","立项人姓名","所属公司","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名","立项合同标的额","预计支付虚开发票额","预计支付客户返佣额","预计虚开及返佣税点","预计其他收入","立项收入合计","项目立项成本","其中无票成本","无票成本税点","预计食宿行费","立项成本合计","立项单毛利","立项单毛利率","立项审批流"} \'B表数据接收列 Dim dr As DataRow = DataTables("项目结项基础表1").AddNew For i As Integer = 1 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next Tables("项目立项基础表2").Current.Delete ElseIf e.DataRow("三审") = "驳回" Then e.DataRow("三审时间") = Date.Today e.DataRow("三审人") = User.Name e.DataRow("三审结论") = "驳回" e.DataRow("二审") = "" e.DataRow("三审") = "" ElseIf e.DataRow("二审") = "同意" Then e.DataRow("二审时间") = Date.Today e.DataRow("二审人") = User.Name e.DataRow("二审结论") = "同意" ElseIf e.DataRow("二审") = "驳回" Then e.DataRow("二审时间") = Date.Today e.DataRow("二审人") = User.Name e.DataRow("二审结论") = "同意" e.DataRow("一审") = "" e.DataRow("二审") = "" ElseIf e.DataRow("一审") = "同意" Then e.DataRow("一审时间") = Date.Today e.DataRow("一审人") = User.Name e.DataRow("一审结论") = "同意" ElseIf e.DataRow("一审") = "驳回" Then e.DataRow("一审时间") = Date.Today e.DataRow("一审人") = User.Name e.DataRow("一审结论") = "驳回" Dim nma() As String = {"项目编号","项目名称_客户所属区域","项目名称_汽车品牌","项目名称_项目核心内容","立项人姓名","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名"} \'A表数据来源列 Dim nmb() As String = {"项目编号","项目名称_客户所属区域","项目名称_汽车品牌","项目名称_项目核心内容","立项人姓名","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名"} \'B表数据接收列 Dim dr As DataRow = DataTables("项目立项基础表1").AddNew For i As Integer = 0 To nma.Length - 1 dr(nmb(i)) = e.DataRow(nma(i)) Next Tables("项目立项基础表2").Current.Delete Else End If |
-- 作者:有点甜 -- 发布时间:2018/2/22 10:17:00 -- 1、先把这句删除 Tables("项目立项基础表2").Current.Delete
2、做个具体例子发上来测试,说明测试步骤(哪行哪个列输入什么值,触发) |
-- 作者:huizhong -- 发布时间:2018/2/22 10:48:00 -- 老师,按照您的指示,我将Tables("项目立项基础表2").Current.Delete删除,测试时不再报错,但是,复制行复制的是两行相同内容
|
-- 作者:有点甜 -- 发布时间:2018/2/22 10:52:00 -- 你这样做的目的是什么?为什么要把表的这一行删除?
一般而言,数据库里面的数据,是不应该删除,添加以后,都是要保留下来的,方便以后查看。 |
-- 作者:huizhong -- 发布时间:2018/2/22 10:56:00 -- 老师,我做的是一个项目管理软件,要实现立项前和立项后的区分,项目立项时经过审批,通过后将该列相关内容放入结项表,立项表的内容就要删除了,但是,需要保留的内容,我已复制到结项表中 |
-- 作者:huizhong -- 发布时间:2018/2/22 10:57:00 -- 可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议 |
-- 作者:有点甜 -- 发布时间:2018/2/22 10:58:00 -- 不需要删除,只需要标记成删除,或者隐藏起来即可。
如果确实需要删除,也应该写在项目关闭的时候,整体删除。 |
-- 作者:huizhong -- 发布时间:2018/2/22 11:06:00 -- 可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议 |
-- 作者:有点甜 -- 发布时间:2018/2/22 11:10:00 -- 以下是引用huizhong在2018/2/22 11:06:00的发言:
可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议
加上列名判断
select case e.datacol.name case "一审", "二审", "三审" \'这里写你1楼的代码 End Select |
-- 作者:huizhong -- 发布时间:2018/2/22 11:15:00 -- 好的,老师,感谢您的指导 |