65.9K
CodeProject 正在变化。 阅读更多。
Home

带筛选器的通用记录选择器 2

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.60/5 (2投票s)

2009年11月9日

CPOL

2分钟阅读

viewsIcon

22735

downloadIcon

152

对我的原始通用记录选择器的更新。

引言

今年四月,我发表了一篇文章,介绍了这个类模块的版本 1,它允许开发人员传入一些基本设置和一个数据集,以生成一个选择屏幕,该屏幕使用户能够过滤数据集,然后选择所需的记录。

版本 1 有几个限制:表单是固定大小的,并且视图只允许两列。在版本 2 中,这两个限制都被取消了。

Using the Code

类的使用方法与版本 1 相同,但传入的参数已更改。

  • 数据集
  • 一个标准的 System.Data.DataSet。 这可以包含所需数量的数据列。

  • strtitle
  • 一个 String 变量,包含选择屏幕的标题。

  • strcolumns
  • 一个 String 数组,包含要在屏幕上显示的列。 数组的每个属性应包含列标题和宽度,以逗号分隔(例如,“用户名,200”)。 加载时,表单将拉伸以包含指定的所有列,直到达到用户屏幕的宽度,此时将出现一个水平滚动条。

  • strstatics
  • 一个 String 数组,包含将出现在选择列表中的固定项目,但将始终出现在列表的顶部,并且不会受到筛选器的影响。 数组的每个属性包含要在表单上显示的一行数据,用逗号分隔列(例如,“IWALLACE,Ian Wallace”)

  • blnmultiple(可选(默认值 = False))
  • 一个布尔值,用于确定是否可以进行多项选择。 如果设置为 True,则可以通过 CTRL-单击行来选择多个记录。 一旦选择了第一行,工具栏上将出现一个“接受”按钮。

示例代码

以下代码允许用户从用户数据集中选择单个用户,或通过选择 <NEW> 固定行项目来添加新用户,应将其放置在按钮单击事件中

在此示例中,已经添加了对 SZCL00001 的引用,并且已经创建并填充了数据集。

Dim selector As New SZCL00001.Selector
 
Private Sub btnSelectSingleAddNew_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles btnSelectSingleAddNew.Click
 
    Dim strtitle As String = "Select Users"
    Dim strcolumns(2) As String
    Dim strfixed(1) As String
 
    strcolumns(0) = "User Code,150"
    strcolumns(1) = "Name,250"
    strcolumns(2) = "Title,250" 
    
    strfixed(0) = "<NEW>,Add A New User" 
 
    Dim struser() As String = _
        selector.Select_Records(dataset, strtitle, strcolumns, strfixed, False)
 
    If struser IsNot Nothing Then
        For intloop As Integer = 0 To (UBound(struser) - 1)
            If struser(intloop) = "<NEW>" Then
                Add_New_User
            Else
                MessageBox.Show(struser(intloop), "User Selected", _
                    MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Next
    End If
    
End Sub
© . All rights reserved.