Foxtable(狐表)用户栏目专家坐堂 → 关于动态增加临时列


  共有2010人关注过本帖树形打印复制链接

主题:关于动态增加临时列

帅哥哟,离线,有人找我吗?
10059
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1323 威望:0 精华:0 注册:2016/12/27 13:29:00
关于动态增加临时列  发帖心情 Post By:2017/4/7 11:11:00 [只看该作者]

老师,请问在动态增加临时列时怎么用代码设置增加列的显示位置??谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 11:42:00 [只看该作者]

增加以后,移动位置

 

Tables("表A").Cols("第二列").Move(8)


 回到顶部
帅哥哟,离线,有人找我吗?
10059
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1323 威望:0 精华:0 注册:2016/12/27 13:29:00
  发帖心情 Post By:2017/4/7 11:49:00 [只看该作者]

谢谢青老师,再个问题就是临时列可以用来分组统计??

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 11:52:00 [只看该作者]

以下是引用10059在2017/4/7 11:49:00的发言:
谢谢青老师,再个问题就是临时列可以用来分组统计??

 

可以的


 回到顶部
帅哥哟,离线,有人找我吗?
10059
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1323 威望:0 精华:0 注册:2016/12/27 13:29:00
  发帖心情 Post By:2017/4/7 12:00:00 [只看该作者]

有个错误提示: 无效列名:xxx。这是为什么呢??

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 12:01:00 [只看该作者]

 贴出你写的代码。


 回到顶部
帅哥哟,离线,有人找我吗?
10059
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1323 威望:0 精华:0 注册:2016/12/27 13:29:00
  发帖心情 Post By:2017/4/7 13:33:00 [只看该作者]

代码如下:
DataTables("oemp_dim").DataCols.Add("工号", Gettype(String), 20)
Tables("离职管理_table1").Cols("工号").move(1)
DataTables("oemp_dim").DataCols.Add("姓名", Gettype(String), 6)
DataTables("oemp_dim").DataCols.Add("部门", Gettype(String), 32)
DataTables("oemp_dim").DataCols.Add("入职日期", Gettype(Date))

DataTables("oemp_dim").DataCols("emp_no").RaiseDataColChanged()

Dim dt As DataTable
Dim b As new GroupTableBuilder("统计表","oemp_dim")
b.Groups.Adddef("部门")
b.Totals.adddef("emp_no",AggregateEnum.Count,"人数")
dt = b.build(False)
Tables("统计表").Visible = False
Dim c As WinForm.TreeView = e.Form.Controls("TreeView1")
c.buildtree(dt,"部门")
c.StopRedraw
For Each d As WinForm.TreeNode In c.AllNodes
    Dim bm As String = d.DataRow("部门")
    Select Case d.level
        Case 0
            d.Text = d.Text & "(" & dt.Compute("Sum(人数)","部门 = '" & bm & "'" ) & "人)"
    End Select
Next
c.Nodes.Insert("加载所有行","加载所有行(" & dt.Compute("Sum(人数)") & "人)",0)
c.ResumeRedraw

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 14:20:00 [只看该作者]

 改一下代码,看弹出什么

 

Dim dt As DataTable = Tables("离职管理_table1").DataTable
dt.DataCols.Add("工号", Gettype(String), 20)
msgbox(1)
Tables("离职管理_table1").Cols("工号").move(1)
msgbox(2)
dt.DataCols.Add("姓名", Gettype(String), 6)
dt.DataCols.Add("部门", Gettype(String), 32)
dt.DataCols.Add("入职日期", Gettype(Date))
dt.DataCols("emp_no").RaiseDataColChanged()

msgbox(3)
Dim b As new GroupTableBuilder("统计表",dt)
b.Groups.Adddef("部门")
b.Totals.adddef("emp_no",AggregateEnum.Count,"人数")
dt = b.build(False)
Tables("统计表").Visible = False
Dim c As WinForm.TreeView = e.Form.Controls("TreeView1")
c.buildtree(dt,"部门")
c.StopRedraw
For Each d As WinForm.TreeNode In c.AllNodes
    Dim bm As String = d.DataRow("部门")
    Select Case d.level
        Case 0
            d.Text = d.Text & "(" & dt.Compute("Sum(人数)","部门 = '" & bm & "'" ) & "人)"
    End Select
Next
c.Nodes.Insert("加载所有行","加载所有行(" & dt.Compute("Sum(人数)") & "人)",0)
c.ResumeRedraw


 回到顶部
帅哥哟,离线,有人找我吗?
10059
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:184 积分:1323 威望:0 精华:0 注册:2016/12/27 13:29:00
  发帖心情 Post By:2017/4/7 14:39:00 [只看该作者]

可以了,谢谢青老师了。老师麻烦告诉我出现问题的关键是什么??下次可以避免

 回到顶部
帅哥哟,离线,有人找我吗?
有点青
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:573 积分:2961 威望:0 精华:0 注册:2016/10/27 14:33:00
  发帖心情 Post By:2017/4/7 15:02:00 [只看该作者]

窗口表的话,尽量用 Tables("离职管理_table1") 这种方式来访问。如果要用到datatable,就写成Tables("离职管理_table1").DataTable

 回到顶部
总数 14 1 2 下一页