Foxtable(狐表)用户栏目专家坐堂 → [求助] 关于专业报表多层分组的统计方法求助


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

主题:[求助] 关于专业报表多层分组的统计方法求助

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
[求助] 关于专业报表多层分组的统计方法求助  发帖心情 Post By:2010/3/1 10:18:00 [只看该作者]

在专业报表设计中,遇到了一点困难,请高手相助:
       由于我的单元格设计到绘图,需要根据钢筋代码,到参数库调用不同的绘图参数,因此无法采用数据绑定方式(绑定后,这里的调用参数方法好像不好设置),参考了贺老师在帮助中的通用专业报表代码,现在是多层分组报表代码不知从哪里加入,下面是报表按钮的部分代码:

……

dim row as datarow
For c As Integer = 0 To ColNames.Count - 1 '逐列设置和填入内容 (以下部分设置首行内容和格式)
    rt.Style.FontSize = zihao '字体大小为变量zihao的大小
    rt.Cells(0,c).Text = ColNames(c) '列名作为标题
    rt.Cells(0,c).Style.BackColor = Color.FromARGB(getConfigValue("报表表头背景色",color.LightGray))
    rt.Cells(0,c).Style.TextColor = Color.FromARGB(getConfigValue("报表标题行文字色",color.LightGray))
    rt.Cells(0,c).Style.FontBold = e.Form.Controls("报表首行加粗").Checked '字体加粗
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题行内容水平居中
    rt.Cells(0,c).Style.TextAlignVert = prt.AlignVertEnum.Center '设置标题行文字垂直居中
    rt.Cols(c).Width = Tables("样式设置").cols(ColNames(c)).PrintWidth * sfbl '列宽等于实际列宽

    if ColNames(c) = "序号" OrElse ColNames(c) = "钢筋编号" OrElse ColNames(c) = "钢号" OrElse ColNames(c) = "直径"
        rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '数据水平居中
    else
        If tb.Cols(ColNames(c)).IsNumeric Orelse tb.Cols(ColNames(c)).IsDate Then '如果是数值或日期列
            rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Right '数据水平靠右
        else
            rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.left '数据水平靠左
        end If
    end if
    For r As integer = 0 To tb.Rows.Count -1 '开始填入该列内容     (以下部分逐行写入内容)
        row = DataTables("单筋定位参数").Find("[钢筋代码] = '" & DataTables("明细数据").datarows(r)("钢筋代码") & "' and [整体旋转] = " & DataTables("明细数据").datarows(r)("整体旋转"))
        'MessageBox.show( row("行高"))
        dim dqhg as Integer = row("行高")
        rt.Rows(r+1).Height = dqhg
        rt.Cells(r+1,c).Text = tb.Rows(r)(ColNames(c))
        rt.Cells(r+1,c).Style.BackColor  = Color.FromARGB(getConfigValue("报表单元格背景色",color.LightGray))
        rt.Cells(r+1,c).Style.TextColor = Color.FromARGB(getConfigValue("报表单元格文字色",color.LightGray))
        rt.Cells(r+1,c).Style.TextAlignVert = prt.AlignVertEnum.Center '设置文字垂直居中
    Next
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.FromARGB(getConfigValue("报表表格线颜色",color.Black))) '设置格线为报表表格线颜色自定义设置侁定义嬀置
rt.CellStyle.Spacing.All = 0.4*sfbl '单元格内距设为0.5毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All '利用行组,将第一行设为表头
zihao  = 9*sfbl
rt.Style.FontBold = false '字体加粗
rt.Style.FontSize = zihao '字体大小为变量zihao的大小
doc.Body.Children.Add(rt) '将表格加入到报表


……

请高手们百忙中出手相助,研究到这里卡壳了,谢谢帮助!
[此贴子已经被作者于2010-3-1 10:21:02编辑过]

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


加好友 发短信 菜鸟中的老鸟
等级:七尾狐 帖子:1486 积分:10064 威望:0 精华:9 注册:2008/11/14 8:54:00
  发帖心情 Post By:2010/3/1 10:58:00 [只看该作者]

图片点击可在新窗口打开查看问题不明朗,最起码给个最终报表样式看看吧?帮顶。图片点击可在新窗口打开查看

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/1 11:08:00 [只看该作者]

是的,一句半句很难说清楚:

这是主表样式:


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


最终希望生成的报表样式:


图片点击可在新窗口打开查看此主题相关图片如下:a.png
图片点击可在新窗口打开查看



      最终目的,以施工部位和构件名称进行多层分组统计,要在1楼代码的基础上插入,之所以希望不采取绑定方式,是因为逐行画图需要调用参数表参数,未找到通过绑定报表的实现方法。而在帮助中,没有找到不通过绑定的多层分组统计方法(现在这段代码是根据贺老师的通用代码改变)
[此贴子已经被作者于2010-3-1 11:12:17编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/3/1 11:16:00 [只看该作者]

用分组报表不行?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/1 11:22:00 [只看该作者]

就是要分组报表,但好像不能用绑定的方法,因为我要逐行调用绘图参数。
      哪位能把帮助中的通用代码改为不绑定的多层分组报表示例,我就有办法。

       可能是我的思路钻了牛角尖,现在不能将绑定和非绑定报表模式的两种思路进行贯通。

谢谢!

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/3/1 12:02:00 [只看该作者]

感觉用Excel报表也可以,主要是“钢筋形状”列怎么解决,如果可以将狐表单元格绘制的形状保存为一个个的小图片就能突破“钢筋形状”列的问题了。这要看老六的了。呵呵~ 

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/1 14:16:00 [只看该作者]

以下是引用mr725在2010-3-1 12:02:00的发言:
感觉用Excel报表也可以,主要是“钢筋形状”列怎么解决,如果可以将狐表单元格绘制的形状保存为一个个的小图片就能突破“钢筋形状”列的问题了。这要看老六的了。呵呵~ 


         保存为图片列不行,会导致系统堆积、膨胀(至少容量加大),且保存为图片打印不清楚,专业报表对GDI+的支持,已经保证了单元格绘图不存在任何问题,其结果和主表单元格里面绘制的是一样的,关键是这里的分组统计我还没有弄通,卡壳了。


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2010/3/2 0:36:00 [只看该作者]

找到方法了,相信能够搞定,谢谢各位!


 回到顶部