重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
业务需求:批量选择企业人员,填充到网格部件,并实现人员列表的勾选效果,自动同步已选人员列表项。
创新互联建站是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括成都网站建设、做网站、电商网站制作开发、重庆小程序开发公司、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!
首先我们需要构建一个已选人员列表和一个企业人员选择列表,
这个窗体构建相当简单,我们不做详细讲解,这里具体介绍如何实现的人员选择列表的勾选效果和同步人员。
勾选效果实现思路:获取网格部件的datatable,将datatable传入人员选择窗体中,循环判断datatable和选择列表,(人员ID)判断条件成立设置勾选标识。
同步人员实现思路:获取选择列表的标识人员,然后传回显示窗体,循环显示窗体人员,根据datatable的select查询方法判断传回的list集合是否已存在,没有利用datatable的Delete的方法删除行。
'打开智能窗体,窗体位置: 项目窗体\队伍建设\教育培训\*学习人员选择列表* 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 if form1.ShowDialog() '判断是否得到"Y" if form1.Output1="Y" then dim index = 网格部件1.DataTable.Rows.Count Dim dt=网格部件1.DataTable dim drx dim rows=form1.Output2 '判断人员勾选是否为空 dim dt_dr if 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 next end if '定义变量获取传回的list集合 dim dtt=form1.Output4 '定义变量获取网格部件的dt dim dtt1=网格部件1.DataTable dim dtt_dr if 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 if end if
人员选择列表代码:
dim dt_RY dim xm dim jsy '设置安全人员选择状态,循环设置已经选择的人员 dim a dim b dim 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