以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  类别是中文转换拼音生成编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157908)

--  作者:青丘狐
--  发布时间:2020/11/2 13:49:00
--  类别是中文转换拼音生成编号

类别里有板材 转换成  BC 

型号有  HRB400E

规格里有  20*9米

编号转换成  BCHRB400E209M

 

请问怎么改写下面写代码老师可以帮助下吗?

 

Select e.DataCol.Name
    Case
"类别"
       
If e.DataRow.IsNull("类别") Then
            e.
DataRow("编号") = Nothing
        Else
            Dim
lb As String = e.DataRow("类别")
            If
e.DataRow("编号").StartsWith(lb) = False \'如果单据编号前缀不符
               
Dim max As String
               
Dim idx As Integer

                max = e.DataTable.Compute("Max(编号)","类别 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
               
If max > "" Then \'如果存在最大编号
                    idx = CInt(max.Substring(
2,3)) + 1 \'获得最大编号的后三位顺序号,并加1
               
Else
                    idx =
1 \'否则顺序号等于1
               
End If
                e.
DataRow("编号") = lb & Format(idx,"000")
            End
If
        End
If
End
Select


--  作者:有点蓝
--  发布时间:2020/11/2 14:01:00
--  
这种不是序号的编号直接拼接即可

Select e.DataCol.Name
    Case
 "类别",
"型号","规格"
e.DataRow("编号") = PY.GetPY(e.DataRow("类别")True3) & e.DataRow("型号") & e.DataRow("规格")
End Select

--  作者:青丘狐
--  发布时间:2020/11/2 15:01:00
--  

规格 20*9米 中的 * 号删除   

 

 

 

Dim s As String = "规格"
s = s.Trim("*")

 

Select e.DataCol.Name
    Case
 "类别",
"型号","规格"
e.DataRow("编号") = PY.GetPY(e.DataRow("类别")True3) & e.DataRow("型号") & e.DataRow(S)
End Select
 
这样写没有效果

--  作者:有点蓝
--  发布时间:2020/11/2 15:22:00
--  
e.DataRow("编号") = PY.GetPY(e.DataRow("类别")True3) & e.DataRow("型号") & e.DataRow("规格").replace("*","")
[此贴子已经被作者于2020/11/2 16:09:11编辑过]

--  作者:青丘狐
--  发布时间:2020/11/2 16:03:00
--  

.NET Framework 版本:4.0.30319.1
Foxtable 版本:2020.5.29.8
错误所在事件:表,货物名称设置,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Public member \'replce\' on type \'String\' not found.

 

代码不能通过

 

Select e.DataCol.Name

    Case "类别","规格","型号","牌号"
    e.DataRow("类别") = PY.GetPY(e.DataRow("型号"), True, 3) & e.DataRow("牌号") & e.DataRow("规格").replce("*","")
End Select

[此贴子已经被作者于2020/11/2 16:07:12编辑过]

--  作者:有点蓝
--  发布时间:2020/11/2 16:09:00
--  
笔误,自己改改:http://www.foxtable.com/webhelp/topics/0241.htm
--  作者:青丘狐
--  发布时间:2020/11/3 12:20:00
--  

Select e.DataCol.Name

    Case "类别","规格","型号","牌号","产地"
    e.DataRow("编号") =PY.GetPY(e.DataRow("产地"), True, 3) & "-" &  PY.GetPY(e.DataRow("型号"), True, 3) & "-"  & e.DataRow("牌号") & "-" &  PY.GetPY(e.DataRow("规格").Replace("*","-"), True, 3)
End Select

 

可以了谢谢老师指导

[此贴子已经被作者于2020/11/3 12:20:28编辑过]