以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:从后台获取查询条件的,某列的值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101080)

--  作者:qwz405
--  发布时间:2017/5/24 16:27:00
--  求助:从后台获取查询条件的,某列的值
求助:老师,要获取符合条件的行的中的,某几列的数据,代码要怎么写?

Dim dr As DataRow = DataTables("食堂菜单").SQLFind("日期 = \'"& dt &"\' and   <列名 = ***>   ") 


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

[此贴子已经被作者于2017/5/24 16:28:00编辑过]

--  作者:qwz405
--  发布时间:2017/5/24 16:40:00
--  
换个问法:我已经找到这一行了,如何把某些列显示出来。
现在我把所有这周的菜单都显示出来了,我只要查询那一天的数据即可。

    Dim dtt As Date = e.PostValues("dt")           \'用户选择查询日期
    Dim lei As String = e.PostValues("lei")        \'用户选择查询类别
    
    Dim num As String = "日一二三四五六"
    Dim str1 As String = "周" & num.Chars(Today.DayOfWeek)      \'将用户输入的查询日期转换为周次
    Dim str2 As String = str1 & lei     \'查询数据列,例如:周一午餐
      
    Dim dtb As New DataTableBuilder("临时表1")    \'生成临时表,为数据的填充作准备
    dtb.AddDef("日期", Gettype(String), 16)
    dtb.AddDef("菜肴", Gettype(String), 16)
    Dim dt2 As DataTable = dtb.Build(True)

 Dim dr1 As DataRow = DataTables("食堂菜单").SQLFind("开始日期 <= \'"& dtt &"\' And 结束日期 >= \'"& dtt &"\'")       \'SQLFind是在后台数据库中查找
    
    If dr1 IsNot Nothing Then
        For Each c As DataCol In DataTables("食堂菜单").DataCols
            Dim dr As DataRow = dt.AddNew()
            dr("日期") = c.Name
            dr("菜肴") = dr1(c.Name)
        Next
    End If
    
    With wb.AddTable("","Table1")
        .CreateFromDataTable(dt)         \'用于根据Foxtable的DataTable自动生成网页
    End With

    

菜单数据表:

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

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


[此贴子已经被作者于2017/5/24 16:54:50编辑过]

--  作者:有点色
--  发布时间:2017/5/24 17:27:00
--  

 

[此贴子已经被作者于2017/5/24 17:26:52编辑过]

--  作者:有点色
--  发布时间:2017/5/24 17:29:00
--  
If dr1 IsNot Nothing Then
    For Each c As DataCol In DataTables("食堂菜单").DataCols
        If c.Name.StartsWith("周") = false OrElse c.name.Contains(str2) Then
            Dim dr As DataRow = dt.AddNew()
            dr("日期") = c.Name
            dr("菜肴") = dr1(c.Name)
        End If
    Next
End If
[此贴子已经被作者于2017/5/24 17:29:39编辑过]

--  作者:qwz405
--  发布时间:2017/5/25 8:28:00
--  
老师,早上好。

这样获取的数据行,能否再根据需要排序?

我用dt.sort、Tables("临时表1").sort都搞不定,可能是我表搞错了,或者放错位置了。

然后我想查询前先对表排序:Tables("食堂菜单").Cols(str2).move(0),但查询的是后台表,这样排序应该也不起作用。

请老师指点。

--  作者:有点色
--  发布时间:2017/5/25 8:55:00
--  

 循环的时候,不是可以直接用Table?

 

If dr1 IsNot Nothing Then
    For Each c As Col In Tables("食堂菜单").Cols
        If c.Name.StartsWith("周") = false OrElse c.name.Contains(str2) Then
            Dim dr As DataRow = dt.AddNew()
            dr("日期") = c.Name
            dr("菜肴") = dr1(c.Name)
        End If
    Next
End If

[此贴子已经被作者于2017/5/25 8:55:44编辑过]

--  作者:qwz405
--  发布时间:2017/5/25 9:55:00
--  
老师,还是不知道排序条件放在哪?
它是用DataTables生成表格的,感觉排序不起作用。

 Dim dtb As New DataTableBuilder("临时表1")    \'生成临时表,为数据的填充作准备
    dtb.AddDef("类别", Gettype(String), 32)
    dtb.AddDef("明细", Gettype(String), 32)
    dtb.Build
    
    Dim dr1 As DataRow = DataTables("食堂菜单").SQLFind("开始日期 <= \'"& dtt &"\' And 结束日期 >= \'"& dtt &"\' and 确认 = 1")       \'SQLFind是在后台数据库中查找符合条件的数据行
    
    If dr1 IsNot Nothing Then     
        For Each c As Col In Tables("食堂菜单").Cols
            If c.Name.StartsWith("周") = False OrElse c.name.Contains(str2) Then    
                Dim dr As DataRow = DataTables("临时表1").AddNew()
                dr("类别") = c.Name
                dr("明细") = dr1(c.Name)
            End If
        Next 
    End If
    
    Tables("临时表1").Sort = "类别 Desc"
    
    With wb.AddTable("","Table1")
        .CreateFromDataTable(DataTables("临时表1"))         \'用于根据Foxtable的DataTable自动生成网页
    End With

--  作者:有点色
--  发布时间:2017/5/25 11:49:00
--  

1、你的临时表为什么要排序?你生成的过程,就是排序的过程啊。

 

2、如果要排序,你要用这个方法 http://www.foxtable.com/mobilehelp/scr/0067.htm

 


--  作者:qwz405
--  发布时间:2017/5/27 17:10:00
--  
老师,是否可以获取点击行的某列的值?

我把菜肴同名的照片都放到了images里面,想通过名称显示照片。
用Gallery显示,或者跳转到另个网页显示都行。
照片路径:"./images/caidan/"& 明细列名值 &".jpg”

或者需要直接点击菜肴名称来显示,也行...

如果用户点击的不是菜肴行,就找不到照片(没有相应照片),显示空白即可,这个不用作判断了。

.......

    With wb.AddTable("","Table1")
        .CreateFromDataTable(DataTables("临时表1"),False,"","类别")         \'CreateFromDataTable用于根据Foxtable的DataTable自动生成网页,语法见帮助.
        .ActiveSheet = "menu"      \'指定菜单
    End With
    
    With wb.AddActionSheet("","menu")      \'设计菜单
        .Add("mnuphoto", "显示照片").Attribute = ""
        .Add("mnuCancel","取消","",True)
    End With


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


[此贴子已经被作者于2017/5/27 17:16:27编辑过]

--  作者:有点蓝
--  发布时间:2017/5/27 17:55:00
--  
参考:http://www.foxtable.com/mobilehelp/scr/0147.htm

table1.rows[table1.rowSel].cells[0].innerHTML