Foxtable(狐表)用户栏目专家坐堂 → [求助]excel报表实现


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

主题:[求助]excel报表实现

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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
[求助]excel报表实现  发帖心情 Post By:2011/9/3 10:33:00 [只看该作者]

能用excel报表功能实现这样的表吗

  姓名    金额   姓名     金额 

   张三

   12    王楼    45
   李斯    232    党法    34
   李四    35    水管工    45
   王五    445    大厦    56

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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/9/3 10:36:00 [只看该作者]

原始的数据表是这样的

  姓名   金额  
   张三    12
   王楼    45
   李斯    232
   党法    34
   李四   35 
   水管工    45
   王五    445
   大厦    56
       

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


加好友 发短信
等级:幼狐 帖子:113 积分:731 威望:0 精华:1 注册:2011/8/16 14:13:00
  发帖心情 Post By:2011/9/3 11:17:00 [只看该作者]

在Fox中生成"分栏"表,根据此表生成Excel报表:

Dim jb As New SQLJoinTableBuilder("分栏","表A")
jb.AddCols("姓名","金额")
jb.AddExp("姓名1","姓名")
jb.AddExp("金额1","金额")
jb.build

Dim t1,t2 As Table
t1 = Tables("表A")
t2 = Tables("分栏")
t2.DataTable.DataRows.Clear
Dim n As Integer = t1.DataTable.Compute("count(金额)","姓名 is not null")
t2.AddNew(Math.Ceiling(n/2))
For n = 0 To t2.Rows.count-1
   t2.Rows(n)("姓名")  = t1.Rows(2*n)("姓名") 
   t2.Rows(n)("金额")  = t1.Rows(2*n)("金额") 
   t2.Rows(n)("姓名1")  = t1.Rows(2*n+1)("姓名") 
   t2.Rows(n)("金额1")  = t1.Rows(2*n+1)("金额") 
Next

[此贴子已经被作者于2011-9-3 11:42:39编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/9/3 12:22:00 [只看该作者]

还有简单的就是直接引用.

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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/9/4 9:19:00 [只看该作者]

以下是引用紙上不談兵在2011-9-3 11:17:00的发言:

Dim jb As New SQLJoinTableBuilder("分栏","表A")
jb.AddCols("姓名","金额")
jb.AddExp("姓名1","姓名")
jb.AddExp("金额1","金额")
jb.build

Dim t1,t2 As Table
t1 = Tables("表A")
t2 = Tables("分栏")
t2.DataTable.DataRows.Clear
Dim n As Integer = t1.DataTable.Compute("count(金额)","姓名 is not null")
t2.AddNew(Math.Ceiling(n/2))
For n = 0 To t2.Rows.count-1
   t2.Rows(n)("姓名")  = t1.Rows(2*n)("姓名") 
   t2.Rows(n)("金额")  = t1.Rows(2*n)("金额") 
   t2.Rows(n)("姓名1")  = t1.Rows(2*n+1)("姓名") 
   t2.Rows(n)("金额1")  = t1.Rows(2*n+1)("金额") 
Next
不知道在哪个事件中加入代码?请问这里的知识点是哪儿的?

[此贴子已经被作者于2011-9-3 11:42:39编辑过]


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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/9/4 9:23:00 [只看该作者]

最好能上个例子,先谢了!

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


加好友 发短信
等级:三尾狐 帖子:623 积分:3897 威望:0 精华:0 注册:2011/8/3 22:13:00
  发帖心情 Post By:2011/9/4 9:25:00 [只看该作者]

这个做个按钮,但是这段代码下必须加入打印报表的代码,如果觉得烦,在帮助里面找直接引用的那一章也可以的.

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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/9/4 9:45:00 [只看该作者]

直接引用不错,适用于数据少的,多的就不行了

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/4 11:38:00 [只看该作者]

用这个,应该可以解决的:

 

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

 


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


加好友 发短信
等级:幼狐 帖子:189 积分:1658 威望:0 精华:0 注册:2011/5/25 17:51:00
  发帖心情 Post By:2011/9/4 22:42:00 [只看该作者]

用标签最简单!学习了!


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