使用C1PrintDocument控件 > 表格 > 行和列的分组,页眉和页脚 |
元素组表功能是表格提供的强大功能。分组允许将表格的若干元素作为一个整体访问(例如,可以为分组设置样式,就好像它是一个独立的元素)。支持列的分组,行的分组以及单元格分组。
访问分组行,请使用RowGroups集合(其类型为TableVectorGroupCollection)。该集合的元素类型为TableVectorGroup。另一个有趣的属性是ColumnHeader该属性允许指定一组行为一个表格页眉,将在每一个新页面或者页面分栏的顶部进行重复。一个相关的属性是ColumnFooter,它允许指定一组行为一个表格页脚,同样也可以在每一页或者每一个页面分栏的末尾重复显示。
以下代码行显示如何指定一个表格的开始两行为表格页眉,在每一个分页符或者分栏符之后重复显示(这里的rt1是一个RenderTable对象):
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
rt1.RowGroups(0, 2).Header = C1.C1Preview.TableHeaderEnum.Page |
C#
C# |
拷贝代码
|
---|---|
rt1.RowGroups[0, 2].Header = C1.C1Preview.TableHeaderEnum.Page; |
如上所述,在TableVectorGroupCollection中的索引第一个值是包括在该组中的第一行的索引(在上面的代码示例中,为0)。第二个值表示分组中的行数(在上面的代码示例中,为2)。
访问分组列,请使用ColGroups集合该集合和行分组的集合具有相同的类型(TableVectorGroupCollection)特别感兴趣的是指定一组列为垂直的表格页眉或页脚的能力。C1PrintDocument 支持“水平的”或者(“extension”)的页面,允许宽对象水平横跨多个页面。为允许一个对象(例如,一个表)水平横跨几个页面,需要设置其SplitHorzBehavior 属性为一个不为SplitBehaviorEnum.Never的值如果对象的宽度超过页面宽度越宽,它将被分割为若干个水平页。特别是,一个过宽的表可以这样分割。为了让一组列沿着每一个页面的左侧重复显示,需要设置分组的ColumnHeader为了让一组列沿着每一页的右边缘重复显示,需要设置分组的ColumnFooter属性为True。
注意:虽然表格的任何一组行(或列)可以被指定为页脚,通常你会想只包括表格的最后一行(或列)至页脚组。这将确保页脚的行为作为一个正常的页脚,只出现在页面的底部(或右边缘),也出现在表的末尾。(如果,例如,你把一个表的第一行指定为页脚,它仍然会出现在表格的开始位置,因此也不会打印在表格的结束位置。) |
下面是一个示例代码,将创建一个具有100行10列的表格,设置表格的宽度为Auto,显式设置每列的宽度为1英寸,并指定水平和垂直表格页眉和页脚:
Visual Basic
Visual Basic |
拷贝代码
|
---|---|
'创建并填充表格. Dim rt1 As C1.C1Preview.RenderTable = New C1.C1Preview.RenderTable() Dim row As Integer = 0 Dim col As Integer Do While (row < 100) col = 0 Do While (col < 6) rt1.Cells(row, col).Text = String.Format("Text in cell({0}, {1})", row, col) col += 1 Loop row += 1 Loop ' 设置表格和列的宽度 rt1.Width = C1.C1Preview.Unit.Auto col = 0 Do While (col < 6) rt1.Cols(col).Width = "1in" col += 1 Loop ' 指定前两行作为页眉,同时设置其背景. rt1.RowGroups(0, 2).PageHeader = True rt1.RowGroups(0, 2).Style.BackColor = Color.Red '指定最后两行作为页脚,同时设置其背景. rt1.RowGroups(98, 2).PageFooter = True rt1.RowGroups(98, 2).Style.BackColor = Color.Blue '指定第一列作为页眉. rt1.ColGroups(0, 1).PageHeader = True rt1.ColGroups(0, 1).Style.BackColor = Color.BlueViolet ' 指定最后一列作为页眉. rt1.ColGroups(5, 1).PageFooter = True rt1.ColGroups(5, 1).Style.BackColor = Color.BurlyWood |
C#
C# |
拷贝代码
|
---|---|
//创建并填充表格. RenderTable rt1 = new RenderTable(); for (int row = 0; row < 100; ++row) { for (int col = 0; col < 6; ++col) { rt1.Cells[row, col].Text = string.Format("Text in cell({0}, {1})", row, col); } } // 设置表格和列的宽度 rt1.Width = Unit.Auto; for (int col = 0; col < 6; ++col) { rt1.Cols[col].Width = "1in"; } // 指定前两行作为页眉,同时设置其背景. rt1.RowGroups[0, 2].PageHeader = true; rt1.RowGroups[0, 2].Style.BackColor = Color.Red; //指定最后两行作为页脚,同时设置其背景. rt1.RowGroups[98, 2].PageFooter = true; rt1.RowGroups[98, 2]. Style.BackColor = Color.Blue; //指定第一列作为页眉. rt1.ColGroups[0, 1].PageHeader = true; rt1.ColGroups[0, 1].Style.BackColor = Color.BlueViolet; // 指定最后一列作为页眉. rt1.ColGroups[5, 1].PageFooter = true; rt1.ColGroups[5, 1].Style.BackColor = Color.BurlyWood; |
在本示例中,背景色用来突出显示行和列的分组。