起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 315|回复: 17

【结】DATAGRID 打印预览时增加副标题和页尾**

[复制链接]
发表于 2008-7-3 12:12:42 | 显示全部楼层 |阅读模式
procedure TMAINFORM.OnSheetCreated(Sender: TObject; ASheet: TSheet);
var
  lCell: TSheetCell;
begin
//  ASheet.RowHeights[0]:=0;
  ASheet.Areas[0].Top:=ASheet.Areas[0].Top-2;
  ASheet.Areas[0].Bottom:=ASheet.Areas[0].Bottom+1;
  ASheet.Areas[0].PageFooterRows:=ASheet.Areas[0].PageFooterRows+1;
  //正标题
{  ASheet.CellTypes[ASheet.Areas[0].Left, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left, 1];
  ASheet.RowHeights[1]:=30;
  lCell.Font.Size := 14;
  lCell.Width := ASheet.Areas[0].Right;
  TExprCell(lCell).HorzAlign := THorzAlign.haCenter;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(0);

  //副标题
  //左
  ASheet.CellTypes[ASheet.Areas[0].Left, 2] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left, 2];
  lCell.Font.Size := 10;
  lCell.Width := 3;
  TExprCell(lCell).HorzAlign := THorzAlign.haleft;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(1);
  //右
  ASheet.CellTypes[ASheet.Areas[0].Right-3, 2] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Right-3, 2];
  lCell.Font.Size := 10;
  lCell.Width := 3;
  TExprCell(lCell).HorzAlign := THorzAlign.haRight;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(2);

  //页尾1
  //左
  ASheet.CellTypes[ASheet.Areas[0].Left,ASheet.Areas[0].Bottom-1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left,ASheet.Areas[0].Bottom-1];
  lCell.Font.Size := 10;
  lCell.Width := 3;
  TExprCell(lCell).HorzAlign := THorzAlign.haLeft;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(3);
  //右
  ASheet.CellTypes[ASheet.Areas[0].Right-3,ASheet.Areas[0].Bottom-1] := TCellType.ctExpression;
  lCell:=ASheet.Cells[ASheet.Areas[0].Right-3,ASheet.Areas[0].Bottom-1];
  lCell.Font.Size := 10;
  lCell.Width := 3;
  TExprCell(lCell).HorzAlign := THorzAlign.haRight;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(4);
  }
end;

目前只是先增加行,但是这样的预览就不对了。。。可以看下下面的图片。。。

d.jpg

60.79 KB, 下载次数: 142

回复

使用道具 举报

 楼主| 发表于 2008-7-3 12:16:14 | 显示全部楼层
预览前的图片

c.jpg

24.37 KB, 下载次数: 140

回复 支持 反对

使用道具 举报

发表于 2008-7-3 13:13:15 | 显示全部楼层
似乎是区域头没有定义
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-3 16:33:07 | 显示全部楼层
应该怎么定义?如何写代码啊?帮下忙吧,下午比较忙,耽误回复了。。。
回复 支持 反对

使用道具 举报

发表于 2008-7-3 17:31:32 | 显示全部楼层
哦,楼主加一句:
ASheet.Areas[0].PageHeaderRows := ASheet.Areas[0].PageHeaderRows+2;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-4 08:49:12 | 显示全部楼层
上午要开会,我中午测试下再回复,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-7 12:06:44 | 显示全部楼层
我测试了下
procedure TMAINFORM.OnSheetCreated(Sender: TObject; ASheet: TSheet);
var
  lCell: TSheetCell;
begin
   ASheet.Areas[0].Top := ASheet.Areas[0].top-1;
   ASheet.Areas[0].PageHeaderRows:=ASheet.Areas[0].PageHeaderRows+2;
end;
这样预览时,只能显示1条数据(当前数据),无法显示其数据。。。
回复 支持 反对

使用道具 举报

发表于 2008-7-7 12:19:47 | 显示全部楼层
那你检查一下,打印的设置,是否只输出当前记录呢?
回复 支持 反对

使用道具 举报

发表于 2008-7-7 14:28:05 | 显示全部楼层
我作了demo,是可以的,楼主参考一下。

printgrid.rar

1004.59 KB, 下载次数: 51

回复 支持 反对

使用道具 举报

发表于 2008-7-8 10:26:39 | 显示全部楼层
例子程序princtgrid.rar程序导入到本机,测试没有问题,如何写左、中、右附标题,请给一下程序代码。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-19 05:22 , Processed in 0.047243 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表