Foxtable(狐表)用户栏目专家坐堂 → 出入库无法直接输入采购单号


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

主题:出入库无法直接输入采购单号

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
出入库无法直接输入采购单号  发帖心情 Post By:2021/10/8 8:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:出入库无法输入采购单号.jpg
图片点击可在新窗口打开查看
请看上图:出入库这个数据表里面有两列,一列是“采购单号”,一列是“销售单号”,它们都设置了输入窗口。在“销售单号”可以直接输入数据,但是在“采购单号”那里却不可以直接输入数据。我检查了它们的列属性设置和代码,都是一样的。请教还有什么因素会导致这个情况呢?我希望也能够在“采购单号”里面直接输入数据。谢谢。

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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/8 8:51:00 [只看该作者]

有没有什么表事件?

确定列属性设置一样?
在单元格中显示按钮的方法很简单,只需将该列的列表项目设为“...”或“|...”即可,差别是前者不能编辑单元格的内容,后者则可以。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/10/8 10:45:00 [只看该作者]

自定义项目用了“|...”就可以了。

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/10/8 14:27:00 [只看该作者]

If e.DataCol.name = "数量个"
'自动给(出入库)输入数据
        Dim dr22 As DataRow 
        dr22 = DataTables("销售报价").Find("产品代号 = '" & e.DataRow("产品型号") & "' And  客户简称 = '" & "施耐德广州" & "'")

        Dim jkdh As String = e.DataRow("送货单号") & "-ZZJK"
        Dim dr1 As DataRow = DataTables("出入库").Find("出入库单号 = '" & jkdh & "' and 物料编号 = '" & e.DataRow("产品型号") & "'")
        If dr1 IsNot Nothing Then
            dr1("入库数量") = dr1("入库数量") + e.newvalue - e.oldvalue

'下面这段不起作用
            If dr1("入库数量") = 0
               dr1("录入员核对") = False
               dr1.delete
            End If

        Else
            Dim dr3 As DataRow = DataTables("出入库").AddNew()
            dr3("出入库单号") = jkdh
            dr3("出入库日期") = e.DataRow("送货日期")
            dr3("出入原因") = "入库-生产入库"
            dr3("部供客简称") = "组装车间"
            dr3("物料编号") = e.DataRow("产品型号") 
            dr3("入库数量") = e.newvalue - e.oldvalue

            dr3("录入员核对") = True

        End If

        Dim ckdh As String = e.DataRow("送货单号") & "-ZZCK"
        Dim dr2 As DataRow = DataTables("出入库").Find("出入库单号 = '" & ckdh & "' and 物料编号 = '" & e.DataRow("产品型号") & "'")
        If dr2 IsNot Nothing Then
            dr2("出库数量") = dr2("出库数量") + (-1) * (e.newvalue - e.oldvalue)

'下面这段不起作用
            If dr2("出库数量") = 0
               dr2("录入员核对") = False
               dr2.delete
            End If

        Else
            Dim dr4 As DataRow = DataTables("出入库").AddNew()
            dr4("出入库单号") = ckdh
            dr4("出入库日期") = e.DataRow("送货日期")
            dr4("出入原因") = "出库-客户出货"
            dr4("部供客简称") = "施耐德广州"
            dr4("物料编号") = e.DataRow("产品型号") 
            dr4("出库数量") = (-1) * e.newvalue - e.oldvalue
            dr4("单价") = dr22("单价") 

            dr4("录入员核对") = True

        End If

End If

上面代码是放在“组装送货单”这个数据表之“Datacolchanged”里面的,但是红色的那些代码起不了作用,尤其是“录入员核对”这两句更是奇怪, dr3("录入员核对") = True 这句起作用,而 dr4("录入员核对") = True 则不起作用。不知道是什么原因?


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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/8 14:34:00 [只看该作者]

既然都删除了,还赋值干啥

            If dr1("入库数量") = 0
               dr1.delete
dr1.save
            End If

调试一下代码有没有执行
msgbox(1)
            dr4("录入员核对") = True
msgbox(dr4("录入员核对"))

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/10/8 15:59:00 [只看该作者]

1. 
If dr1("入库数量") = 0
    dr1.delete
    dr1.save
End If

上面那段还是不起作用,dr1("入库数量") 为 0 的行,还是保留在那里。

2.

msgbox(1)
            dr4("录入员核对") = True
msgbox(dr4("录入员核对"))

上面那段还是不起作用,没有任何提示,"录入员核对" 那里也还是没有打钩。




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


加好友 发短信
等级:超级版主 帖子:110592 积分:562856 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/10/8 16:02:00 [只看该作者]

说明红色代码根本没有执行到,也就是前面的条件都不符合,学会调试

Dim jkdh As String = e.DataRow("送货单号") & "-ZZJK"
        Dim dr1 As DataRow = DataTables("出入库").Find("出入库单号 = '" & jkdh & "' and 物料编号 = '" & e.DataRow("产品型号") & "'")
msgbox(dr1 IsNot Nothing)
        If dr1 IsNot Nothing Then
            dr1("入库数量") = dr1("入库数量") + e.newvalue - e.oldvalue
msgbox(dr1("入库数量"))
'下面这段不起作用
            If dr1("入库数量") = 0
               dr1("录入员核对") = False
               dr1.delete
            End If

        Else
msgbox(1)
            Dim dr3 As DataRow = DataTables("出入库").AddNew()
            dr3("出入库单号") = jkdh
            dr3("出入库日期") = e.DataRow("送货日期")
            dr3("出入原因") = "入库-生产入库"

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2021/10/8 17:10:00 [只看该作者]

我在 datarowdeleting 里面也加上类似下面的代码,上面两个问题就都解决了。
        If dr1("入库数量") = 0
               dr1("录入员核对") = False
               dr1.delete
        End If

 回到顶部