锐浪报表 Grid++Report 导出其它格式文件

news2024/12/27 12:46:27

锐浪报表 Grid++Report 导出其它格式文件

    Grid++Report控件设计的报表,不仅可以打印,还可以导出8种格式的报表文件。

    在Grid++Report的打印浏览中,有指定导出文件的对话框: 

     但是,软件的设计中,往往需要设计出,直接导出指定文件,或在打印报表的同时也导出指定格式的文件。

相关的参数和方法的调用,详见以下说明: 

    一、导出默认格式报表文件

    1、Grid++Report默认的导出格式,文件名默认后缀名.grd

    2、直接导出默认文件

procedure TForm1.btnSaveAsGRDClick(Sender: TObject);
begin
  if SaveDialog1.Execute() then
    GridppReport1.GenerateDocumentFile( SaveDialog1.FileName );
end;

    3、加载并查看默认文件
    此时,需要通过TGRPrintViewer的,显示打开的文件,TGRPrintViewer可以放在本窗口,也可以设置专用窗口中。如:ViewGRDForm   

procedure TForm1.btnLoadViewGRDClick(Sender: TObject);
begin
  if OpenDialog1.Execute() then
  begin
    ViewGRDForm.FFileName := OpenDialog1.FileName;
    ViewGRDForm.ShowModal();
  end;
end;

    二、导出指定类型文件
    1、导出文件指定类型文件有7种格式,分别为Excel,RTF,PDF,Html,Image,Text,CSV。

    2、软件中,可通过TCombobox控件,指定导出的文件类型:

function TForm1.GetExportType :GRExportType;
begin
  case ComboBox1.ItemIndex of
                0: Result := gretXLS;
                1: Result := gretRTF;
                2: Result := gretPDF;
                3: Result := gretHTM;
                4: Result := gretIMG;
                5: Result := gretTXT;
  else
    Result := gretCSV;
  end;
end;

     3、预定的7种的文件后缀名,获取文件名函数
 

function TForm1.GetExportFileName(sPathFile :String) :String;
var ExtFileName :string;
    FileName :string;
begin
  case GetExportType() of
                gretXLS: ExtFileName := 'xls';    // 扩展名
                gretRTF: ExtFileName := 'rtf';
                gretPDF: ExtFileName := 'pdf';
                gretHTM: ExtFileName := 'htm';
                gretIMG: ExtFileName := 'tif';
                gretTXT: ExtFileName := 'txt';
  else
    ExtFileName := 'csv';
  end;
  Result := ExtractFileDir(Application.ExeName) + '\' + sPathFile + '.' + ExtFileName;
end;

    三、导出文件方式一
    调用ExportDirect方法执行导出任务。
    1、IGridppReport.ExportDirect函数

Function ExportDirect(GRExportType: ExportType; FileName :String;ShowOptionDlg,DoneOpen :Boolean):Boolean;

    2、参数
    GRExportType ExportType 指定导出的文件类型。 
    FileName String 指定导出的完整文件路径与文件名称。 
    ShowOptionDlg boolean 指定是否在导出之前显示选项设置对话框。 
    DoneOpen boolean 指示是否在导出数据之后用关联程序打开导出文件。 

    3、返回值boolean,指示是否成功进行了数据导出。   

    4、调用执行

  GridppReport1.ExportDirect(GetExportType(), WideString(GetExportFileName(True)), ckbShowOptionDlg.Checked, True);


    四、导出文件方式二
    调用Export方法执行导出任务

    1、IGridppReport.Export方法
Function Export(DoneOpen:Boolean):Boolean;

    2、参数
    DoneOpen boolean 指示是否在导出数据之后用关联程序打开导出文件。 

    3、返回值bool,指示数据导出是否成功执行。    4、说明
    在调用Export方法之前一定要调用PrepareExport方法,在其后一定要调用UnprepareExport方法。
 
    5、调用执行

procedure TForm1.Button2Click(Sender: TObject);
var ExportOption :IGRExportOption;
begin
        //通过调用PrepareExport,Export, UnprepareExport这三个方法执行导出任务
        //这三个方法必须按顺序一起使用,PrepareExport返回导出选项对象的接口指针
        //可以设定导出选项对象的属性
   ExportOption := GridppReport1.PrepareExport(GetExportType());

// 此处代码,不使用ExportBegin事件时需要
  { 
  ExportOption.FileName := GetExportFileName(False);
  case GetExportType() of
     gretXLS: begin
                ExportOption.AsE2XLSOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2XLSOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     gretRTF: begin
                ExportOption.AsE2RTFOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2RTFOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
             end;
     gretPDF: begin
              end;
     gretHTM: begin
                ExportOption.AsE2HTMOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2HTMOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     gretIMG: begin
              end;
     gretTXT: begin
                ExportOption.AsE2TXTOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2TXTOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     else begin
                ExportOption.AsE2CSVOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2CSVOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
          end;
  end;
  }
  if ckbShowOptionDlg.Checked then
  begin
     //如果在选项对话框中选择了‘取消’按钮,则中止导出过程,
     //但UnprepareExport方法在中止前一定要被调用
    if Not ExportOption.ShowOptionDlg() then
    begin
      GridppReport1.UnprepareExport();
      Exit;
    end;
  end;
  GridppReport1.Export(True);
  GridppReport1.UnprepareExport();
end;

    五、ExportBegin事件
    ExportDirect和Export方法,执行前必要让TGridppReport控件,有一个ExportBegin事件,初始化数据。
    如果省略ExportBegin事件,可以在调用之前,执行下述代码即可。

procedure TForm1.GridppReport1ExportBegin(Sender: TObject; const pOptionObject: IGRExportOption);
begin
    //ExportBegin 事件在将报表导出之前会触发到,无论是调用 ExportDirect 与 Export 方法,
    //还是从打印预览窗口等地方执行导出,都会触发到 ExportBegin 事件。
    //通常在 ExportBegin 事件中设置导出选项参数,改变默认导出行为

    pOptionObject.AbortOpenFile := true;  //导出后不用关联程序打开导出文件,如导出Excel文件之后不用Excel打开
    pOptionObject.AbortShowOptionDlg := not ckbShowOptionDlg.Checked;  //导出之前不显示导出选项设置对话框

    //指定导出文件的完整路径与文件名称
    pOptionObject.FileName := GetExportFileName(false); //'d:\export\my.dat';

    //根据导出类型设置其特有的选项参数,有关选项参数的具体信息清参考帮助文档。
    //IGRExportOption是导出选项的基类,其它具体导出选项的接口名称都以IGRE2为前缀
    case pOptionObject.ExportType of
    gretXLS:
    begin
            pOptionObject.AsE2XLSOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2XLSOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;

            pOptionObject.AsE2XLSOption.ExportPageHeaderFooter := false;
            pOptionObject.AsE2XLSOption.SameAsPrint := false;
            pOptionObject.AsE2XLSOption.ExportPageBreak := false;
    end;
    gretRTF:
    begin
            pOptionObject.AsE2RTFOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2RTFOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    gretPDF:
    begin
            pOptionObject.AsE2PDFOption.Author := 'My Author';
            pOptionObject.AsE2PDFOption.Subject := 'My Subject';
    end;
    gretHTM:
    begin
            pOptionObject.AsE2HTMOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2HTMOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    gretIMG:
    begin
            pOptionObject.AsE2IMGOption.DPI := 300;
            pOptionObject.AsE2IMGOption.ImageType := greitPNG;
    end;
    gretTXT:
    begin
            pOptionObject.AsE2TXTOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2TXTOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    else  //CSV
    begin
            pOptionObject.AsE2CSVOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2CSVOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    end;
end;

    六、导出文件同时发送Email
    1、此项功能,在windows系统中,必须安装Email发送软件,并在系统中,调用指定该软件。    2、参数设置与调用

procedure TForm1.btnExportMailClick(Sender: TObject);
var ExportOption :IGRExportOption;
begin
    ExportOption := GridppReport1.PrepareExport(GetExportType());

    //指定导出后发送EMail并设定发送EMail的参数
    ExportOption.MailExportFile := true;
    ExportOption.MailTo := 'name@domain.com';
    ExportOption.MailSubject := '报表导出并发送Email';
    ExportOption.MailText := '报表导出并发送Email的相关说明...';

    //导出后不打开文件查看
    GridppReport1.Export(FALSE);

    //最后一定要记得调用 UnprepareExport 释放导出过程中占据的资源
    GridppReport1.UnprepareExport();
end;

    七、GridppReport默认导出文件的对话框

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

黑*头条_第5章_延迟任务精准发布文章(新版)

黑*头条_第5章_延迟任务精准发布文章(新版) 文章目录黑*头条_第5章_延迟任务精准发布文章(新版)1)文章定时发布2)延迟任务概述2.1)什么是延迟任务2.2)技术对比2.2.1)DelayQueue2.2.2)RabbitMQ实现延迟任务2.2.3)redis实现3)redis实现延迟任务4)延迟任务服务实现4.1)搭建heima-l…

༺ཌ༈学编程到底学那种语言呢?༈ད༻

说到底,编程语言只是工具,就像螺丝刀一样。在需要使用圆头螺丝刀的时候,你就不能一意孤行使用一字螺丝刀。你需要根据实际的情况做决定。没有任何一种编程语言能够取代一切,成为终极编程语言。你需要根据当前岗位的要求&#xff0…

分布式数据库中间件Mycat介绍

从Cobar到Mycat,从闭源到开源,作为一个开源的分布式数据库中间件,Mycat已经被众多开源项目使用。本文简要介绍下Mycat的特性、基本架构以及分库分表和读写分离的配置。 1、Mycat基本介绍 Mycat是一个开源的分布式数据库中间件,前…

nodejs+vue044高校学生信息管理系统

大学生信息综合管理系统分三个身份登录,一个学生,一个管理员。学生只能修改密码,而管理员可以修改任何信息。老师可以查看自己的课表和校园活动. 管理员模块主要有老师管理,添加老师,班级管理,班级添加&…

[附源码]Python计算机毕业设计Django文具商城购物系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

Educational Codeforces Round 140

C. Count Binary Strings 大意: 要求满足条件的01串的个数 要求如下 给定一个上三角矩阵,对于矩阵的元素i,j,a[i][j]有一下三个取值: 1:i-j之间只能有一种元素 2:i-j之间只能有两种元素 0: i-j之间无所谓 思路…

(Week 7)动态规划(C++)

目录[NOIP2005 普及组] 采药(C,动态规划)题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示解题思路:最长上升子序列(C,Dilworth,贪心)题目描述输入格式输出格式样例 #1样…

一文盘点Zebec生态的收益模型

随着加密市场逐渐陷入低谷,曾经火热的NFT、GameFi等赛道都陷入了沉寂。投资者目前很难在加密市场中获得可观的收益,而在整体加密市场发展局势不明朗的情况下,行业目前缺乏发展动力。 目前,以流支付为主要定位的Zebec生态&#xff…

Java 基础语法

一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有&a…

Tomcat 9.0 安装及配置教程(win10系统)

一、前言 Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选。 二、安装前准备 1.确保安装过jdk,安装过可跳过。 如果没有安装可以先安装一下win10下JDK 官方中…

品优购首页布局-头部

10. 品优购首页布局 效果图: 项目结构如下: 命名集合: 名称说明快捷导航栏shortcut头部header标志logo购物车shopcar搜索search热点词hotwrods导航nav导航左侧dorpdown 包含 .dd .dt导航右侧navitems 1). shortcut 制作 通栏的盒子 命名为sho…

网络协议与攻击模拟 | APR_TCP | 系统性学习 | 无知的我费曼笔记

文章目录网络协议与攻击模拟-APR协议网络协议与攻击模拟-实施ARP攻击与欺骗实施ARP攻击实施ARP欺骗网络协议与攻击模拟-TCP三次握手网络协议与攻击模拟-APR协议 APR协议的作用 解析IP地址为MAC地址。从而进行二层数据交互 ARP工作流程 ARP请求 ARP响应 APR的报文格式 在W…

vue——将原生事件和属性绑定到组件

再vue官方文档 将原生事件绑定到组件 中有如下代码描述&#xff1a; 1. v-bind“$attrs” 以html原生属性的形式批量绑定父组件传过来的属性到任意位置&#xff0c; 例如&#xff0c;一些ui组件或者原生input标签需要一些属性来完成某些功能&#xff0c;例如 <input typ…

Linux安装Jenkins(Java11最新版)

文章目录♈️查看java版本♉️1.下载♊️2.上传到服务器♋️3.启动♌️4.记住密码♍️5.解锁Jenkins♎️6.修改插件安装地址♏️7.安装插件♐️8.登录♐️9.修改密码注意&#xff0c;这里是需要java环境的&#xff0c;如果没有java环境请参考 Linux安装Java环境 ♈️查看java版…

「集合底层」Vector底层结构及源码剖析

「集合源码」Vector底层结构及源码剖析 文章目录「集合源码」Vector底层结构及源码剖析一、基本介绍二、类继承关系三、Vector特性四、底层源码分析1、四个构造器2. 添加一个元素的过程以及扩容机制五、Vector与ArrayList共同点区别一、基本介绍 Vector 是一个矢量队列&#x…

【开发指南】AR Foundation 扫描

开发平台&#xff1a;Unity 2020 版本以上 编程平台&#xff1a;Visual Studio 2022 面向平台&#xff1a;IOS 设备   一、本文聚焦问题点 使用哪种 API 完成相机权限的获取如何进行画面跟踪对象的捕获。 对深入了解AR的开发者尤为重要。但只是从应用目的上&#xff0c;只需要…

C++PrimerPlus 第八章 函数探幽-8.5 函数模板

目录 8.5 函数模板 8.5.1 重载的模板 8.5.2 模板的局限性 8.5.3 显式具体化 8.5.3.1 第三代具体化&#xff08;ISO/ANSI C标准&#xff09; 8.5.3.2 显式具体化示例 8.5.4 实例化和具体化 8.5.5 编译器选择使用哪个函数版本 8.5.5.1 完全匹配和最佳匹配 8.5.5.2 部分…

计算机毕设Python+Vue学生风采网(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【Python学习记录】numpy数组用法整理

✨ 博客主页&#xff1a;小小马车夫的主页 ✨ 所属专栏&#xff1a;Python学习记录 文章目录前言一、numpy数组创建1、numpy.array创建数组2、从已有数组中创建数组二、numpy创建数组初始化1、numpy.zero2、numpy.ones3、numpy.arange4、numpy.linspace5、numpy.random三、nump…

Mentor-dft 学习笔记 day44-Low-Power Design Test

Low-Power Testing Overview Tessent Scan支持启用低功耗测试的操作。 •在存在孤立cell的情况下插入专用包装cell。 •根据驱动的逻辑和电源域的优先级将专用包装单元分配给电源域。 低功耗设计流程包括以下步骤&#xff1a; 1.在CPF/UPF文件中指定低功耗数据规范。 2.在设计…