以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]设置商品ID  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=153068)

--  作者:江南小镇
--  发布时间:2020/7/30 11:28:00
--  [求助]设置商品ID
老师,列字段出现%符号就报错。

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2017.4.22.1
错误所在事件:表,表A, DataColChanged
详细错误信息:
调用的目标发生了异常。
Like 运算符中出错: 字符串模式“XJ-123%-wsd-%”无效。



Select e.DataCol.Name
    Case "商品名称","型号","规格"
        If e.DataRow.IsNull("商品名称") OrElse e.DataRow.Isnull("型号") OrElse e.DataRow.Isnull("规格") Then
            e.DataRow("商品ID") = Nothing
        Else
            Dim lb As String = getpy(e.DataRow("商品名称"), True).toupper & "-" & e.DataRow("型号") & "-" & e.DataRow("规格") & "-"
            Dim max As String = e.DataTable.Compute("Max(商品ID)","商品id like \'" & lb & "%\' And _Identify<> \'" & e.DataRow("_Identify") & "\'") \'取得该类别的最大编号
            Dim idx = 1
            If max > "" Then
                idx = cint(max.SubString(lb.length))+1
            End If
            e.DataRow("商品ID") = lb & format(idx, "00000")
        End If
End Select

--  作者:有点蓝
--  发布时间:2020/7/30 12:40:00
--  
Dim max As String = e.DataTable.Compute("Max(商品ID)","商品id like \'" & lb.replace("%","[%]") & "%\' And _Identify<> \'" & e.DataRow("_Identify") & "\'") 
--  作者:江南小镇
--  发布时间:2020/7/30 13:44:00
--  
老师,有这个符号*也报错。
--  作者:有点蓝
--  发布时间:2020/7/30 14:07:00
--  
同样的方法处理
--  作者:江南小镇
--  发布时间:2020/7/30 14:22:00
--  
老师,代码不知怎样连接。
 Dim max As String = e.DataTable.Compute("Max(商品ID)","商品id like \'" & lb.replace("%","[%]") & "%\'  & lb.replace("*","[*]") & "*\' And _Identify<> \'" & e.DataRow("_Identify") & "\'")


--  作者:有点蓝
--  发布时间:2020/7/30 14:35:00
--  
lb.replace("%","[%]") .replace("*","[*]")
--  作者:江南小镇
--  发布时间:2020/8/7 7:25:00
--  
老师好,下面代码标出的米字是什么意思?。

SELECT {订单明细}
.*, 产品名称 FR  OM {订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID ORDER BY 订单ID
--  作者:有点蓝
--  发布时间:2020/8/7 8:36:00
--  
sql里的*指表格的所有列,{订单明细}.*就是订单明细的所有列
--  作者:江南小镇
--  发布时间:2020/8/8 5:25:00
--  
老师,下面的运行错误。看不懂。

.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2017.4.22.1
错误所在事件:
详细错误信息:
该特定字段 \'产品名称\' 可以参考 SQL 语句中 FROM 子句列表中的多个表。





Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "SEL  ECT {订单明细}.*, 产品名称 FROM {订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID ORDER BY 订单ID"   \'
Dim dst1 As Table = Tables("查询_Table1")
dst1.DataSource  = cmd.ExecuteReader()

--  作者:有点蓝
--  发布时间:2020/8/8 9:30:00
--  
2个表都有产品名称,必须指定是哪个表的

cmd.CommandText = "SEL  ECT {订单明细}.*, {产品}.产品名称 as 产品名称2 FROM {订单明细} 

如果{订单明细}已经有产品名称,就没有必要在加一个了