天,就这么一个问题就没人回答了吗??!!

hackerning 2002-01-19 01:31:50
主  题:一个问题,也是关于打印的,对与熟悉DELPHI的应该很简单,大给分
作  者:hackerning
所属论坛:Delphi
问题点数:100
回复次数:6
发表时间:2002-1-19 12:52:16


一般对于初学者来说用QREPORT控件实现的打印都是静态的
也就是说预先估计要打印多少不同列就预先多放多少个QRLABEL控件
就好了
但是问题是对于查询出来的结果,有多少列是不定的,这就需要在运行时动态
的生成那么多控件。但是怎么实现呢,请给出代码参考一下。
如果行的通的话绝对给的分都在 100分以上


回复贴子:
回复人: qiubolecn(来自差生市) (2002-1-19 12:56:16) 得0分
问题本身不复杂,但在排版上但不好做

如果你是想对查询结果进行打印的话

建议使用 ehlib里的dbgrideh这个控件,它能打印grid里的内容

或用devexpress里的dxdbgrid

它们在gxg.3322.net有下载
回复人: hackerning(勤学) (2002-1-19 12:58:18) 得0分
我想就用自带的控件就好了,排版可以先不考虑,只要能实现动态生成就好了
可以给段代码吗,绝对给分的
回复人: belief888(信仰) (2002-1-19 13:01:26) 得0分
没用过,我家没PRINTER
回复人: hackerning(勤学) (2002-1-19 13:13:19) 得0分
up

回复人: hackerning(勤学) (2002-1-19 13:15:10) 得0分
不一定要PRINTER啊,只要能够预览可以就行了
回复人: hackerning(勤学) (2002-1-19 13:24:52) 得0分
up
难道就没友解决的办法吗

...全文
118 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
whitehare 2002-01-22
  • 打赏
  • 举报
回复
难道你还没看懂
hackerning 2002-01-22
  • 打赏
  • 举报
回复
算了,开始散分
zswangII 2002-01-20
  • 打赏
  • 举报
回复
//参考
http://www.csdn.net/expert/Topic/433/433591.shtm

// ━━━━┯━━━━━┯━━━━━━━━━┯━━━━━━
//     │  A2  │  A3      │ A4    
//     ├─┬─┬─┼─────┬───┼─┬────
//   a1 │ │ │ │  B4  │ B5 │ │ B7   
// │b1│b2│b3├─┬─┬─┼─┬─┤b6├─┬──
// │ │ │ │c1│c2│c3│c4│c5│ │c6│c7
// ────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┼──
// ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
// ━━━━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━━
whitehare 2002-01-20
  • 打赏
  • 举报
回复
是TQRLable的类数组
godduck007 2002-01-19
  • 打赏
  • 举报
回复
接上:
还有一点,排版时就:
p[i].top:=....
p[i].left:=...
godduck007 2002-01-19
  • 打赏
  • 举报
回复
用数组呀
Var
p:[1..n]array of tQRLABEL;
到时候用时就:
for i:=X to X do
p[i].XXX
.....
hackerning 2002-01-19
  • 打赏
  • 举报
回复
aitem[i,j]:=TQRLabel.create(self)中aitem[]是指针数组吗
whitehare 2002-01-19
  • 打赏
  • 举报
回复
while not pass_temp.Eof do
begin
for j:=0 to cn-1 do
begin
aitem[i,j]:=TQRLabel.create(self);
aitem[i,j].Parent := detailband1;
aitem[i,j].left := alow[j];
aitem[i,j].top:=itop;
if((j=1)and(flag)) then //flag 用来判断开该项目有没有单价和数量 //zhg noted
aitem[i,j].caption:=Formatfloat('0.0',pass_temp.fields[j].AsFloat)
else if(j=3)then
aitem[i,j].caption:=Formatfloat('0.00',pass_temp.fields[j].AsFloat) //---------
else if((j=2)and flag) then //zhg modifyed
aitem[i,j].caption:=Formatfloat('0.000',pass_temp.fields[j].AsFloat) //---------
else
aitem[i,j].caption:=pass_temp.fields[j].value;
end;
itop:=itop+20;
i:=i+1;
pass_temp.Next;
end;
ihihonline 2002-01-19
  • 打赏
  • 举报
回复
PRINTER
我想应该用printer对象
我=试一试

830

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧