-- 作者:程兴刚
-- 发布时间: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编辑过]
|