Foxtable(狐表)用户栏目专家坐堂 → [求助]代码没有实现想要的效果


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

主题:[求助]代码没有实现想要的效果

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/1/12 23:37:00 [只看该作者]

另外扫描配货明细统计表也是希望按照工单号和行号统计数量,而不是一行一行的addnew。

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


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

去掉DataColChanged的时间代码啊

 

按钮里写 参考9楼代码啊

 

其余的,都参考9楼去写啊


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/1/13 12:17:00 [只看该作者]

生成入库单按钮代码:
Dim d As Date = Date.Today
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim bh As String = Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
max = DataTables("配货单").Compute("Max(入库单号)","入库单号 like  '*" & bh & "*'")
If max > "" Then '如果存在最大编号
    idx = CInt(max.Substring(bh.length + 2, 3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If

For Each r As DataRow In DataTables("扫描配货明细").DataRows
    Dim drs As List(of DataRow) = DataTables("配货单").Select("SN = '" & r("SN") & "'")
    If drs.count >0  Then
        For Each dr As DataRow In drs
            dr("入库单号") = "RK" &  bh & Format(idx,"000")
            dr("预入库单号") = "RK" &  bh & Format(idx,"000")
            dr.save
        Next
    End If
Next
Dim rkdh As WinForm.TextBox = e.Form.Controls("TextBox1")
rkdh.text = "RK" &  bh & Format(idx,"000")

DataTables("扫描配货明细统计").DataRows.Clear
For Each ndr As DataRow In DataTables("扫描配货明细").DataRows
    Dim ddr3 As DataRow = DataTables("扫描配货明细统计").SQLFind("工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "'  and 入库单号 = '" & ndr("入库单号") & "'")
    If ddr3 IsNot Nothing Then
        ddr3("预入库数量") = DataTables("扫描配货明细统计").compute("count(工单号)", "工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
    Else
        Dim ddr4 As DataRow = DataTables("扫描配货明细统计").AddNew()
        ddr4("工单号") = ndr("工单号")
        ddr4("行号") = ndr("行号")
        ddr4("预入库数量") = 1
        ddr4("入库单号") = rkdh.text
        ddr4("产品态") = ndr("产品态")
        ddr4("产品名称") = ndr("产品名称")
        ddr4("物料编码") = ndr("物料编码")
        ddr4("库位类别") = ndr("库位类别")
    End If
    Dim ddr2 As DataRow = DataTables("工单明细").SQLFind("工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
    If ddr2 IsNot Nothing Then
        ddr2("预入库数量") = DataTables("工单明细").compute("count(工单号)", "工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
        ddr2("生产结束扫描日期") = Date.now
    Else
        Dim ddr1 As DataRow = DataTables("工单明细").AddNew()
        ddr1("工单号") = ndr("工单号")
        ddr1("行号") = ndr("行号")
        ddr1("预入库数量") = 1
        ddr1("生产完成日期") = ndr("生产完成日期")
        ddr1("预入库日期") = ndr("预计入库日期")
        ddr1("入库单号") = rkdh.text 
        ddr1("产品态") = ndr("产品态")
        ddr1("产品名称") = ndr("产品名称")
        ddr1("物料编码") = ndr("物料编码")
        ddr1("库位类别") = ndr("库位类别")
        ddr1("生产结束扫描日期") = Date.now
    End If
Next
DataTables("工单明细").Save
For Each ddr6 As DataRow In DataTables("工单明细").DataRows
    Dim ddr5 As DataRow = DataTables("预入库单").Find ("预入库单号 = '" & ddr6("入库单号") & "'")
    If ddr5 IsNot Nothing Then
        Dim sum As Integer
        sum = DataTables("工单明细").Compute("sum(预入库数量)","入库单号 = '" & ddr5("预入库单号") & "' ")
        ddr5("总数量") = sum
    Else
        Dim dr As DataRow = DataTables("预入库单").AddNew()
        dr("预入库单号") = ddr6("入库单号")
        dr("总数量") = DataTables("工单明细").Compute("sum(预入库数量)","入库单号 = '" & dr("预入库单号") & "' ")
    End If
Next
Dim shhs As WinForm.Button = Forms("库存管理界面").Controls("收货核实")
Dim sum1 As Integer
sum1 = DataTables("预入库单").Compute("count(预入库单号)","标志 = false")
shhs.text = "收货核实(" & sum1 & ")"
Dim sum2 As Integer


图片点击可在新窗口打开查看此主题相关图片如下:扫描配货统计.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:工单明细.png
图片点击可在新窗口打开查看
都是分行增加的。比如都存在工单号OD7,行号7,合计预入库数量是2,都存在工单号OD8,行号8,合计预入库数量应该是2.一共应该出现2行,而非现在的4行。

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


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

1、如果你用sqlFind,那么你增加一行以后,填入数据以后,就必须马上保存此行。

 

2、如果你用find,就不需要马上保存。新增的行没保存,用sqlFind是查不到的啊。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/1/17 19:04:00 [只看该作者]

回复大红袍能否抽时间看看附件,验证一下到底是哪里出问题了?
我增加保存行且都改为SQL查询,可是还是老效果。拜托了。
Dim d As Date = Date.Today
Dim y As Integer = d.Year
Dim m As Integer = d.Month
Dim bh As String = Format(d,"yyyyMM") '生成编号的前6位,4位年,2位月.
Dim max As String
Dim idx As Integer
max = DataTables("配货单").SQLCompute("Max(入库单号)","入库单号 like  '*" & bh & "*'")
If max > "" Then '如果存在最大编号
    idx = CInt(max.Substring(bh.length + 2, 3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
    idx = 1 '否则顺序号等于1
End If

For Each r As DataRow In DataTables("扫描配货明细").DataRows
    Dim drs As List(of DataRow) = DataTables("配货单").SQLSelect("SN = '" & r("SN") & "'")
    If drs.count >0  Then
        For Each dr As DataRow In drs
            dr("入库单号") = "RK" &  bh & Format(idx,"000")
            dr("预入库单号") = "RK" &  bh & Format(idx,"000")
            dr.save
        Next
    End If
Next
Dim rkdh As WinForm.TextBox = e.Form.Controls("TextBox1")
rkdh.text = "RK" &  bh & Format(idx,"000")

DataTables("扫描配货明细统计").DataRows.Clear
For Each ndr As DataRow In DataTables("扫描配货明细").DataRows
    Dim ddr3 As DataRow = DataTables("扫描配货明细统计").SQLFind("工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "'  and 入库单号 = '" & ndr("入库单号") & "'")
    If ddr3 IsNot Nothing Then
        ddr3("预入库数量") = DataTables("扫描配货明细统计").SQLCompute("count(工单号)", "工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
        ddr3.save
    Else
        Dim ddr4 As DataRow = DataTables("扫描配货明细统计").AddNew()
        ddr4("工单号") = ndr("工单号")
        ddr4("行号") = ndr("行号")
        ddr4("预入库数量") = 1
        ddr4("入库单号") = rkdh.text
        ddr4("产品态") = ndr("产品态")
        ddr4("产品名称") = ndr("产品名称")
        ddr4("物料编码") = ndr("物料编码")
        ddr4("库位类别") = ndr("库位类别")
        ddr4.save
    End If
    Dim ddr2 As DataRow = DataTables("工单明细").SQLFind("工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
    If ddr2 IsNot Nothing Then
        ddr2("预入库数量") = DataTables("工单明细").SQLCompute("count(工单号)", "工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")
        ddr2("生产结束扫描日期") = Date.now
        ddr2.Save
    Else
        Dim ddr1 As DataRow = DataTables("工单明细").AddNew()
        ddr1("工单号") = ndr("工单号")
        ddr1("行号") = ndr("行号")
        ddr1("预入库数量") = 1
        ddr1("生产完成日期") = ndr("生产完成日期")
        ddr1("预入库日期") = ndr("预计入库日期")
        ddr1("入库单号") = rkdh.text
        ddr1("产品态") = ndr("产品态")
        ddr1("产品名称") = ndr("产品名称")
        ddr1("物料编码") = ndr("物料编码")
        ddr1("库位类别") = ndr("库位类别")
        ddr1("生产结束扫描日期") = Date.now
        ddr1.Save
    End If
Next
DataTables("工单明细").Save
For Each ddr6 As DataRow In DataTables("工单明细").DataRows
    Dim ddr5 As DataRow = DataTables("预入库单").SQLFind ("预入库单号 = '" & ddr6("入库单号") & "'")
    If ddr5 IsNot Nothing Then
        Dim sum As Integer
        sum = DataTables("工单明细").SQLCompute("sum(预入库数量)","入库单号 = '" & ddr5("预入库单号") & "' ")
        ddr5("总数量") = sum
        ddr5.save
    Else
        Dim dr As DataRow = DataTables("预入库单").AddNew()
        dr("预入库单号") = ddr6("入库单号")
        dr("总数量") = DataTables("工单明细").SQLCompute("sum(预入库数量)","入库单号 = '" & dr("预入库单号") & "' ")
        dr.save
    End If
Next
Dim shhs As WinForm.Button = Forms("库存管理界面").Controls("收货核实")
Dim sum1 As Integer
sum1 = DataTables("预入库单").SQLCompute("count(预入库单号)","标志 = 'false'")
shhs.text = "收货核实(" & sum1 & ")"
Dim sum2 As Integer

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


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

条件改一下

 

    Dim ddr3 As DataRow = DataTables("扫描配货明细统计").SQLFind("工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "'  and 入库单号 = '" & rkdh.text & "'")


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/1/17 20:08:00 [只看该作者]

扫描配货明细统计现在是2行数据了,但是预入库数量是1,不是2.
图片点击可在新窗口打开查看此主题相关图片如下:工单明细.png
图片点击可在新窗口打开查看
工单明细仍然是老效果,4行数据。
图片点击可在新窗口打开查看此主题相关图片如下:扫描配货明细统计.png
图片点击可在新窗口打开查看

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


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

ddr3("预入库数量") = DataTables("扫描配货明细统计").SQLCompute("count(工单号)", "工单号 = '" & ndr("工单号") & "' and 行号 = '" & ndr("行号") & "' and 入库单号 = '" & ndr("入库单号") & "' ")

 

改成

 

ddr3("预入库数量") = ddr3("预入库数量") + ndr("预入库数量")


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2016/1/17 20:39:00 [只看该作者]

        ddr3("预入库数量") = ddr3("预入库数量") + ndr("数量")

结果还是一样啊。

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


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

加上msgbox看是否进入和弹出正确的内容啊。

 

写这么久代码了,最基本的调试也不会啊?


 回到顶部
总数 26 上一页 1 2 3 下一页