锐浪报表 Grid++Report PrintPreview 显示模式

     一、Windows 窗体的显示模式

     在Windows中,显示存在作为窗体和对话框要么是有模式的,要么是无模式的。

    “模式”窗体或对话框必须关闭或隐藏,然后您才能继续使用应用程序的其余部分。当我们要显示重要消息的对话框应始终是有模式的。例如 MessageBox 是一个可供您使用的有模式的窗体。

    “无模式”窗体让您在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。 用户在该窗体显示的同时可继续在任何应用程序的其他位置工作。

    作为编程,执行代码是一条一条向下执行的,“模式”窗体或对话框,是严格执行这一规律,查找问题较容易。“无模式”窗体,执行代码可以跨越出的现对话框(或模块),进入另一窗体或下一段代码。因此,无模式窗体的编程难度更大,因为用户访问这些窗体的顺序可能无法预知。不论用户执行什么操作,都必须使该应用程序的状态保持一致。 工具窗口经常以无模式方式显示。

    二、GridppReport.PrintPreview

    GridppReport.PrintPreview方法在Grid++Report提供的缺省打印预览窗口中预览报表。调用此方法后,首先生成报表数据,过程中会触发一系列事件;然后生成打印页面,过程中也会触发一系列事件;最后打开缺省预览窗口并将生成的打页面显示在窗口中。

    PrintPreview(True); “模式”窗体,调用PrintPreview

    PrintPreview(False); “无模”窗体,调用PrintPreview 

锐浪报表 Grid++Report PrintPreview 显示模式_第1张图片

    三、实际运用

    实际编程时,运用无模式,可以跳过(停滞代码)的特点,实现打印目的。

    1、软件中尽可能使用“模式”调用PrintPreview(True);

    2、使用第三方AlphaControls控件,调用PrintPreview时,使用模式会出现窗口停滞,应采用无模式方式回避(跳过)造成停滞的皮肤代码实现打印。

    在软件中,设置一个全局变量 PrintShowModal:=False

    调用时:

  GridppReport1.PrintPreview( PrintShowModal );

    3、通过While循环调用Table数据调用打印模块(打印单面),实现连续打印。

    此时,应采取模式显示打印,如果调用PrintPreview(False),会出现仅读取首个数据,打印都是第一个信息错误。改用PrintPreview(True)实现步骤打印的效果。

     4、实际运用时,最好二者对调,测试那种效果好。

你可能感兴趣的:(AlphaControls,Grid++Report,编程技巧,delphi,windows,数据库)