以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- listview如何实现组合选择输入条件,进行数据的筛选图示化呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158913) |
-- 作者:李孝春 -- 发布时间:2020/12/7 12:47:00 -- listview如何实现组合选择输入条件,进行数据的筛选图示化呢? listview如何实现组合选择输入条件(单位名称 支部名称选择值后),进行数据的筛选图示化呢? 单位名称控件enter事件代码如下: Dim cmb As WinForm.ComboBox = e.form.Controls("ComboBox1") cmb.ComboList = DataTables("党员信息").sqlGetComboListString("单位名称") 支部名称控件enter事件代码如下: Dim cmb As WinForm.ComboBox = e.form.Controls("ComboBox1") Dim cmb2 As WinForm.CheckedComboBox = e.Form.Controls("CheckedComboBox1") cmb2.ComboList = DataTables("党员信息").sqlGetComboListString("支部名称","单位名称=\'"& cmb.SelectedValue & "\'") 生成模式1按钮事件代码如下: Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.LargeIcon \'显示模式为大图标 lvw.Images.AddLargeImage("Man", "Man48.ico") \'添加代表男性的一对图标 lvw.Images.AddLargeImage("Woman", "Woman48.ico") \'添加代表女性的一对图标 For Each zh As String In DataTables("党员信息").GetValues("支部名称") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() grp.Name = zh grp.Text = zh Next For Each dr As DataRow In DataTables("党员信息").DataRows \'从数据表中提取数据 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.Text = dr("姓名") \'设置标题 If dr("性别") = "男" Then \'设置分组 vr.ImageKey = "Man" Else vr.ImageKey = "Woman" End If vr.Group = dr("支部名称") \'指定所属分组 Next lvw.ResumeRedraw() \'恢复绘制 当前运行图如下(系直接点击生成模式1得到的数据) 在生成模式1中事件代码加入如下内容(初步实现先进行数据筛选,然后在生成listview内容,可以实现单个单位和单个支部名称的数据筛选,如何实现多个支部名称或者多个单位名称的数据筛选呢?麻烦老师们指导一下更加快捷高效的代码写法,谢谢!) Dim Filter As String With e.Form.Controls("单位名称") If .Value IsNot Nothing Then Filter = "单位名称 = \'" & .Value & "\'" End If End With With e.Form.Controls("支部名称") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "支部名称 = \'" & .Value & "\'" End If End With If Filter > "" Then DataTables("党员信息").loadFilter= Filter DataTables("党员信息").load End If [此贴子已经被作者于2020/12/7 13:28:20编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/12/7 13:33:00 -- 改为多选组合框:http://www.foxtable.com/webhelp/topics/0940.htm 然后, Filter = Filter & "支部名称 in (\'" & .Value.replace(",","\',\'") & "\')"
[此贴子已经被作者于2020/12/7 14:36:48编辑过]
|
-- 作者:李孝春 -- 发布时间:2020/12/7 13:44:00 -- 回复:(有点蓝)改为多选组合框:http://www.foxtabl... 老师 还得麻烦你一下哦 更改后运行效果如下:没有显示生成出数据并listview显示出来 支部名称在表里面一个党员只能对应一个支部 在多选组合框这里先选择单位后 会把当前单位的所有支部名称显示出来 如果选择了第一 第二支部 想实现这两个支部的数据进行筛选显示 按楼上操作后,如果我只选一个支部 则可以进行筛选显示 如果我选择两个支部 因为在表中支部名称不是多值字段,所以筛选不到合格数据,需要把多选组合框里面的多值进行拆分 然后一个个的去筛选符合支部名称值的数据
[此贴子已经被作者于2020/12/7 13:51:25编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/12/7 13:56:00 -- 仔细看2楼代码 |
-- 作者:李孝春 -- 发布时间:2020/12/7 14:03:00 -- 回复:(有点蓝)仔细看2楼代码 代码如下 还是提示查不着数据 麻烦老师啦 Dim Filter As String With e.Form.Controls("单位名称") If .Value IsNot Nothing Then Filter = "单位名称 = \'" & .Value & "\'" End If End With With e.Form.Controls("支部名称") If .Value IsNot Nothing Then If Filter > "" Then Filter = Filter & " And " End If Filter = Filter & "支部名称 in (\'" & .Value.replace("\'","\',\'") & "\')" MessageBox.Show(Filter) End If End With If Filter > "" Then DataTables("党员信息").loadFilter= Filter DataTables("党员信息").load End If 麻烦老师指导下 进入窗口后在党员信息按钮里面 谢谢 以下内容是专门发给有点蓝浏览 [此贴子已经被作者于2020/12/7 14:18:03编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/12/7 14:37:00 -- 搞错了,是逗号 [此贴子已经被作者于2020/12/7 14:37:07编辑过]
|