Foxtable(狐表)用户栏目专家坐堂 → 求助:从后台获取查询条件的,某列的值


  共有2211人关注过本帖树形打印复制链接

主题:求助:从后台获取查询条件的,某列的值

帅哥哟,离线,有人找我吗?
qwz405
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5027 威望:0 精华:0 注册:2015/4/15 15:25:00
求助:从后台获取查询条件的,某列的值  发帖心情 Post By:2017/5/24 16:27:00 [只看该作者]

求助:老师,要获取符合条件的行的中的,某几列的数据,代码要怎么写?

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


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

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

 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5027 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/24 17:27:00 [只看该作者]

 

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5027 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By:2017/5/25 8:28:00 [只看该作者]

老师,早上好。

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

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

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

请老师指点。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5027 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 11:49:00 [只看该作者]

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

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
qwz405
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:522 积分:5027 威望:0 精华:0 注册:2015/4/15 15:25:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106132 积分:539771 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/5/27 17:55:00 [只看该作者]

参考:http://www.foxtable.com/mobilehelp/scr/0147.htm

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

 回到顶部
总数 18 1 2 下一页