Foxtable(狐表)用户栏目专家坐堂 → 条件查询组合统计 数据填入已存在的“统计表”,而非窗口里的_table1


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

主题:条件查询组合统计 数据填入已存在的“统计表”,而非窗口里的_table1

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
条件查询组合统计 数据填入已存在的“统计表”,而非窗口里的_table1  发帖心情 Post By:2016/3/30 0:30:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:查询数据填入统计表,而非窗口里的_table1.table

DataSource怎么用?找不到窗口里表table1这个属性,

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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/30 8:41:00 [只看该作者]

先生成统计表,再逐行把数据复制过去。

至于 DataSource怎么用,例子中不就是么
Tables("窗口1_Table1").DataSource = dt1

或者
e.Form.Controls("Table1").Table.DataSource = dt1 



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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
  发帖心情 Post By:2016/3/30 9:01:00 [只看该作者]

 Dim bd1 As New GroupTableBuilder("统计表1",DataTables("项目名称"))
Dim dt1 As fxDataSource
bd1.Groups.AddDef("主键编号") '根据主键编号分组
bd1.Totals.AddDef("次键序号","项目名称_次键序号") '对次键序号进行统计
bd1.Totals.AddDef("名称","项目名称_名称") '对名称进行统计
dt1 = bd1.BuildDataSource()

Dim bd2 As New GroupTableBuilder("统计表2",DataTables("空间类型"))
Dim dt2  As fxDataSource
bd2.Groups.AddDef("主键编号") '根据主键编号分组
bd2.Totals.AddDef("次键序号","空间类型_次键序号") '对次键序号进行统计
bd2.Totals.AddDef("名称","空间类型_名称") '对名称进行统计
dt2 = bd2.BuildDataSource()

Dim bd3 As New GroupTableBuilder("统计表3",DataTables("设计单位"))
Dim dt3  As fxDataSource
bd2.Groups.AddDef("主键编号") '根据主键编号分组
bd2.Totals.AddDef("次键序号","设计单位_次键序号") '对次键序号进行统计
bd2.Totals.AddDef("名称","设计单位_名称") '对名称进行统计
dt2 = bd2.BuildDataSource()

Dim bd4 As New GroupTableBuilder("统计表4",DataTables("设计师"))
Dim dt4 As fxDataSource
bd3.Groups.AddDef("主键编号") '根据主键编号分组
bd3.Totals.AddDef("次键序号","设计师_次键序号") '对次键序号进行统计
bd3.Totals.AddDef("名称","设计师_名称") '对名称进行统计
dt3 = bd3.BuildDataSource()

dt1.Combine("主键编号",dt2,"主键编号") '将设计单位统计数据组合到项目名称统计数据
dt1.Combine("主键编号",dt3,"主键编号") '将设计师统计数据组合到项目名称统计数据
Tables("窗口1_Table1").DataSource = dt1 '将统计结果绑定到Table

e.Form.Controls("统计表").Table.DataSource = dt1 '这一句加在最后面,不行,没明白怎么用


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2016/3/30 9:03:00 [只看该作者]

Tables("窗口1_Table1").DataSource = dt1 '将统计结果绑定到Table

e.Form.Controls("统计表").Table.DataSource = dt1 '这一句加在最后面,不行,没明白怎么用

这2个是一个东西,用其中一个就可以

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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
  发帖心情 Post By:2016/3/30 9:25:00 [只看该作者]

e.Form.Controls("统计表").Table.DataSource = dt1
'Tables("窗口1_Table1").DataSource = dt1 '将统计结果绑定到Table

替换了上面的代码,但是
窗口的统计表出来的结果,不能填入“统计表”,还需要增加代码嘛?


图片点击可在新窗口打开查看此主题相关图片如下:窗口的统计表出来的结果,不能填入
图片点击可在新窗口打开查看

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:窗口统计结果不能返回 统计表.table

[此贴子已经被作者于2016/3/30 9:31:33编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 9:31:00 [只看该作者]

填充数据,参考

 

http://www.foxtable.com/help/topics/0680.htm

 


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
  发帖心情 Post By:2016/3/30 10:15:00 [只看该作者]

红袍大师,数据填充过去后,数据重复了,要实现存在 编号则覆盖,没有该编号则新建行赋值呢?

我用导入外部excle的函数,不知道怎么修改成窗口统计的导入,帮忙看看了 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:存在编号覆盖,不存在编号新建行.table


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 10:23:00 [只看该作者]

Dim s1 As String = "主键编号,项目名称_次键序号,项目名称_名称,空间类型_次键序号,空间类型_名称,设计单位_次键序号,设计单位_名称,设计师_次键序号,设计师_名称" '指定数据来源列
Dim Cols1() As String = s1.Split(",")
Dim Cols2() As String = s1.Split(",")
For Each dr1 As DataRow In DataTables("窗口1_Table1").Select("主键编号 is not null")
    Dim dr2 As DataRow = DataTables("统计表").Find("主键编号 = '" & dr1("主键编号") & "'")
    If dr2 Is Nothing Then dr2 = DataTables("统计表") .AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/30 10:29:00 [只看该作者]


'----------------------下面这段代码是导入外部excle,存在同编号则跳过.怎么改成:窗口统计表导入,存在同编号,则覆盖,不存在同编号,则新建----------
Dim book,c
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Tables("窗口1_Table1").StopRedraw()
'上面代码是导入,下面的代码是导入不重复的行
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"主键编号","主键编号","项目名称_次键序号","项目名称_名称","空间类型_次键序号","空间类型_名称","设计单位_次键序号","设计单位_名称","设计师_次键序号","设计师_名称"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 1 To Sheet.Rows.Count -1
    Dim bh As String = sheet(n,0).Text
    Dim r As DataRow = DataTables("窗口1_Table1").Find("主键编号 = '" & bh & "'")
    If r Is Nothing Then '如果不存在同编号
        r = DataTables("窗口1_Table1").AddNew()
    End If
    c = c + 1
    For m As Integer = 0 To nms.Length - 1
        r(nms(m)) = Sheet(n,m).Value
    Next
   
Next
Tables("窗口1_Table1").ResumeRedraw()
'DataTables("统计表").Save  '上面的代码是导入不重复的行,自动保存看不出那些事新增导入的
MessageBox.Show("导入完成,共导入" & c & "条记录")

 


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


加好友 发短信
等级:四尾狐 帖子:812 积分:6688 威望:0 精华:0 注册:2014/11/26 12:32:00
  发帖心情 Post By:2016/3/30 10:30:00 [只看该作者]

 红袍大师,存在编号的值更新了,但又重新建了一行,重复了
图片点击可在新窗口打开查看


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