以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]语法错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=144617)

--  作者:lgj716330
--  发布时间:2019/12/25 14:20:00
--  [求助]语法错误
Dim JJ As String = e.Form.Controls("CPJJ").value

If JJ = "" Then
 b.Totals.AddExp("成本金额","case when [综合] is Null then 0 when [综合] =0 then 0 else -isnull([金额],0)*(1-[综合])/[综合]")
End If

上述标色部分,控件为空时,JJ = ""或JJ is nothing 或 jj.length=0,都提示错误

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20191225141732.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/12/25 14:42:06编辑过]

--  作者:有点蓝
--  发布时间:2019/12/25 15:09:00
--  
b.Totals.AddExp("成本金额","case when [综合] is Null then 0 when [综合] =0 then 0 else isnull([金额],0)*(1-[综合])/[综合]")
--  作者:lgj716330
--  发布时间:2019/12/25 15:22:00
--  
If JJ = "春" Then
 b.Totals.AddExp("成本金额","case when [春季] is Null then 0 when [春季] =0 then 0 else -isnull([金额],0)*(1-[春季])/[春季]")
End If
但这样没问题,-是需要转换为负数

控件是CheckedComboBox
[此贴子已经被作者于2019/12/25 15:25:58编辑过]

--  作者:有点蓝
--  发布时间:2019/12/25 15:30:00
--  
那就不是这里的问题,贴出完整代码,或者上传实例说明
--  作者:lgj716330
--  发布时间:2019/12/25 16:31:00
--  
Dim N1 As Integer = e.Form.Controls("NF").value 
Dim N2 As Integer = N1 - 1  
Dim Y1 As Integer = e.Form.Controls("YF2").value \'
Dim N11 As Integer = e.Form.Controls("NFF").value \'
Dim Y11 As Integer = e.Form.Controls("YFF").value \'
Dim JJ As String = e.Form.Controls("CPJJ").value \'


Dim Filter As String = "1=1" \'设置筛选条件

With e.Form.Controls("CPNF")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter  = Filter & " And "
        End If
        Filter  = Filter & "年份 In ( \'" & .Value.replace(",","\',\'") & "\')"
    End If
End With

Dim tj1,tj2 As WinForm.RadioButton 
tj1 = Forms("店铺").Controls("RadioButton1")
tj2 = Forms("店铺").Controls("RadioButton2")

If tj1.checked=True Then
Dim b As New SQLGroupTableBuilder("统计表","汇总表")
b.C 
b.AddTable("汇总表", "仓店编号","档案","业务编号")
 b.Groups.AddDef("部门名称")
If JJ="冬" Then
 b.Totals.AddExp("积压成本金额","case when [冬季] is Null then 0 when [冬季] =0 then 0 else -isnull([成本金额],0)*(1-[冬季])/[冬季]")
End  If
 b.Filter = "(" & filter & ") and ((月份 <= \'" & Y1 & "\' and 年份 = \'" & N1 & "\') or (月份 <= 12 and 年份 < \'" & N1 & "\'))"

b.Build
end if
messagebox显示是b.Build这里的问题,

messagebox.show(1)
b.Build
messagebox.show(2)
这中间提示错误
[此贴子已经被作者于2019/12/25 16:34:39编辑过]

--  作者:有点蓝
--  发布时间:2019/12/25 16:44:00
--  
1、上面代码有没有哪个列名称是2个表都有的?
2、msgbox(b.Filter)看看生成的条件是否有问题

--  作者:lgj716330
--  发布时间:2019/12/25 17:54:00
--  
已解决
--  作者:lgj716330
--  发布时间:2019/12/25 20:53:00
--  
GroupTableBuilder 是不是不能使用Totals.AddExp,向Totals添加表达式统计列
[此贴子已经被作者于2019/12/25 20:54:39编辑过]

--  作者:有点蓝
--  发布时间:2019/12/26 9:14:00
--  
是的