以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求助:在全局代码中写入代码块  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160402)

--  作者:czy66ds
--  发布时间:2021/2/1 13:49:00
--  求助:在全局代码中写入代码块
有如下代码块:
Dim SQLxs,sqlA,sqlB As String
For Each pp As String In  ppjhs
    sqlA = " union all SEL ECT 单号,日期,a.条码,商品,色号,尺寸,数量,标准价,(Case when 数量 = 0 Or 标准价=0 Then 0 Else Round(成交金额 / (数量*标准价),2 ) End) As 折扣," & _
    "( Case when 数量 = 0 Then 0 Else Round(成交金额 / 数量,0) End) As 成交价,成交金额,(数量*标准价) As 标准金额,系列,业务员,年代,季节,波段,大类,小类,品名,颜色别名,尺寸名,店铺,备注 Fr om {@销售记录表} as a INNER JOIN {@商品表} as b ON a.条码 = b.条码 where $ "
    SQLB  = sqlA.replace("@",pp)
    SQLxs  & = SQLB
Next

希望写入全局代码,最终获得SQLxs,可以吗?

--  作者:有点蓝
--  发布时间:2021/2/1 14:00:00
--  
何必折腾自己不熟悉的东西。使用自定义函数不好么,全局代码每编辑一下还得重启项目。

public  function xxx函数名(ppjhs as string()) as string
Dim SQLxs,sqlA,sqlB As String
For Each pp As String In  ppjhs
    sqlA = " union all SEL ECT 单号,日期,a.条码,商品,色号,尺寸,数量,标准价,(Case when 数量 = 0 Or 标准价=0 Then 0 Else Round(成交金额 / (数量*标准价),2 ) End) As 折扣," & _
    "( Case when 数量 = 0 Then 0 Else Round(成交金额 / 数量,0) End) As 成交价,成交金额,(数量*标准价) As 标准金额,系列,业务员,年代,季节,波段,大类,小类,品名,颜色别名,尺寸名,店铺,备注 Fr om {@销售记录表} as a INNER JOIN {@商品表} as b ON a.条码 = b.条码 where $ "
    SQLB  = sqlA.replace("@",pp)
    SQLxs  & = SQLB
Next
return SQLxs  
end function

--  作者:czy66ds
--  发布时间:2021/2/1 14:04:00
--  
谢谢
--  作者:czy66ds
--  发布时间:2021/2/1 14:30:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:snipaste_全品牌销售记录.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/2/1 14:36:00
--  
2楼给的是全局代码的用法,不是自定义函数,自定义函数参考:http://www.foxtable.com/webhelp/topics/1486.htm