1. ActiveReports for .NET 2 Online | ActiveReports for .NET 3 Online
2.GroupHeader块
①GroupHeader块为每个数据组打印一次。数据组是由DataField属性中指定的字段定义的。一个GroupHeader块需要一个匹配的GroupFooter块。
②由于在分组之前,ActiveReports是不会排序的,所以你的数据源需要为在GroupHeader块中指定的所有数据字段进行排序。例如,对于需要根据国家和城市这两个字段创建两个组的报表,你必须用这两个数据字段的指定顺序进行排序。如果你的数据没有排序,那么相同组的数据就会在报表的不同的位置多次出现。
2-1.DataField属性
①对数据源进行分组的字段的名字。
②ActiveReports会检查指定字段的值的任何改变。当值发生改变时就会开始一个新的组。在新组开始前当前组就结束了。指定的字段可以来自数据源,也可以是一个在ActiveReport的DataInitialize 事件中追加到字段集合(Fields collection)中的未绑定的字段。
2-2.CanShrink属性
①指示GroupHeader块的高度是否根据它的控件的实际高度和进行调整。True:进行收缩(shrink)以适应它的控件。
2-3.CanGrow属性
①指示当块的控件高度超过它的原始高度时,块的高度是否增长。True:进行扩展(grow)以适应它的控件。False:控件会被裁剪来适应块的高度。
2-4.RepeatStyle属性
①指示在明细块或相关Footer被打印的每个列或页(every column or page)上是否打印GroupHeader块。
②RepeatStyle枚举
②-1 None:当相关的明细块打印在一个新页上时,GroupHeader块不会被重复。
②-2 OnPage:在一张新页上重复GroupHeader块
②-3 OnColumn:在一个新列上重复GroupHeader块(新列的示例不太清楚)
②-4 All:在一张新页或新列上重复GroupHeader块
②-5 OnPageIncludeNoDetail:在一张包含了相关明细块或GroupFooter块的新页上重复GroupHeader块。这个属性避免GroupFooter块称为孤立的。
2-5.NewPage属性
①决定在一个块之前和/或之后插入一张新页。
②NewPage枚举
②-1 None:块会一直印刷在同一张页上,直到用完这页上的空间。
②-2 Before:在每个块实例之前,报表跳到(break to)一张新页。
②-3 After:在每个块实例之后,报表跳到(break to)一张新页。
②-4 BeforeAfter:在每个块实例之前和之后,报表都会跳到(break to)一张新页。
2-6.GroupKeepTogether属性
①指示块和它的Footer以及相关的明细是否作为一个块在同一页上打印。
②GroupKeepTogether枚举
②-1GroupKeepTogether.None:在Groupheader之后,一页可以被立即分页(broken)。
②-2GroupKeepTogether.FirstDetail:在同一页上至少和第一条明细块一起打印。
②-3GroupKeepTogether.All:GroupHeader块、明细块、GroupFooter块在同一页上一起打印。
2-7.KeepTogether属性
①指示块是否在一页上打印
②如果这个属性设成了True,ActiveReports将会努力在当前页上打印这个块。如果内容不能放到(fit)当前页,并且当前页不是一张新页,这个块会被移到下一页。
如果这个块不能放到(fit)下一页,它将被移回到原来的位置,并且内容会被分割到多页上。
2-8.UnderlayNext属性
①指示这个块是否打印在下个块的下面(beneath) 。(下一个块会重复打印在这个块上,会发生重叠)
②下一个块的背景色需要设为Transparent,否则这个块就被隐藏了而看不到。
3.Detail块
①Detail块是报表中的主要块。对于数据源中的每条数据,都会打印一次Detail块。
3-1.ColumnCount属性
①指示报表中新页的列的数量
②这个属性可以用来打印标签(Labels)或电话薄风格的列表。每列的宽度等于报表的PrintWidth除以列的数量。
3-2.ColumnDirection属性
①决定在多列报表中如何打印明细块。(Detail Section)。
②ColumnDirection枚举 (指示多列报表的列方向)
②-1 DownAcross 在转移到列的右侧列之前,在这个列的下边打印明细。
②-2 DownAcross 在一个行的下边开始新的一行之前,在所有列的下边打印明细行。
3-3.ColumnSpacing属性
①指示列之前的空白大小。
4.TextBox控件
4-1.DataField属性
①将来自于数据源的字段名称绑定到这个控件上。
②数据首先保存到DataValue属性中,然后通过OutputFormat的处理后,再设到控件的Text中。
③DataField属性可以使用以等于号开始的脚本表达式来执行计算。比如"=UnitPrice * Qty" 或者 "=CompanyName.Trim()"。 UnitPrice, Qty 和CompanyName成员必须来自报表的字段集合(Fields collection)。
④当使用XML时,DataField必须被设为有效的XPath表达式。
4-2.OutputFormat属性
①在将Value值放到Text属性之前,使用mask string来格式化Value。
② formatting mask只能用来格式化数字和日期。不支持格式化数字字母字符串。
③在控件的块的Format事件中设置OutputFormat将不会抓取到第一条记录。发生这种行为的原因是数据是在Format事件发生之前就应用到了控件上。如果你在Format 事件中改变了OutputFormat,设置Control.Value=Control.Value,那么OutputFormat被再次应用(reapplied)。
④TextBox控件的OutputFormat属性包含由分号分割的四块内容。每个块包含对不同数字类型的格式定义。
・第一块提供正数的格式
・第二块提供负数的格式
・第三块提供0的格式
・第四块提供Null和System.DBNull的格式
4-3.WordWrap属性
①指示一个多行文本框在必要时,自动Wrap单词到下一行的开头。(换行)
4-4.SummaryGroup属性
①在进行小计时,指定group header块的名字来重置总和。
②比如,为Order group header设置计算Price的总合,将会为每一个Order group重置总和到0。
③这个属性只有在SummaryType被设置为SummaryType.SubTotal时被使用。
4-5.SummaryFunc属性
①设置求和函数类型来处理DataField的值。
②只有SummaryType被设置为SubTotal 或 GrandTotal时,SummaryFunc才会起作用。
③当求和函数被使用到控件上时,CanGrow和CanShrink属性将不会起作用。因为求和是在控件的高度已经被决定及最终确定后计算的。
4-6.SummaryRunning属性
①决定是否对每一层次的data field总和做计算。
②将属性设为Group 或 All将会使报表在组和报表层次(group or report level)打印运行的总和。
When used with Groups this property should only be set when SummaryType is GrandTotal or PageTotal, otherwise it should be set to None.
4-7.SummaryType属性
①-1 Subtotal:组层次(group level),为每组重置
①-2 Grand total:报表层次(report level),所有记录被处理而不被重置
①-3 Page total:页层次(page level),为每页重置
①-4 page count:所有打印的页数
②如果一个像求和字段被放置在求和层次的头部(比如,page header上的page total,report header上的grand total),这个包含的块和下一个块将不会打印直到总和被计算了。在字段中使用求和函数后,对于这个字段的CanGrow和CanShrink属性将会失效。