以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]excel报表实现  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=12443)

--  作者:yjk1023
--  发布时间:2011/9/3 10:33:00
--  [求助]excel报表实现

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

  姓名    金额   姓名     金额 

   张三

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

--  作者:yjk1023
--  发布时间:2011/9/3 10:36:00
--  

原始的数据表是这样的

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

--  作者:紙上不談兵
--  发布时间: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
--  发布时间:2011/9/3 12:22:00
--  
还有简单的就是直接引用.
--  作者:yjk1023
--  发布时间: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
--  发布时间:2011/9/4 9:23:00
--  
最好能上个例子,先谢了!
--  作者:布莱克朱
--  发布时间:2011/9/4 9:25:00
--  
这个做个按钮,但是这段代码下必须加入打印报表的代码,如果觉得烦,在帮助里面找直接引用的那一章也可以的.
--  作者:yjk1023
--  发布时间:2011/9/4 9:45:00
--  
直接引用不错,适用于数据少的,多的就不行了
--  作者:狐狸爸爸
--  发布时间:2011/9/4 11:38:00
--  

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

 

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

 


--  作者:yjk1023
--  发布时间:2011/9/4 22:42:00
--  

用标签最简单!学习了!