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

     一、Windows 窗体的显示模式

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

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

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

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

    二、GridppReport.PrintPreview

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

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

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

    三、实际运用

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

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

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

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

    调用时:

  GridppReport1.PrintPreview( PrintShowModal );

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

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

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

要使用 PdfSharp 库将 Grid++Report 生成的报表导出为 PDF,你需要按照以下步骤进行操作: 1. 首先,确保你已经正确地引用了 PdfSharp 库。你可以从 NuGet 上下载并添加 PdfSharp 到你的项目中。 2. 创建一个 Grid++ReportReport 对象,并加载报表模板文件: ```csharp using Gridpp; using PdfSharp.Drawing; using PdfSharp.Pdf; using PdfSharp.Pdf.IO; class Program { static void Main(string[] args) { // 创建报表对象 Report report = new Report(); // 加载报表模板文件 report.Load("template.grf"); // 设置报表数据源(这里假设你已经准备好了数据) report.FetchRecord += Report_FetchRecord; // 生成报表 report.PrintPreview(); // 导出为 PDF ExportToPdf(report, "output.pdf"); } private static void Report_FetchRecord(object sender, FetchRecordEventArgs e) { // 设置数据源内容(省略) } private static void ExportToPdf(Report report, string outputPath) { // 创建 PDF 文档 PdfDocument document = new PdfDocument(); // 遍历报表的每一页 for (int i = 0; i < report.PageCount; i++) { // 创建 PDF 页面 PdfPage page = document.AddPage(); // 获取当前页的绘图上下文 XGraphics gfx = XGraphics.FromPdfPage(page); // 创建一个 PDF 渲染器 GridppToPdfRenderer renderer = new GridppToPdfRenderer(report, i + 1); // 渲染报表页面到 PDF 页面 renderer.Render(gfx); } // 保存 PDF 文件 document.Save(outputPath); } } ``` 在上面的代码中,我们使用了 PdfSharp 库创建了一个 PdfDocument 对象,并通过 GridppToPdfRenderer 类的 Render 方法将 Grid++Report报表页面渲染到 PDF 页面上。最后,我们使用 Save 方法将 PDF 文档保存到指定的路径。 请确保你已经正确地安装并引用了 PdfSharp 库,并根据你的实际需求进行相应的配置和调整。 希望这个示例能帮助到你,如果你有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值