还有什么好的方法能用QREPORT实现多种连续纸的纸张的变换的情况

nhlangzi 2004-04-30 11:10:31
QREPORT 报表能否用 TPrinter 类打印出来
如类似  with Printer do begin
   BeginDoc;
   Canvas.TextOut(10,10,'Hello, My Friend!');
   EndDoc;
  end;

主要是原先都用QREPORT做好了很多报表,但都是要用连续纸来打印的,而且是多种规格的,每次都要通过改变默认打印机或改变纸张大小来打印,因此非常麻烦,

后来在WEB上发现一种方法可以改变纸张的大小,但对QREPORT却不支持,只支持TPrinter 类的打印,因此有了“QREPORT 报表能否用 TPrinter 类打印出来”的想法,

能否把QREPORT的东西用以下的方法打印出来

其实还有什么好的方法能用QREPORT实现多种连续纸的纸张的变换的情况

附: 动态调整打印机纸张大小
利用Delphi 的TPrinter 类

  TPrinter 类是Delphi 对Windows 打印处理系统的封装,它能够帮助程序员在开发打印程序时尽可能地减少工作量。在程序中使用TPrinter,只要在单元的Use 子句后面添加Printers 即可。当前打印机的DevMode 结构的句柄可以通过调用Tprinter 类中的GetPrinter 方法来获取。当程序获得DevMode 结构的句柄后,就调用GlobalLock 函数来得到指向该结构的指针,随后可对结构中的某些成员进行修改。下面就举一个例子来说明这一问题:假设当前打印机的默认纸张尺寸是A3 纸,现在要打印长度为114mm、宽度为190mm 的纸张。为了简单起见,我们只在Form1 上放置一个Button1 按钮,增加一个OnClick 事件,在Use 子句后添加Printers。程序的代码如下:

Procedure TForm1.Button1Click(Sender: TObject);
var
 Device : array[0..cchDeviceName -1] of Char;
 Driver : array[0..(MAX_PATH -1)] of Char;
 Port : array[0..32]of Char;
 hDMode : THandle;
 pDMode : PDevMode;
begin
  Printer.GetPrinter(Device,Driver,Port,hDMode);
// 获取打印机DevMode 结构的句柄值,
 存放在hDMode 中
  if hDMode < > 0 then begin
    pDMode := GlobalLock(hDMode);
// 获取指向打印机DevMode 结构的// 指针
    if pDMode < > nil then begin
     pDMode^.dmPaperSize := 256;
// 如果要将当前打印机纸张变为自定义
dmPaperSize 必须设置成256
   pDMode^.dmPaperLength := 1140;
   pDMode^.dmPaperWidth := 1900;
   pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE;
 pDMode^.dmFields :=
  pDMode^.dmFields or DM_PAPERLENGTH;
 pDMode^.dmFields :=
  pDMode^.dmFields or DM_PAPERWIDTH;
   { 以上三条语句是对相应
    的dmFields 成员进行置位。}
   ResetDC(Printer.Handle,pDMode^);
// 设置打印机设备环境句柄的值
   GlobalUnlock(hDMode);
   end;
  end;
{ 下面的代码是为了测试打印机是否
 按190 *114 纸张大小来打印}
  with Printer do begin
   BeginDoc;
   Canvas.TextOut(10,10,'Hello, My Friend!');
   EndDoc;
  end;
end;


...全文
115 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕不确定环境下的多式联运路径优化问题展开研究,提出并实现了基于AFO算法、遗传算法(GA)和粒子群优化算法(PSO)的三种智能优化方法,并借助Matlab平台完成算法编程与仿真。研究构建了考虑时间、成本、转运风险等多重不确定因素的路径优化模型,系统比较了AFO、GA、PSO三种算法在收敛速度、全局寻优能力和稳定性方面的表现,同时引入Matlab自带的全局优化搜索器作为基准对照,深入分析各算法在复杂物流网络中的适用边界与性能差异。研究表明,AFO算法在解决此类组合优化问题时展现出更快的收敛效率和更强的局部规避能力。; 适合人群:具备一定Matlab编程基础与运筹优化知识,从事物流工程、交通运输规划、智能算法开发等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多式联运、综合货运网络中的路径决策支持系统构建;②为不确定性条件下复杂路径规划问题提供智能算法选型依据与技术实现方案;③支持科研人员复现主流优化算法并开展横向性能对比实验,推动算法改进与实际落地。; 阅读建议:建议读者结合提供的Matlab代码逐模块分析算法实现流程,重点理解目标函数设计、约束条件处理及参数敏感性分析部分,可通过调整问题规模与算法参数进行对比实验,进一步拓展至动态路径规划或大规模网络优化等延伸场景。

2,508

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧