表A 序号 语句 关键词
Q0001
企业未按规定设置特种设备安全管理机构
Q0002
企业未按规定配备特种设备安全管理负责人
Q0003
企业未按规定配备专职特种设备安全管理员
表B
序号 关键词
1 企业
2 未按规定设置
3 特种设备
4 安全管理
5 机构
6 未按规定配备
如何将表A每一行语句中包含表A的关键词提取对应行的关键词的列中, 形成如下结果
序号 语句 关键词
Q0001
企业未按规定设置特种设备安全管理机构 企业,未按规定设置,特种设备,安全管理,机构
Q0002
企业未按规定配备特种设备安全管理负责人 企业,未按规定配备,特种设备,安全管理,
Q0003
企业未按规定配备专职特种设备安全管理员 企业,未按规定配备,特种设备,安全管理,
表A,datacolchanged事件
If e.DataCol.name = "语句" Then
If e.DataRow.isnull("语句") Then
e.DataRow("关键词") = Nothing
Else
Dim s As String = DataTables("表B").GetComboListString("关键词", "'" & e.newvalue & "' like '%' + 关键词 + '%'")
e.DataRow("关键词") = s.Replace("|", ",")
End If
End If
这是结果例子
序号 语句 关键词
Q0001 企业未按规定设置特种设备安全管理机构 企业,未按规定设置,特种设备,安全管理,机构
Q0002 企业未按规定配备特种设备安全管理负责人 企业,未按规定配备,特种设备,安全管理,
Q0003 企业未按规定配备专职特种设备安全管理员 企业,未按规定配备,特种设备,安全管理,
Output.Show(String.Join(",", "企业,未按规定设置,特种设备,安全管理,机构,未按规定配备".Split(",").
Where(Function(元素) regex.IsMatch("企业未按规定设置特种设备安全管理机构", 元素))))
运行错误提示:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2024.11.1.1
错误所在事件:表,特征, DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.String 和 System.DBNull 上执行“Like”操作。
运行错误提示:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2024.11.1.1
错误所在事件:表,特征, DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.String 和 System.DBNull 上执行“Like”操作。
试试
Dim s As String = DataTables("表B").GetComboListString("关键词", "'" & e.newvalue & "' like '%' + 关键词 + '%' and 关键词 is not null")
还是运行错误:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2024.11.1.1
错误所在事件:表,特征, DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.String 和 System.DBNull 上执行“Like”操作。
是不是like 不能用?
再试试
Dim s As String = DataTables("表B").GetComboListString("关键词", "'" & e.newvalue & "' like '%' + isnull(关键词,'null') + '%'")