巨好答的问题之二(如何打印一个dbgrid网格显示出来的所有记录)
准备只把分给一个人,所以请答详细点
用什么控件,主要程序?
问题点数:50、回复次数:16Top
1 楼alwssoan(巧克力)回复于 2001-06-29 11:20:11 得分 0
好问题,提前,我也等结果,呵呵Top
2 楼x7913()回复于 2001-06-29 11:29:51 得分 0
这是找到的另一个朋友的答案
在一窗体中加入quickrep组件,quickrep.dataaet:=table;
再加入几个qrband(视情况而定),将第一个qrband.bandtype:=rbpageheader,做页眉,在其中加入qrtext.caption:='aaa'
将第二个qrband.bandtype:=rbtitle,作报表标题,在其中加入qrtext.caption:='标题';
将第三个qrband.bandtype:=rbcolumnhead,作报表标题栏,即列名,更具需要在其中加入数个qrtext,设置号caption
将第四个qrband.bandtype:=rbdetail,作数据栏,更具需要加入数个qrdbtext,将这几个qrdbtext.dataset:=table.字段名,
现在点击鼠标右键,选择弹出菜单中的perview命令可以预览,
在程序中预览,打印:
procedure button.onclick;
begin
quickrep1.preview;/*预览*/
quickrep1.print;/*打印*/
end
quickrep.dataset设置好了,table.active为true,数据库有记录
但我在quickrep1.preview时什么都没有,只有最上面那一排按钮Top
3 楼Jiao_he(◆〓◆)回复于 2001-06-29 11:31:02 得分 0
用QuickReports报表呗!Top
4 楼x7913()回复于 2001-06-29 11:32:59 得分 0
我最怕csdn这个了
如果哪位真有心帮忙,请好好答
谢谢Top
5 楼x7913()回复于 2001-06-29 11:33:30 得分 0
灌水肯定没分
谢谢Top
6 楼x7913()回复于 2001-06-29 11:36:38 得分 0
我一向雷厉风行,答好我又懂了就马上给分
不超过30分钟,但前提是一定要答好Top
7 楼Crob(Take Everything Easy!)回复于 2001-06-29 12:02:42 得分 25
下面是我打印StringGrid的例子,DBGrid差不多的
uses Printer;
procedure TmForm.BitBtn1Click(Sender: TObject);
var
I, Start, Stop: Integer;
pointX,pointY : Double;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute then
begin
with PrintDialog1 do begin
Start := 1;
Stop := 1;
end;
with Printer do
begin
BeginDoc;
for I := Start to Stop do
begin
//GetDeviceCaps(Handle, 1);
StrintGrid1.PaintTo(Handle, 10, 10);
if I <> Stop then
NewPage;
end;
EndDoc;
end;
end;
end;Top
8 楼m_leaner(和日本鬼子势不两立)回复于 2001-06-29 12:53:35 得分 25
更多信息请看DELPHI帮助TDBGRID的METHOD的PAINTO
procedure TForm1.Button1Click(Sender:TObject);
var
I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute then
begin
{ determine the range the user wants to print }
with PrintDialog1 do
begin
if PrintRange = prAllPages then
begin
Start := MinPage - 1;
Stop := MaxPage - 1;
end
else if PrintRange = prSelection then
begin
Start := PageControl1.ActivePage.PageIndex;
Stop := Start;
end
else { PrintRange = prPageNums }
begin
Start := FromPage - 1;
Stop := ToPage - 1;
end;
end;
{ now, print the pages }
with Printer do
begin
BeginDoc;
for I := Start to Stop do
begin
PageControl1.Pages[I].PaintTo(Handle, 10, 10);
if I <> Stop then
NewPage;
end;
EndDoc;
end;
end;
end;Top
9 楼m_leaner(和日本鬼子势不两立)回复于 2001-06-29 13:00:51 得分 0
还可以DOWN一个LIBEH.PBL他能实现你要的,我的现在由于重新安装机器丢了。下载网址也忘了,不过你可以去www.bruce_zhao.163.net.jdyj.htm看看Top
10 楼zou5655(周围)回复于 2001-06-29 14:15:08 得分 0
用FASTREPORT,它有现成的控件TfrPrintGrid.Top
11 楼cobi(我是小新)回复于 2001-06-29 15:57:31 得分 0
gzTop
12 楼3nt(更浅的蓝)回复于 2001-06-29 17:16:00 得分 0
不是LIBEH.PBL 是ehlib。用devExpress也可。很多地方都能找到。Top
13 楼wolf_cyj(中山之兰)回复于 2001-06-30 00:48:41 得分 0
你自己从DBGrid继承一个类,加入Print方法.
我以前实现过的,代码很简单的.Top
14 楼colacoca(我是一瓶倒过来的可口可乐)回复于 2001-06-30 10:44:47 得分 0
gzTop
15 楼x7913()回复于 2001-07-01 16:35:45 得分 0
m_leaner(m_kk)和Crob(我干嘛这么帅)的我试了好多次,搞不明白
我再试试看Top
16 楼lpf78(lpf)回复于 2001-08-03 17:30:40 得分 0
x7913() 请问问题解决了吗?我和你同病相怜,如有好的解决方案请告诉我email:lpf78@163.com 不胜感激!!!!!!1Top
相关问题
- 简单问题啊!!!如何获取一个DBGrid网格中的一条记录???就是特定记录!!!!!
- QuickRep打印DBGrid多条记录问题?
- 如何使用activereports打印任意的查询结果记录集(要带有网格线)??
- 改变DBGRID网格线的颜色?我要没有记录时也改变网格线的颜色,请问怎样写????
- 如何用Tprint把DBGrid上显示的网格和数据打印出来?谢谢!
- 如何将DBGrid中选中的若干条记录打印?
- 用dbgrid控件,想捕获用键盘方向键在网格内上下移动使不同记录得到焦点的动作?怎么办?
- DBGRID网格中可以使用 “√”?
- 请问一下,如何打印DBGrid中所有的数据记录?
- quickReport中怎么样打印出带网格线的表格?




