以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  查询  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94507)

--  作者:蓝蚂蚁
--  发布时间:2016/12/25 11:28:00
--  查询
老师你好  麻烦抽个时间帮我写个代码   实现功能:在查询窗口的文本框中输入要查询的内容  点击查询按钮  把查询所得的结果填写在查询结果表中
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:店铺品种销售价格查询.zip


--  作者:有点色
--  发布时间:2016/12/25 11:29:00
--  

 参考

 

http://www.foxtable.com/webhelp/scr/1058.htm

 


--  作者:有点色
--  发布时间:2016/12/25 11:33:00
--  

1、你的表设计不正确。你的价格明细表,应该是要一行一个品种价格的,而不是用多列来表示。

 

2、参考2楼的方法设计筛选。


--  作者:蓝蚂蚁
--  发布时间:2016/12/25 11:33:00
--  
补充说明:第一个:品种销售登记表中名称(如名称1、名称2、。。。。。。)很多,不一定是2个名称,甚至达到名称80.在这里只是简化。第二个:名称1等录入的顺序是随意的。
--  作者:有点色
--  发布时间:2016/12/25 11:34:00
--  
 不能那样做, 看3楼。
--  作者:y2287958
--  发布时间:2016/12/25 13:32:00
--  
看这个,N多列都可以。

Dim jb As New SQLJoinTableBuilder("查询表1","品种销售登记表")
jb.C onnection Name = ""
jb.AddCols("日期","店铺 as 店名","名称1 as 名称","价格1 as 价格")
jb.Filter = "1<>1"

Dim lms As String = "名称1/价格1|名称2/价格2" \'这里可以动态的
For Each lm As String In lms.Split("|")
    Dim jb1 As New SQLJoinTableBuilder("查询表1","品种销售登记表")
    jb1.C onnection Name = ""
    jb1.AddCols("日期","店铺 as 店名",lm.Split("/")(0) & " As 名称",lm.Split("/")(1) & " As 价格")
    jb1.Filter = lm.Split("/")(0) & " = \'红富士\'"
    jb.Union(jb1)
Next
jb.Build()

MainTable = Tables("查询表1")
[此贴子已经被作者于2016/12/25 15:33:45编辑过]

--  作者:有点色
--  发布时间:2016/12/25 15:31:00
--  
以下是引用蓝蚂蚁在2016/12/25 11:33:00的发言:
补充说明:第一个:品种销售登记表中名称(如名称1、名称2、。。。。。。)很多,不一定是2个名称,甚至达到名称80.在这里只是简化。第二个:名称1等录入的顺序是随意的。

 

如果真要这样做,就必须这样写代码

 

Dim str As String = "红富士"

Dim dt1 As DataTable = DataTables("品种销售登记表")
Dim t As Table = Tables("品种销售登记表")
Dim dt2 As DataTable = DataTables("查询结果表")
dt2.DataRows.Clear

For Each dr As DataRow In dt1.Select("店铺 is not null")
    For i As Integer = 2 To t.Cols.Count - 1 Step 2
        If dr(t.Cols(i).name) Like "*" & str & "*" Then
            Dim ndr As DataRow = dt2.AddNew
            ndr("日期") = dr("日期")
            ndr("店名") = dr("店铺")
            ndr("名称") = dr(t.Cols(i).name)
            ndr("价格") = dr(t.Cols(i+1).name)
        End If
    Next
Next