以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  同一界面编码只生成同一个  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=131096)

--  作者:有点蓝
--  发布时间:2019/2/16 14:46:00
--  
生成采购明细按钮代码:
Dim t As Table = Forms("外贸订单下达").Controls("外购").Table
Dim rs As List(of Row) = Tables("外贸订单下达_订单下达").GetCheckedRows
If rs = 0 Then Return
Dim d As Date =
Dim max As String
Dim idx As Integer
max = t.DataTable.SQLCompute("Max(采购申请号)","申请日期 = \'" & rs(0)("下单日期") & "\'") \'取得该天的最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(10,3)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
Dim bh As String = "CGSQ"& bh  & Format(idx,"000")
For Each r As Row In rs
    Dim r2 As Row = t.AddNew
    r2("采购申请号") = bh
    r2("材料编码") = r("成品编码")
    r2("材料描述") = r("成品描述")
    r2("申请人") = r("业务员")
    r2("制单人") = r("业务员")
    r2("申请日期") = r("下单日期")
    r2("申请数量") = r("订单数量")
    r2("要求交货日期") = r("要求交货日期")
    r2("需审核人") = "谢磊"
    r2("用途") = "销售发货"
    r2("订单状态") = "待审核"
    r2("销售订单号") = r("销售订单号")
Next
t.save
[此贴子已经被作者于2019/2/16 14:46:19编辑过]

--  作者:有点蓝
--  发布时间:2019/2/16 14:54:00
--  
很简单的问题,自己先想想哪里错了
--  作者:有点蓝
--  发布时间:2019/2/18 10:07:00
--  
If rs.count = 0 Then Return
--  作者:有点蓝
--  发布时间:2019/2/18 11:08:00
--  
……
For Each r As Row In rs
    Dim r2 As Row = t.AddNew
    r2("采购申请号") = bh
    r2("材料编码") = r("成品编码")
    r2("材料描述") = r("成品描述")
    r2("申请人") = r("业务员")
    r2("制单人") = r("业务员")
systemready = false
    r2("申请日期") = r("下单日期")
systemready = true
……


--  作者:有点蓝
--  发布时间:2019/2/18 14:03:00
--  
请上传具体实例说明
--  作者:有点蓝
--  发布时间:2019/2/18 15:37:00
--  
很简单的东西,既然知道少了日期,补上不就行了:

Dim t As Table = Forms("质量反馈").Controls("过程明细").Table
Dim rs As List(of Row) = Tables("质量反馈_信息总表").GetCheckedRows
If rs.count = 0 Then Return
Dim d As Date
Dim max As String
Dim idx As Integer

max = t.DataTable.SQLCompute("Max(采购申请号)","采购日期 = \'" & rs(0)("下单日期") & "\'") \'取得该天的最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(10,3)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
Dim bh As String = "CGSQ" & Format(rs(0)("下单日期"),"yyMMdd")  & Format(idx,"000")
For Each r As Row In rs
    Dim r2 As Row = t.AddNew
    r2("采购申请号") = bh
    r2("材料编码") = r("成品编码")
    r2("材料描述") = r("成品描述")
    systemready = False
    r2("采购日期") = r("下单日期")
    systemready = True
    r2("申请数量") = r("订单数量")
    r2("销售订单号") = r("销售订单号")
Next
t.save

--  作者:有点蓝
--  发布时间:2019/2/19 9:30:00
--  
看8楼,加上systemready 
--  作者:有点蓝
--  发布时间:2019/2/19 14:18:00
--  
感觉写代码都是乱来的,根本都没有尝试去理解代码代表的意思

……
max = t.DataTable.SQLCompute("Max(销售订单号)","下单日期 = \'" & date.today & "\' And 客户编码 = \'"& rs(0)("客户编码") &"\'") \'取得该天的最大编号
If max > "" Then \'如果存在最大编号
    idx = CInt(max.Substring(max.length - 3,3)) + 1 \'获得最大编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
Dim bh As String = Format(date.today,"yyMMdd") & rs(0)("客户编码") & Format(idx,"000")
……