• 主页
  • 招聘
  • 语言基础/算法/系统设计
  • 数据库相关
  • 图形处理/多媒体
  • 网络通信/分布式开发
  • VCL组件开发及应用
  • Windows SDK/API
hszj 2006年07月31日
EjunGrid打印控件的使用总结
1. 如何只打印表格某一范围的内容
EjunGridPrinter可以只打印表格中某一指定范围内的内容,通过设置PrintBounds属性实现
PrintBounds.TopRow 指定打印范围的起始行
.LeftCol 指定打印范围的起始列
.RowCount 指定打印的行数 默认值是-1, 表示打印所有行
.ColCount 指定打印的列数 默认值是-1, 表示打印所有列


2. 如何打印每页都出现的标题行和标题列

可以指定表格的某些行和某些列每页都打印,适合打印标题行和标题列
PrintBounds.TitleRows 指定从打印范围起始行开始的数行为标题行,每页都打印
PrintBounds.TitleCols 指定从打印范围起始行开始的数列为标题列,每页都打印

3. 如何自动按比例调整列款,使表格刚好占满页面宽度

EjunGridPrinter默认情况下是根据页面宽度自动横向分页,当指定
FitGridToPageWidth := True 时将不会自动横向分页,而是调整每一列的宽度,
使表格刚好适应页面宽度

4. 是否可以插入分页符

可以,Grid.Rows[xx].PageBreak := True

5. 是否能指定每页打印的行数或者列数
可以,指定PageColCount, PageRowCount即可

6. 能否实现如下格式的页眉页脚

------------------------------------------------------------------------
xx报表

编号:xxx
建设单位:xxxx 日期:
工程名称:xxxx 第 1 页 共 5 页

...

可以, EjunGrid打印控件可以指定页眉页脚每一个条目的位置,页眉页脚区域可以被划分
成虚拟的表格,可以指定每一条目所属的行列坐标,还可以指定对齐方式,要实现如上效果
的页眉,以下代码可以实现


// 设置报表标题
GridPrinter.ReportTitle.Caption := 'xx报表';
GridPrinter.ReportTitle.Font.Size := 16;
GridPrinter.ReportTitle.Font.Style := [fsBold];

// 设置纸张为横向打印
GridPrinter.Orientation := poLandscape;

with GridPrinter.PageHeader.Add do
begin
Caption := '编号:';
Align := caRight;
// 这里的行列值和Grid的行列值没有关系,而是将页眉划分成虚拟的表格的行列坐标
Row := 0;
Col := 2;
Font := Grid.Font;
end;

with GridPrinter.PageHeader.Add do
begin
Caption := '日期&[date]';
Align := caRight;
Row := 1;
Col := 2;
Font := Grid.Font;
end;

with GridPrinter.PageHeader.Add do
begin
Caption := '第&[Page]页 共&[Pages]页';
Align := caRight;
Row := 2;
Col := 2;
Font := Grid.Font;
end;

with GridPrinter.PageHeader.Add do
begin
Caption := '建设单位: ' ;
Align := caLeft;
Row := 1;
Col := 0;
Font := Grid.Font;
end;

with GridPrinter.PageHeader.Add do
begin
Caption := '工程名称: ' ;
Align := caLeft;
Row := 2;
Col := 0;
Font := Grid.Font;
end;


EjunGrid下载地址http://www.ejun.cn







...全文
184 点赞 收藏 7
写回复
7 条回复

还没有回复,快来抢沙发~

发动态
发帖子
Delphi
创建于2007-08-02

1461

社区成员

26.2w+

社区内容

Delphi 开发及应用
社区公告
暂无公告