以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]老师给看看一下这代码,要是有多页数据要模糊搜索,回来的数据主表明细数据超过分页也分页显示,要做什么修改呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=161322) |
-- 作者:和谐 -- 发布时间:2021/3/13 8:28:00 -- [求助]老师给看看一下这代码,要是有多页数据要模糊搜索,回来的数据主表明细数据超过分页也分页显示,要做什么修改呢? Dim Filter As String = "1=2" \'直接为变量赋值,为什么值是1=2呢,就是要这个值不成立,因为1不等于2,相当于"否"的意思 Dim val As String = e.Form.Controls("textbox2").Text \'定义一个变量是输入在控件textbox1的值 If val <> "" Then \'但textbox1控件的值大于空白时,执行下面代码 For Each c As DataCol In DataTables("智能AI数据_Table2").DataCols \'遍历语句,遍历地区表的所有列 DataTables("智能AI数据_Table2").LoadPage = 0 \'重点:直接加载地区表的第一页,这样下面的模糊筛选才可以从第一页开始筛选所有数据 Filter = Filter & " Or Convert(varchar(100), " & c.name & ") Like \'%" & val & "%\' " \'这句Filter & = "xxx"的意思是Filter = Filter & "xxx" 的简写,这句就是:筛选条件里的条件,这句话的含义就是把每一列列转换成字符串再用Like语句\'%" & val & "%\'意思是:筛选出所有列中包含"控件textbox1的值" Next End If If filter IsNot Nothing Then \'当Filter不等于空白时 DataTables("智能AI数据_Table2").LoadPage = 0 \'加载第一页 DataTables("智能AI数据_Table2").LoadOver = "_Identify" \'以日期列 DataTables("智能AI数据_Table2").LoadReverse = True \'启用日期列倒序加载 DataTables("智能AI数据_Table2").LoadFilter = filter \'在筛选条件里的条件等于上面的:筛选条件里的条件 DataTables("智能AI数据_Table2").Load(False) \'重新加载按照:筛选条件里的条件来加载 End If Tables("智能AI数据_Table2").AutoSizeCols() \'自适应所有列的宽度 Tables("智能AI数据_Table2").Sort = "_Identify Desc" \'********* 上面的TextBox控件应用改成Label控件,因为上面要设置禁止选择还有禁止编辑没有这个控件方便 ********** Dim lbl As WinForm.Label \'定义控件变量 lbl = e.Form.Controls("Label2") \'变量等于那个控件名称 If DataTables("智能AI数据_Table2").TotalPages = 0 Then \'当地区表的总页数等于0时 lbl.TextAlign = ContentAlignment.MiddleCenter \'字体垂直与水平对齐 lbl.Font = New Font("幼圆", 14, FontStyle.Bold) \'设置字体 lbl.text = "没有您要的资料" \'则显示搜索文本 Else \' 否则 lbl.TextAlign = ContentAlignment.MiddleCenter \'字体垂直与水平对齐 lbl.Font = New Font("微软雅黑", 12, FontStyle.Bold) \'设置字体 lbl.text = "第" & DataTables("智能AI数据_Table2").LoadPage + 1 & "页/总" & DataTables("智能AI数据_Table2").TotalPages + 2 & "页" \'总页数不等于0时,控件.要显示的内容=第几页/总几页 End If \'判断结束语句 If val = "" Then Dim ids As String For Each dr As DataRow In DataTables("智能AI数据_Table1").DataRows ids = ids & ",\'" & dr("ExcelServerRCID") & "\'" Next ids= ids.Trim(",") With DataTables("智能AI数据_Table2") .LoadFilter = "ExcelServerRCID In (" & ids & ")" \'一定要清除加载条件 .Load(False) End With With DataTables("智能AI数据_Table1") .LoadFilter = "" \'一定要清除加载条件 .LoadTop = 25 .LoadPage = 0 .Load(False) End With End If Dim bh As String = DataTables("智能AI数据_Table2").GetComboListString("ExcelServerRCID",Tables("智能AI数据_Table2").filter ) Tables("智能AI数据_Table1").filter = "ExcelServerRCID in(\'" & bh.replace("|","\',\'") & "\')" Tables("智能AI数据_Table1").AutoSizeCols() \'自适应所有列的宽度 Tables("智能AI数据_Table1").Sort = "_Identify Desc"
|
-- 作者:有点蓝 -- 发布时间:2021/3/13 10:23:00 -- 加上下面的用法就是分页了,在需要的地方加上即可 .LoadTop = 25 .LoadPage = 0 |