Foxtable(狐表)用户栏目专家坐堂 → 重复值动态增加控件问题


  共有1306人关注过本帖树形打印复制链接

主题:重复值动态增加控件问题

帅哥哟,离线,有人找我吗?
douglas738888
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8772 威望:0 精华:0 注册:2012/4/18 16:28:00
重复值动态增加控件问题  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 回到顶部