以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  窗口的组合框可以设置多值字段吗  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80763)

--  作者:kaituozhe
--  发布时间:2016/1/31 17:25:00
--  窗口的组合框可以设置多值字段吗

窗口的组合框可以设置多值字段吗


--  作者:大红袍
--  发布时间:2016/1/31 17:29:00
--  

 不可以,你用下拉窗口吧。

 

http://www.foxtable.com/help/topics/2466.htm

 


--  作者:kaituozhe
--  发布时间:2016/1/31 18:54:00
--  
Dim sg As New SQLJoinTableBuilder("数据看板","车辆信息")
Dim Filter As String
sg.AddTable("车辆信息","车辆编号","采购信息","车辆编号")
sg.AddTable("车辆信息","车辆编号","销售信息","车辆编号")
sg.AddTable("车辆信息","车辆编号","厂家返利","车辆编号",JoinModeEnum.Left)
sg.AddCols("{车辆信息}.车辆编号","{车辆信息}.品牌","{车辆信息}.型号","{销售信息}.销售价格","{销售信息}.部门","{销售信息}.员工","{采购信息}.含税单价","{厂家返利}.补贴","{厂家返利}.返利","{厂家返利}.折扣","{厂家返利}.其他优惠")
sg.Build()
Dim nms1() As String = e.Form.Controls("品牌T1").text.Split(",")
Dim nms2() As String = e.Form.Controls("品牌T2").text.Split(",")
Dim filter1 As String = "品牌 = \'" & nms1(0) & "\'"
For  i As Integer = 1 To nms1.Length-1
If Filter1 >"" Then
Filter = Filter1 & " or "
End If
    filter1=filter1 & "品牌 = \'" & nms1(i) & "\'"
Next
Tables("数据看板_Table3").DataSource = sg.BuildDataSource()
Tables("数据看板_Table3").Filter = "品牌 = \'" & nms2(0) & "\'"
Tables("数据看板_Table2").DataSource = sg.BuildDataSource()
Tables("数据看板_Table2").Filter = filter1

--  作者:kaituozhe
--  发布时间:2016/1/31 18:57:00
--  

上述代码是在数据看板窗口中设置了两个表,分别统计e.Form.Controls("品牌T1").text和e.Form.Controls("品牌T2").text中所列品牌,执行时提示

NET Framework 版本:2.0.50727.5485
Foxtable 版本:2015.12.22.1
错误所在事件:
详细错误信息:
语法错误:“品牌”运算符后缺少操作数。

是否在那个地方有错误,该如何改进


--  作者:Hyphen
--  发布时间:2016/2/1 8:32:00
--  
msgbox(filter1)看看弹出来的条件是否正确
--  作者:大红袍
--  发布时间:2016/2/1 9:37:00
--  

Dim nms1() As String = e.Form.Controls("品牌T1").text.Split(",")
Dim nms2() As String = e.Form.Controls("品牌T2").text.Split(",")
Dim filter1 As String = ""
Dim filter2 As String = ""
If e.Form.Controls("品牌T1").text > "" Then
    filter1 = "品牌 = \'" & nms1(0) & "\'"
    For  i As Integer = 1 To nms1.Length-1
        filter1=filter1 & " or 品牌 = \'" & nms1(i) & "\'"
    Next
End If
If e.Form.Controls("品牌T2").text > "" Then
    filter2 = "品牌 = \'" & nms2(0) & "\'"
    For  i As Integer = 1 To nms2.Length-1
        filter2=filter2 & " or 品牌 = \'" & nms2(i) & "\'"
    Next
End If

Tables("数据看板_Table3").DataSource = sg.BuildDataSource()
Tables("数据看板_Table3").Filter = Filter2
Tables("数据看板_Table2").DataSource = sg.BuildDataSource()
Tables("数据看板_Table2").Filter = filter1