动态报表问题,请大家帮忙,急用!!(30分)

  • 主题发起人 主题发起人 applepie
  • 开始时间 开始时间
A

applepie

Unregistered / Unconfirmed
GUEST, unregistred user!
有数据表table1,拥有若干字段,如:工资编号,姓名,性别,身份证,基本工资,
岗位工资..........应发工资,实发工资。现在在form上设置若干复选框,
用户选择几个那么点击浏览按钮之后就生成几个字段的数据,
请问如何编写?是不是用quickrep组件?
如:用户选择了工资编号,姓名,性别,基本工资,实发工资这几个字段,
生成如下带边框的报表:
----------------------------------------|
|工资 | | | 基本 | 实发 |
|编号 | 姓名 | 性别 | 工资 | 工资 |
|---------------------------------------|
|1 | 张三| | |1000 |
|---------------------------------------|
|2 | 李四 | | | |
|---------------------------------------|
|3 |王五 | | | |
|---------------------------------------|
请问这样子的报表如何用代码来设置?能给我具体写一下么?因为字段和数据是
变化的,不能够直接在quickrep的属性编辑器里提前设置,那么如何用代码来完成?
谢谢大家帮忙!
applepie_1979@hotmail.com
我的qq:104138981
 
可以用DBGRID动态显示数据,然后调用QUICKREPORT进行打印,
procedure Tmainform.button2click(sender:TObject);
var leftv,i:integer; //leftv为报表起始位置
cheader:Tqrlabel;
detailtext:Tqrdbtext;
……
  begin

   leftv:=0;
   for i:=0 to dbgrid1.columns.Count-1do

    begin

     cheader:=TQrlabel.Create(repform);
with repform.cheaderdo

begin

parent:=repform.columnheaderband1;
caption:=dbgrid1.columns.fieldname;
width:=dbgrid1.columns.width;
height:=repform.columnheaderband1.height; left:=leftv+2;
top:=5;
end;
……//在leftv 处画表格竖线
leftv:=dbgrid1.columns.width+leftv;
end;
……//画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和
leftv:=0;
    //显示记录内容
for i:=0 to dbgrid1.columns.Count-1do

begin

detailtext:=TQrdbtext.create(repform);
with repform.detailtextdo

begin

parent:=repform.detailband1;
dataset:=query1;
datafield:=dbgrid1.columns.fieldname;
width:=dbgrid1.columns.width;
height:=repform.detailband1.height;
left:=leftv+2;
top:=5;
end;
……//在leftv 处画表格竖线
leftv:=dbgrid1.columns.width+leftv;
end;
……// 画明晰栏边框。
repform.quickrep1.preview();//报表预览
  end;

 
cnsycb:
我做了一个动态报表,调用QUICKREPORT打印时,总是跳页,如何解决?
实际的过程是:我先用dbgrid动态显示了数据,然后用 QuickRep1.PrinterSetup
设定打印机,再根据QuickRep1.PrinterSetup设定的纸张类型动态显示了数据,接着
调用 QuickRep1.Preview 显示报表内容,可以正确显示,只是打印时跳页。
经查,是Quickrep1.printersetup设定的打印机,在quickrep1.preview的
print setup 中仅可以传来打印机名称,纸张的方向,但是设定的纸张类型....就
传不过来,而且A4纸的长宽与A4连续纸的长宽也不一致,所以仅可正确显示,连续打印
时,会跳页。

 
给我个mail,我明天可以发一份给你。
:)
我刚作完了一个,不过在公司里。
 
请发一个给我吧。
tree0905@sohu.com
 
装一个fastreport 246,这种就是小儿科啦!
 
用Ehlib,DBGrid里显示什么就打印什么,
你要做的就是将Table里的字段选出来就可以。
 
能不能给我发一个,谢谢lyqu@sohu.com
 
在delphi6.0中,quickrep中动态获取每一列,如何在每一列中实现自动折行?
请高手帮助!
 
delphi6中,qrlabel可以自动折行的,有一个参数autostretch设为true,autosize设为false就行了。
如果实在不行,可以用qrmemo控件来代替。
 
能不能给我发一个,谢谢lhappyboyjia@163.com
 
to:李逍遥_神仙居
要FR如何定制动态报表,请指教。字段的个数不同,字段不同,字段标题不同等。
如何设置。在此谢过!
ColdewShadow@163.com
 
我遇到了一个麻烦的问题,由于我网格用的不是DBGRID所以FASTREPORT不能用,
因为它只支持DBGRID。
是因为DBGRID不能排序,如果可以解决BDGRID排序的问题,我送分。
 
dbgrid不能排序,那么你会排序吗?你就不能排好序再交给DBGRID吗?
 
关注,
我比较关心用FAST REPORT做动态报表!!!
中秋快乐!
 
容易用fastreport 246
在http://www.playicq.com/有下载,还有中文开发指南
 
排好序再交给DBGRID固然可以,但是DBGRID可以做脚标吗?
我好象没有看见怎么做啊
我用DEVGRID做很做排序、做脚标都很方便
遇到的问题就是动态的报表
我已经手工制作一个动态报表的程序
但是我还没有解决好脚标的打印问题
可以的话,我们大家讨论讨论
 
使用REPORTEXPERT,
http://www.smartparter.com/download/ReportExpert20.zip
 
后退
顶部