登录 用户中心() [退出] 后台管理 注册
 

热门搜索:
您的位置:首页 >> 程序员下载区 >> 程序员下载区 >> 主题: [delphi/c++builder]QuickReport & QRDesign v5.02 (完整源码)
标题 [delphi/c++builder]QuickReport & QRDesign v5.02 (完整源码)
clq
浏览(6099) 2008-10-06 21:45:03 发表 编辑

关键字:

http://www.ccrun.com/view.asp?id=141

其实一个带源码的 quickreport 就能解决所有问题,只是 D7 自带的是没源码的..
--------------------------------------------------

# 程序名称:QuickReport & QRDesign v5.02 (完整源码)
# 下载浏览:13190 / 20484
# 文件大小:29.3MB
# 更新时间:2008-09-18 02:28:25
# 开发工具:C++Builder, Delphi, BDS 2006, CRS 2007
#  开发者:QuSoft
# 官方网站:http://www.qusoft.com/
# 详细介绍:C++Builder 和 Delphi 自带的报表制作组件QuickReport的升级版,这个版本支持 C++Builder 5~6, C++Builder 2006, C++Builder 2007, Delphi 5~7, Delphi 2006, Delphi 2007。附带 QRDesign

clq
2008-10-6 22:01:05 发表 编辑

附件[暂不开放下载]

http://www.delphifans.com/softview/SoftView_1854.html

Quick.Report.Professional.v4.06.for.Delphi7.Full.Source-SSG.rar

这个小一点。

clq
2008-10-7 11:46:44 发表 编辑

标题:打印机画线问题 (100分)
Cycas (2000-1-25 23:5) 179536
在打印机上怎么输出一条固定宽度的直线,如:1 毫米。
因为 1 毫米的直线在不同 dpi 的打印机以象素表示的
宽度都是不一样的,难道还得根据不同的打印机设置
Printer.Canvas.Pen.Width 吗?

而且有些打印机的水平和垂直分辨率是不一样的,
如 300dpi x 600dpi,那么以一定的 Printer.Canvas.Pen.Width
画出来水平和垂直直线实际宽度是否一样(我没有这样的打印机,
所以没法试),如果不一样,怎么解决这个问题?

最好给出例子。

Crane (2000-1-26 0:57)
在WIN32编程中使用设置"映象"来控制实际打印尺寸.
比如:(VC例程,其->后的方法也有相应的API函数,若有遗文再问)
pDC->SetMapMode(MM_LOMETRIC);//将打印分辨率定为每象素对应0.1mm
pDC->SetMapMode(MM_ANISOTROPIC);//定义坐标系的方向
size=pDC->GetViewportExt();
pDC->SetViewportExt(size.cx,-size.cy);
//以下在delphi中可使用Printer.Canvas 的方法了
pDC->MoveTo(140,140);
pDC->LineTo(240,140);//打印一个10mm的直线
pDC->SetMapMode(MM_TEXT);
不管你的打印机是什么状态都会是10mm,分毫不差.

g622 (2000-1-26 15:40)
同意crane
thtfsyh (2000-1-26 20:12)
g
Cycas (2000-1-28 11:57)
OK 搞定,多谢 Crane。
Cycas (2000-1-28 11:58)
接受答案了.
得分富翁:Crane

clq
2008-10-7 11:47:11 发表 编辑

procedure TFormPrintKQ_Report.Button3Click(Sender: TObject);
begin
showmessage(inttostr(Printer.PageWidth)+','+inttostr(Printer.PageHeight));

Printer.BeginDoc;

Printer.canvas.Brush.Style := bsClear;

Printer.Canvas.Brush.Color := clBlack;
Printer.Canvas.Pen.Width := 10;
Printer.Canvas.FrameRect(rect(10,10,100,200));

Printer.Canvas.Pen.Width := 50;//奇怪,不起作用
Printer.Canvas.FrameRect(rect(50,50,500,1000));

Printer.Canvas.Pen.Width := 100;//奇怪,不起作用//这个是可以的//是 FrameRect 的函数不起作用
Printer.Canvas.LineTo(2000,2000);

Printer.EndDoc;
end;

clq
2008-10-7 12:08:33 发表 编辑

procedure TQRShape.Print(OfsX,OfsY : Integer);
begin
if parentreport.Exporting and IsEnabled then // 3/06/04 bug fix
begin
TQRExportFilter(ParentReport.ExportFilter).acceptgraphic(
qrprinter.XPos(OfsX + self.Size.Left),
qrprinter.YPos(OfsY+ self.size.top ), self );
end;

if ParentReport.FinalPass and IsEnabled then
begin
QRPrinter.Canvas.Brush := Brush;
QRPrinter.Canvas.Pen := Pen;
QRPrinter.Canvas.Pen.Width := round(QRPrinter.Canvas.Pen.Width * QRPrinter.XFactor); //clq add
with QRPrinter do
begin
with Canvas do
begin
case FShape of
qrsRectangle : Rectangle(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top),
XPos(OfsX+Size.Left + Size.Width), YPos(OfsY + Size.Top + Size.Height));
qrsCircle : Ellipse(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top),
XPos(OfsX+Size.Left + Size.Width), YPos(OfsY + Size.Top + Size.Height));
qrsHorLine : begin
MoveTo(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top + Size.Height / 2));
LineTo(XPos(OfsX + Size.Left + Size.Width),YPos(OfsY + Size.Top + Size.Height/2));
end;
qrsVertLine : begin
MoveTo(XPos(OfsX+Size.Left + Size.Width / 2), YPos(OfsY + Size.Top));
LineTo(XPos(OfsX+Size.Left + Size.Width / 2), Ypos(OfsY + Size.Height + Size.Top));
end;
qrsRoundRect : RoundRect(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top),
XPos(OfsX+Size.Left + Size.Width), YPos(OfsY + Size.Top + Size.Height),
Trunc(Width * RoundFactor), Trunc(Width * Roundfactor));
qrsTopAndBottom : begin
MoveTo(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top));
LineTo(Xpos(OfsX + Size.Left + Size.Width), YPos(OfsY + Size.Top));
MoveTo(Xpos(OfsX + Size.Left), YPos(OfsY + Size.Top + Size.Height));
LineTo(Xpos(OfsX + Size.Left + Size.Width), Ypos(OfsY + Size.Top + Size.Height));
end;
qrsRightAndLeft : Begin
MoveTo(XPos(OfsX + Size.Left), YPos(OfsY + Size.Top));
LineTo(Xpos(OfsX + Size.Left), YPos(OfsY + Size.Top + Size.Height));
MoveTo(XPos(OfsX + Size.Left + Size.Width), YPos(OfsY + Size.Top));
LineTo(XPos(OfsX + Size.Left + Size.Width), YPos(OfsY + Size.Top + Size.Height));
end
end
end
end
end
end;

guest
2018-03-19 15:52:24 发表 编辑


guest
2018-03-21 02:52:07 发表 编辑


guest
2018-03-21 04:16:15 发表 编辑


guest
2018-03-21 14:36:05 发表 编辑


guest
2018-03-22 20:42:42 发表 编辑


guest
2018-03-28 07:03:53 发表 编辑



总数:45 页次:1/5 首页 下一页  >>  尾页  


发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:




Copyright © 2005-2012 CLQ工作室, All Rights Reserved

CLQ工作室 版权所有