有2张表,
表1 ,检查内容表
内容, 检查类型, 日常性组织级别, 综合性组织级别,, 专项性组织级别,
依法设置 日常性,综合性 班组级,岗位级 单位级,车间级 专项管理机构级
表2,检查类型表
类型 组织级别
日常性 班组级
日常性 岗位级
综合性 单位级
综合性 车间级
专项性 专项管理机构级
专项性 车间级
规则,
表1检查类型通过SQLGetComboListString设置下拉选型( 日常性|综合性|专项性),这里支持多选的,
日常性组织组织级别,综合性组织级别,专项性组织级别需要在检查类型包括对应的类型,可以通过下拉选项选择;没有被选中,为空值,切不能选择。
举例说明
如果检查类型仅是日常性 :日常性组织级别,有下拉选项,班组级|岗位级,综合性组织级别,专项性组织级别无下拉选项,之前数据变成空值,
如果检查类型是日常性,综合性 :日常性组织级别,有下拉选项,班组级|岗位级;综合性组织级别,有下拉选项,单位级|车间级;专项性组织级别无下拉选项,之前数据变成空值
这种该如何写代码?
参考:http://www.foxtable.com/webhelp/topics/1457.htm
检查内容表prepareedit事件
If e.IsFocusCell andalso e.row.isnull("检查类型")=false Then '如果是焦点所在单元格
If e.Col.Name = "日常性组织级别" orelse e.Col.Name = "综合性组织级别" orelse e.Col.Name = "专项性组织级别" Then
dim ss as string = e.row("检查类型")
dim n as string = e.Col.Name.replace("组织级别","")
if ss.contains(n)
e.Col.Combolist = DataTables("检查类型表").GetComboListString("组织级别", "[类型] = '" & n & "'")
else
e.Col.Combolist =nothing
end if
End If
End If
检查内容表datacolchanged事件
if e.datacol.name = "检查类型"
if e.newvalue > "" then
for each s as string in {"日常性","综合性",""专项性}
if e.newvalue.contains(s) =false then
e.datarow(s & "组织级别")=nothing
end if
else
e.datarow("日常性组织级别")=nothinge.datarow("综合性组织级别")=nothing
e.datarow("专项性组织级别")=nothing