以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助【横竖转换】 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104379) |
||||
-- 作者:13968559581 -- 发布时间:2017/7/28 11:26:00 -- 求助【横竖转换】 请教: 我现在有源表为值班明细表,我想横竖转换一下 ![]() ![]() ![]() ![]() dtb.AddDef("日期", Gettype(String), 32) For Each v As String In DataTables("人员值班表").GetValues("部门") dtb.AddDef(v, Gettype(String),32) Next dtb.Build() For Each v As String In DataTables("人员值班表").GetValues("日期") Dim dr1 As DataRow = DataTables("表d").AddNew() dr1("日期") = v For Each dr2 As DataRow In DataTables("人员值班表").Select("日期 = \'" & v & "\'") dr1(dr2("部门")) = dr2("值班人员") Next Next MainTable = Tables("表d")
![]() ![]() [此贴子已经被作者于2017/7/28 11:33:05编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/7/28 11:30:00 -- dr1(dr2("部门")) = dr2("值班人员")
改成
dr1(dr2("部门")) = (dr1(dr2("部门")) & "," & dr2("值班人员")).Trim(",") |
||||
-- 作者:有点甜 -- 发布时间:2017/7/28 11:30:00 -- 如果还有问题,具体foxtable例子发上来。 |
||||
-- 作者:13968559581 -- 发布时间:2017/7/28 11:39:00 -- 申请进一步协助: 谢谢你的方案,但感觉仍有问题,假如人员多的话,这一列里就会很长。 还有我实际应用的时候,我是有两列的:姓名和手机号码,如果按你这个方法,就更不好操作了,有没有更好的办法,比如说一人一行。 谢谢
|
||||
-- 作者:有点甜 -- 发布时间:2017/7/28 11:53:00 -- Dim dtb As New DataTableBuilder("表d") For Each v As String In DataTables("人员值班表").GetValues("日期") |
||||
-- 作者:13968559581 -- 发布时间:2017/7/28 13:10:00 -- 再请教 你好,你刚刚的语句执行出来了,但是还需要涉及到合并的问题,所以 我现在想在之前那个语句,也就是在同一个单元格里加换行符,执行结果也是为空的,什么原因? Dim dtb As New DataTableBuilder("表e") dtb.AddDef("日期", Gettype(String), 150) For Each v As String In DataTables("人员值班表").GetValues("部门") dtb.AddDef(v, Gettype(String),150) Next dtb.Build() For Each v As String In DataTables("人员值班表").GetValues("日期") Dim dr1 As DataRow = DataTables("表e").AddNew() dr1("日期") = v For Each dr2 As DataRow In DataTables("人员值班表").Select("日期 = \'" & v & "\'") dr1(dr2("部门")) = (dr1(dr2("部门")) & vbcrlf & dr2("值班人员") & dr2("手机")) Next Next MainTable = Tables("表e") [此贴子已经被作者于2017/7/28 13:18:40编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2017/7/28 14:19:00 --
dr1(dr2("部门")) = (dr1(dr2("部门")) & vbcrlf & dr2("值班人员") & dr2("手机")).trim(chr(13), chr(10))
|