Foxtable(狐表)用户栏目专家坐堂 → 代码执行过程报错,请老师给看看


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

主题:代码执行过程报错,请老师给看看

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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
代码执行过程报错,请老师给看看  发帖心情 Post By: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 = {"项目编号","项目全称","立项人姓名","所属公司","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名","立项合同标的额","预计支付虚开fa piao额","预计支付客户返佣额","预计虚开及返佣税点","预计其他收入","立项收入合计","预计项目成本","其中无piao成本","无piao成本税点","预计食宿行费","立项成本合计","立项单毛利","立项单毛利率","审批流"} 'A表数据来源列
    Dim nmb() As String = {"项目编号","项目全称","立项人姓名","所属公司","立项日期","预计启动时间","预计完工时间","预计签订合同日期","执行人姓名","立项合同标的额","预计支付虚开fa piao额","预计支付客户返佣额","预计虚开及返佣税点","预计其他收入","立项收入合计","项目立项成本","其中无piao成本","无piao成本税点","预计食宿行费","立项成本合计","立项单毛利","立项单毛利率","立项审批流"} '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

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 10:17:00 [只看该作者]

1、先把这句删除 Tables("项目立项基础表2").Current.Delete

 

2、做个具体例子发上来测试,说明测试步骤(哪行哪个列输入什么值,触发)


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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
  发帖心情 Post By:2018/2/22 10:48:00 [只看该作者]

老师,按照您的指示,我将Tables("项目立项基础表2").Current.Delete删除,测试时不再报错,但是,复制行复制的是两行相同内容

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 10:52:00 [只看该作者]

你这样做的目的是什么?为什么要把表的这一行删除?

 

一般而言,数据库里面的数据,是不应该删除,添加以后,都是要保留下来的,方便以后查看。


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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
  发帖心情 Post By:2018/2/22 10:56:00 [只看该作者]

老师,我做的是一个项目管理软件,要实现立项前和立项后的区分,项目立项时经过审批,通过后将该列相关内容放入结项表,立项表的内容就要删除了,但是,需要保留的内容,我已复制到结项表中

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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
  发帖心情 Post By:2018/2/22 10:57:00 [只看该作者]

可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 10:58:00 [只看该作者]

不需要删除,只需要标记成删除,或者隐藏起来即可。

 

如果确实需要删除,也应该写在项目关闭的时候,整体删除。


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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
  发帖心情 Post By:2018/2/22 11:06:00 [只看该作者]

可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/2/22 11:10:00 [只看该作者]

以下是引用huizhong在2018/2/22 11:06:00的发言:
可是,即便没有删除这行指令,那么复制的动作出现了两次,重复复制相同行内容,这个怎么解决呢老师,您给点建议

 

加上列名判断

 

select case e.datacol.name

    case "一审", "二审", "三审"

        '这里写你1楼的代码

End Select


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


加好友 发短信
等级:幼狐 帖子:141 积分:1227 威望:0 精华:0 注册:2018/2/22 10:06:00
  发帖心情 Post By:2018/2/22 11:15:00 [只看该作者]

好的,老师,感谢您的指导


 回到顶部