苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 913|回复: 1

一个产品经过多个部门,想实现一个格子里面,显示多...

[复制链接]

4

主题

4

帖子

22

积分

新手上路

Rank: 1

积分
22
发表于 2023-11-7 19:05:30 | 显示全部楼层 |阅读模式

一个产品经过多个部门,想实现一个格子里面,显示多个值。且修改后,可以自动更新值。以及可以参与筛选查找。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-11-7 19:31:04 | 显示全部楼层

可以考虑在子表中ColDataChanged事件里面写代码

  1. Public Sub ColDataChanged(sender As Object,e As  sanMuSoft.CS.WinForm.ColDataEventArgs)
  2.         If e.ColData.Name="部门编号" Then
  3.                 '获得当前子表的引用
  4.                 Dim tbl As SmGrid=sender
  5.                 '获得子表对应的父表的引用
  6.                 Dim tblMain As BaseGrid=tbl.Relation.ParentGrid
  7.                 '如果父表当前行不为空
  8.                 If tblMain.CurrentRowData IsNot Nothing Then
  9.                         '将子表中所有行中的数据用逗号隔开填充到主表当前行对应字段中
  10.                         tblMain.CurrentRowData("产品分类说明")= tbl.DataTableHelp.GetComboListString("部门编号").Replace("|",",")
  11.                 End If
  12.         End If
  13. End Sub
复制代码


如果你上面想保存部门ID而不是部门名称的话,就要使用到字典,主表就要用到“字典多值显示”。

这些需求都算得上常规。但是你如果还想进一步地实现对主表中用逗号分隔开的部门信息进行筛选那就比较麻烦了。
情况一:只针对单个部门进行筛选,这种比较简单,用Like进行模糊筛选就好办。
情况二:想实现多个部门复选筛选,这种就麻烦了。目前没有现成的功能。只能自己自定义窗体,用代码实现自定义筛选逻辑。主要通过主表与子表关联,通过部门信息获得相应的主表信息,然后再筛选出相应的主表信息。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2024-10-2 23:29 , Processed in 0.061906 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表