![]() |
登录 用户中心() [退出] 后台管理 注册 |
热门搜索: |
您的位置:首页 >> 程序员下载区 >> 程序员下载区 >> 主题: [delphi/c++builder]QuickReport & QRDesign v5.02 (完整源码) |
标题 | [delphi/c++builder]QuickReport & QRDesign v5.02 (完整源码) |
clq |
浏览(6770)
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 发表
编辑
|
Copyright © 2005-2012 CLQ工作室, All Rights Reserved CLQ工作室 版权所有 |