以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 查找,并由竖列变横行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=94426) |
||||
-- 作者:zhangning -- 发布时间:2016/12/23 10:23:00 -- 查找,并由竖列变横行 此主题相关图片如下:排1.png 老师,您好! 如图所示黑框内:同一“部品ID”,的同一“工程”用的“使用机器1”有4个(有的是3个,有的是8个,没有规律), 需要将使用的机器横行显示,并仅仅留下全部使用机器的那一行,其他的删除, 效果如下: 请问老师,这个怎么弄呢?
|
||||
-- 作者:有点蓝 -- 发布时间:2016/12/23 11:28:00 -- 试试,测试前备份一下数据 Dim cmd As new SQLCommand cmd.CommandText = "select 部品ID from {表A} group by 部品ID having count(使用机器1) > 1" Dim dt As DataTable = cmd.ExecuteReader() If dt.DataRows.Count > 0 Then Dim dr2 As DataRow For Each dr As DataRow In dt.DataRows Dim drs As List(Of DataRow) = DataTables("表A").Select("部品ID = \'" & dr("部品ID") & "\'") dr2 = drs(0) Dim idx As Integer = 1 For i As Integer = 0 To drs.Count - 1 If drs(i).Isnull("使用机器1") = False Then dr2("使用机器" & idx) = drs(i)("使用机器1") idx += 1 End If Next For i As Integer = 1 To drs.Count - 1 drs(i).Delete Next Next End If [此贴子已经被作者于2016/12/23 14:13:22编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/23 11:43:00 -- Dim drs As List(of DataRow) = DataTables("表A").Select("","新品ID,工程") [此贴子已经被作者于2016/12/23 11:42:56编辑过]
|
||||
-- 作者:zhangning -- 发布时间:2016/12/23 13:16:00 -- 没有反应 |
||||
-- 作者:zhangning -- 发布时间:2016/12/23 13:17:00 --
|
||||
-- 作者:zhangning -- 发布时间:2016/12/23 13:17:00 -- 请老师帮看看,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2016/12/23 14:13:00 -- 1、代码不适合放在表事件,放到命令窗口或者窗口按钮执行 2、peq表没有对应的列
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2016/12/23 14:28:00 -- 我帮你写了一下:
建议你回头看两遍帮助,或者系统学习置顶的视频教程,否则我们对您的帮助并没有多少实质意义。
|