以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  用名称首字母生成编号  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=136545)

--  作者:联友
--  发布时间:2019/6/15 15:13:00
--  用名称首字母生成编号

窗口1ComboBox1(名称),用名称首字母生成编号。

比如:电脑,首字母是DN。

请老师指教,谢谢!

dr = DataTables("固定资产").AddNew()
Dim max As String = DataTables("固定资产").SQLCompute("Max(资产编号)","资产编号 Like \'DN" & ary(1) & "-" & "%\'")
If max = "" Then
     dr("资产编号") = "DN" & ary(1) & "-" & "0001"
 Else
     Dim v As Integer = max.SubString(9,4)
     dr("资产编号") = "DN" & ary(1) & "-" & format(v +1,"0000")
End If


--  作者:有点蓝
--  发布时间:2019/6/15 15:42:00
--  
dim 首字母  as string = getpinyin(e.form.controls("1ComboBox1").text,1)

dr = DataTables("固定资产").AddNew()
Dim max As String = DataTables("固定资产").SQLCompute("Max(资产编号)","资产编号 Like \'" & 首字母 & ary(1) & "-" & "%\'")
If max = "" Then
     dr("资产编号") = 首字母 & ary(1) & "-" & "0001"
 Else
     Dim v As Integer = max.SubString(max.length - 4,4)
     dr("资产编号") = 首字母 & ary(1) & "-" & format(v +1,"0000")
End If

--  作者:联友
--  发布时间:2019/6/18 22:47:00
--  
谢谢
--  作者:联友
--  发布时间:2019/6/19 0:52:00
--  
老师求教,根据入库数量增加行
Dim dx  As String = Ucase(getpinyin(e.form.controls("品名").text,1))
Dim ary() As String = Functions.Execute("Xueqi")
Dim m As Integer = e.Form.Controls("入库数量").Text
DataTables("固定资产").AddNew(m)
For Each r As DataRow In DataTables("固定资产").DataRows
    r("采购编号") = e.Form.Controls("采购编号").Text
    Dim max As String
    max = DataTables("固定资产").SQLCompute("Max(资产编号)","资产编号 Like \'" & dx & "-"& ary(1) & "-" & "%\'")
    If max = "" Then
        r("资产编号") = dx &"-"& ary(1) & "-" & "0001"
    Else
        Dim v As Integer = max.SubString(max.length - 4,4)
        r("资产编号") = dx & "-" & ary(1) & "-" & format(v+1,"0000")
    End If
Next
[此贴子已经被作者于2019/6/19 1:10:19编辑过]

--  作者:联友
--  发布时间:2019/6/19 1:17:00
--  
这样对吗?
Dim dx  As String = Ucase(getpinyin(e.form.controls("品名").text,1))
Dim ary() As String = Functions.Execute("Xueqi")
Dim m As Integer = e.Form.Controls("入库数量").Text
DataTables("固定资产").AddNew(m)
For Each dr As DataRow In DataTables("固定资产").DataRows
    dr("采购编号") = e.Form.Controls("采购编号").Text
    Dim max As String
    max = DataTables("固定资产").SQLCompute("Max(资产编号)","资产编号 Like \'" & dx & "-"& ary(1) & "-" & "%\'")
    If max = "" Then
        dr("资产编号") = dx &"-"& ary(1) & "-" & "0001"
    Else
        Dim v As Integer = max.SubString(max.length - 4,4)
        dr("资产编号") = dx & "-" & ary(1) & "-" & format(v+1,"0000")
    End If
    dr.Save()
Next
--  作者:有点甜
--  发布时间:2019/6/19 10:33:00
--  

 

回复5楼,看代码看着没有问题。如果出错,请做一个对应实例发上来测试。