Foxtable(狐表)用户栏目专家坐堂 → (请教)这个报表的代码应怎么样写


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

主题:(请教)这个报表的代码应怎么样写

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
(请教)这个报表的代码应怎么样写  发帖心情 Post By:2008/11/24 21:02:00 [只看该作者]

文件:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


要达到的效果:

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/24 21:04:00 [只看该作者]

看着帮助中的:
1,sql语句
2,分组
3,绑定

能力有限而写不出来了....

[此贴子已经被作者于2008-11-24 22:00:52编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/24 21:06:00 [只看该作者]

--

[此贴子已经被作者于2008-11-25 12:49:03编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/24 21:23:00 [只看该作者]

'''
dim barow as row = tables("表A").current
dim babianhao as string = barow("编号")
Dim Names As New List(Of String)
Dim suzhu() As String '定义数组
Dim bfrows As List(Of Datarow)
bfrows = DataTables("表F").select("[编号] = '"& babianhao &"'")
for each bfrow as datarow in bfrows
  Names.Add(bfrow("项目"))
next
suzhu = Names.ToArray()
output.show(suzhu(0))

Dim doc As New PrintDoc
Dim rt As prt.RenderTable

With Tables("表A.表F")
rt = New prt.RenderTable
rt.Style.GridLines.All = prt.Linedef.Default '网格线为默认类型
For n As integer = 0 To .Rows.Count - 1      
    rt.Cells(0,0).Text = "编号"
    rt.Cells(0,1).Text ="采样编号"   
    rt.Cells(0,2+n).Text = .rows(n)("项目")
next
End With
doc.Body.Children.Add(rt)

Dim cmd As New SQLCommand '定义一个SQL命令
Dim dt As DataTable '定义一个数据表变量
cmd.CommandText = "Select 编号,采样编号,值 from {表C} where 编号 = '"& babianhao &"' and 项目= '"& suzhu(0) &"' "
dt = cmd.ExecuteReader() '生成一个临时表
dim Count As Integer = 0
rt = New prt.RenderTable
For Each Col AS DataCol In Dt.DataCols
    rt.Cells(0,Count).Text = Col.Name
    For r As integer = 0 To dt.DataRows.Count - 1
        rt.Cells(r +1,Count).Text = dt.DataRows(r)(Col.Name)
    Next
    Count = Count + 1
Next
doc.Body.Children.Add(rt)
doc.Preview()


图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-11-24 21:38:50编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/24 21:25:00 [只看该作者]

因为项目是不断(减小或增加) 为了避免当增加1个项目,就要更改表结构和报表。

[此贴子已经被作者于2008-11-25 13:17:34编辑过]

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/24 22:07:00 [只看该作者]

帮助中基本是取关系表中相关的所有数据,但没有按条件取关联表的数据,接着分别填到不同的列中的实例啊。。。。

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/25 1:14:00 [只看该作者]

试了1天1晚时间了,终于写出来了(分享1下):

dim barow as row = tables("表A").current
dim babianhao as string = barow("编号")

Dim doc As New Printdoc
Dim rt As New prt.RenderTable

dim af as table = Tables("表A.表F")
With Tables("表A.表F")
rt = New prt.RenderTable
rt.Style.GridLines.All = prt.Linedef.Default '网格线为默认类型
For n As integer = 0 To .Rows.Count - 1      
    rt.Cells(0,0).Text = "编号"
    rt.Cells(0,1).Text ="采样编号"   
    rt.Cells(0,2+n).Text = .rows(n)("项目")

Dim cmd As New SQLCommand '定义一个SQL命令
Dim dt As DataTable '定义一个数据表变量
   cmd.CommandText = "Select 编号,采样编号,值 from {表C} where 编号 = '"& babianhao &"' and 项目= '"& Tables("表A.表F").rows(n)("项目") &"' "
   dt = cmd.ExecuteReader() '生成一个临时表
   For r As integer = 0 To dt.DataRows.Count - 1
        rt.Cells(r+1,0).Text = dt.DataRows(r)("编号")
        rt.Cells(r+1,1).Text = dt.DataRows(r)("采样编号")
        rt.Cells(r+1,2+n).Text = dt.DataRows(r)("值")
   Next

next
End With
doc.Body.Children.Add(rt)
doc.Preview

[此贴子已经被作者于2008-11-25 3:03:25编辑过]

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


加好友 发短信
等级:三尾狐 帖子:746 积分:6673 威望:0 精华:1 注册:2008/9/1 11:46:00
  发帖心情 Post By:2008/11/25 7:11:00 [只看该作者]

学习,谢谢分享!

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


加好友 发短信
等级:一尾狐 帖子:445 积分:3025 威望:0 精华:0 注册:2008/9/13 10:49:00
  发帖心情 Post By:2008/11/25 13:03:00 [只看该作者]

改全部用foxtable的语言写:(因用外部数据库,打印前已加载数据,再用select语句从后台找数据是效率的重复)

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table



'''
Dim doc As New Printdoc
dim barow as row = tables("表A").current
dim babianhao as string = barow("编号")
Dim rt As prt.RenderTable
With Tables("表A.表F")
rt = New prt.RenderTable
rt.Style.GridLines.All = prt.Linedef.Default '网格线为默认类型
For n As integer = 0 To .Rows.Count - 1      
    rt.Cells(0,0).Text = "编号"
    rt.Cells(0,1).Text ="采样编号"   
    rt.Cells(0,2+n).Text = .rows(n)("项目")

Dim bctbl As dataTable = dataTables("表C")
dim bcrows as list(of datarow)
bcrows = bctbl.select("[编号] = '"& babianhao &"' and  [项目]= '"& Tables("表A.表F").rows(n)("项目") &"' ")
    for bci as integer = 0 to bcrows.count -1
         for each bcrow as datarow in bcrows
            rt.Cells(1+bci,0).Text = bcrows(bci)("编号")
            rt.Cells(1+bci,1).Text = bcrows(bci)("采样编号")
            rt.Cells(1+bci,2+n).Text = bcrows(bci)("值")
         next
    next
next
end with
doc.Body.Children.Add(rt)
doc.Preview()


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


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

呵呵,目前在论坛,专业报表你是研究得最好的了,你搞不定的,估计也没有人能帮上手的。

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