千家信息网

关于网格部件选人实现勾选与自动同步选项功能构建

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,业务需求:批量选择企业人员,填充到网格部件,并实现人员列表的勾选效果,自动同步已选人员列表项。首先我们需要构建一个已选人员列表和一个企业人员选择列表,这个窗体构建相当简单,我们不做详细讲解,这里具体介
千家信息网最后更新 2024年09月22日关于网格部件选人实现勾选与自动同步选项功能构建

业务需求:批量选择企业人员,填充到网格部件,并实现人员列表的勾选效果,自动同步已选人员列表项。

首先我们需要构建一个已选人员列表和一个企业人员选择列表,



这个窗体构建相当简单,我们不做详细讲解,这里具体介绍如何实现的人员选择列表的勾选效果和同步人员。


勾选效果实现思路:获取网格部件的datatable,将datatable传入人员选择窗体中,循环判断datatable和选择列表,(人员ID)判断条件成立设置勾选标识。

同步人员实现思路:获取选择列表的标识人员,然后传回显示窗体,循环显示窗体人员,根据datatableselect查询方法判断传回的list集合是否已存在,没有利用datatableDelete的方法删除行。


'打开智能窗体,窗体位置: 项目窗体\队伍建设\教育培训\*学习人员选择列表*dim form1 = 创建窗体("8f03a0cb-db62-4965-81e4-b995e4e4b1d5")'if  Me.Input1="EDIT" then        '获取已选人员列表        dim dt_YXRY=网格部件1.DataTable        form1.Input1="修改"        '传入选择列表        form1.Input2=dt_YXRY        form1.Input3="其他"'end ifform1.ShowDialog()'判断是否得到"Y"if form1.Output1="Y" thendim index = 网格部件1.DataTable.Rows.CountDim dt=网格部件1.DataTabledim drxdim rows=form1.Output2'判断人员勾选是否为空dim dt_drif rows.Count <> 0 then        for each dr in rows                '判断选择的人员是否在网格中cstr          drx = dt.Select("PEIXUNRENYUANID='"+cstr(dr["ID"])+" ' and QUERENRENGANGWEIID = '"+cstr(dr["岗位ID"])+"' ")          '不在网格中。drx.Length>0表示存在          if drx.Length < 1 then                  'msgbox(dr["ID"]&" "&dr["姓名"])                        dt_dr=dt.NewRow()                        dt_dr["ID"]=Guid()                        dt_dr["PEIXUNRENYUANID"]=dr["ID"]                        dt_dr["PEIXUNRENMINGCHENG"]=dr["姓名"]                        dt_dr["SHIFOUCANJIAXUEXI"]=true                        dt_dr["QUERENRENGANGWEIID"]=dr["岗位ID"]                        dt_dr["GANGWEI"]=dr["岗位"]                        dt.Rows.Add(dt_dr)                  index=index+1                 end if                        nextend if'定义变量获取传回的list集合dim dtt=form1.Output4'定义变量获取网格部件的dtdim dtt1=网格部件1.DataTabledim dtt_drif dtt.Rows.Count>0 and dtt1.Rows.Count>0 then'循环dt for each dr1 in dtt1.Copy().Rows         '判断行状态是否为标记已删除         if dr1.RowState<>8 then         '利用select方法判断是否存在        rows=dtt.Select("人员ID='"+cstr(dr1["PEIXUNRENYUANID"])+"'")        if rows.Length = 0 then                'msgbox(dr1["PEIXUNRENYUANID"]&" 没找到,移除")                dtt1.Select("PEIXUNRENYUANID='"+Cstr(dr1["PEIXUNRENYUANID"])+"'")[0].Delete()        end if        end if        next        end ifend if

人员选择列表代码:

dim dt_RYdim xmdim jsy'设置安全人员选择状态,循环设置已经选择的人员dim adim bdim dt_a= 网格部件1.DataTable          for each dr1 in RY.Rows          if dr1.RowState<>8 then                  '人员ID                  a=dr1["PEIXUNRENYUANID"]                  '岗位ID                  b=dr1["QUERENRENGANGWEIID"]                  for each dr4 in dt_a.Rows                  if Cstr(dr4["ID"])=Cstr(a) and Cstr(dr4["岗位ID"])=Cstr(b) then                          网格部件1.MarkRowsByFilter("ID="&Cstr(dr4["ID"])&" and 岗位ID='"&Cstr(dr4["岗位ID"])&"' ",true)                          end if                            next        end if next

原文地址:http://bbs.delit.cn/thread-975-1-1.html

转载请注明出处:

撰写人:度量科技http://www.delit.cn

0