起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: yt_zy

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

[复制链接]
发表于 2008-7-9 14:45:17 | 显示全部楼层
为什么没有人回贴?
回复 支持 反对

使用道具 举报

发表于 2008-7-9 14:57:02 | 显示全部楼层
我插一句 lili7912  和 yt_zy  是同一个公司的人吗?
1楼的代码有写 左、中、右附标题 不行吗?
回复 支持 反对

使用道具 举报

发表于 2008-7-9 16:48:14 | 显示全部楼层
不是一个公司的的,1楼的代码写左、中、右写不出来,总是只显示
左右的数据,如果将中放入左的后面,就只显示中右的数据。
    //中

  ASheet.CellTypes[ASheet.Areas[0].Left+2, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left+2, 1];
  lCell.Font.Size := 10;
  lCell.Width :=3;
  TExprCell(lCell).HorzAlign := THorzAlign.haCenter;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(6);
  //左
  dialogs.ShowMessage(inttostr(ASheet.Areas[0].Left));

  ASheet.CellTypes[ASheet.Areas[0].Left, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left, 1];
  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, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Right-3, 1];
  lCell.Font.Size := 10;
  lCell.Width := 3;
  TExprCell(lCell).HorzAlign := THorzAlign.haRight;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(2);
回复 支持 反对

使用道具 举报

发表于 2008-7-9 17:24:12 | 显示全部楼层
不会呀,代码如下
var
  lCell: TSheetCell;
begin
//lstr:='aa';
//  ASheet.RowHeights[0]:=0;
  ASheet.Areas[0].Top:=ASheet.Areas[0].Top-2;
  ASheet.Areas[0].PageHeaderRows := ASheet.Areas[0].PageHeaderRows+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:='''aa''';//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:='''bb''';//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:='''cc''';//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:='''dd''';//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:='''ee''';//MakeExpressionText(4);

end;

效果见附件


楼主,你帖进去测试看看,如果还是不行,请告知一下你的Stduio版本号,我看看是否是版本的问题

1.gif

2.8 KB, 下载次数: 69

回复 支持 反对

使用道具 举报

发表于 2008-7-10 08:39:17 | 显示全部楼层
改成下面的代码就行了,原来不理解lcell.width的含义,是单元格的个数。改成下面的代码就行了。
  //中

  ASheet.CellTypes[ASheet.Areas[0].Left+2, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left+2, 1];
  lCell.Font.Size := 10;
  lCell.Width :=2;
  TExprCell(lCell).HorzAlign := THorzAlign.haCenter;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(6);
  //左
  dialogs.ShowMessage(inttostr(ASheet.Areas[0].Right));

  ASheet.CellTypes[ASheet.Areas[0].Left, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Left, 1];
  lCell.Font.Size := 10;
  lCell.Width := 2;
  TExprCell(lCell).HorzAlign := THorzAlign.haleft;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(1);


  //右
  ASheet.CellTypes[ASheet.Areas[0].Right-2, 1] := TCellType.ctExpression;
  lCell := ASheet.Cells[ASheet.Areas[0].Right-2, 1];
  lCell.Font.Size := 10;
  lCell.Width :=2;
  TExprCell(lCell).HorzAlign := THorzAlign.haRight;
  TExprCell(lCell).Expression.Text:=MakeExpressionText(2);
输出结果

未命名.jpg

14.81 KB, 下载次数: 67

回复 支持 反对

使用道具 举报

发表于 2008-7-10 08:45:11 | 显示全部楼层
ok,那结帖了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-7-10 11:14:53 | 显示全部楼层
结贴。。。这几天太忙,回复不是很及时,对不住了。
特别感谢lili7912同志
回复 支持 反对

使用道具 举报

发表于 2008-7-10 11:20:52 | 显示全部楼层
呵呵,ok
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-18 23:52 , Processed in 0.045072 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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