如果我们希望对高级筛选中的筛选项做一些微调时,可以考虑通过下面的方式来引用。我们知道,日期类型和数值类型是既可以设置一个选择区间,也可以设置成2个筛选项分开设置条件的,如果想自己引用到控件的话,请保证每个字段只有一个筛选项,否则无法正常引用到。
Vb.Net |
Dim tbl As SmGrid=Proj.CurrentSmGrid Dim advance As AdvanceFilter=tbl.GridAdvanceFilter If advance Is Nothing Then Return '根据字段名称获取相应的高级筛选项 Dim item As AdvanceFilterItem=advance.FilterCols("FullName") '通过Value()方法获得当前控件的输入值 Dim strName As String=item.Value() Proj.MsgDebug.Add("Caption:{0}",item.Caption) Proj.MsgDebug.Add("CaptionAlign:{0}",item.CaptionAlign.ToString()) Proj.MsgDebug.Add("CaptionWidth:{0}",item.CaptionWidth) Proj.MsgDebug.Add("CaptionFont:{0}",item.CaptionFont.ToString()) '获取第一个比较操作符控件 Dim cmb As SmComboBox=item.ComparisonOperatorFirst If cmb IsNot Nothing Then Proj.MsgDebug.Add("比较字符:{0}",cmb.Text) End If '遍历筛选项中的所有控件 For Each ctrl As Control In item.SubControls Proj.MsgDebug.Add("控件类型:{0},控件名称:{1},控件文本:{2}",ctrl.GetType().ToString(),ctrl.Name,ctrl.Text) Next '获得筛选项的筛选条件 Dim strFilter As String=item.GetFilterString() Proj.MsgDebug.Add("筛选条件:{0}",strFilter) '返回结果:Caption:姓名 '返回结果:CaptionAlign:MiddleRight '返回结果:CaptionWidth:45 '返回结果:CaptionFont:[Font: Name=微软雅黑, Size=9, Units=3, Gdicharset=1, GdiVerticalFont=False] '返回结果:比较字符:包含 '返回结果:控件类型:sanMuSoft.CS.WinForm.Controls.SmComboBox,控件名称:cmbFullName,控件文本:包含 '返回结果:控件类型:sanMuSoft.CS.WinForm.Controls.SmTextBox,控件名称:txtFullName,控件文本:万万 '返回结果:筛选条件:FullName Like '%万万%' |
C# |
SmGrid tbl = Proj.CurrentSmGrid; AdvanceFilter advance = tbl.GridAdvanceFilter; if (advance == null) return; // 根据字段名称获取相应的高级筛选项 AdvanceFilterItem item = advance.FilterCols["FullName"]; // 通过Value()方法获得当前控件的输入值 string strName = item.Value().CType<string>(""); Proj.MsgDebug.Add("Caption:{0}", item.Caption); Proj.MsgDebug.Add("CaptionAlign:{0}", item.CaptionAlign.ToString()); Proj.MsgDebug.Add("CaptionWidth:{0}", item.CaptionWidth); Proj.MsgDebug.Add("CaptionFont:{0}", item.CaptionFont.ToString()); // 获取第一个比较操作符控件 SmComboBox cmb = item.ComparisonOperatorFirst; if (cmb != null) { Proj.MsgDebug.Add("比较字符:{0}", cmb.Text); } // 遍历筛选项中的所有控件 foreach (Control ctrl in item.SubControls) { Proj.MsgDebug.Add("控件类型:{0},控件名称:{1},控件文本:{2}", ctrl.GetType().ToString(), ctrl.Name, ctrl.Text); } // 获得筛选项的筛选条件 string strFilter = item.GetFilterString(); Proj.MsgDebug.Add("筛选条件:{0}", strFilter); // 返回结果:Caption:姓名 // 返回结果:CaptionAlign:MiddleRight // 返回结果:CaptionWidth:45 // 返回结果:CaptionFont:[Font: Name=微软雅黑, Size=9, Units=3, Gdicharset=1, GdiVerticalFont=False] // 返回结果:比较字符:包含 // 返回结果:控件类型:sanMuSoft.CS.WinForm.Controls.SmComboBox,控件名称:cmbFullName,控件文本:包含 // 返回结果:控件类型:sanMuSoft.CS.WinForm.Controls.SmTextBox,控件名称:txtFullName,控件文本:万万 // 返回结果:筛选条件:FullName Like '%万万%' |