以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  重复值动态增加控件问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=136709)

--  作者:douglas738888
--  发布时间:2019/6/19 16:15:00
--  重复值动态增加控件问题

请教老师,下面第二段代码根据不重复值能动态生成控件

如果是根据重复值,动态增加控件,第一段代码应该怎样写入到第二段代码中,这种有筛选,有集合的情况不知道怎样写了??

 

第一段代码:

Dim drs As List(Of DataRow) = DataTables(str4).SQLSelect("[主计划编号] = \'ZJH20181220001\'")
For Each dr As DataRow In drs
Dim st As String = dr("任务安排_专业")
btn.Text = st  \'有问题只能显示最后一个专业
Next

 

 

第二段代码:

Dim ls As List(Of String()) = DataTables(str4).SQLGetValues("任务安排_专业|任务安排_执行人","主计划编号 = \'"& str2 &"\'","")
Dim t As Double = 0
Dim l As Double = 0
Dim m As Integer = ls.Count Mod 1
For i As Integer = 0 To ls.Count - 1
    Dim btn As WinForm.Label
    btn = e.Form.CreateControl("XLabel" & ls(i)(0) & vbcrlf & ls(i)(1), ControlTypeEnum.Label)
    btn.Text = ls(i)(0) & vbcrlf & ls(i)(1)
    btn.Font = New Font("微软雅黑", 9.5)
    btn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
    If i = 0 Then
        t = 500 \'距离顶部
        l = 0
    Else If i Mod 1 = 0
        t  = 50 \'竖向间距
        l = 0
    \'Else
        \'l + = 150 \'间隔
    End If
    btn.Width = 120  
    btn.BackColor = Color.Wheat
    btn.Height = 40  
    btn.Left = l 
    btn.Top = t
    e.Form.Controls("Panel1").AddControl(btn)
Next


--  作者:有点甜
--  发布时间:2019/6/19 18:15:00
--  
Dim drs As List(Of DataRow) = DataTables(str4).SQLSelect("[主计划编号] = \'ZJH20181220001\'")
Dim t As Double = 0
Dim l As Double = 0
For i As Integer = 0 To drs.Count - 1
    Dim btn As WinForm.Label
    btn = e.Form.CreateControl("XLabel" & drs(i)("某列"), ControlTypeEnum.Label)
    btn.Text = drs(i)("任务安排_专业")
    btn.Font = New Font("微软雅黑", 9.5)
    btn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
    If i = 0 Then
        t = 500 \'距离顶部
        l = 0
    Else If i Mod 1 = 0
        t  = 50 \'竖向间距
        l = 0
    \'Else
        \'l + = 150 \'间隔
    End If
    btn.Width = 120 
    btn.BackColor = Color.Wheat
    btn.Height = 40 
    btn.Left = l
    btn.Top = t
    e.Form.Controls("Panel1").AddControl(btn)
Next