ehlib支持预览打印功能,可以省去重新制作报表的麻烦,经过一天的努力,基本上解决了这个问题。把解决方法写出来,同行的朋友可以参考,同时为自己做个学习笔记。

    首先,需要放置PrintDBGridEh和PreviewBox两个控件。通过PreviewBox设置纸张的大小和方向。方向通过PreviewBox1.Printer.Orientation属性设置,poLandscape为横向,poPortrait 为纵向。纸张大小尚未研究明白,以后再补充。
    然后,需要设置将内容显示在一页内,将PrintDBGridEh的options的pghFitGridToPageWidth属性设置为true就可以了。
    具体预览代码如下:
    self.yb_DBGridEh2.Visible:=False;
    Self.yb_PreviewBox1.Printer.Orientation:=poLandscape;//纸张方向
    Self.yb_PreviewBox1.Printer.PrinterSetupOwner := self.yb_DBGridEh2;
    self.yb_PrintDBGridEh1.DBGridEh:=self.yb_DBGridEh2;
    self.yb_PrintDBGridEh1.PrintTo(Self.yb_PreviewBox1.Printer);
    self.yb_PreviewBox1.Visible:=True;
    具体打印代码如下:
      Self.yb_PreviewBox1.Printer.Orientation:=poLandscape;
      Self.yb_PreviewBox1.Printer.PrinterSetupOwner := self.yb_DBGridEh2;
      self.yb_PrintDBGridEh1.DBGridEh:=self.yb_DBGridEh2;
      self.yb_PrintDBGridEh1.PrintTo(Self.yb_PreviewBox1.Printer);
      self.yb_PreviewBox1.PrintDialog;

ehlib预览打印的使用的更多相关文章

  1. JavaScript 实现打印,打印预览,打印设置

    WebBrowser是IE内置的浏览器控件,无需用户下载. 一.WebBrowser控件 <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CL ...

  2. ME23N PO 打印预览 打印问题

    ME23N进入PO订单,点message查看订单打印的配置 点message查看订单打印的配置 然后spro查看 选择相应的outputtype,然后双击processing routines 可以看 ...

  3. js 控制DIV 预览打印

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> ...

  4. JS中FireFox新开窗口预览打印处理的方式

    仅提供思路,勿喷如下↓ /** * 打印方法 * @param dom 要被打印的dom元素 * @param parentClassName 该组件的页面根组件class名 * @param pag ...

  5. FastReport合并多份报表为一份预览打印

    效果 比较简单,直接贴代码 //打印第一份报表 procedure TForm1.Button2Click(Sender: TObject); begin frxReport1.LoadFromFil ...

  6. vue实现局部预览打印

    html <div id="subOutputRank-print"> <h1></h1> </div> js doPrint(e) ...

  7. Lodop打印设计、维护、预览、直接打印简单介绍

    四者的区别和联系:(其中PRINT_DESIGN打印设计是提供给开发人员的,另外三个可开放给用户)PRINT_DESIGN打印设计:辅助开发人员设计,图形化拖动插入修改等,设计完成后,生成代码拷贝到程 ...

  8. Vue PDF文件预览vue-pdf

       最近做项目,遇到预览PDF这个功能,在网上找了找,大多推荐的是pdf.js,不过在Vue中还是想偷懒直接npm组件,最后找到了一个还不错的Vue-pdf 组件,GitHub地址:https:// ...

  9. 怎么在MindManager中查看打印预览

    在MindManager2016思维导图中打印导图之前,可以先进行预览,MindManager和其他很多应用程序一样都带有打印预览功能,该功能提供了再次检查的机会,避免打印出错,MindManager ...

随机推荐

  1. SILK 预测模块分析

    SILK是一种新结构的基于噪声整形量化算法的编解码框架.不同于类CELP的AMR,EVRC,G729,Speex等标准. 类CELP的结构都是以码本激励为量化框架的编码器.但是这里并不讨论NSQ结构和 ...

  2. Laravel 的 Homestead 开发环境部署

    ---恢复内容开始--- Laravel 努力在整个PHP开发过程中提供令人愉快的开发体验,当然也包括本地的开发环境. 首先明白以下几个概念 VirtualBox -- Oracle 公司的虚拟机软件 ...

  3. [php] thinkphp基于Http类 下载文件

    http://blog.csdn.net/u010081689/article/details/49360937

  4. Amazon

    刚接到Recruiter电话,说恭喜,feedback都非常好. 心里大石落地,FLAG / UAT终于完成一家. 接下来就要加倍努力冲刺其他公司了. Mark: (入职以后一定要去地里补发一波面经, ...

  5. Docker GitLab镜像部署

    环境说明 系统环境: CentOS Linux release 7.4 docker Version: 18.03.1-ce 运行镜像 docker run --detach \ --hostname ...

  6. 向json中添加新的熟悉或对象 Add new attribute (element) to JSON object using JavaScript

    How do I add new attribute (element) to JSON object using JavaScript? JSON stands for JavaScript Obj ...

  7. mongodb查询数据库中某个字段中的值包含某个字符串的方法

    正则表达式最能解决: 例如: db.getCollection(.*$/}) 这里主要是注意正则表达式要写对,该转义的注意转义,否则报错.

  8. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第二篇:gradle简单实战

    一个bug 一个脚印的叫你们用gradle. 1介于网络上的很多资料都是老的 不适用与现在的新版本gradle 尤其是有些gradle方法改名了老的用不了 2介于网上都是粘贴复制并且零碎我很蛋疼啊,走 ...

  9. [UFLDL] Dimensionality Reduction

    博客内容取材于:http://www.cnblogs.com/tornadomeet/archive/2012/06/24/2560261.html Deep learning:三十五(用NN实现数据 ...

  10. actor 内最好不要阻塞

    1. 在使用 akka cluster singleton 时,我需要知道被创建的 singleton proxy 的 actorRef,通过绝对路径加 actorSelection 方法,应该很容易 ...