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

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
难道就没友解决的办法吗

...全文
89 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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对象
我=试一试
回复
相关推荐
发帖
非技术区
创建于2007-08-02

800

社区成员

Delphi 非技术区
申请成为版主
帖子事件
创建了帖子
2002-01-19 01:31
社区公告
暂无公告