New Page 1

总体介绍 - 产品介绍

概述

Grid++Report是一款C/S与B/S集成报表工具，功能全面易学易用。C/S开发适用于VB.NET,C#,VB,VC,Delphi,BCB,VFP,易语言等。B/S开发适用于ASP.NET,ASP,PHP,JSP等，支持所有WEB服务器。开发C/S报表与B/S报表共享相同的开发知识与设计资源。提供独有的报表查询显示功能，让报表查询显示、打印、打印预览及数据导出等功能集成一体化实现。轻松实现通用报表、表格报表、动态报表、多层表头、票据与发票套打、交叉表、表中表及各种特殊报表等。提供详尽帮助文档与各种编程平台下的丰富例子，安装中包括可直接运行例子程序，安装后即刻体验此报表工具。包括简体中文版、繁体中文版与英文版。经过数年的发展，已经被多家有影响力的通用软件厂商采用，其用户遍布各行各业，已经成为用户受众面最广的国产报表开发工具。

特点

  • 支持C/S报表与B/S报表开发，支持众多开发工具与开发语言，C/S开发：VB.NET、C#、VB、VC、Delphi等，B/S开发：ASP.NET、ASP、PHP、JSP等，支持所有WEB服务器。
  • 语言界面集成支持多国语言，同一程序支持多语言，可以实时切换界面语言。
  • 功能强大，稳定高效：实现普通格式报表、表格报表、多层表头、票据套打、交叉表等各种报表非常简便；报表完全可编程定义，适合开发通用软件中的动态报表。
  • 独有的报表查询显示功能：提供报表查询与输出的集成一次性实现，保证数据不同展现方式的一致性与完整性。
  • 报表数据来源丰富：支持绑定与非绑定，一切数据库数据与其它数据都可以作为报表数据源；既可以设定数据源连接串与查询SQL语句绑定报表数据(报表数据拉模式)，也可以将应用程序中访问到的数据提供给报表(报表数据推模式)。
  • 提供图表功能，包括：饼图、叠加饼图、柱状图，连线图、散列点图等。
  • 报表数据导出格式丰富，格式包括：Excel、RTF(Word)、PDF、图像、HTML、文本，CSV 等。
  • 支持所有常规条形码，条形码打印精度高易读取。
  • 提供脚本编程功能，直接在报表模板中自定义报表行为，采用通用的VBScript与JScript脚本引擎。
  • 特有的分组单元格合并功能，轻松实现常见的中国式报表分组在列中展现并垂直居中要求。
  • 全中文界面，针对中国式报表进行了很多专门实现，如：表格报表、财务金额线、大写金额、发票圈叉图标、负数红字、多层表头等。很多在国外报表工具中很难实现的功能在本产品中可以轻易实现。
  • 提供丰富交互事件，轻松实现报表行为自定义、穿透(透视)查询和报表交互。
  • 重新发布简单：C/S报表只需分发两个DLL文件；B/S报表只要部署报表网页，WEB服务端全部采用开放技术，不需进行专门配置。
  • 易学易用：完全可视化设计，完善的复制/剪切/粘贴(Copy/Cut/Paste)和恢复重做(Undo/Redo)功能，专业的拖放操作与即时编辑功能。
  • 编写了完整详尽的帮助文档。提供了丰富例程，C/S报表包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文编程易语言，B/S报表包括ASP.NET,ASP,PHP,JSP。

使用 Grid++Report 的常用方式

  • 作为整个报表系统的整体解决方案的实现工具。利用 Grid++Report 的屏幕查询显示功能将报表在屏幕上显示出来，利用 Grid++Report 的打印与打印预览功能实现打印与打印预览。实现查询、打印与打印预览的统一实现，减少重复工作，并且能够保持数据一致性。
  • 只使用 Grid++Report 的打印与打印预览功能，象其它报表构件一样使用，实现报表的分析与打印输出。
  • 只利用 Grid++Report 的屏幕查询显示功能，Grid++Report 就像是一个具有超强数据展现功能的数据网格(DataGrid)控件, Grid++Report 可以对数据进行分组、统计、分析、显示等功能，通过对用户交互事件的处理达到与用户的互动。
  • 用 Grid++Report 进行票据的套打，Grid++Report 对套打进行了专门的实现，使得套打位置的对齐特别便捷。
  • 利用 Grid++Report 的数据导出功能，将应用程序中的数据导出到 Excel、PDF、html、Text、CSV、图像等格式文件。


Lisence

最终用户许可协议 - 产品介绍

用户许可协议

重要须知 — 请认真阅读：本《最终用户许可协议》（以下称《协议》）是您（个人或单一实体）与广州锐浪软件技术有限公司之间有关广州锐浪软件技术有限公司软件产品的法律协议。本“软件产品”包括计算机软件，并可能包括相关媒体、印刷材料，和“联机”或电子文档（“软件产品”）。本“软件产品”还包括对广州锐浪软件技术有限公司提供给您的原“软件产品”的任何更新和补充资料。任何与本“软件产品”一同提供给您的并与单独一份最终用户许可证相关的软件产品是根据那份许可协议中的条款而授予您。您一旦安装、复制、下载、访问或以其它方式使用“软件产品”，即表示您同意接受本《协议》各项条款的约束。如您不同意本《协议》中的条款，请不要安装或使用“软件产品”。

一、下载、试用与购买
本软件可以无限期试用，用户在购买前应充分试用以便了解本软件，本软件一旦购买之后概不退款。从网站www.rubylong.cn下载的本软件可以试用，例子与帮助都在安装目录下，试用时除了打印页面上有标志文字(只屏幕显示不打印)，没有任何功能与时间期限限制。用户购买后，按照注册要求可以将软件运行中的试用标志取消掉。

二、权利和限制的说明
1、对反向工程 (Reverse Engineering)、反向编译 (Decompilation)、反汇编 (Disassembly) 的限制： 您不得对本软件进行反向工程、反向编译或反汇编，但尽管有这项限制，如适用法律明示允许上述活动，则不在此限。
2、对竞争性产品的限制：您不能将本软件与对本软件形成竞争的任何通用报表开发软件一起使用、分发或集成；您不能使用本软件开发组件产品或组件集合，并且将其发布；也不能使用本软件创建对本软件构成竞争的产品。
3、商标：本《协议》不授予您有关任何广州锐浪软件技术有限公司商标或服务商标的任何权利。
4、出租与转让：不得出租、租赁或出借本“软件产品”，本“软件产品”不允许任何形式的转让。
5、支持服务：广州锐浪软件技术有限公司可能为您提供与“软件产品”有关的支持服务（“支持服务”）。支持服务的使用受用户手册、“联机”文档和/或其它广州锐浪软件技术有限公司提供的材料中所述的各项政策和计划的制约。提供给您作为支持服务的一部分的任何附加软件代码应被视为本“软件产品”的一部分，并须符合本《协议》中的各项条款和条件。至于您提供给广州锐浪软件技术有限公司作为支持服务的一部分的技术信息，广州锐浪软件技术有限公司可将其用于商业用途，包括产品支持和开发。广州锐浪软件技术有限公司在使用这些技术信息时不会以个人形式提及您。
6、本“软件产品”受著作权法及国际条约款和其它知识产权法及条约的保护，本“软件产品”只许可使用，而不出售。
7、终止：如您未遵守本《协议》的各项条款和条件，在不损害其它权利的情况下，广州锐浪软件技术有限公司可终止本《协议》。

三、升级版本
用户可以免费升级到其购买版本对应的更新小版本(如购买版本为5.0，可升级到5.2、5.5等)。如果 Grid++Report 有新的大版本推出，用户如需升级到新版本，在三个月内补差价进行升级，否则按升级价格进行升级。如果用户不升级到新版本，其老版本程序可以一直使用。

四、著作权
本“软件产品”（包括但不限于本“软件产品”中所含的任何图象、照片、动画、录像、录音、音乐、文字和附加程序）、随附的印刷材料、及本“软件产品”的任何副本的产权和著作权，均由广州锐浪软件技术有限公司拥有。本“软件产品”受著作权法及国际条约条款保护。

五、产品分发限制
用户开发出来的产品或程序模块只能用在您的项目中，不能单独以 OCX、DLL 及其它的具有组件(构件)性质的产品的形式进行销售，转让、租赁、借用的方式提供给其他的公司或个人使用。您如果违反本约定，应承担赔偿责任，赔偿额为您所购买软件的10倍金额，或者是违约所得额或者对方的损失额，以三者中的较高者为准。

六、损害不负责赔偿责任
在相关法律所允许的最大范围内，广州锐浪软件技术有限公司或其供应商因使用或不能使用本软件产品所发生的损害(包括，但不限于营业利益的损失，营业中断，商业信息遗失，数据或代码损坏，程序运行出错)不负责赔偿责任，即使是广州锐浪软件技术有限公司事先被告知该损害发生的可能性。不论任何情况，广州锐浪软件技术有限公司就任何条款应负的责任总额，以您就该"软件产品"所实际已支付的价款为限。

七、其它
用户购买本软件须与广州锐浪软件技术有限公司签订合同，合同中的条款优于本协议，合同中未涉事项以本协议为准。本《协议》受中华人民共和国法律管辖。

如果您对本《协议》有什么问题，或您有事想同广州锐浪软件技术有限公司联系，请与广州锐浪软件技术有限公司联系。
通讯地址：广州市中山大道中35号3座14楼
邮政编码：510660
电 话：(020)82520837（服务热线）
网 站：http://www.rubylong.cn
电子邮件：sales@rubylong.cn（销售） support@rubylong.cn（技术支持）


New Page 1

版本介绍 - 产品介绍

概述

Grid++Report报表开发工具分为报表组件与报表插件这两个不同授权方式。报表组件是用来开发桌面软件的报表系统，也就是通常所说C/S报表开发。报表插件是进行WEB软件的报表开发，也就是通常所说的B/S报表开发。C/S开发适用于VB.NET, C#, VB, VC, Delphi, C++Builder, VFP, 易语言等。B/S开发适用于ASP.NET, ASP, PHP, JSP等，支持所有WEB服务器，如IIS、Tomcat、WebLogic、Websphere等。开发C/S报表与B/S报表共享相同的开发知识与设计资源。

报表组件版本划分

我们将授权使用的范围划分为单机开发版与企业开发版。单机开发版只允许在一台机器上使用 Grid++Report 进行开发，企业版可以在一个局域网范围内的所有电脑上开发。用任何一个版本开发的应用程序分发时免费，即应用程序开发者可以包括 Grid++Report 的发布文件无限免费发布其软件；两个版本的功能都是完全一样的。

版本 | 特点
单机开发专业版 | 在同一时间只允许在一台机器上开发使用，开发出来的软件可以无限分发。
企业开发专业版 | 可以在一个局域网范围内的所有机器上开发使用，开发出来的软件可以无限分发。

报表插件版本

报表插件分两种注册方式：按 WEB 服务器注册与无限分发版注册。两种注册方式客户端无需任何注册，客户端数量也没任何限制。

版本 | 特点
按服务器注册 | 每台要部署报表插件的WEB服务器需要购买注册许可。根据服务器域名(DNS)或IP地址生成注册号。报表插件开发无需授权，购买后终身免费升级。
无限分发版注册 | 在设计报表模板时需要注册，部署服务器数量不限。产品小版本升级免费，购买后可以按升级价格购买升级到新的大版本。

有关产品版本的最新信息请参考：http://www.rubylong.cn/grprice.htm

关于免费使用Grid++Report

从锐浪软件网站下载的软件可以免费使用，除了显示试用标志外，没有任何功能限制与使用期限限制。试用标志只在屏幕上显示，不会打印输出。

Grid++Report 这样的试用方式是希望有更多的软件开发者使用 Grid++Report，希望把使用国外报表工具与其它免费报表工具的开发者吸引到使用 Grid++Report 的行列中。用 Grid++Report 开发中国式报表具有不可比拟的优势，欢迎广大软件开发者使用优秀国产报表开发工具。为了 Grid++Report 的持续发展，我们不能将试用标志完全取消，请大家理解，同时也希望有条件的用户注册购买。

只要能接受 Grid++Report 的试用标志输出方式，任何开发者都可以免费使用它。我们认为以下情况更适合免费使用：

  1. 学习报表开发。
  2. 大学生毕业设计。
  3. 开发企事业单位内部软件系统。
  4. 开发免费软件。
  5. 尚未实现收益的商业软件与共享软件。

更多有关免费使用的信息请参考：http://www.rubylong.cn/doc/about_trialflag.htm

参考

购买Grid++Report


New Page 1

注册购买 - 产品介绍

关于试用 Grid++Report 的说明：

从网站: http://www.rubylong.cn 下载的 Grid++Report 就可以试用，例子都在安装目录下，试用时除了有试用标志显示，没有任何功能与时间期限限制。我们并没有制作专门的试用版程序，购买用户与试用用户是同一个程序安装包，购买后按照注册说明进行处理就可以去掉试用标志。

Grid++Report快速入门指导请参考: 帮助的“产品介绍->快速入门指导”部分 或 http://www.rubylong.cn/doc/get_starting.htm 。

购买 Grid++Report：

购买本产品的有关信息请访问我们的网站: http://www.rubylong.cn 或按下面的联系方式与我们联系。购买本产品的用户会得到以下方面的便利：

  1. 更好更及时的技术支持服务：对于购买用户，在技术支持的优先级别上更高，提出的问题将优先得到解决。
  2. 对购买产品的用户提供免费 QQ 技术支持。
  3. 对购买产品的用户提供免费的电话与Email技术支持。
  4. 对于购买产品的用户提出的合理需求将考虑尽力实现。
  5. 在产品界面上不会显示任何标志性的图标与文字，让你的产品与项目更完美。
  6. 为购买产品的用户提供报表解决方案方面的咨询。

购买产品联系方式：

销售热线：020-82520837
销售Email：sales@rubylong.cn
销售QQ： 641243789 1067004956
销售MSN：sales@rubylong.cn

参考

购买注册版本介绍


New Page 1

关于技术支持 - 产品介绍

关于技术支持

如果你在使用过程中遇到疑问与困难，我们建议通过以下几种方式自己解决问题：

  1. 认真查看例子，看是否有类似的例子可以帮助解决问题。
  2. 阅读帮助中的相关部分，认真理解相关说明。
  3. 阅读帮助文档中常见问题解答(FAQ)。
  4. 上我们的网站论坛(http://www.rubylong.cn/bbs/)，搜索前面是否有人提出类似的问题，如果没有你也可以在论坛中提出你的问题。
  5. 给我们的技术支持来EMail,如果在论坛中适合提出你的问题,我们建议在论坛中提出问题,因为除了我们会为你提供解答之外,说不定还有热心的程序员朋友会解答你的问题,另外在论坛中你提出的问题为大家所共享,这也是我们期望的。

为锐浪技术支持提供测试数据

请把相关代码及问题说明发到email：support@rubylong.cn，技术支持会尽快解答你的问题，提供必要的测试文件与清晰的问题描述有利于问题的准确解答。以下方式可以把报表的模板与当前数据保存下来：

非交叉表提供测试数据：
在打印预览界面中，将 ctrl+shift 键同时按下，并用鼠标双击打印页面，Grid++Report将当前报表数据以XML形式保存到“d:\gridreport.txt”，同时将报表模板保存到“d:\gridreport.grf”。请将文件这两个文件发送给锐浪软件(support@rubylong.cn)，以便具体测试分析问题。

交叉表提供测试数据:
1、首先备份原交叉报表模板文件，打开报表模板，取消交叉表定义，即设置明细网格的“交叉表”属性为“否”
2、在打印预览界面中，将 ctrl+shift 键同时按下，并用鼠标双击打印页面，Grid++将当前报表数据以XML形式保存到“d:\gridreport.txt”，同时将报表模板保存到“d:\gridreport.grf”。
3、请将上两个文件与原交叉报表模板共 3 个文件发送给锐浪软件(support@rubylong.cn)，以便具体测试分析问题。

网站：

http://www.rubylong.cn

电子邮件：

support@rubylong.cn


Lisence

软件安装 - 产品介绍

软件要求：

开发时：Grid++Report 可以在任何支持 COM 的开发平台上使用，主要包括：Delphi、 C++Builder、Visual Basic、Visual C++、Visual Basic.net、C#与E中文编程语言等。

发布时：支持所有微软 Windows 系列操作系统，从最早的 Windows95 到最新推出的 Windows Vista。Windows95 需要安装微软 Internet Explorer 5.0或以上版本。

硬件要求：

Grid++Report 对硬件没有任何特别要求，只要硬件满足开发平台的要求就可以顺利地使用 Grid++Report 进行开发。

安装 Grid++Report

运行 Grid++Report 的安装程序，按照提示一步步完成安装过程，安装完成之后，Grid++Report 作为一个 COM 组件已经注册到 Windows 操作系统注册表中。

下一步就是按照各种开发平台使用 COM 组件的方法准备使用 Grid++Report。在“几种开发平台中使用”一节中有几种常用开发平台准备使用 Grid++Report 的专门说明。

在安装目录下有各种编程语言的大量例子，建议大家参考学习。


Lisence

关于帮助文档 - 产品介绍

Grid++Report的帮助文档主要包括这几部分：产品介绍、设计报表、报表组件(C/S报表)、报表插件(WEB报表)、编程参考等。涉及了用Grid++Report进行报表开发的方方面面。

产品介绍部分

对产品的基本情况进行介绍，说明了产品的运行原理，以及获取更多技术支持等方面的信息。

设计报表部分

介绍了Grid++Report的报表设计器程序的用法，阐述各种报表的设计过程。无论是WEB报表开发，还是桌面报表开发，都首先要用报表设计器程序设计报表模板。

开发指南部分

介绍通用于C/S报表开发与B/S报表开发的有关报表编程开发相关的知识。C/S开发与B/S开发共用相同的编程接口，如果实现相同的功能，各种编程语言除了语法书写上的差别，其程序代码都是类似的。

报表组件(C/S报表)部分

介绍用Grid++Report开发C/S报表的方方面面。

报表插件(WEB报表)部分

介绍用Grid++Report开发B/S报表的方方面面。

编程参考部分

是Grid++Report内部编程接口的帮助，所有的编程接口帮助都包含在这里，每个属性与方法都有详细的说明。

当在查阅例子程序时，如不明白与报表相关代码的意义，可以在此部分帮助中查看相关接口。在帮助的索引中输入关键词快速定位到对应的帮助主题。

如果要用程序定义报表模板，建议看明白其中的编程组件对象模型图，借其理解整个报表的定义结构模型，并查阅对应接口的编程参考。


Lisence

快速入门指导 - 产品介绍

指导流程图

Grid++Report非常易学易用，下面我们给出一个指导性的学习流程，按照这个流程可以很快上手使用Grid++Report进行报表开发。

下载安装 Grid++Report

下载地址: http://www.rubylong.cn/download.htm

从这里下载最新版本Grid++Report。下载完成后解压缩下载文件，然后运行解压的文件即可启动安装程序，逐步执行即可完成安装。

运行与查看例子

Grid++Report的相关例子都在安装目录下，通过查看与运行例子,可以直观了解与体验Grid++Report的功能。这里假设Grid++Report安装在“C:\Grid++Report 5.0”下，下面分别对各部分例子进行说明。

  1. 可直接运行例子应用程序：位于“C:\Grid++Report 5.0\Samples\Application”目录下，执行各个应用程序可以直接体验Grid++Report的功能。
  2. 例子报表模板：位于“C:\Grid++Report 5.0\Samples\Reports”目录下，是各种典型格式的报表模板。双击各个文件会用Grid++Report 的报表设计器程序打开，进入报表设计器的“预览视图”与“查询视图”可以查看报表的运行效果。
  3. C/S报表组件例子程序：位于“C:\Grid++Report 5.0\Samples\%编程语言%”目录下，这里是各种编程语言下应用Grid++Report进行C/S报表开发的例子源程序。在打开例子程序编译运行之前，很多编程语言需要进行相应的配置处理，请看下面的“C/S报表开发配置开发环境”部分。
  4. B/S报表插件例子程序：位于“C:\Grid++Report 5.0\WebSamples\%编程语言%”目录下，这里是各种编程语言下应用Grid++Report进行WEB报表开发的例子程序。如何运行与查看这些例子，请看帮助中“报表插件(WEB报表)->WEB报表例子”的具体说明。

设计报表模板

在对Grid++Report有所了解后，就可以开始进行报表模板设计。无论是C/S报表开发，还是B/S报表开发，都需要设计报表模板。两种报表开发共享一样的报表模板设计方法，报表模板对两种报表开发也是通用的。启动Grid++Report报表设计器程序开始设计报表模板。帮助中“设计报表-〉设计第一个报表演练”中描述了设计一个报表模板的具体步骤，建议照此描述学习设计一个报表模板。

C/S报表开发配置开发环境

帮助中“报表组件(C/S报表)-〉开始使用-〉在各种开发平台下使用”中描述了在各种编程语言下使用Grid++Report需要进行的准备工作。

C/S报表开发在程序中运行报表

可以参考与模仿对应编程语言的例子程序，在程序中加入用Grid++Report实现的报表与打印功能。“1.Tutorial”这个例子是最简单的，开始可以模仿这个例子制作一个最简单的报表程序。

B/S报表开发实现数据服务网页

数据服务网页负责向WEB报表提供报表数据，这也是WEB报表能够运行的前提条件之一。建议看懂对应编程语言的WEB报表例子，并复用例子中的通用代码。一般报表的数据服务网页程序非常简单，就是提供一个查询SQL语句，并调用一个产生报表数据包的函数。

B/S报表开发在网页中显示报表

首先需要在网页中加入报表显示插件，报表显示插件实现在网页浏览器中展现报表。通过报表显示插件的属性指定关联的报表模板文件与报表数据服务网页，在浏览器加载有报表插件的网页时，报表就会在网页中显示出来。例子中提供了“CreateControl.js”这个通用的js程序用来在网页中加入插件并设置其相关属性，强烈建议采用这样的方式。

“01.ViewReport\PrintViewReport.htm”与“01.ViewReport\DisplayViewReport.htm”这两个例子网页是一个最简单的范例，分别以打印预览与查询显示方式展现报表。

更多说明

Grid++Report具有强大的功能，并具有非常灵活的可编程性。在初步了解Grid++Report开发报表的知识后，建议多看我们的帮助文档与例子程序，以便更好的发挥其功能。当需要用程序代码动态定义与控制报表运行行为，请参考帮助中“编程参考”部分获取编程接口方面的帮助。


New Page 1

产品组成部分 - 产品概念与原理

产品组成部分概述

Grid++Report 为报表开发者提供四个外层构件，报表开发人员通过对这四个构件的使用为最终用户提供完善的报表系统。报表主对象是不可视的，其它三个构件都是可视的。以下是对四个构件对象的简要叙述。

报表主对象（GridppReport）

一个不可视的组件对象，定义报表的模板数据，在生成报表时存贮报表记录数据，对数据进行加工处理。生成打印页面，输出打印页面到打印机。报表主对象是整个产品中最基础的构成部分，通过报表主对象可以访问报表中的各个子对象。

查询显示器（GRDisplayViewer）

一个 ActiveX Control。在使用时关联一个报表主对象。开始运行时向报表主对象发出生成数据请求，然后本构件显示报表主对象生成的数据，本对象为最终用户提供了完善的查看数据的操作。报表开发者通过对本对象交互事件的响应，可以为报表最终用户提供可交互的报表查询功能。例如通过对汇总报表的明细网格内容格的双击事件的响应，打开对应的明细报表，达到从汇总报表到明细报表的穿透查询。通过该控件实现报表查询显示功能也是 Grid++Report 独有与独创的。

打印查看器（GRPrintViewer）

一个 ActiveX Control。在使用时关联一个报表主对象。开始运行时向报表主对象发出生成数据请求，并生成打印页面数据，然后本构件显示生成的打印页面，并且提供其它相应的页面操作与打印操作。报表开发人员可以通过提供外部操作界面来执行构件接口的方法与属性，为最终用户提供报表打印预览界面。虽然 Grid++Report 在内部提供了报表打印预览窗口，但使用本控件开发者可以实现自己个性化的打印预览窗口。

报表设计器（GRDesigner）

一个 ActiveX Control。在使用时关联一个报表主对象。由三个窗口组成：其一是报表布局窗口，主要可以在其中设置报表显示元素的大小、位置、显示顺序等。其二是属性编辑窗口，可以在其中查看与修改选中对象的属性值。其三是对象浏览窗口，显示出所有报表元素对象，可以在此窗口中对报表元素进行选中操作。构件接口提供执行各种设计任务的动作方法，报表开发人员通过提供外部操作界面执行动作方法，为最终用户提供运行时的可视化自定义报表设计器。


New Page 1

报表模板 - 产品概念与原理

报表模板

报表模板就是指报表的样式定义信息，报表在运行时根据报表模板与报表数据综合加工产生出报表。报表模板通常用报表设计器进行设计，并保存为磁盘文件。报表模板也可以完全用程序代码定义出来。

报表模板文件

报表模板文件就是保存报表定义信息的文件，文件的扩展名缺省为 .grf，在 Windows 资源管理器中双击扩展名为 .grf 的文件可以启动 Grid++Report 的设计器应用程序并打开该模板文件。

在设计时，设计器的设计结果要永久保存，必须存储到文件中，此种类型文件称为 Grid++Report 报表模板文件。在下一次进入设计器后可以打开以前保存的模板文件。

在运行时，一个报表主对象一般是从报表模板文件载入报表的定义，然后进行报表的生成处理。

报表模板存储

报表模板通常磁盘文件，但也可以保存为其它形式，保存在数据库中，或其它存储形式中。


Concept

报表运行过程 - 产品概念与原理

Grid++Report的生成过程：

报表模板 + 记录数据 + 报表引擎 + 事件响应 = 输出（屏幕显示，打印与打印预览，导出格式文件）+ 用户交互

  1. 首先定义报表模板。一般将报表设计器设计的模板文件载入到报表主对象中，也可以通过编程的方式定义报表模板。

  2. 开始生成报表，响应 FetchRecord 事件向报表中填充明细记录。

  3. Grid++Report 报表引擎对填充的记录进行分析加工，如对记录进行分组、统计数据等。

  4. 如果是在查询显示器中显示报表，加工处理的数据显示在查询显示器中，用户可以对显示的数据进行操作。

  5. 如果是打印生成，Grid++Report 根据页面设置信息将加工处理的数据生成一页页的打印页面数据，同时生成与页面相关的数据，如当前页号，总页数。

  6. 接第5，如果是打印预览，生成的打印页面显示在打印查看器中。

  7. 接第5，如果是输出到打印机进行打印，生成的打印页面被送到打印机进行打印。


Lisence

报表节 - 产品概念与原理

报表节概述

Grid++Report 的显示由各种类型的节组成，每个节中包含一组部件框或单元格，部件框在生成时根据内容输出显示。Grid++Report 的报表节可以分成两大类：一是报表主对象直接拥有的报表节，包括报表头、报表尾、页眉、页脚；二是属于明细网格的报表节，包括标题行、内容行、分组头、分组尾。

（图）各种节在设计器中的示例

各种类型的报表节的简要说明

报表头

报表头在打印生成时，如果不选择每页重复输出，则只在报表的开始生成时显示一次；在屏幕查询显示时，显示在明细网格之上。一个报表可以定义多个报表头，在一般情况下我们只需定义一个报表头。在报表头中一般定义报表的标题，报表标识信息，徽标图像及其它只需在报表开始时显示一次的信息。

报表尾

报表尾在打印生成时，如果不选择每页重复输出，则只在报表的最后输出一次；在屏幕查询显示时，显示在明细网格之下。一个报表可以定义多个报表尾，在一般情况下我们只需定义一个报表尾。在报表尾中一般定义报表的统计信息及其它只需在报表结束时显示一次的信息。

页眉

页眉在打印生成时，输出在每页的上边距之上；在屏幕查询显示时，页眉被忽略掉，即屏幕查询显示不使用页眉。一个报表只能定义一个页眉。在页眉中一般定义页号，总页数，文档名称，打印时间及其它需要显示在输出纸张页眉区域的信息。

页脚

页脚在打印生成时，输出在每页的下边距之下；在屏幕查询显示时，页脚被忽略掉，即屏幕查询显示不使用页脚。一个报表只能定义一个页脚。在页脚中一般定义页号，总页数，文档名称，打印时间及其它需要显示在输出纸张页脚区域的信息。

标题行

标题行显示在明细网格的最上端，一般只在明细网格开始时输出一次。明细网格标题按照明细网格的列定义被划分成一个个单元格，形成明细网格的标题格。一般在明细网格的标题格中定义列的标题文字。

内容行

内容行显示在明细网格标题之后，按照明细网格的数据集记录的顺序每个记录生成一次内容行，如果定义有分组，在每个分组开始与结束时，要插入分组头与分组尾的生成。明细网格内容行按照明细网格的列定义被划分成一个个单元格，形成明细网格的内容格。一般每个明细网格的内容格关联一个记录集字段，用来显示字段的内容。

分组头与分组尾

一个报表可以定义一个或多个嵌套分组，每个分组对应一个分组头与一个分组尾。分组头显示在每个分组项开始时，一般在分组头上定义分组的标识信息，分组初始值及其它只需在分组项开始时显示一次的信息。分组尾显示在每个分组项结束时，一般在分组尾上定义定义分组的统计信息及其它只需在分组项结束时显示一次的信息。


New Page 2

明细网格 - 产品概念与原理

明细网格概述

明细网格的作用就是显示报表的明细数据，一般的报表都需要一个明细网格，明细网格一般生成在报表头之后及报表尾之前。一般情况下，明细网格构成一个报表的主体，报表的主要信息输出在明细网格中，明细网格由实现明细数据生成与输出需要的多种子对象组成。

组成明细网格不可显示的子对象有：

  1. 记录集
  2. 字段
  3. 分组
  4. 列

组成明细网格可显示的子对象有：

  1. 标题行
  2. 标题格
  3. 内容行
  4. 内容格
  5. 分组头
  6. 分组尾

记录集

存储与操作明细记录的对象，当添加明细网格之后，明细网格就自动拥有记录集对象。记录集由多个字段组成。在运行时，提供给报表的明细记录数据被存储到此对象中。报表开发者通过设置数据库连接串与查询SQL，报表在设计时与运行时根据此设置取得供明细记录数据。如果没有设置数据库连接串与查询SQL或指定在运行时不根据数据库连接串与查询SQL设置取明细记录数据，则必须在 FetchRecord 事件中填充记录集数据。

字段

定义记录的每个数据项，字段有表示不同数据类型的具体类型。运行时，记录数据的读写就是通过各个字段值的读写实现。

分组

对所有的记录数据归类的定义，一个报表可以定义一个或多个分组，每个分组对应一个分组头与一个分组尾。分组本身在输出时不能显示出来，分组信息的显示在分组头与分组尾中。

列

定义明细网格的列信息。每个列有显示宽度属性，每个列对应一个标题格，显示在标题行上，一个内容格，显示在内容行上。一般情况下，如果一个字段的数据要显示出来，就需要定义一个对应的列。列本身在输出时不能显示出来，而是通过标题格与内容格的显示来体现列的输出。

标题行

标题行一般显示在明细网格的最上端，通常只在明细网格开始时输出一次。标题行拥有所有标题格，标题行显示区域被一个个标题格所划分。

标题格

每当增加一个明细网格的列之后，都会在标题行添加一个对应的显示单元格；当我们需要定义多层标题时，具有下级标题的标题也要在标题行添加一个对应的显示单元格，这两种方式的单元格称为标题格。一般在明细网格的标题格中定义列的标题文字。如果把标题格设为自由格，则标题格成为部件框容器，可以向标题格添加部件框。

内容行

内容行显示在明细网格标题之后，内容行按照明细网格的记录顺序每个记录显示一次，如果定义有分组，在每个分组开始与结束时，要插入分组头与分组尾。内容行拥有所有内容格，内容行的显示区域被一个个内容格所划分。

内容格

每当增加一个明细网格的列之后，都会在内容行添加一个对应的显示单元格，此种显示单元格称为内容格。一般每个内容格关联一个字段，用来显示字段的内容。如果把内容格设为自由格，则内容格成为部件框容器，可以向内容格添加部件框。

分组头

一个报表可以定义一个或多个分组，每个分组对应一个分组头与一个分组尾。分组头显示在每个分组开始位置，一般在分组头上定义分组的标识信息，分组初始值及其它只需在分组开始时显示一次的信息。

分组尾

一个报表可以定义一个或多个分组，每个分组对应一个分组头与一个分组尾。分组尾显示在每个分组结束位置，一般在分组尾上定义分组的统计信息及其它只需在分组结束时显示一次的信息。


New Page 2

报表部件框 - 产品概念与原理

部件框概述

部件框是对报表中最基本可显示单元的统称，部件框在其父容器中占据一个矩形区域，部件框的内容输出在此矩形区域中，部件框包括背景填充方式与背景色、边框输出模式、以及具体类型的部件框的内容输出前景色。Grid++Report 包括如下具体类型的部件框：

  • 综合文字框
  • 静态框
  • 字段框
  • 统计框
  • 系统变量框
  • 图形框
  • 线段
  • 图像框
  • RTF文本框
  • 子报表
  • 图表
  • 条形码

综合文字框

综合文字框可以显示静态文本，关联动态数据域，动态数据域包括：字段、参数、文字部件框、统计函数与系统变量。综合文字框可以定义四则运算表达式，在运行时表达式被替换为运算结果。综合文字框是 Grid++Report 中最常用的部件框，它除了可以实现其它文字框的功能外，还可以组合静态文字与动态数据域，在运行时输出动态变化的文本，另外数据域还可以使用在四则运算表达式中，在运行时输出运算结果。

静态框

用来显示静态文本的部件框，一般在设计时设定要显示的文本，在输出显示时根据输出格式信息将显示文本画出来。静态框可以关联某个参数对象，在这种情况下，在输出显示时部件框的显示文本为参数对象的显示文本，当一个部件框在输出时要显示多次，而其关联的参数对象的值是变化的，则此静态框在不同位置输出时的显示文字是变化的。静态框是为了保持与以前版本的兼容而保留下来的部件框，建议新的报表使用综合文字框。

字段框

用来显示字段内容的部件框，在设计时关联一个字段对象，在输出显示时根据输出格式信息将字段对象在当前记录的显示文本画出来。字段框一般使用在明细网格的自由内容格、分组头、分组尾中。

统计框

用来显示统计数据的部件框，在设计时设定某种统计函数，除计数（Count）函数外，其余统计函数都需要关联一个字段对象。在统计框中可以定义统计值的输出格式。统计框一般使用在分组头与分组尾中。有时为了统计全部记录的统计数据，可以将部件框使用在报表尾与报表头中。

系统变量框

用来显示系统变量值的部件框，在设计时设定某种系统变量，在系统变量框中可以定义值的输出格式。系统变量框可以使用在任何部件框容器中，例如页号、页总数一般使用在页眉与页脚中。

图形框

用来显示各种图形的部件框，在设计时设定某种图形类别，并设定该种图形的一些参数信息。图形框一般用来对报表进行一些修饰。

线段

专门输出线段的部件框。

图像框

用来显示多种格式图像的部件框，图像数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。

RTF文本框

用来显示RTF格式文本的部件框，RTF格式文本数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。

子报表

专门用来在当前报表中输出另外一个报表的内容的部件框。在报表运行之前，必须为子报表关联报表对象。子报表只能使用在报表头节与报表尾节。子报表关联的报表对象在运行时其本身的页眉与页脚不会输出，而是输出当前报表的页眉与页脚，这样可以保持所有子报表都输出一致的页眉与页脚。

图表

Grid++Report 目前提供了柱图、饼图、折线图三种图表类型，可以实现基本的图表功能。图表功能通过图表部件框来实现。图表数据既可以在报表设计时提供，也可以在报表运行时动态提供。图表部件框可以插入到任何类型的报表节中，在内容行、分组头与分组尾节中，同一图表可以多次输出，并可以为每次输出提供不一样的数据。图表在查询显示时，提供了交互事件，通过对交互事件的响应可以为图表提供穿透查询分析功能。图表在查询显示时还可以指定图形与图例的显示区域特定鼠标光标。

条形码

用来生成条形码的部件框，支持所有常用类型的条形码，打印输出的条形码精读高易读取。


New Page 2

报表参数 - 产品概念与原理

报表参数概述

报表参数用来在报表运行时存储生成过程中的数据，参数具有多种数据类型，参数可以被静态框与综合文本框关联，静态框与综合文本框输出参数值的显示文本，在综合文本框中参数还可以参与表达式的运算。报表开发者可以在报表生成过程中的事件中读取与设置参数的值，例如利用参数，我们可以进行自定义的数据统计计算。

报表参数的几种典型用途

  1. 自定义复杂的统计计算，将统计运算结果存储在参数中，然后将参数关联到静态框，通过静态框将计算结果显示出来。例如通过对 GroupBegin，ProcessRecord，GroupEnd 事件的响应，对分组项数据进行自定义计算并将计算结果存储到参数对象，在分组头与分组尾中放置关联参数的静态框，将计算结果显示出来。
  2. 当要通过循环打印的方式将主从表的数据打印出来，在每打印一条主表记录时，将主表的数据在 Initialize 事件处理函数中传递给参数，使各条主表的记录数据显示在每张报表中。
  3. 为参数化查询SQL语句提供数据，在查询SQL语句中通过“:”后面跟参数名实现参数化查询SQL语句,报表在运行时, 查询SQL中的参数将被同名的参数对象的值所取代,从而实现报表数据的动态变化。一般在报表的 Initialize 事件中为参数对象赋值。

为报表参数提供数据

在报表主对象上可以设置数据库连接串与查询SQL，通过此数据库连接串与查询SQL可以为参数自动获取数据。报表主对象上的数据库连接串与查询SQL通常只获取一条记录数据，Grid++Report也只会应用第一条记录数据，将查询SQL的字段值赋值到报表中同名的参数或部件框上。根据报表主对象上的数据库连接串与查询SQL，可以自动创建对应的报表参数。

也可以用程序代码设置报表参数的值。


New Page 1

报表主对象事件 - 产品概念与原理

报表主对象事件概述

事件就是 Grid++Report 在运行时各种报表对象在执行特定的任务时所发出的消息，通知操作的发生。报表开发者通过对事件的响应处理，可以控制报表的行为，让 Grid++Report 完成特定的任务。如在 SectionFormat 事件中改变对象的显示外观属性，实现突出显示的功能，在 BeforePostRecord 事件中实现计算字段的计算与赋值。

Grid++Report 最先触发 Initialize 事件。如果定义了明细网格，一系列事件会依次触发。如果没有根据数据库连接串与查询SQL设置取得明细记录数据，FetchRecord 事件跟随在 Initialize 事件之后触发，在此事件中报表开发者必须实现向 Grid++Report 提供明细记录数据。在每条明细记录在被提交前，BeforePostRecord 事件会被触发。在向记录集填充完记录之后，Grid++Report 准备对填入的数据进行处理，在处理开始之前触发 ProcessBegin 事件，在处理完成之后触发 ProcessEnd 事件。在数据处理过程中会多次触发 ProcessRecord 事件，每处理一条明细记录触发一次此事件。如果明细网格中定义了分组，则在每个分组项的第一条记录处理之前，触发 GroupBegin 事件，在每个分组项的最后一条记录处理之后，触发 GroupEnd 事件。如果报表的记录集指定了排序字段，在 ProcessBegin 之前会触发 BeforeSort 事件。

如果进行打印页面数据生成，以下事件会被触发。在每页开始时触发 PageStart 事件， 在每页结束时触发 PageEnd 事件。在生成打印页面数据时，明细记录数据会被再遍历一次，PageProcessRecord 事件在遍历每条明细记录时会被触发。在输出每个报表节之前，SectionFormat 事件会被触发。在需要显示字段的文字时，FieldGetDiaplayText 事件会被触发。每个文字部件框在显示时会出触发 TextBoxGetDisplayText 事件。如果定义有页分组，则 GroupBegin 与 GroupEnd 事件在每页开始与结束时会被分别触发。

如果是在查询显示器中查询显示报表，以下事件会被触发。在屏幕上输出每个报表节之前，SectionFormat 事件会被触发。在需要显示字段的文字时，FieldGetDiaplayText 事件会被触发。每个文字部件框在显示时会出触发 TextBoxGetDisplayText 事件。以上几个事件在窗口刷新显示时就会被触发，所以在两个事件会被频繁的触发,所以不要在以上几个事件中执行运算开销较大的任务,以免影响报表在窗口中的显示性能。

当进行报表打印输出时，PrintBegin，PrintEnd，PrintPage，PrintAborted 这几个事件会触发。

报表主对象的几个事件的简要说明

Initialize 事件

在报表准备生成时触发，报表每生成一次触发一次本事件，此事件也是报表生成过程中最先触发的事件。可以在此事件中对报表进行定义，即可以改变报表模板数据，如重新载入报表模板数据，以编程的方式定义报表。在此事件中，可以将在其它事件中使用的对象接口指针或对象属性等数据用变量缓存下来，以供后面直接使用，提高程序运行效率。在除此事件之外的其它事件中，除了 SectionFormat 事件可以对事件触发节对象及其拥有的子对象的显示外观属性进行修改外，禁止对报表进行重新定义，即不允许增减报表对象与改变报表对象的属性。

FetchRecord 事件

如果没有定义数据库连接串与查询SQL，或指定在运行时不从数据库连接串与查询SQL设置中取得明细记录数据，则FetchRecord 事件在报表请求数据时触发，报表每生成一次触发一次本事件，只有具有明细网格的报表才会触发此事件。报表开发者必须响应此事件，且只能在此事件中向记录集填充记录。报表开发者使用记录集接口与字段接口的属性与方法向记录集填充记录。

注意：Delphi 与 C++Builder 的包装类定义了一个 DataSet 属性，并对 FetchRecord 事件在包装类中进行了响应，如果设置了 DataSet 属性值，则会把 DataSet 属性关联记录集对象中的数据填入到 Grid++Report 中。因此在Delphi 与 C++Builder 中一般通过设置 DataSet 属性来提供明细记录数据。

BeforePostRecord 事件

在每提交一条记录时，触发一次本事件。报表开发者可以在此事件中设定各个字段的值，这样就可以对记录数据进行最后的调整。如某些字段的值不能直接从数据源中的得来，而是根据一定的运算求得，则可以在此事件中处理。不管是根据查询SQL取得的数据，还是通过 FetchRecord 事件提供的数据，在每提交一条记录之前都会触发本事件。

ProcessBegin 与 ProcessEnd 事件

报表在获得记录集的明细数据之后，会对明细数据进行运算处理。在开始处理之前触发 ProcessBegin 事件，在完成处理之时触发 ProcessEnd 事件。在 ProcessBegin 与 ProcessEnd 之间在处理每条明细数据时都会触发一次 ProcessRecord。

ProcessRecord 事件

报表在生成的过程中，会按顺序逐条处理每个记录，在每处理一条记录之前，都会触发一次本事件，只有具有明细网格的报表才会触发此事件。如果要对报表数据进行自定义的统计运算，就应该在此事件中取记录数据进行运算，将计算结果保存到参数对象或程序中的变量中。在此事件中可以调用 IGRDetailGrid 接口的 StartNewGroup 方法指定前一个分组项的结束与后一个分组项的开始，从而实现自定义的分组。

GroupBegin 与 GroupEnd 事件

报表在生成的过程中，会按顺序逐条处理每个记录，如果报表定义有分组，每当一个分组项开始时，触发 GroupBegin 事件，每当一个分组项结束时，触发 GroupEnd 事件。如果要对分组进行自定义的复杂统计，可以在 GroupBegin 事件函数中设定运算的初值，在 ProcessRecord 事件中对每条记录进行累积运算，在 GroupEnd 事件中对运算的结果进行最后的运算。

SectionFormat 事件

在每个报表节即将显示之前触发。当报表输出在查询显示器中，每当窗口要进行自画时，当前可见的节在显示时会触发本事件，节如果是重复显示的，同一节还会多次触发。当报表在打印或打印预览时，首先要生成打印页面数据，在页面中显示每个节之前触发本事件。可以通过取报表的当前显示状态（DispalyMode）属性确定事件是由查询显示器自画时触发，还是由生成打印页面时触发。

注意：SectionForamt 事件会频繁触发，在此事件中不应该执行运行开销大的任务，在此事件响应函数中使用的对象接口指针最好在 Initialize 事件处理函数中缓存到变量中。

FieldGetDisplayText 事件

报表在输出显示时，当部件框需要取关联字段的显示文本时触发本事件。在此事件中可以对触发事件的字段对象的显示文本(DisplayText)属性赋值，使字段的显示文本是报表开发者自定义的。例如在财务报表中，需要将负数用红字显示，就可以在此事件处理函数中将负号从显示文本中去掉，在 SectionFormat 事件处理函数中将对应显示部件框的前景色(ForeColor)设为红色。
注意：FieldGetDisplayForamt 事件会频繁触发，在此事件中不应该执行运行开销大的任务，在此事件响应函数中使用的对象接口指针最好在 Initialize 事件处理函数中缓存到变量中。

TextBoxGetDisplayText 事件

报表在输出显示时，当文字部件输出文字时触发本事件。在此事件中可以对触发事件的文字部件框对象的显示文本(DisplayText)属性赋值，使显示文本是报表开发者自定义的。此事件类同 FieldGetDisplayText。

PageStart 与 PageEnd 事件

如果进行打印页面数据生成，在每页开始时触发 PageStart 事件， 在每页结束时触发 PageEnd 事件。

PrintProcessRecord 事件

报表在生成打印页面的过程中，会再次按顺序逐条处理每个记录，在每处理一条记录之前，都会触发一次本事件，只有具有明细网格的报表才会触发此事件。此事件只有当报表将输出到打印机或打印预览时才会触发。在页分组中，如果要对报表数据进行自定义的统计运算，就应该在此事件中取记录数据进行运算，将计算结果保存到参数对象或程序中的变量中。

BeforeSort 事件

如果报表的记录集指定了排序字段，在 ProcessBegin 之前会触发 BeforeSort 事件。

ExportBegin 与 ExportEnd 事件

在报表导出任务执行之前触发 ExportBegin 事件，在报表导出任务执行之后触发 ExportEnd 事件。在 ExportBegin 事件中可以改变导出选项，重新控制导出行为。

按运行过程说明事件

报表数据生成

当报表要执行屏幕查询显示、打印、打印预览、数据导出等任务时，必须首先进行报表数据生成。在报表数据生成过程中，会对报表模板、明细记录与参数等进行综合处理，同时也会触发一些事件。在事件中报表开发者可以对报表生成进行相应的干预与控制。

说明：
1. 以上带有填充色的过程表示会重复多次执行，其对应的事件也会多次触发。
2. 以上圆角矩形表示对应过程有可能执行到，也有可能不会执行。
3. 如果设置了明细网格记录集的数据源连接串与查询SQL且设为不忽略数据源取数，Grid++Report将自动从指定数据源取数，反之将触发FetchRecord事件，要求构件使用程序向报表提供数据。

报表打印页面生成

在生成打印页面的过程中，以下报表事件会被触发。

  1. GroupBegin：当定义了页分组，在开始生成明细网格关联的每一页时，每个页分组将触发一次本事件。

  2. GroupEnd：当定义了页分组，在结束生成明细网格关联的每一页时，每个页分组将触发一次本事件。

  3. PageProcessRecord：在打印页面的生成过程中，明细记录将被再次遍历处理一次，在遍历每一条明细记录将触发一次本事件。

  4. PageStart：在开始生成每一页时，将触发一次本事件。

  5. PageEnd：在结束生成每一页时，将触发一次本事件。

  6. SectionFormat：在生成打印页面的过程中，当要输出某个报表节时，将触发一次本事件。报表节如果在报表中多次输出，每一次输出都会触发一次本事件。报表节包括：页眉、页脚、报表头、报表尾、网格标题行、网格内容行、分组头与分组尾等。

  7. FieldGetDisplayText：当要获取某个字段的显示文字时，触发一次本事件。当内容格或部件框要显示关联字段时，就会执行获取字段显示文字的任务。

  8. TextBoxGetDisplayText：当要获取某个文字框的显示文字时，触发一次本事件。当一个文字框要显示时，就会执行获取其显示文字的任务。

报表查询显示

当报表在显示屏幕上查询显示时，只有以下两个事件会被触发。但每当要刷新显示查询显示器控件窗口时，以下事件会被多次触发。查询显示器控件的刷新显示任务会被经常执行，故应该在以下两个事件中避免执行开销大的任务，以免影响显示性能。

  1. SectionFormat：在查询显示器控件窗口的自画过程中，当要输出某个报表节时，将触发一次本事件。报表节包括：页眉、页脚、报表头、报表尾、网格标题行、网格内容行、分组头与分组尾等。

  2. FieldGetDisplayText：当要获取某个字段的显示文字时，触发一次本事件。当内容格或部件框要显示关联字段时，就会执行获取字段显示文字的任务。

  3. TextBoxGetDisplayText：当要获取某个文字框的显示文字时，触发一次本事件。当一个文字框要显示时，就会执行获取其显示文字的任务。


New Page 1

部件框布局方式 - 产品概念与原理

部件框布局方式概述

部件框在父容器中的位置与大小通常通过设定 Left,Top,Width,Height 属性而确定，但部件框可以定义几种布局方式自动产生部件框的位置与大小，其位置与大小可以跟随父容器大小的变化而变化。这几种布局方式分别是：锚定(Anchor)、停靠(Dock)、居中(Center)、对齐列(AlignColumn)。

几种布局方式的说明

锚定(Anchor)

通过部件框的 Anchor 属性指定部件框的锚定方式(GRAnchorStyles)，Anchor 的值按位组合。默认值是 grasTop 和 grasLeft。一个部件框可以锚定到其父容器的一个或多个边缘。将部件框锚定到其父容器，可确保当调整父容器的大小时锚定的边缘与父容器的边缘的相对位置保持不变。例如一个部件框的 Anchor 属性值设置为 grasTop 和 grasBottom，当父容器的高度增加时，部件框的高度也同时伸展，以保持到父容器的上边缘和下边缘的距离不变。

停靠(Dock)

指定部件框停靠到父容器的哪一个边缘或者可以停靠到所有边缘并充满父容器。通过部件框的 Dock 属性指定部件框的停靠方式（GRDockStyle）。默认值是不停靠到任何边缘（grdsNone）。部件框自动调整大小以使停靠边缘完全充满，部件框依照 Z 顺序停靠。例如，如果将该属性设置为 grdsLeft，部件框的左边缘将停靠到其父容器的左边缘，同时部件框的高度也变为父容器左边缘的高度。

居中(Center)

指定部件框在水平与垂直方向上居中位于父容器的方式。通过部件框的 Center 属性指定部件框的居中方式(GRCenterStyle)。默认值是在两个方向都不居中(grcsNone)。如果在某个方向上居中，当父容器的大小发生改变时，部件框自动调整位置使自己一直居于父容器的中间。例如，如果将该属性设置为 grcsHorizontal，部件框始终在水平方向上居于父容器的正中间。

对齐列(AlignColumn)

指定部件框左端与右端位置与某一个或两个指定列的对齐方式。通过部件框的 AlignColumn，AlignColumnEx 与 AlignColumnSide 几个属性指定部件框对齐列的行为，AlignColumn 与 AlignColumnEx 指定对齐到那一个列或那两个列，AlignColumnSide 指定对齐到列的左端、右端或左右两端(GRAlignColumnStyle)。如果指定对齐到列，则部件框的左右端位置与宽度会随列的变化而变化，并始终保证对齐端的位置与列的对应端的位置保持一样，当对齐到列的左右两端时，部件框的宽度与列的宽度始终保持一样。

几种布局方式之间的关系

按照优先级从高到底的顺序排列：对齐列-〉停靠-〉锚定-〉居中。就是说在几种布局方式之间如果存在逻辑条件冲突时，优先按照高级别的布局方式调整部件框的大小与位置。例如，将部件框的停靠方式设定为停靠左边缘（grdsLeft），而居中方式为水平居中（grcsHorizontal），则部件框将采用停靠左边缘的停靠方式，而忽略水平居中的居中方式。


New Page 2

报表数据 - 产品概念与原理

报表数据推模式与拉模式

报表在生成时需要获得报表数据，Grid++Report 的报表数据来源既可以是推(PUSH)模式，也可以是拉(PULL)模式。所谓推模式就是由报表宿主程序向报表填充数据，报表引擎处于被动接受数据的形式。所谓拉模式就是报表引擎根据报表的数据源取数参数主动从数据源提取数据。

Grid++Report 的拉模式采用 OLE DB 数据引擎，OLE DB 是 Windows 系统提供的具有广泛数据访问能力的最新一代数据引擎。只要指定数据源的连接参数与查询SQL语句，就可以从各种数据源中提取数据。

Grid++Report 的推模式通过报表事件向报表宿主程序发出请求报表数据的通知，由报表宿主程序在此事件中将数据填入到报表的记录集中。采用推模式，可以将一切宿主程序能得到的数据提供给报表，这样更进一步扩大报表数据的来源。如果数据需要在程序中重新整理与加工运算，就必须采用推模式。

如果设置了报表记录集的数据源连接串与查询SQL，Grid++Report 将采用拉模式主动从数据库中取数据；反之，Grid++Report 将采用推模式获取数据，报表在运行时会触发 FetchRecord 事件，报表开发者必须在此事件响应中向报表中填入数据。如果设置记录集的“忽略数据查询”属性为“是”，数据源连接串与查询 SQL仅在设计时从数据源主动取数，在运行时用推模式由程序来提供报表数据，也就是说 FetchRecord 事件会触发，此时的数据源连接串与查询 SQL 主要用于设计报表。

C/S报表数据说明

例子 Normal 中的报表都是采用拉模式获取报表数据。例子 ManualFillRecord 演示了推模式提供报表数据，同时也说明了在推模式下，任何数据都可以提供给 Grid++Report。各种编程工具都有自己的数据访问机制，Grid++Report 的例子中为适应各种编程工具的数据访问机制，提供了通用方法(函数)来将各种记录集中的数据填入到报表中，这个通用方法可以为大家复用，主要就是通过字段名称匹配，将编程工具的记录集的字段值赋给 Grid++Report 中具有相同名称的记录集字段。例子 CustomGroup 与 CustomSummary 采用推模式，用通用方法(函数)将编程平台下的数据集数据提供给报表，请查看 FetchRecord 事件相关的代码。

Grid+++Report 为 C++Builder 与 Delphi 实现了包装，其 TGridppReport 类有 DataSet 属性， 可以从 TDataSet 系数据集中主动提取数据。

有关C/S报表开发的更具体说明请参考帮助的“报表组件(C/S报表)”部分，以及Grid++Report提供的开发者所用编程语言对应的例子。

相关例子程序

  1. ManualFillRecord
  2. Advance\CustomGroup
  3. Advance\CustomSummary

B/S报表数据说明

B/S报表为了便于数据的传输，通常都采用将数据打包为XML形式，报表通过解析XML数据包获取数据。B/S报表在设计报表模板时与C/S报表完全一样，两种方式的模板是完全相同的，也是可以互用的。

有关B/S报表开发的更具体说明请参考帮助的“报表插件(WEB报表)”部分，以及Grid++Report提供的开发者所用编程语言对应的例子。

请参见

定义数据源连接串与查询SQL


New Page 1

设计报表原则指导 - 产品概念与原理

在准备实现一个报表前，首先应该对要实现的报表有一个全面的分析。在开始自己设计报表之前，全面运行一次Grid++Report 的例子程序是非常有帮助的，可以对 Grid++Report 的功能有直观的印象，了解它的工作原理与实现模式。以下对实现报表提供一些指导性说明。

首先是定义报表模板，任何一个报表的生成都离不开报表模板。要定义报表模板必须分析清楚报表的结构，通过以下因素的考虑来基本确定报表模板的构成元素。

  1. 是否需要一个报表头，一般的报表都需要一个报表头，用来显示报表标题及其它需要在报表开始时显示一次的信息。
  2. 是否需要一个报表尾，如果在报表最后需要显示统计数据及其它需要在报表最后显示一次的信息。就需要定义一个报表尾。
  3. 如果需要在每页的页眉区域显示信息，则需要定义页眉。页眉只在打印生成时输出，如果报表只用于屏幕查询显示，则不用定义页眉。
  4. 如果需要在每页的页脚区域显示信息，则需要定义页脚。在页脚中一般显示页号与总页数等。页脚只在打印生成时输出，如果报表只用于屏幕查询显示，则不用定义页脚。
  5. 如果报表存在多条记录数据，一般为数据库表数据或SQL查询数据，则需要定义明细网格。明细网格的内容行在生成时会逐条记录显示每条记录的内容。
  6. 如果定义明细网格，整理出报表需要显示的数据项，以及不用显示的数据项但需要根据它进行分组、进行统计计算、或在事件响应中需要使用它的值，以上数据项需要在记录集中定义对应的字段。
  7. 如果定义明细网格，定义需要显示的列。可以根据字段定义一次生成一个每个字段对应的显示列，然后将不用显示的字段对应列删除掉。
  8. 如果定义明细网格，并且要对明细记录根据一定的规则进行分组归类，则需要定义分组。每个分组包括一个分组头与一个分组尾，分组头在每个分组项开始时显示一次，分组尾在每个分组项结束时显示一次。另外需要注意的一个问题是必须保证记录是按分组顺序排列的，即同类的记录连续的聚集在一起。
  9. 特殊格式的报表，如果示例中有类似的实现，可以参考示例中的报表模板。另外就是认真参阅本文档，熟悉 Grid++Report 的功能，去实现自己的目标。

报表模板定义之后，就需要考虑以何种方式将报表生成输出。以下几点作为实现报表生成的参考。

  1. 创建一个报表主对象，载入报表模板文件。
  2. 在报表生成开始时，会触发 Initialize 事件，如果报表需要根据当前的环境进行配置，在此事件中可以调用报表主对象及其子对象的属性与方法对报表模板进行调整。
  3. 任何具有明细网格的报表如果没有从查询SQL设置中取得明细记录数据，在 FetchRecord 事件中调用记录集的接口方法将数据填充到 Grid++Report 的报表主对象中。
  4. 如果报表要进行屏幕查询显示，则需要在一个窗口中创建查询显示器（GRDisplayViewer）ActiveX control，此窗口作为查询显示窗口。将查询显示器的 Report 属性设为报表主对象的接口指针，使查询显示器与报表主对象关联。运行时执行查询显示器的 Start 方法将触发报表的数据生成与显示。
  5. 如果报表要进行打印预览，Grid++Report 提供了缺省预览窗口，可以调用显示缺省预览窗口的方法来进行打印预览。一般情况下，报表开发者需要定义自己的打印预览窗口，在一个窗口中创建打印查看器（GRPrintViewer）ActiveX control，此窗口作为预览显示窗口。将打印查看器的 Report 属性设为报表主对象的接口指针，使打印查看器与报表主对象关联。运行时执行预览查看器的 Start 方法将触发报表的数据生成、打印页面的生成、打印页面的显示。
  6. 如果不用提供打印预览，直接将报表生成结果送至打印机打印，只用直接调用报表主对象的打印方法即可。


New Page 1

报表引擎组件对象模型图 - 产品概念与原理

注：上图列出了报表引擎中所有公开类的组件对象模型，对象用它的接口名称进行表示。在帮助的索引框中输入接口的名称，可以找到对应接口的编程信息，包括属性、方法、事件、以及接口的派生关系等。


术语

RTF文本框

用来显示RTF格式文本的部件框，RTF格式文本数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。

报表布局窗口

报表布局窗口是报表设计器　ActiveX　控件的一个子窗口。用来显示报表定义中的可显示元素，并可以对显示的元素进行各种设计操作，如移动位置、缩放大小、各种对齐操作、改变顺序、插入新报表元素、删除报表元素等。报表布局窗口提供了可视化设计报表的功能，整个报表的输出布局可以方便的实现。报表布局窗口是整个设计器的核心组成部分。

报表节

整个报表的输出显示由多种类型的占据整个水平输出区域宽度的矩形带状区域组成，以上各种类型显示区域统称为报表节。Grid++Report的报表节类型包括：页眉、页脚、报表头、报表尾、标题行，内容行、分组头、分组尾。

报表节集合

定义一组报表节的对象，此集合对象被报表主对象直接拥有。报表节集合只包含四种类型的报表节：页眉、页脚、报表头、报表尾。其它类型的报表节不被报表主对象直接拥有，所以它们不会出现在报表节集合中。

报表开发者

在本文档中指使用 Grid++Report 开发报表的程序员。报表开发者开发的报表将提供给报表的最终使用者运行。

报表模板

定义报表布局、外观、结构、行为的数据。报表模板数据存储在以报表主对象为最上层对象的组件对象模型中。可以从报表模板文件载入报表模板到报表主对象，也可以根据报表组件对象模型的接口定义以编程的方式定义报表模板。可以将报表模板保存到报表模板文件达到持久保存的目的。

报表模板文件

保存报表模板数据的文件。在设计器应用程序中设计的模板数据保存到模板文件，在运行报表之前将报表模板数据从报表模板文件载入到报表主对象中。

报表设计器

一个　ActiveX　控件，对报表模板数据进行设计。报表设计器主要由报表布局窗口、属性编辑窗口、对象浏览窗口组成。如果要为报表最终用户提供运行时可以可视化修改报表的功能，就要使用报表设计器，提供一些外围操作界面元素（按钮，编辑框，菜单等）与报表设计器进行交互处理。

报表头

一种类型的报表节，被报表主对象直接拥有。在查询显示器中显示在窗口上端，如有明细网格，显示在明细网之上；打印生成时在报表开始位置显示一次，可以定义在每页重复使其多次输出显示。一个报表可以定义多个报表头，在一般情况下我们只需定义一个报表头。在报表头中一般定义报表的标题、报表标识信息、徽标图像及其它只需在报表开始时显示一次的信息。

报表尾

一种类型的报表节，被报表主对象直接拥有。在查询显示器中显示在窗口下端，如有明细网格，显示在明细网之下；打印生成时在报表结束位置显示一次，可以定义在每页重复使其多次输出显示。一个报表可以定义多个报表尾，在一般情况下我们只需定义一个报表尾。在报表尾中一般定义报表的统计信息及其它只需在报表结束时显示一次的信息。

报表运行时

是指报表处于数据生成、打印页面生成与查询显示器中显示报表数据的状态。很多报表对象的属性与方法只有当报表处于运行时状态才能使用。 以下几种情况报表一定是处于运行时状态： （1）响应报表主对象的事件函数时。 （2）报表在查询显示器中显示时。

报表主对象

是一个 COM 自动化（COM Automation）对象，是 Grid++Report 组件对象模型的最外层对象。报表主对象是所有其它报元素对象的直接或间接拥有者，直接拥有的报表元素对象有：明细网格、报表节集合、参数集合、打印机对象。另也包括报表有关的公共信息，如设计行为属性、计量单位、整个报表的缺省字体等。

报表最终用户

在本文档中指运行报表开发者开发的报表的用户。

标题格

每当增加一个明细网格的列之后，都会在标题行添加一个对应的显示单元格；当我们需要定义多层标题时，具有下级标题的标题也要在标题行添加一个对应的显示单元格，这两种形式的单元格称为标题格。一般在明细网格的标题格中定义列的标题文字。如果把标题格设为自由格，则标题格成为部件框容器，可以向标题格添加部件框。

标题格集合

定义一组标题格的对象，此集合对象被标题行直接拥有。

标题行

定义明细网格的标题区域。标题行一般显示在明细网格的最上端，通常只在明细网格开始时显示一次。标题行拥有所有标题格，标题行显示区域被一个个标题格所划分。

部件框

部件框是对报表中各种可显示的基本单元的统称，部件框在其父容器中占据一个矩形区域，部件框的内容就输出在此矩形区域中，部件框包括背景填充方式与背景色、边框输出模式、以及具体类型的部件框的输出前景色。Grid++Report　包括如下具体类型的部件框：静态框、字段框、统计框、系统变量框、图形框。

部件框集合

定义一组部件框的集合，各种部件框容器对象都拥有一个部件框集合对象。

部件框容器

各种拥有部件框的报表元素的统称。在报表设计器中，可以向部件框容器中插入各种部件框。页眉(PageHeader)、页脚(PageFoote)、报表头(ReportHeader)、报表尾(ReportFooter)、分组头(GroupHeader)、分组尾(GroupFooter)都是部件框容器，标题格(ColumnTitleCell)与内容格(ColumnContentCell)定义成自由格时也是部件框容器。

参数

定义可以存储各种类型数据的对象，报表运行时可以改变存储的值。参数可以关联到静态部件框，当静态部件框显示时，将输出参数的显示文本。参数可以用来实现自定义数据统计功能，在　ProcessReocrd，GroupBegin，GroupEnd　事件中执行统计计算，将计算结果存储到参数，在分组头与分组尾定义静态部件框并与存储统计数据的参数对象关联。

参数集合

定义一组参数的集合，参数集合被报表主对象直接拥有。

查询显示器

是一个　ActiveX　控件。在使用时要关联一个报表主对象。开始运行时向报表主对象发出生成数据请求，然后本构件显示报表主对象生成的数据，本对象为最终用户提供了完善的查询显示数据的功能。报表开发者通过对本对象交互事件的响应，为最终用户提供可交互的操作。例如通过对汇总报表的明细网格内容格的双击事件的响应，打开对应的明细报表，达到从汇总报表到明细报表的穿透查询。

打印查看器

是一个 ActiveX 控件。在使用时要关联一个报表主对象。开始运行时向报表主对象发出生成数据请求，并生成打印页面，然后本构件显示生成的打印页面，并且提供其它相应的页面操作与打印操作。报表开发者可以通过提供外部操作界面来执行控件接口的方法与属性，为报表最终用户提供报表打印预览功能。

单元格

标题格与内容格的统称。当属性　FreeCell　为真时，单元格称为自由格，单元格是部件框容器；当属性　FreeCell 为假时，单元格称为非自由格，单元格不是部件框容器。

对象浏览窗口

对象浏览窗口是报表设计器的一个子窗口。以树形结构显示整个报表中的所有对象，可以通过选中树节点来选中对应对象，在报表布局窗口中不显示的报表对象一般在此窗口中进行选中。

非自由格

当标题格与内容格的属性　FreeCell　为假时，称为非自由格。此时标题格或与内容格不是部件框容器。如果具体类型是内容格，关联一个字段，运行时输出字段的显示文本；如果具体类型是标题格，具有一个显示文本属性，运行时输出显示文本。

分组

定义分组规则，对所有的记录数据进行归类，并将归类统计数据显示在分组头或分组尾。当属性　PageGroup　为真，在打印生成页面时，每个页产生一个分组项；当属性　PageGroup　为假，如果属性　ByFields　关联字段，将相同字段值的记录归类为一个分组项，通常记录的顺序应按分组字段进行排序，如果属性　ByFields　没有定义，表示全部记录形成一个分组项。在报表主对象的　ProcessRecord　事件中每执行　IGRDetailGrid　接口的　StartNewGroup　方法，将生成指定分组的一个分组项。

分组集合

定义一组分组的集合，被明细网格直接拥有。

分组节

分组头与分组尾的统称。

分组头

一个报表可以定义一个分组或多个嵌套分组，每个分组对应一个分组头与一个分组尾。分组头显示在每个分组开始时，一般在分组头上定义定义分组的标识信息，分组初始值及其它只需在分组开始时显示一次的信息。

分组尾

一个报表可以定义一个分组或多个嵌套分组，每个分组对应一个分组头与一个分组尾。分组尾显示在每个分组结束时，一般在分组尾上定义定义分组的统计信息及其它只需在分组开始时显示一次的信息。

分组项

在报表运行时，记录按照每个分组的定义产生的一个个归类称为分组项。

集合对象

各种集合定义的统称。在组件对象模型中，一个父对象如果拥有多个某种类型的子对象，就需要定义子对象的集合对象，父对象直接拥有集合对象，由集合对象管理子对象群。各种集合对象一般具有类似的属性与方法。

集合属性对话框

报表设计器中各种集合对象的属性查看与编辑通用窗口。在窗口左边的列表框列出所有的子对象名称，右边的属性编辑窗口显示选中子对象的属性。另外提供增加与移除子对象、改变子对象顺序的按钮等操作界面。

记录集

存储与操作所有记录的对象，拥有一组子段。

静态框

用来显示静态文本的部件框，一般在设计时设定要显示的文本，在输出显示时根据输出格式信息将显示文本画出来。静态框可以关联某个参数对象，在这种情况下，在输出显示时部件框的显示文本为参数对象的显示文本，当一个部件框在输出时要显示多次，而其关联的参数对象的值是变化的，则此同一静态部件框在不同位置输出的显示文本是变化的。

均分页

在打印生成时，将纸张纵向均匀分割，每个等分的区域作为一个独立的输出页面看待，此种页面称为均分页。

列

定义明细网格输出时在水平方向按列划分的定义。每个列有显示宽度属性。每个列对应一个标题格，显示在标题行上，一个内容格，显示在内容行上。一般一个显示的字段对应定义一个列；列本身在输出时不能显示出来，而是通过标题格与内容格的显示来体现列的输出。

明细网格

明细网格就是处理报表明细数据生成的定义，一般的报表都需要一个明细网格，明细网格一般生成在报表头之后及报表尾之前，明细网格构成了一个报表的主体，报表的主要信息输出在明细网格中，明细网格的显示由几种报表节组成：标题行、内容行、分组头、分组尾。

内容格

每当增加一个明细网格的列之后，都会在内容行添加一个对应的显示单元格，此种显示单元格称为内容格。一般每个内容格关联一个字段，用来显示字段的内容。如果把内容格设为自由格，则内容格成为部件框容器，可以向内容格添加部件框。

内容格集合

定义一组内容格的集合，被内容行直接拥有。

内容行

内容行显示在明细网格标题之后，按照明细网格的数据集记录，内容行按照记录的顺序每个记录生成一次，如果定义有分组，在每个分组项开始与结束时，要插入分组头与分组尾。内容行拥有所有内容格，内容行显示区域被一个个内容格所划分。

全程分组

当分组既不是按页分组归类的，且没有定义分组子段，此时的分组称为全程分组。所有的明细记录只产生一个全程分组项。

统计框

用来显示统计数据的部件框，在设计时设定某种统计函数，除计数（Count）函数，其余统计函数都需要关联一个字段对象。在统计框中可以定义统计值的输出格式。统计框一般使用在分组头、分组尾中。有时为了统计全部记录的统计数据，可以将统计框使用在报表尾或报表头中。

图表

用来显示多种类型图表(Chart)的部件框。图表数据既可以在设计时提供，也可以在报表运行时实时提供动态变化数据。在内容格与分组头尾中的图表还可以在报表中多次输出并可以为每次输出提供不一样的数据。

图像集合

图像集合定义在报表主对象中，在图像集合中一般定义需要在报表中多次显示的图像。图像集合中的图像通过序号来标识，图像框通过图像序号(ImageIndex)属性或数据字段(DataField) 属性指定要应用的图像集合中的图像。图像序号属性的值如果不为零，图像框将显示对应的图像集合中的图像。如果关联了数据字段，且数据字段的类型不为二进制，将根据字段的整型值匹配图像集合中的图像并显示它。

图像框

用来显示多种格式图像的部件框，图像数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。

图形框

用来显示各种图形的部件框，在设计时设定某种图形类别，并设定该种图形的一些参数信息。图形框一般用来对报表进行一些修饰。

文本框

各种显示文本的部件框的统称，包括：静态框、字段框、统计框、系统变量框。

系统变量框

用来显示系统变量值的部件框，在设计时设定某种系统变量，在系统变量框中可以定义值的输出格式。系统变量框一可以使用在任何部件框容器中，例如页号、页总数一般使用在页眉与页脚中。

线段

专门输出线段的部件框。

页分组

当分组的属性　PageGroup　为真，这样的分组称为页分组。在打印生成页面时，每个页产生一个分组项。

页脚

页脚在打印生成时，输出在每页的下边距之下；在屏幕查询显示时，页脚被忽略掉，即屏幕查询显示不使用页脚。一个报表只能定义一个页脚。在页脚中一般定义页号、总页数、文档名称、打印时间及其它需要显示在输出纸张页脚区域的信息。

页列

当明细网格的　PageColumnCount>1　时，在打印生成时，整个输出宽度按　PageColumnCount　进行均分，每个均分区域称为页列。

页眉

页眉在打印生成时，输出在每页的上边距之上；在屏幕查询显示时，页眉被忽略掉，即屏幕查询显示不使用页眉。一个报表只能定义一个页眉。在页眉中一般定义页号、总页数、文档名称、打印时间及其它需要显示在输出纸张页眉区域的信息。

占列式分组头

当分组头的 OccupyColumn 属性为真时，在输出显示时，报表头不是独立占据一个水平宽度区域，而是在 OccupiedColumns 属性指定列的显示区域中与内容行一起显示。OccupiedColumns 属性指定列自身的输出显示被忽略掉。

属性编辑窗口

属性编辑窗口是报表设计器的一个子窗口。用来查看与修改选中报表对象的属性。

子报表

专门用来在当前报表中输出另外一个报表的内容的部件框。在报表运行之前，必须为子报表关联报表对象。子报表只能使用在报表头节与报表尾节。子报表关联的报表对象在运行时其本身的页眉与页脚不会输出，而是输出当前报表的页眉与页脚，这样可以保持所有子报表都输出一致的页眉与页脚。

字段

定义数据集中的各种数据项。数据类型包括：文本、布尔、日期时间、整数、浮点数、二进制、货币。

字段集合

定义一组字段的集合，被记录集直接拥有。

字段框

用来显示字段内容的部件框，在设计时关联一个字段对象，在输出显示时根据输出格式信息将字段对象在当前记录的显示文本画出来。字段框一般使用在明细网格的自由内容格、分组头、分组尾中。

自由格

当标题格与内容格的属性 FreeCell 为真时，称为自由格。此时标题格或与内容格是部件框容器。格本身在显示时只填充背景，然后再输出拥有的全部子部件框。

综合文字框

综合文字框可以显示静态文本，关联动态数据域，动态数据域包括：字段、参数、文字部件框、统计函数与系统变量。综合文字框可以定义四则运算表达式，在运行时表达式被替换为运算结果。综合文字框是 Grid++Report 中最常用的部件框，它除了可以实现其它文字框的功能外，还可以组合静态文字与动态数据域，在运行时输出动态变化的文本，另外数据域还可以使用在四则运算表达式中，在运行时输出运算结果。


New Page 1

启动报表设计器程序 - 设计报表

在安装 Grid++Report 之后，在程序组中加入了相应的启动项，在桌面中也加入了启动 Grid++Report 的设计器的快键方式。执行两者之一都可以启动报表设计器。如果在资源管理器中找到报表模板文件（.grf）,双击模板文件也可以启动报表设计器，同时将被双击的模板文件打开。


New Page 2

演练设计第一个报表 - 设计报表

下面的过程描述了创建一个类似例子模板“1a.简单列表.grf”的报表,直观体验一下Grid++Report的报表设计过程。

启动报表设计器应用程序

首先从Windows桌面或Grid++Report安装启动菜单下启动“Grid++Report 报表设计器”应用程序。程序启动之后是一个没有任何内容的空白报表。

定义报表头

  1. 插入报表头：执行菜单“插入-〉报表头”，新插入的报表头显示在报表布局窗口中。

  2. 插入一个静态框显示报表标题：执行菜单“插入-〉静态框”，用鼠标在报表头的显示区域拖放一个矩形区域，一个新的静态框显示在拖放的矩形区域位置。

  3. 输入显示文字：点击新插入的静态框，当文字插入光标显示时，输入“客户基本信息”，完成后按回车键。

  4. 改变显示字体：在右下位置的属性编辑窗口中选中“字体”行，打开字体对话框设置新的字体属性，改为“宋体、粗体、三号”。

  5. 部件框水平居中显示：在右下位置的属性编辑窗口中选中“居中”行，下拉选择属性值为“居中”。

  6. 文字居中显示：在字体与文字对齐工具栏中选择“中中”按钮。

  7. 调整报表头的高度：将鼠标光标放置在报表头的下边缘，拖放鼠标。

  8. 调整部件框的大小与位置：在部件框的上方拖放鼠标进行移动或缩放大小操作。

定义明细网格

  1. 插入明细网格：执行菜单“插入-〉明细网格”，新插入的明细网格显示在报表布局窗口中。

  2. 定义数据库连接串与查询SQL：在明细网格的工具栏上选择“数据库连接串与查询SQL”打开定义窗口。
    定义数据库连接串：执行窗口右下角的“创建数据库连接串...”按钮打开“数据链接属性窗口”，在“提供程序”页中选择“Microsoft Jet OLEDB 4.0 Provider”，执行“下一步”按钮直至完成定义。
    定义查询SQL：在查询SQL编辑框中录入“select * from Customers order by Region,City”。
    检测正确性：执行“测试”按钮，如果提示不成功，应根据提示重新修改数据库连接串与查询SQL。

  3. 创建字段：执行菜单“编辑-〉根据查询生成字段”，此时在右上角的对象浏览窗口的“记录集”节点下会有很多字段子节点。

  4. 创建列：执行菜单“编辑-〉根据字段生成列”，此时在明细网格上会显示很多列。

  5. 调整列宽：将光标移动到列的右边界位置进行拖放。

  6. 改变表格标题的显示文字:点击标题行下的各个单元格,在文字插入光标出现后,输入新的显示文字。

定义页脚显示页号

  1. 插入页脚：执行菜单“插入-〉页脚”，新插入的页脚会显示在报表布局窗口中。

  2. 插入一个综合文字框显示打印时间：
    插入综合文字框：在部件框工具栏中选择“综合文字矿”，然后在页脚的左边拖放一个矩形，一个综合文字框已经插入。
    设置显示内容：在右下位置的属性编辑窗口中选中“文本”行，点击“...”按钮打开文本编辑对话框。在编辑框中输入“打印时间：”。 然后执行“插入域”按钮，引用类型选择“系统变量”，系统变量选择“CurrentDateTime”。

  3. 插入一个综合文字框显示当前页号与总页数：类似上一步操作，这里需要插入两个数据域，系统变量分别为“PageNumber”与“PageCount”。

定义页眉

插入页眉，然后在页眉中插入一个静态框显示页眉中的文字，一个线段显示分隔水平线。如果已经了解前面的操作过程，这里的操作也是类似的，在此不在赘述。

查看设计结果

点击设计器下边的“预览试图”与“查询视图”页标签查看报表运行结果。

保存数据

最后是保存数据，执行菜单“文件-〉保存”将模板保存到恰当的目录并进行设定合适的文件名。至此我们已经得到一个与Grid++Report提供的例子“1a.Customer list.grf”相似的报表模板。

其它事项：

  1. 在设计过程中，可以边设计边保存设计结果，以免意外情况造成数据丢失，Ctrl+S是保存功能的快捷键。
  2. 在设计过程中，可以随时进入预览试图与查询视图查看设计效果。
  3. 点击鼠标右键，会打开与当前状态相关的关联操作菜单。


New Page 1

报表设计器应用程序 - 设计报表

报表设计器应用程序是用来专门设计报表模板的可视化工具，整个应用程序的主界面由：主菜单，工具栏，报表布局窗口，对象浏览窗口，属性编辑窗口组成。其排列方式如下图：

主菜单与工具栏：提供执行各种设计任务的界面接口。

报表布局窗口：所有可以显示的报表元素都显示在本窗口中，报表设计者可以在此窗口中改变显示对象的大小、位置、顺序等。可以选中显示的对象查看其属性。可以在此窗口中通过鼠标右键打开关联弹出式菜单，关联弹出式菜单中会列出当前选中对象的关联操作命令。

对象浏览窗口：以树形方式显示当前的报表模板中的所有对象，在树形界面控件中可以选中对象，不可见的对象只能在此进行选中。

属性编辑窗口：显示当前选中对象(有可能是多个)的属性项与属性值，并可以对属性值进行修改，或者是进入某些属性的属性编辑对话框。


New Page 1

选中对象 - 设计报表

在报表设计器中，只有选中报表对象之后才能对其进行操作，例如在属性编辑窗口中查看与修改属性值、删除对象、改变对象大小与位置等。Grid++Report 提供了多种方式进行报表对象的选中：

  1. 在报表布局窗口中显示了所有可显示的报表对象，在此窗口中可以选中显示出来的对象。
  • 通过鼠标点击选中被点击的对象。
  • 配合 Shift,Ctrl 按键可以进行多重选择，目前只有部件框、格标题格、内容格能够进行多重选中。
  • 通过鼠标拖拉矩形进行圈选，与矩形区域相交的部件框将被多重选中。
  • 按 Tab 或 Shift+Tab 按键在当前选中对象的同类对象之间切换选中。
  • 按 Esc 按键取消当前对象的选中，此时选中对象变成报表主对象。
  2. 执行快捷键 Ctrl+A 可以选中当前对象的全部同类对象或其所有子对象。
  3. 在对象浏览窗口中，所有的报表对象都已经按层次关系显示在树形控件中，通过选中对应的树节点来选中对应的对象。不可见的对象一般在此窗口中进行选中。在对象浏览窗口中不能进行多重选择。
  4. 在属性编辑窗口中，在顶端有对象下拉列表组合框，在当前选中为单个对象时，显示选择项为当前选中对象，通过改变组合框的当前项来选中对应对象。
  5. 集合属性对话框中可以通过选中集合元素项，并可以进行多选，参见集合属性对话框。


Designer

删除对象 - 设计报表

可以删除当前选中的对象，有以下几种方式可以执行删除操作。

  1. 按 Delete 按键。
  2. 执行主菜单命令：编辑-〉删除。
  3. 执行弹出式关联菜单命令：删除。
  4. 集合元素对象可以在集合属性对话框中进行删除操作。


Designer

剪切复制粘贴 - 设计报表

Grid++Report 报表设计器支持规范的剪切复制粘贴功能，这些操作不仅可以在同一报表上进行，还可以在不同的报表间进行。任何报表对象都可以进行剪切复制粘贴操作。

通过执行对应的快捷键或菜单项执行相应的操作，这些操作与 Windows 程序的规范操作保持完全一致。


New Page 1

设计栅格点 - 设计报表

Grid++Report可以使用厘米(cm)与英寸(inch)两种计量单位表示报表对象的位置与大小。在设计器中设计报表时，当改变使用的计量单位，整个报表模板中所有以计量单位表示的属性值将按照新旧计量单位之间的换算关系进行转换。通过设置报表主对象的Unit属性来设置整个报表使用的计量单位。

设计栅格点可以帮助报表开发者方便的将众多报表显示元素对齐。设计栅格点就是在报表布局窗口中每个节的显示区域显示的坐标点，报表设计者可以通过设置报表主对象的几个属性来改变设计格点的应用方式。

  1. GridColsPerUnit 设定在一个计量单位的宽度上显示几个栅格点，
  2. GridRowsPerUnit 设定在一个计量单位的高度上显示几个栅格点
  3. AlignToGrid 确定在拖放改变位置与大小时，是否强制对齐到设计栅格点。
  4. ShowGrid 确定是否显示栅格点。


New Page 1

集合对象设置对话框 - 设计报表

集合属性对话框列出某个集合对象的所有元素对象，可以在此窗口中增加，移除集合元素，可以在右边的集合元素属性编辑窗口中修改属性值，通过“上移”，“下移”按钮改变集合属性的顺序。集合元素对象可以在列表框中进行多重选择。

可以从主菜单“报表”项下进入各个集合属性对话框，另外也可以在选中集合对象的父对象时，从属性编辑窗口中对应的属性项进入。设计器中目前包括以下集合对象的集合属性对话框。

  1. 参数集合
  2. 字段集合
  3. 分组集合
  4. 列集合


Designer

快捷键 - 设计报表

Grid++Report 报表设计器程序的快捷键操作方式与 Windows 规范操作保持一致，下面常用快捷键操作对照列表。

Ctrl+O -- 打开文件
Ctrl+S -- 保存文件

Ctrl+Z -- 撤销上一步修改操作
Ctrl+Y -- 取消上一步撤销操作

Ctrl+X -- 剪切
Ctrl+C -- 复制
Ctrl+V -- 粘贴
Delete -- 删除
Ctrl+A -- 全选

F3 -- 普通视图
F4 -- 页面视图
F5 -- 预览视图
F6 -- 查询视图

F7 -- 中文界面
F8 -- 英文界面

F1 -- 帮助

方向键 -- 移动选中部件框，
Ctrl+方向键 -- 微调移动选中部件框
Shift+方向键 -- 微调选中部件框的大小


New Page 1

插入页眉与页脚 - 设计报表

以下说明插入页眉的操作过程，插入页脚有类似的过程，在此不重复叙述。

执行主菜单：“插入-〉页眉”命令。

---或者---

执行弹出式关联菜单：“插入-〉页眉”命令。

注意：因一个报表只允许定义一个页眉，如果已经存在页眉，则执行插入页眉的操作被禁止。


New Page 1

插入报表头与报表尾 - 设计报表

以下说明插入报表头的操作过程，插入报表尾有类似的过程，在此不重复叙述。

执行主菜单：“插入-〉报表头”命令。

---或者---

执行弹出式关联菜单：“插入-〉报表头”命令。

在一个报表中可以定义多个报表头与报表尾。报表头与报表尾可以设定是否在每一页重复显示。


New Page 1

调整报表头与报表尾顺序 - 设计报表

当存在多个报表头时，有可能需要改变报表头的显示顺序。以下说明改变报表头顺序的操作过程，改变报表尾顺序有类似的过程，在此不重复叙述。

在某个报表头的显示区域上执行弹出式关联菜单“上移”或“下移”命令。

注意：如果只存在一个报表头，“上移”与“下移”命令都不能执行。如果当前报表头位于所有报表头的最前面，“上移”命令不能执行。如果当前报表头位于所有报表头的最后面，“下移”命令不能执行。


New Page 1

插入部件框 - 设计报表

操作步骤

执行主菜单：“插入-〉%具体类型%框”命令。%具体类型%是指：静态、字段、统计，系统变量，图形之一。

---或者---

执行工具栏中某个插入部件框的按钮。

此时报表设计器将进入插入部件框状态，将鼠标光标移动到准备插入部件框的容器上，鼠标光标变成十字光标，在适当的位置点击鼠标，新部件框将插入到点击的位置。如果点击过程中拖动了鼠标，则部件框的大小为鼠标拖动位移量。设计器退出插入部件框状态。

注意：如果准备插入的部件框在部件框容器上是不可接受的，则鼠标光标变成禁止光标。在设计器处于插入部件框状态下，任何操作都将使设计器退出插入部件框状态。


New Page 1

报表参数 - 设计报表

定义参数

定义参数在参数集合对话框中进行，首先必须打开参数对话框，打开参数对话框方式如下：

执行主菜单：“报表-〉参数集合...”命令。

---或者---

选中报表主对象，在属性编辑窗口中选中属性项“参数集合...”，执行编辑框中的按钮。

打开参数对话框后，根据集合对话框的操作方式增加，移除参数。

根据参数数据查询自动生成参数

如果在报表主对象上定义了参数数据库查询SQL，就可以据此设置产生与查询SQL字段对应的参数。在报表运行时，参数数据库查询SQL查询出来的数据将自动赋值给与字段名称同名的参数。

执行主菜单：“编辑->根据参数查询SQL生成参数.”命令。

注意：因为没有二进制类型的参数，查询SQL中的二进制字段将不会产生对应的参数。在Grid++Report中，二进制数据通常都是作为图像框的图像数据，定义与二进制字段同名的图像框，在运行时，二进制字段的值将自动加载到同名图像框中。

关于参数的数据类型说明：

  1. 字符：用于记录字符值，无长度限制。
  2. 整数：用于记录整数值，根据格式串生成值的显示文字。
  3. 浮点数：用于记录浮点数值，根据格式串生成值的显示文字。
  4. 日期时间：用于记录日期时间值，根据格式串生成值的显示文字。
  5. 布尔：用于真假值，根据真值显示文字与假值显示文字生成值的显示文字。


New Page 1

参数数据库连接串与查询SQL - 设计报表

概述

在报表主对象上可以定义参数数据库查询SQL，参数数据库查询SQL为报表中的参数与部件框提供动态数据。报表运行时应用参数数据库查询SQL从数据库中取数，并将查询SQL各个字段的值赋值给同名的报表参数与部件框。参数数据库查询SQL通常应该只返回一条数据库记录，报表也只会应用第一条记录的数据。

报表可以利用参数数据库查询SQL自动定义对应报表参数。

定义参数数据库查询SQL

操作过程：

执行主菜单：“报表->参数数据库查询...”命令。

---或者---

在报表布局窗口中点击鼠标右键执行弹出式关联菜单：“参数数据源->参数数据查询...”命令。

---或者---

在对象浏览窗口中选中报表住对象，在属性编辑窗口中选中属性行“查询SQL” 或 “数据库连接”，执行编辑框中的按钮。

执行上面的操作会打开如下数据库连接串与查询SQL设置对话框：

打开“设置数据库连接串与查询SQL”对话框后，在窗口中的编辑框中编辑“数据库连接串”与“查询SQL”。执行“创建数据库连接串...”按钮可以通过向导的方式设置数据库连接串。执行“测试”按钮可以检测当前设置的正确性。

在执行“创建数据库连接串...”按钮之后，会打开如下窗口。

注意事项：

  1. 如果要连接到 Access 数据库，可以选定“Microsoft Jet 4.0 OLE DB Provider”这一项，然后执行“下一步>>”按钮进行其它的设置。

  2. 如果要连接到 SQL Server 数据库，可以选定“Microsoft OLE DB Provider for SQL Server”这一项，然后执行“下一步>>”按钮进行其它的设置。

  3. 在“连接”选项页中应该勾选“允许保存密码”项。

  4. 如果报表的明细数据库查询中已经定义了数据库连接串，这里可以忽略连接串的定义，报表将自动应用明细数据库查询中定义的数据库连接串。

根据参数数据库查询SQL自动生成报表参数

如果在报表主对象上定义了参数数据库查询SQL，就可以据此设置产生与查询SQL字段对应的参数。在报表运行时，参数数据库查询SQL查询出来的数据将自动赋值给与字段名称同名的参数。操作过程如下：

执行主菜单：“编辑->根据参数查询SQL生成参数”命令。

---或者---

在报表布局窗口中点击鼠标右键执行弹出式关联菜单：“参数数据源->自动生成参数”命令。

只要参数数据库查询SQL参数正确，执行操作后就会产生与查询SQL的字段对应的产生。因为没有二进制类型的参数，查询SQL中的二进制字段将不会产生对应的参数。在Grid++Report中，二进制数据通常都是作为图像框的图像数据，定义与二进制字段同名的图像框，在运行时，二进制字段的值将自动加载到同名图像框中。

请参见

定义明细数据库连接串与查询SQL | 定义明细网格


New Page 1

页面设置 - 设计报表

页面设置参数确定了报表在设计时使用的纸张信息，页面设置在页面设置对话框中进行，打开参数对话框方式如下：

执行主菜单：“报表-〉页面设置...”命令。

---或者---

选中报表主对象，在属性编辑窗口中选中属性行“Paper Setting”，执行编辑框中的按钮。

下图为页面设置窗口界面图


New Page 1

报表事件脚本 - 设计报表

报表主对象的事件都有对应的事件脚本属性对应，通过在脚本事件中编写 JScript 或 VBScript 代码实现对报表生成自定义控制。事件脚本编程可以在报表模板中直接实现对报表的自定义控制，通过修改报表莫板而不是修改源程序达到对报表运行行为的维护修改。

JScript 与 VBScript 是 Windows 系列操作系统内建支持的脚本语言，JScript 与 JavaScript 几乎是完全相同的，VBScript是类似 VB 语法的脚本语言。考虑到 JavaScript 是目前最流行的脚本编程语言，我们也建议大家在报表脚本中采用 JScript 脚本语言。在此提供一个 JScript 帮助文档的下载，点击下载 JScript 帮助文档。

事件脚本属性的名称为对应事件的名称再加上“Script”。如果事件由某个报表子对象的相关行为触发，则对应事件脚本属性定义在此子对象上；反之，其它的事件脚本属性定义在报表主对象上。脚本语言类型可以为 JScript 或 VBScript，通过报表主对象的“脚本类别(ScriptType)”属性指定该报表示使用的脚本语言类型。

在所有的事件脚本中，都有一个内建变量 Report 可以使用，其是对报表主对象的引用。如果事件有一个触发子对象与之关联，则有一个内建变量 Sender 可以使用，它是对触发事件的子对象的引用。如 FieldGetDisplayTextScript 脚本中，Sender 表示触发此事件的字段(IGRField)对象。

在选中对应的事件脚本属性之后,执行右边的“...”按钮可以打开脚本编辑窗口，在此窗口中输入脚本代码。下图为脚本编辑窗口界面：

在上面的脚本编辑窗口中，为字段的 FieldGetDisplayTextScript 事件脚本。其中的 Sender 表示字段对象，当其布尔值为真时，将字段的显示文本属性设为“热卖中”，反之设为另外的显示值。

在 Grid++Report 的安装目录的“Samples\Reports\Script”子目录下有几个使用事件脚本的例子报表模板。


New Page 1

定义明细网格 - 设计报表

操作步骤

执行主菜单：“插入-〉明细网格”命令。

---或者---

在报表布局窗口中执行弹出式关联菜单：“插入-〉明细网格”命令。

注意：因一个报表只允许定义一个明细网格，如果已经存在明细网格，则执行插入明细网格的操作被禁止。


New Page 1

定义明细数据库连接串与查询SQL - 设计报表明细网格

概述

设置明细数据库连接串与查询SQL之后,报表在设计时与运行时就可以直接从数据库中取得明细记录数据。只有定义了明细网格的报表才能设置明细数据库连接串与查询SQL。

定义明细数据库查询SQL

操作过程：

执行主菜单：“报表->明细数据库查询...”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上执行弹出式关联菜单：“明细数据库查询...”命令。

---或者---

在对象浏览窗口中选中明细网格的记录集（Recordset）对象，在属性编辑窗口中选中属性行“数据库连接(ConnectionString)” 或 “查询SQL(QuerySQL)”，执行编辑框中的按钮。

执行上面的操作会打开如下数据库连接串与查询SQL设置对话框：

打开“设置数据库连接串与查询SQL”对话框后，在窗口中的编辑框中编辑“数据库连接串”与“查询SQL”。执行“创建数据库连接串...”按钮可以通过向导的方式设置数据库连接串。执行“测试”按钮可以检测当前设置的正确性。

在执行“创建数据库连接串...”按钮之后，会打开如下窗口。

注意事项：

  1. 如果要连接到 Access 数据库，可以选定“Microsoft Jet 4.0 OLE DB Provider”这一项，然后执行“下一步>>”按钮进行其它的设置。

  2. 如果要连接到 SQL Server 数据库，可以选定“Microsoft OLE DB Provider for SQL Server”这一项，然后执行“下一步>>”按钮进行其它的设置。

  3. 在“连接”选项页中应该勾选“允许保存密码”项。

  4. 如果报表主对象的参数数据库查询中已经定义了连接串，这里可以忽略连接串的定义，报表将自动应用参数数据库查询中的连接串。

请参见

自动生成字段 | 定义明细网格 | 定义参数数据库查询


New Page 1

自动生成记录集的字段 - 设计报表明细网格

在定义了有效的明细数据库连接串与查询SQL之后，可以据此自动生成记录集的字段，生成的字段与查询SQL中包含的列保持一致。

执行主菜单：“编辑->根据明细查询SQL生成字段.”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上执行弹出式关联菜单：“自动生成字段”命令。

注意：

  1. 如果存在已定义的字段，在回答提示为确定之后，已定义的字段将被全部清除掉。
  2. 在生成完成之后，可以进行添加或移除字段操作。

请参见

定义字段 | 定义数据库连接串与查询SQL | 自动生成列


New Page 1

自动生成列 - 设计报表明细网格

在定义了报表记录集的字段之后，可以根据字段自动生成列的定义，过程如下：

执行主菜单：“编辑-〉根据字段生成列”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上打开弹出式关联菜单，执行“自动生成列”命令。

如果不存在字段定义，设计器将提示必须先定义字段，过程中止。如果已经有列存在，设计器将提示已存在的列将被全部清除掉，由报表开发者确定是否继续进行。生成过程成功之后，每个字段添加了一个对应的列，列的标题格的显示文字为字段的名称，列的内容格关联对应的字段。报表开发者根据需要删除不用显示的列、修改列标题格的显示文字、改变列的宽度、列的显示顺序等。

请参见

改变列的宽度 | 改变列的显示顺序


Designer

定义记录集字段 - 设计报表明细网格

直接插入一个新字段

执行主菜单：“插入-〉字段”命令。

---或者---

在报表布局窗口中执行弹出式关联菜单：“插入->字段”命令。

这样一个新的字段就会增加到报表的记录集对象中.

在字段集合对话框中定义字段

首先必须打开字段集合对话框，打开字段集合对话框方式如下：

执行主菜单：“报表-〉字段集合...”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上执行弹出式关联菜单：“字段集合...”命令。

---或者---

在对象浏览窗口中选中记录集（Recordset）对象，在属性编辑窗口中选中属性行“字段集合”，执行编辑框中的按钮。

打开字段集合对话框后，根据集合对话框的操作方式增加，移除字段。

注意：只有定义了明细网格之后才能定义字段。如果明细网格已经定义了数据源连接串与查询SQL，应该采用“根据查询SQL自动生成字段”的方法自动生成字段，在自动生成之后，可以采用本节的方式单个加入自定义的字段，如计算字段等。

请参见

集合对象属性对话框 根据查询SQL自动生成字段


New Page 1

定义列 - 设计报表明细网格

增加列必须在列集合对话框中进行，打开列集合对话框方式如下：

执行主菜单：“报表-〉列集合...”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上执行弹出式关联菜单：“列集合...”命令。

---或者---

在对象浏览窗口中选中明细网格（DetailGrid）对象，在属性编辑窗口中选中属性行“列集合”，执行右边编辑框中的按钮。

打开列集合对话框后，根据集合对话框的操作方式增加，移除列。

注意：

  1. 只有定义了明细网格之后才能定义列。
  2. 列的显示顺序不能在集合对话框中改变，因为列的显示顺序由列对应的标题格的顺序确定，只能在列标题布局对话框中改变列标题格的显示顺序来达到改变列的显示顺序，也可以通过拖动列标尺改变列的显示顺序。具体请参考： 改变列的显示顺序。

请参见

集合对话框 | 改变列的显示顺序 | 自动生成列


New Page 1

定义分组 - 设计报表明细网格

操作步骤

定义新的分组必须在分组集合对话框中进行。如果只修改已存在的分组，可以不进入分组集合对话框，先在对象浏览窗口选中分组，然后在属性编辑窗口中查看编辑分组的属性。打开分组集合对话框方式如下：

执行主菜单：“报表-〉分组...”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上执行弹出式关联菜单：“分组集合...”命令。

打开分组集合对话框后，根据集合对话框的操作方式增加，移除分组。当一个分组增加之后，其分组头与分组尾自动添加到明细网格的显示区域中。

注意：

  1. 当存在多个分组时，分组的顺序与报表数据生成与显示有很大的关系，一个先定义的分组在层次上嵌套后定义的分组，如先定义的分组结束一个分组项时，在其后定义的分组也要结束当前分组项。先定义的分组其分组头显示在前，其分组尾显示在后。
  2. 只有定义了明细网格之后才能定义分组
  3. 分组的依据字段可以定义多个字段，字段名之间用“;”号分隔，注意必须是英文分号字符。

记录顺序与分组

记录顺序与分组的生成有很大关系，一般的分组都要定义“依据字段”属性，根据此属性对应的字段产生分组项，原则上要求记录集的记录顺序是按分组依据字段排好序的。通常应该在查询报表数据时按分组依据字段进行排序，如果原始报表数据没有排序，可以设置记录集的“排序字段”属性与分组依据字段保持一致，这样Grid++Report将自动对记录数据进行重新排序，满足分组的要求。


New Page 1

分组单元格合并 - 设计报表明细网格

如果希望分组信息显示在列中且合并相同的内容，就应该定义分组单元格合并报表，也称为占列式分组报表。分组单元格合并报表首先需要定义一个分组，然后设置分组头的相关属性：指定分组的展现方式是分组单元格合并类型，分组单元格合并要显示的列，要展现的数据定义，数据在垂直方向上的显示对齐位置等。定义分组单元格合并的过程如下：

  1. 插入一个分组，并定义分组依据字段，具体过程可以参考上节的说明。
  2. 设定分组头的“占列式”属性为“是”，指定分组的展现方式是分组单元格合并类型。
  3. 设定分组头的“占据列”属性，如果要指定多个列，在选择第一个列之后，再输入其它列的名称，列名称之间用“;”隔开。到这一步就可以查看报表的运行效果。
  4. 如果分组的展现内容与对应的内容格不一样，也可以在分组头中重新定义。首先设定分组头的“显示同列”属性为“否”，然后在分组头中定义显示部件框。
  5. 设定分组头的“垂直对齐方式”属性可以指定显示位置。
  6. 设定分组头的“包括分组尾”属性可以指定分组尾对应的单元格是否被合并。

例子报表“2d.占列式分组.grf”、“2e.自定义占列式分组.grf”与“2f.多级占列式分组.grf”就是演示了分组单元格合并报表。

请参见

定义分组 | IGRGroupHeader 接口 | IGRGroupHeader.OccupyColumn 属性 | IGRGroupHeader.OccupiedColumns 属性 | IGRGroupHeader.SameAsColumn 属性 | IGRGroupHeader.IncludeFooter 属性


New Page 1

调整列宽度 - 设计报表明细网格

列作为不可见的报表元素，不会直接显示在报表布局窗口中，Grid++Report 的设计器提供了在布局窗口中通过拖放的方式改变列的宽度的功能。在明细网格的指示条下，显示有每列宽度的标尺，将鼠标光标移动到想要改变宽度的列标尺与后续相邻列标尺之间的分隔区域，此时鼠标光标应变为伸缩宽度光标（ [image] ），按住鼠标左键按钮进行拖放就可以改变列的宽度。

请参见

自动字段自动生成列 | 改变列的显示顺序


New Page 1

列的显示顺序 - 设计报表明细网格

改变列的显示顺序有两种方式：

方式1：

在列标尺上用鼠标拖放列对应的标尺改变该列的显示顺序。

方式2：

列的显示顺序由列所对应的列标题格的顺序确定，改变列标题格的顺序也就改变了列的显示顺序。改变列标题格的顺序在列标题布局对话框中进行。具体过程参见定义多层表头

请参见

自动字段自动生成列 | 改变列的显示宽度


New Page 1

定义多层表头 - 设计报表明细网格

打开定义窗口

多层表头在列标题布局对话框中定义，打开列标题布局对话框的过程如下：

执行主菜单：“报表-〉列顺序与多层表头...”命令。

---或者---

在报表布局窗口中明细网格所占据的区域上点鼠标右键打开弹出式关联菜单：“列顺序与多层表头...”命令。

执行之后会打开如下窗口:

在列顺序与多层表头对话框中可以执行如下主要操作：

  1. 增加一个列：执行“增加”按钮，在弹出式菜单中选择执行“列”项，一个新的列标题节点将添加到对话框的左边的树形界面控件中。

  2. 增加一个组标题：执行“增加”按钮，在弹出式菜单中选择执行“组标题格”项，一个新的组标题节点将添加到对话框的左边的树形界面控件中。

  3. 改变节点的顺序：通过“上移”，“下移”按钮移动当前选中节点的顺序，或者通过拖放节点也可以改变节点的顺序。节点顺序改变之后将反映在布局窗口的显示上。

  4. 改变节点的层次：通过“上级”，“下级”按钮改变当前选中节点的层次，注意，只有处于组节点中的节点才能进行上级动作，只有在当前节点之前存在组节点才能进行下级动作。也可以通过拖放节点改变节点的层次。节点层次改变之后将反映在布局窗口的显示上。

  5. 向组节点加入或去除下级节点：第4点改变节点的层次叙述了相同的目的。

  6. 改变选中节点对应的标题格对象的属性：在右边的属性编辑窗口中修改即可。

关于组标题格的说明:

组标题格就是多层表头的上层标题格，在列标题布局对话框中组标题格显示为具有文件夹图标的节点，组标题格必须要包含有下级标题格才会在明细网格中显示出来。通过将其它节点拖放进入组标题格实现其对下级标题格的包含。


New Page 1

定义自由格 - 设计报表明细网格

概述

Grid++Report 的明细内容在默认情况下是按列划分定义的，而不是像其它报表工具那样随意排列数据部件框。这样的实现方式非常适合设计表格报表，是设计表格报表最方便的方式。当某些情况下需要设计明细自由排列的报表时，通过简单的设置，锐浪报表也一样可以做到明细自由排列。

自由格是针对标题格与内容格来说的，当标题格与内容格成为自由格后，可以在格中插入任意种类，任意数量的部件框，格变成了像报表节一样的部件框容器。

设置自由格的过程

  1. 选中要改变格性质的标题格或内容格，在属性编辑对话框中选中“自由格(FreeCell)”属性行。

  2. 将属性设为 True，则选中格成为自由格。

  3. 将属性设为 False，则选中格成为非自由格。

自由格典型用途

  1. Grid++Report 的内容格默认为非自由格，通过关联一个字段来显示字段的文字内容。如果要在列中显示行号、记录号、图像、条形码、表达式运算等非字段直接显示文字，就需要将对应列的内容格设为自由格。在设置之后在格中会有一个字段框存在，首先将其删掉，然后在插入新的其它类型的字段框。如果要显示行号与记录号等系统变量数据，则插入一个系统变量框。如果要显示图像数据，则插入一个图像框。如果要进行表达式运算，插入一个综合文字框。
  2. 明细数据自由排列报表，非规则表格报表。
  3. 如果希望插入的部件框充满整个格的空间，将部件框的“停靠”属性设为“充满”。如果希望在自由格中插入更多的部件框，可以扩大格的宽度与高度。

下图为例子模板“1f.图像与文字.grf”的设计截图，从图中可以看出，整个明细网格只定义了一个列，列的内容格的“自由格”属性已经设为“是”，在此内容格中排列了多个不同类型的部件框。以这样的方式设计报表，Grid++Report 具有 Crystal Report、Fast Report 等国外报表工具类似的设计方式，所以说 Grid++Report 不仅有设计表格式报表不可比拟的优势，也同样不缺任意排列布局的能力。

注意事项

  1. 必须定义列之后才能定义自由格，如果一个列都不存在，应该首先插入列。
  2. 自由格的定义是在选中内容格与标题格时进行，而不是选中列。
  3. 如果是一个完全的自由排列报表，就像例子“1f.图像与文字.grf”那样，通常只定义一个列，且列的宽度等同页面显示区域宽度。
  4. 如果是在一个多列报表中插入一个非字段部件框，通常将此部件框的“停靠”属性设为“充满”，让部件框充满整个格的空间，如例子“5b.显示行号.grf”。

相关例子

  1. 1f.图像与文字.grf
  2. 1k.明细自由编排.grf
  3. 1i.条形码.grf
  4. 5b.显示行号.grf


设计交叉表概述 - 设计交叉报表

交叉表概述

Grid++Report 提供了专门的交叉表功能，只要进行简单的属性设置就可以开发出专业的交叉分析报表。交叉报表让用户以紧凑的方式展现数据，并可以比较数据并确定趋势。交叉表功能构建在本产品的核心部件明细网格之上，在定义了明细网格之后，再设定交叉表对象的几个属性就可以完成交叉表的设计。

下图是用本产品设计的一个交叉表，从图中可以看出：纵向前两列显示客户信息，横向各列标题显示产品信息，其它行列相交的表格格子显示对应客户对应产品的销售金额。在最后一列对本行的数据进行求和，显示某个客户合计的销售金额。在最后一行对本列的数据进行求和，显示某个产品合计的销售金额。

交叉表明细网格设计

下图是一个交叉表定义的明细网格，从图中的标注可以看出，这里将所有的列分为三大类：纵向交叉列、横向交叉列、横向合计列。

  1. 纵向交叉列：在报表生成时保持纵向伸展不变，用来显示纵向交叉的项目。纵向交叉列是明细网格中最前面的一列或几列。
  2. 横向交叉列：在报表生成时向横向方向延展，每个横向交叉数据项都会根据横向交叉列的定义创建对应的显示列。横向交叉列紧随纵向交叉列之后。
  3. 横向合计列：如果需要在横向方向上对数据进行合计统计，就需要定义横向合计列。横向合计列位于横向交叉列之后，不用进行横向求合统计的报表就不需定义横向合计列。

请参见

交叉表设计要素


交叉表设计要素

设计交叉表要素 - 设计交叉报表

设计过程

综合分析来看，定义一个交叉表需要考虑以下因素：

  1. 首先要确定交叉表的数据，定义报表记录集字段项。如果是采用拉模式向报表提供数据，首先定义好查询SQL语句。
  2. 确定纵向交叉数据项，并在明细网格上定义对应的显示列，即纵向交叉列。
  3. 确定横向交叉数据项，横向交叉数据项不用在明细网格上定义对应的显示列，其在运行时会根据横向交叉列的定义生成对应的显示列。
  4. 确定数据横向延展的显示列，即上图中的横向交叉列。
  5. 交叉表是否需要进行横向求和统计。
  6. 交叉表是否需要进行纵向求和统计。
  7. 交叉表是否需要进行横向求比重百分比计算。
  8. 交叉表是否需要进行纵向求比重百分比计算。
  9. 交叉表是否按照日期间进行统计分析。

后面将用具体步骤说明实现交叉表各个要素的操作过程，设计出来的结果与本产品例子模板基本对应，实现按客户与产品相交的统计销售金额的交叉表。

请参见

交叉表概述 | 设计第一个交叉表


交叉表起步

设计第一个交叉表 - 设计交叉报表

设计过程

首先设计一个类似例子模板“3a.交叉表准备.grf”的普通列表报表，或者直接打开“3a.交叉表准备.grf”这个报表开始后面的学习步骤。

  1. 设定明细网格的“交叉表方式”属性为“是”指定本报表为一个交叉报表，此时明细网格具有了一个交叉表子对象，在报表对象浏览窗口的明细网格下可以找到“交叉表”节点，选中此节点让交叉表成为当前选中对象。
  2. 设定纵向交叉字段：设置交叉表的“纵向交叉字段”属性为“CustomerId”。
  3. 设定横向交叉字段：设置交叉表的“横向交叉字段”属性为“ProductID”。
  4. 设定纵向交叉列：设置交叉表的“项目列数”属性为“2”，这样指定明细网格的前两列为纵向交叉列，紧随其后的“金额”列为横向交叉列。
  5. 设定横向交叉列的标题，在标题格中插入字段框来实现动态的表格标题：选中“金额”列的标题格，设置其“自由格”属性为“是”；删除格中的静态框，然后插入一个字段框，字段框的“数据字段”属性为“ProductName”；最后设定字段框的“停靠”属性为“充满”。
通过以上过程就完成了一个最简单的交叉表定义，会得到一个类似例子模板“3a.交叉表起步.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

请参见

交叉表概述 | 交叉表设计要素 | 设计横向求和交叉表


交叉表横向求和

设计横向求和交叉表 - 设计交叉报表

设计过程

在上一节的基础上加上横向求和功能。
  1. 首先插入合计列：执行菜单“查入”-〉“列”。
  2. 设定新列内容格关联的字段为“Amount”。
  3. 设定横向合计列：选中交叉表对象，设定其属性“合计列数”为“1”，这样指定刚才新增的列为横向合计列。
以上过程完成了交叉表横向求和功能。进行一些其它设定与调整，会得到一个类似例子模板“3b.交叉表横向合计.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

注意：横向求和关联的字段必须为数字类型的字段，不然就不会求出横向合计数。

请参见

交叉表概述 | 交叉表设计要素 | 设计第一个交叉表 | 设计纵向求和交叉表


交叉表纵向求和

设计纵向求和交叉表 - 设计交叉报表

设计过程

在上一节的基础上为报表加上纵向求和功能。在交叉报表中定义的分组将会自动在分组头与分组尾中进行交叉数据纵向求和。如果希望合计显示在表格底端，可以隐藏分组头，反之则隐藏分组尾。

  1. 首先插入求和分组：执行菜单“查入”-〉“分组”。
  2. 设定合计数据显示位置：将分组头的高度设为“0”隐藏分组头，求和数据将在分组尾中显示，这样求和数据就会显示在表格的底端。
  3. 在分组尾中插入一个静态框，其“文本”属性为“合计”，并设定其“对齐列”与“对齐列扩展”属性为网格前两列的名称。

以上过程完成了交叉表纵向求和功能。进行一些其它设定与调整，会得到一个类似例子模板“3c.交叉表纵向合计.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

请参见

交叉表概述 | 交叉表设计要素 | 设计横向求和交叉表 | 设计横向求比率交叉表


交叉表横向求比率

设计横向求百分比交叉表 - 设计交叉报表

设计过程

在上一节的基础上为报表加上横向求比重百分比功能。首先在网格中定义列用来显示比重百分比，然后在交叉表中指定列为横向求比率列。如果要在合计中也要加上比率列，再次插入新列用来显示合计比重百分比，合计比重百分比的值始终为100%。这样设计之后，一般需要将表头设计为多层表头，以便对同一数据的原始数据列与比重百分比列在表头上归类。

  1. 插入横向求比重百分比列：执行菜单“查入”-〉“列”，设定此新列的“名称”属性为“HPercent”，其内容格的“数据字段”属性为“Amount”。
  2. 插入合计横向求比重百分比列：执行菜单“查入”-〉“列”，设定此新列的“名称”属性为“HTotalPercent”，其内容格的“数据字段”属性为“Amount”。
  3. 设计表格多层表头：执行菜单“报表”-〉“列标题布局”，打开列标题布局对话框，在其中设计出类似例子模板“3d.交叉表横向百分比.grf”那样的表头。
  4. 设置交叉表横向求比率列：选中交叉表，设置其“横向求比率列”属性为“HPercent”。
  5. 设置交叉表合计横向求比率列：选中交叉表，设置其“合计横向求比率列”属性为“HTotalPercent”。
  6. 重新设定横向合计列：选中交叉表，设置其“合计列数”属性为“2”。

以上过程完成了交叉表横向求比重百分比功能。进行一些其它设定与调整，会得到一个类似例子模板“3d.交叉表横向百分比.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

请参见

交叉表概述 | 交叉表设计要素 | 设计纵向求和交叉表 | 设计纵向求比率交叉表


交叉表纵向求比率

设计纵向求百分比交叉表 - 设计交叉报表

设计过程

在上一节的基础上为报表加上纵向求比重百分比功能。首先在网格中定义列用来显示比重百分比，然后在交叉表中指定列为纵向求比率列。如果要在合计中也要加上比率列，再次插入新列用来显示合计比重百分比，然后在交叉表中指定列为合计纵向求比率列。这样设计之后，一般需要将表头设计为多层表头，以便对同一数据的原始数据列与比重百分比列在表头上归类。

  1. 插入纵向求比重百分比列：执行菜单“查入”-〉“列”，设定此新列的“名称”属性为“VPercent”，其内容格的“数据字段”属性为“Amount”。
  2. 插入合计纵向求比重百分比列：执行菜单“查入”-〉“列”，设定此新列的“名称”属性为“VTotalPercent”，其内容格的“数据字段”属性为“Amount”。
  3. 设计表格多层表头：执行菜单“报表”-〉“列标题布局”，打开列标题布局对话框，在其中设计出类似例子模板“3e.交叉表纵向百分比.grf”那样的表头。
  4. 设置交叉表纵向求比率列：选中交叉表，设置其“纵向求比率列”属性为“VPercent”。
  5. 设置交叉表合计纵向求比率列：选中交叉表，设置其“合计纵向求比率列”属性为“VTotalPercent”。
  6. 重新设定横向合计列：选中交叉表，设置其“合计列数”属性为“3”。

以上过程完成了交叉表横向求比重百分比功能。进行一些其它设定与调整，会得到一个类似例子模板“3e.交叉表纵向百分比.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

请参见


交叉表按期间交叉

设计日期期间交叉表 - 设计交叉报表

设计过程

按期间交叉报表就是按时间段对数据进行归类汇总并进行交叉展现的报表，例如常见的各种日报表月报表等。设计按期间交叉报表，要确定日期期间类型，并确定整个数据的日期范围。在生成报表时，将根据期间类型把日期范围划分为一个个的期间项。

在进行了交叉表的基本设置之后，按期间交叉报表还需要进行以下方面的设置：

  1. 交叉表的“横向交叉字段”属性一定要关联一个日期类型的字段。
  2. 设置交叉表的“横向交叉期间类型”属性。
  3. 定义两个日期类型的报表参数，其分别确定报表数据的起始日期与结束日期。
  4. 设置交叉表的“开始日期参数”属性为第3点中定义的起始日期参数名称。
  5. 设置交叉表的“结束日期参数”属性为第3点中定义的结束日期参数名称。

例子模板“3f.交叉表按日交叉.grf”是一个日报表，例子模板“3g.交叉表按月交叉.grf”是一个月报表。这两个报表都比较简单，根据前面报表的设计说明，一样可以加上求合计与求比率功能。

请参见

交叉表概述 | 交叉表设计要素


交叉表横向求比率

设计横向求平均交叉表(自定义横向统计) - 设计交叉报表

设计过程

定义一个合计列，将此列的内容格改为自由格，在内容格中插入一个统计框，指定统计框的统计函数设为“平均”，这样就指示此列为横向求平均列。这样定义之后，在运行时就会求出横向平均值。下面的过程说明在例子模板“3c.交叉表纵向合计.grf”的基础上增加横向求平均的功能。

  1. 插入横向求平均列：执行菜单“查入”-〉“列”，设定此新列的“名称”属性为“HAverage”。
  2. 选中此列的内容格，设置其“自由格”属性为“是”。
  3. 在内容格插入一个统计框，设置其“停靠”属性为“充满”，其“统计函数”属性为“平均”，其“数据字段”属性为“Amount”。
  4. 重新设定横向合计列：选中交叉表，设置其“合计列数”属性为“2”。

再进行一些其它设定与调整，会得到一个类似例子模板“3o.交叉表横向平均.grf”的报表。进入查询视图或预览视图就可以看到运行效果。

特别说明：统计框的统计函数可以设定为其它的，这样就可以实现其它方式的横向统计，如：个数、最大值、最小值，非空值平均等。

请参见

交叉表概述 | 交叉表设计要素 | 设计纵向求和交叉表 | 设计纵向求比率交叉表


交叉表横向求比率

设计横向小计交叉表 - 设计交叉报表

设计过程

实现交叉表横向小计要点如下：

  1. 通过定义动态的多层表头交叉表，报表在运行时根据上层表头的变化产生横向数据分组，在每个分组的后面会自动产生小计列。
  2. 如何定义动态的多层表头交叉表：将上层表头对应的标题格设为自由格，在其中插入字段框并关联对应子段。
  3. 在定义专门的横向小计列：定义交叉表的“小计列数”指定小计列，小计列在合计列之前。

参考例子模板：

  1. 3m.交叉表横向小计.grf
  2. 3n.交叉表横向小计.grf

请参见

交叉表概述 | 交叉表设计要素 | 设计多层表头报表


Designer

格式化应用对象 - 设计报表

在 Grid++Report 中很多报表数据需要通过一定的格式化规则展现出用户需要的显示方式，同一数据配以不同的格式化规则，会得到不同的显示内容。一般是通过对象的格式化串属性来指定数据的格式化规则，格式化串的属性名称为“格式(Format)”。有以下报表子对象可以设置数据显示格式：

  1. 字段：不同类型字段应用不同类型的显示格式，整数与浮点数类型字段可以设置数字显示格式，日期时间类型字段可以设置日期时间显示格式，布尔类型字段可以设置布尔显示格式。
  2. 参数：不同类型参数应用不同类型的显示格式，整数与浮点数类型参数可以设置数字显示格式，日期时间类型参数可以设置日期时间显示格式，布尔类型参数可以设置布尔显示格式。
  3. 统计框：统计框在运行时产生的统计数据是数字类型，在统计框上可以设置数字显示格式，以便格式化出统计结果显示文字。
  4. 系统变量框：如果设定的系统变量为“当前日期时间”，则应用日期时间显示格式；如果设定其它系统变量，则应用数字显示格式。
  5. 综合文字框：综合文字框可以定义算术运算表达式，可以为表达式的运算结果设定数字显示格式。如果综合文字框只是仅仅关联一个数据项报表子对象，如果不想以关联子对象设定的数据格式化方式产生显示文字，也可以在综合文字框中设定自己的显示格式。综合文字框没有专门的“格式”属性，显示格式作为表达式定义的一部分存在。

Grid++Report 为定义数据显示格式实现了专门的设置对话框，通过这些设置对话框可以很直观的设置数据显示格式。在选中对象的“格式”属性之后，点击属性值编辑框右端的“...”按钮可以打开对应的显示格式设置对话框。综合文字框在其“文本”属性下的表达式定义对话框中可以进入显示格式设置对话框。

Grid++Report 的数据格式化规则与主流编程平台基本保持一致。在显示格式设置对话框中预先定义了很多常用格式，这些常用格式基本满足我们的日常需要，可以从这些预设格式中选用我们想要的。通过观察这些预设格式对模拟数据的示范输出，也可以基本了解格式串的格式化规则，从而可以输入自己想要的自定义格式串。


Designer

数字格式化 - 设计报表

数字格式设置对话框

下图为数字格式设置对话框。对话框中预先定义了很多常用格式，并对这些常用格式进行了分类，可以从预设格式列表中选择想要的格式。也可以在右上方的格式编辑框中直接输入格式文字。在左下方提供了小数位输入编辑框及其它格式选项设置 CheckBox 控件，通过这些控件可以定义格式，最新定义的格式串将反映在格式编辑框中。在右下方的示例框中，会用当前设置的格式串格式化出测试数据的显示文字，从而直接观察格式串的效果。

下表列出数字格式串中字符的含义：

字符 | 含义
0 | 数字占位符。显示一个数字或 0。如果表达式在格式字符串中出现 0 的位置上有数字，则显示该数字；否则在该位置显示 0。 如果数字的位数少于格式表达式中 0 的个数（小数点任一侧），则显示前导零或尾随零。如果数字的小数点分隔符右侧的位数多于格式表达式中小数点分隔符右侧零的个数，则将数字舍入到与零的个数相同的小数位置。如果数字的小数点分隔符左侧的位数多于格式表达式中小数点分隔符左侧零的个数，则不做任何修改地显示额外的数字。
# | 数字占位符。显示一个数字或不显示任何数字。如果表达式在格式字符串中出现 # 字符的位置上有数字，则显示该数字；否则该位置不显示任何数字。 该符号与 0 数字占位符的作用相似，不同的是当数字的位数少于格式表达式中小数点分隔符任一侧 # 字符的个数时，不显示前导零和尾随零
. | 小数点占位符。小数点占位符确定小数点分隔符两侧显示的数字个数。如果格式表达式中该符号的左侧只包含 # 字符，则小于 1 的数字将以小数点分隔符开头。若要显示与小数一起显示的前导零，请将零用作小数点分隔符左侧的第一个数字占位符。在某些区域设置中，逗号用作小数点分隔符。格式化输出中用作小数点占位符的实际字符取决于系统所识别的数字格式。这样，即使所在的区域使用逗号作为小数点占位符，也应该使用句点作为格式中的小数点占位符。格式化的字符串将以相应于区域设置的正确格式显示。
, | 千分位分隔符。只要千分位分隔符在格式串中出现,超过 1000 的数据就会显示千分位。
% | 百分比占位符。用 100 乘以数据再格式化，并在最后显示百分比符号(%)。
( 与 ) | 负数括号显示占位符。在格式化负数时，负数符号不会生成，而是在左右两端加上“(”与“)”。
$ | 货币符号占位符。根据 Windows 系统当前的区域设置得到对应货币表示符号，并显示在货币符号占位符出现的位置。
$$ | 汉字大写金额格式。当格式串仅为两个$符号时，数字将以大写金额的方式显示，格式化之前数字保留两位小数，按四舍五入规则截除多余小数位。 如 1234.8765 显示为“壹千贰佰叁拾肆元捌角捌分”。
$$+普通格式 | 汉字大写数字格式。当格式串为两个$符号加普通数据格式时，数字将以大写数字的方式显示。 如格式为$$0.###，数值 1234.8765 显示为“壹千贰佰叁拾肆点捌柒柒”。
$$$ | 纯汉字大写数字格式。当格式串中同时包含三个连在一起的$符号时，表示数字将被格式化成纯大写金额数字。 这种方式与“$$”的区别就是输出中不包含“拾佰千”等金额位文字，且连续出现的 0 也会重复输出，通过格式串的其它部分还可以指定小数位数。这种格式显示可用于发票等需要套打大写金额的地方。 如对 1234.8765 应用“$$$0.00”，会显示为“壹贰叁肆捌捌”。
; | 分别定义正数值，负数值与零值的显示格式占位符。见下面详细说明。
e | 格式串中首字母为 e 表示采用科学计数法。
其它字符 | 根据其出现位置，会追加在格式化出来的数字文字的左端或右端。

正数、负数与零分别设定显示格式

如果对正数值，负数值与零值要按照不同的格式规则进行格式化时，可以为每种类型数字设定不同的显示格式，每种类型数字的显示格式通过“;”分隔。第一部分为正数的显示格式，第二部分为负数的显示格式，第三部分为零的显示格式。如果负数的显示格式或零的显示格式没有设置，这其应用正数的显示格式。

举例：实现零值不显示的显示格式为“#,##0.00;;#”，正数的显示格式为“#,##0.00”；负数的显示格式为空，负数与正数应用相同的显示格式。零的显示格式为“#”，所以 0 不会格式化出任何文字，从而实现 0 值不显示。


Designer

日期时间格式化 - 设计报表

日期时间格式设置对话框

下图为日期时间格式设置对话框。对话框中预先定义了很多常用格式，并对这些常用格式进行了分类，可以从预设格式列表中选择想要的格式。也可以在右上方的格式编辑框中直接输入格式文字。在右下方的示例框中，会用设置的格式串格式化出当前电脑的日期时间的显示文字，从而直接观察格式串的效果。

下表列出日期时间格式串中字符的含义：

字符 | 含义
: | 时间分隔符。在某些区域设置中，可以使用其他字符表示时间分隔符。时间分隔符在格式化时间值时分隔小时、分钟和秒。格式化输出中用作时间分隔符的实际字符由系统的 LocaleID 值确定。
/ | 日期分隔符。在某些区域设置中，可以使用其他字符表示日期分隔符。日期分隔符在格式化日期值时分隔日、月和年。格式化输出中用作日期分隔符的实际字符由您的区域设置确定。
%d | 根据区域设置产生日期。
%t | 根据区域设置产生时间。
%g | 根据区域设置产生日期时间。
d | 将日显示为不带前导零的数字（如 1）。
dd | 将日显示为带前导零的数字（如 01）。
ddd | 将日显示为缩写形式（例如 Sun）。
dddd | 将日显示为全名（例如 Sunday）。
M | 将月份显示为不带前导零的数字（如一月表示为 1）。
MM | 将月份显示为带前导零的数字（例如 01/12/01）。
MMM | 将月份显示为本地语言缩写形式（例如 五月）。
MMMM | 将月份显示为本地语言完整月份名（例如 五月）。
mmm | 将月份显示为英文缩写形式（例如 Jan）。
mmmm | 将月份显示为英文完整月份名（例如 January）。
h | 使用 12 小时制将小时显示为不带前导零的数字（例如 1:15:15 PM）。
hh | 使用 12 小时制将小时显示为带前导零的数字（例如 01:15:15 PM）。
H | 使用 24 小时制将小时显示为不带前导零的数字（例如 1:15:15）。
HH | 使用 24 小时制将小时显示为带前导零的数字（例如 01:15:15）。
m | 将分钟显示为不带前导零的数字（例如 12:1:15）。
mm | 将分钟显示为带前导零的数字（例如 12:01:15）。
s | 将秒显示为不带前导零的数字（例如 12:15:5）。
ss | 将秒显示为带前导零的数字（例如 12:15:05）。
tt | 使用 12 小时制，并对中午之前任一小时显示大写的 AM；对中午到 11:59 P.M 之间的任一小时显示大写的 PM。
y | 将年份 (0-9) 显示为不带前导零的数字。
yy | 以带前导零的两位数字格式显示年份（如果适用）。
yyy | 以四位数字格式显示年份。
yyyy | 以四位数字格式显示年份。
其它字符 | 根据其出现位置，原样输出在对应的位置。


Designer

布尔数据格式化 - 设计报表

布尔格式设置对话框

下图为布尔格式设置对话框。对话框中预先定义了很多常用格式，可以从预设格式列表中选择想要的格式。也可以在右上方的格式编辑框中直接输入格式文字。在右下方的示例框中，会用设置的格式串格式化出真值与假值的显示文字从而直接观察格式串的效果。

关于格式串的说明

因为布尔(逻辑)类型数据只有两种可能值:真或假，所以布尔格式也很简单，通过“:”将整个格式串分隔成两部分，左边部分就是真值的显示文字，右边部分就是假值的显示文字。如果某一部分没有定义，对应的值也不会格式化出显示文字。


New Page 1

浮动部件框 - 设计报表

关于浮动部件框

浮动部件框是指在报表页的固定位置浮动显示的部件框，默认情况下浮动部件框在每页都会显示。浮动部件框有点类似页眉页脚上的部件框，但其可以在页面的任意位置。浮动部件框通常可以实现表格旁边的测边文字、电子签章、显示在报表内容下面的水印文字与图像等。

如何插入浮动部件框

插入浮动部件框必须首先进入页面视图，然后点击鼠标右键打开弹出式关联菜单，选择“显示浮动节”菜单项，这样就进入浮动部件框设计状态，此时就可以根据需要插入需要的的部件框。

以水印方式显示浮动部件框

浮动部件框通常显示在其它报表内容的上面，即显示了本页的其它报表内容之后再显示浮动部件框。通过将浮动部件框的“标识(Tag)”属性设置为“WATERMARK”(注意：字母必须全部为大写)，这样就可以指定浮动部件框以水印方式显示，即最先显示这些下沉的水印浮动部件框，然后再显示其它报表内容。

控制浮动部件框在特定页显示

默认情况下，浮动部件框会在报表的每页中显示，且显示的位置是固定的。通过报表脚本或报表事件代码可以控制浮动部件框按照一定的条件显示或隐藏。通常是在报表主对象的“IGridppReport.PageStartScript(页开始脚本)”属性或“IGridppReport.PageStart”事件中根据条件设置对应浮动部件框的“Visible”属性。

下面是写在报表主对象的“页开始脚本”属性中的脚本代码：

//控制浮动部件框"mbFirstPage"只在第一页显示
Report.ControlByName("mbFirstPage").Visible = (Report.SystemVarValue(3) == 1);

//控制浮动部件框"mbLastPage"只在最后一页显示
Report.ControlByName("mbLastPage").Visible = (Report.SystemVarValue(3) == Report.SystemVarValue(2));

相关例子

  1. C:\Grid++Report 5.0\Samples\Reports\4f.水印文字.grf
  2. C:\Grid++Report 5.0\Samples\Reports\4o.电子印章.grf
  3. C:\Grid++Report 5.0\Samples\Reports\4m.多联票据打印.grf


在报表运行时通过编程接口为图表提供数据

报表数据 - 开发指南

报表数据概述

通常开发报表的过程是报表开发者首先用报表设计器设计出报表样式，也即报表模板文件，在 Grid++Report 中模板文件的扩展名通常为.grf。然后开发者将报表模板应用在自己开发的程序中，并在程序中为报表加载数据，这些数据通常都是动态的，在不同的运行场景下，其产生的报表都不一样。

在设计报表时，通过设置报表的明细数据库查询参数为报表提供明细数据，明细数据通常是有多笔记录的数据，Grid++Report根据明细记录伸展产生报表表格。根据明细数据库查询参数可以自动创建报表字段。参考：定义明细数据库连接串与查询SQL。

在设计报表时，通过设置报表的参数数据库查询参数为报表提供参数数据，参数数据通常只有一笔记录数据，Grid++Report也只会应用第一笔记录。这里所指参数数据不仅仅是指报表参数的数据，同时也包括各种部件框的数据。根据参数数据库查询参数获取的数据将根据名称匹配方法，自动将字段的数据加载到同名参数或部件框上。根据参数数据库查询参数可以自动创建报表参数。参考：定义参数数据库连接串与查询SQL。

报表在运行时，通常会根据不同的场景产生不同的报表数据，这就要求开发者在程序中为报表按场景提供动态数据，如按条件动态构建查询SQL语句，将程序中读到的数据加载到报表中。后面的主题将就报表动态数据进行说明。

请参见

用代码提供参数化数据 | 提供明细数据 | 分批提供明细数据 | 开发多数据源报表


在报表运行时通过编程接口为图表提供数据

报表参数数据 - 开发指南

动态设置报表参数数据库连接串与查询SQL

在设计时设定的数据库连接串与查询SQL有可能不能适应报表运行时的要求，如软件部署后其数据库连接串很难与设计时一致，而查询SQL也需要根据不同的查询条件进行数据查询，这些情况都需要用程序代码去进行动态设置，其设置代码类同如下：

Report.ConnectionString = "...";
Report.QuerySQL = "...";

根据参数数据库连接串与查询SQL从数据库查询出来的数据将自动加载到与SQL字段同名的报表参数或部件框中。

如果报表明细记录集上的数据库连接串已经设置，这里的参数数据库连接串可以不设置，在运行时将应用报表明细记录集上的数据库连接串。

用代码设置参数的数据

用 ParameterByName 方法根据参数名称找到对应报表参数对象，然后就可以给参数设置各种数据类型的值。

//为参数设置文字数据，值为字符串
Report.ParameterByName("Parameter1").AsString = "...";

//为参数设置布尔数据，值为true或false
Report.ParameterByName("Parameter1").AsBoolean = true;

//为参数设置日期数据，值为日期时间类型
Report.ParameterByName("Parameter1").AsDateTime = ...;

//为参数设置小数数据，值为浮点类型
Report.ParameterByName("Parameter1").AsFloat = 9.78;

//为参数设置整数数据，值为整数类型
Report.ParameterByName("Parameter1").AsInteger = 95;

用代码设置部件框的数据

用 ControlByName 方法根据部件框名称找到对应部件框对象，然后就可以给部件框的数据属性设置对应数据类型的值。通常需要设置动态值的部件框有：静态框、综合文字框、图像框、条形码框。

//为静态框设置文本属性值，值为字符串
Report.ControlByName("StaticBox1").AsStaticBox.Text = "...";

//为综合文字框设置文本属性值，值为字符串
Report.ControlByName("MemoBox1").AsMemoBox.Text = "...";

//为图像框载入动态图像数据，用LoadFromFile方法载入，参数为图像文件的文件路径或URL
Report.ControlByName("PictureBox1").AsPictureBox.LoadFromFile("%参数为图像文件的文件路径或URL%");

//为条形码框设置文本属性值，值为字符串
Report.ControlByName("Barcode1").AsBarcode.Text = "...";


在报表运行时通过编程接口为图表提供数据

报表明细数据 - 开发指南

动态设置明细数据库连接串与查询SQL

在设计时设定的数据库连接串与查询SQL有可能不符合报表运行时的要求，如软件部署后其数据库连接串很难与设计时一致，而查询SQL也需要根据不同的查询条件进行数据查询，这些情况都需要用程序代码去进行动态设置，开发者应该根据软件的运行环境动态构造出是数据库连接串，根据查询条件动态构造出查询SQL，从而实现动态的报表数据。其设置代码类同如下：

Report.DetailGrid.Recordset.ConnectionString = "...";
Report.DetailGrid.Recordset.QuerySQL = "...";

只有当报表具有明细网格时，才能进行上面的设置。根据明细数据库连接串与查询SQL从数据库查询出来的数据将自动加载到报表的记录集中。

如果报表主对象上的参数数据库连接串已经设置，这里的明细数据库连接串可以不设置，在运行时将应用报表主对象上的参数数据库连接串。

用推模式为报表提供数据

如果报表的数据已经存在于程序内存中，或者报表数据不能直接通过OLE DB数据驱动读取，报表开发者可以将数据读入到内存中。这些在内存中的数据都可以通过编程接口加载到报表。更多信息请参考：报表数据的拉模式与推模式的说明，向记录集加载数据。

相关例子

C/S报表组件例子: 5.ManualFillRecord、Advance\CustomGroup

请参见

报表数据的拉模式与推模式的说明 | 动态设置报表数据库连接串 | 动态设置报表数据查询SQL


在报表运行时通过编程接口为图表提供数据

明细数据分批次获取 - 开发指南

报表明细数据分批次获取

如果报表的明细数据量特别多时，如超过10万条记录，如果一次性将数据全部读出，需要一定的时间与电脑资源开销，这样对报表访问者不会有很好的使用体验。这时使用分批按需读入报表明细数据就是最好的解决方式。Grid++Report提供了分批读取数据的功能。分批读取数据只能在用查询显示器(GRDisplayViewer)展现报表时使用。

设置GRDisplayViewer的BatchGetRecrod属性为true，此查询显示器在展现报表时，报表的数据将按需要分批次获取。WEB报表插件在请求批次数据时将触发GRDisplayViewer的BatchFetchRecord事件，而C/S报表组件在请求批次数据时将触发报表主对象上的FetchRecord事件。在事件响应中，开发者应该为报表提供对应批次的数据。读取GRDisplayViewer的BatchWantRecords、BatchNo、BatchStartRecNo等属性可以得到数据的批次信息，根据这些信息去读取相应的批次数据。

相关例子

B/S报表插件例子: 11.BatchData\


New Page 1

数据源报表 - 开发指南

开发与设计多数据源报表

在一个报表中，只能插入一个明细网格，一个明细网格在运行时产生一个表格。为了在一个报表中产生多个表格，就需要借助子报表功能，每个子报表都可以产生一个表格，利用多个子报表就可以实现多表格报表。子报表还可以位于明细网格中，明细网格中的子报表在运行时会多次生成，这样可以得到表格中的表格报表，且子表格是动态的。利用 Grid++Report 的子报表功能可以实现各种形式的多数据源报表，更多信息请参考子报表相关帮助。

请参见

子报表开发指南 | IGRSubReport


在报表中使用图像

报表中的图像 - 开发指南

概述

Grid++Report 提供了图像框用来显示多种格式图像，包括 bmp、jpeg、gif、png、wmf、emf 等多种常用格式。通过设置图像框的属性可以用多种缩放与布局方式显示图像。图像数据一般比较大，在不影响图像输出效果的前提下，应该不要采用太高分辨率的图像，以免影响报表的运行性能。

提供了多种图像数据来源方式，包括：

  1. 引用共享图像集合中的图像。
  2. 引用系统图标。
  3. 在报表设计时将图像数据保存在报表模板文件中。
  4. 在报表运行时从图像文件中载入。
  5. 关联二进制字段，载入二进制字段值中的图像数据。

关于图像集合

图像集合定义在报表主对象中，在图像集合中一般定义需要在报表中多次显示的图像。图像集合中的图像通过序号来标识，图像框通过图像序号(ImageIndex)属性或数据字段(DataField) 属性指定要应用的图像集合中的图像。图像序号属性的值如果不为零，图像框将显示对应的图像集合中的图像。如果关联了数据字段，且数据字段的类型不为二进制，将根据字段的整型值匹配图像集合中的图像并显示它。

关于系统图像

在Grid++Report预先定义了一些在报表中常用图标，这些预先定义的图标称为系统图像。图像框指定关联到某个系统图像从而显示该系统图像。系统图像通过枚举 GRSystemImage 的各个枚举项来指定，可以将图像框的图像序号属性指定为枚举项的值从而引用对应系统图像。也可以通过 IGRPictureBox 接口的 AttachSystemImage 方法在报表运行时用编程的方式引用某个系统图像。

图像数据保存在报表模板数据中

在设计报表时，直接将图像数据保存在报表模板中，报表在运行时将把保存的图像数据显示出来。这种方式适合在报表头或报表尾中显示图像，一般图像数据在一个报表中只显示一次，如在报表头中显示 LOGO 图。

图像数据来源于二进制字段

通过图像框的数据字段(DataField)属性关联一个保存图像数据的二进制字段，图像框在报表运行时将把关联的二进制字段中的图像数据显示出来。这样的图像可以显示在明细网格的内容行、分组头或分组尾中。

在报表运行时从图像文件中载入图像数据

通过调用 IGRPictureBox 接口的 LoadFromFile 方法可以在报表运行时将图像文件中的图像载入到图像框中。如果要在明细网格的内容行、分组头或分组尾中的图像框的不同行中显示不同的图像，应在报表的 ProcessRecord、GroupBegin 或 GroupEnd 事件中为图像框载入相应的图像文件。

在明细网格的内容格中显示图像

首先将要显示图像的列的内容格设为自由格，将格中预先定义的字段框删除。然后在格中插入一个图像框，如果要让图像框充满整个格，将图像框的停靠属性设为充满方式。最后选择合适的引用图像数据的方式为该图像框提供图像数据。

有关在报表中时使用图像的例子

  1. “C:\Grid++Report 5.0\Samples\Reports\1f.图像与文字.grf”例子模板演示了在一个为自由格的内容格中通过图像框关联图像字段显示明细记录中的图像数据。
  2. C/S报表组件例子: 6.Picture
  3. B/S报表插件例子: 05.Picture\Picture.htm

请参见

IGRPictureBox 接口


使用综合文字框

综合文字框 - 开发指南

概述

综合文字框可以显示静态文本，关联动态数据域，动态数据域包括：字段、参数、文字部件框、统计函数与系统变量。综合文字框可以定义四则运算表达式，在运行时表达式被替换为运算结果。综合文字框是 Grid++Report 中最常用的部件框，它除了可以实现其它文字框的功能外，还可以组合静态文字与动态数据域，在运行时输出动态变化的文本，另外数据域还可以使用在四则运算表达式中，在运行时输出运算结果。

编辑显示文本

在设计器的属性编辑窗口中，当选择“文本”属性时，点击最右端的“...”按钮就会打开文本编辑窗口。在这个窗口及其下级窗口就可以实现文字内容编辑，动态数据域插入，数据四则表达式定义，以及数据显示格式化串定义。

点击左下角的“插入域...”按钮就可以选择一个数据域插入到当前内容编辑框插入光标处。数据域包括字段、参数、文字部件框、系统变量、统计函数等。数据域在运行时会被实际的数据域值替换。

点击左下角的“表达式...”按钮就可以打开表达式定义窗口，在此窗口中可以定义数学四则运算表达式，表达式在运行会被实际的运算结果替换。表达式中的运算因子即可以是固定的常数，也可以是动态的数据域。点击下面的格式按钮可以为表达式定义一个格式化串，运算结果将应用这个格式化串产生输出文字。“日期时间格式串”仅可用于日期时间类型的数据域。

在文本编辑窗口中，如果要修改一个已经定义的表达式，将插入光标移动到表达式文字中，然后点击“表达式...”按钮即可。

在一个综合文本框中可以定义多个数据域与表达式，数据域与表达式可以与静态文字混合编排。

关联各种数据域

这里的数据域是指整个报表中的字段、参数、文字部件框、统计函数与系统变量。如果要在设计时在综合文字框中引用某个数据域，首先进入综合文字框的编辑综合文本对话框，然后在编辑框中将输入焦点游标移动到要插入数据域的位置，再执行“插入域…”按钮打开选择数据域对话框，在此对话框中选择要插入的数据域，完成之后数据域的表示文本将插入到编辑框。如果要删除某个数据域，删除其表示文字即可。

编辑综合文本对话框图

选择数据域对话框

数学四则运算表达式

表达式由数据域、加减乘除运算符号与常数数字组合而成，组合关系必须符合数学四则运算规则。仅包含一个且只包含一个数据域的表达式在运行时不用进行数学运算，仅仅直接显示数据域的显示文字。

  • 插入表达式：在综合文字框的编辑综合文本对话框中，执行“表达式...”按钮打开编辑表达式对话框，在编辑表达式对话框中录入运算表达式，另还可以为表达式的运算结果设定数字格式化串。
  • 修改表达式：在编辑综合文本对话框中，在编辑框中将输入焦点游标移动到要修改的表达式文字中，执行“表达式...”按钮打开编辑表达式对话框，然后在编辑表达式对话框中对当前表达式进行修改。

拼接数据域显示文字

当一个表达式只包含且只包含一个数据域时，此表达式在运行时将替换为此域的显示文字。如果要拼接多个数据域的显示文字，只需将各个数据域插入在不同的表达式中。如：[#Field1] [#StaticBox1]表示拼接Field1与StaticBox1 的显示文字。如：abc[#Field1] def[#StaticBox1]表示将Field1与StaticBox1 的显示文字插入到整个文本中的不同位置。

关于引用数据域的说明

在综合文字框中可以引用的数据域类型有字段、参数、文字部件框、统计函数与系统变量。如果数据域名称不满足“所有字符必须为英文字母、数字、汉字与连字符，且首字符不为数字。”的条件，则必须用中括号([])将数据域括起来。如果数据域名称中包含有中括号([])，数据域在运行有可能不能正确解析，此时应该调整对应数据域的名称。

字间距与行间距

设置综合文本框的“字间距”与“行间距”属性可以调整文字输出时的字间距与行间距。“字间距”与“行间距”属性值以1/100屏幕像素点为计量单位，即100表示一个像素点的宽度。

设定文字方向

综合文字框可以显示几种特定的文字方向，文字行向由枚举 GRTextOrientation 表示，通过综合文字框的“文字行向”属性指定文字显示方向。

设定文字显示角度

综合文字框可以按任意角度显示文字，通过综合文字框的“文字角度”属性指定文字显示角度。文字角度以1/10度为计量单位。综合文字框的文字角度大于0时，只有当文字方向为默认值时才会生效，此时文字只能单行显示，文字对齐方式设定也不起作用，否则将按特定的文字方向显示文字。

用综合文字框解析HTML标签

设置综合文字框的“支持HTML标签”属性为“是”可以开启HTML标签解析功能。在文字中加上标签文字，在显示时就会把标签文字解析出来，标签文字本身不显示，其标注的文字将按对应效果显示。对应模板例子是“5n.HTML标签.grf”。

目前支持的标签有：
<b>...</b> 文字粗体
<i>...</i> 文字斜体
<u>...</u> 文字下划线，下划线仅绘制在文字下
<U>...</U> 文字下划线，下划线延伸到行尾，即使没有文字，行也画满下划线
<strike>...</strike> 文字删除线
<p>...</p> 文字段落换行
<sub>...</sub> 下标
<sup>...</sup> 上标
<font color=...>...</font> 文字颜色，颜色值支持两种表示方式：rgb与16进制，如:<font color=#FFAA88>，<font color=#RGB(255,128,64)>
<font size=n>..........</font> 文字大小，参数n为字体的点数，可以带小数点
<font face="字体名称">..........</font> 字体名称，参数为有效的字体名称
<icon>n</icon> 在文字中插入图标,n为从0开始的数字，分别表示不同的图标，具体请查看例子：5n.HTML标签.grf。

用综合文字框实现标签打印

标签文字打印要求对输出的文字在高度方向上进行拉伸，一般情况下，标签文字比普通输出的文字要显得瘦长一些。通过设置“字间距”属性为负数可以用综合文字框实现这样的效果。字间距的属性值的绝对值就是文字的实际输出宽度与正常输出宽度的百分比，如设为“-60”，则文字会显示得比较窄，而设为“-150”，则文字会显示得比较宽。

请参见

报表部件框概述 | IGRMemoBox 接口


应用RTF文本框

RTF文本框 - 开发指南

RTF文本框概述

RTF文本框用来显示RTF格式文本的部件框，RTF格式文本数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。通过设定RTF文本框的“RTF文本”属性来加载部件框的显示内容，也可以通过“数据字段”属性关联一个字段，报表在运行时会从指定字段获取数据。

编辑RTF格式文本

在设计器的属性编辑窗口中，当选择“RTF文本”属性时，点击最右端的“...”按钮就会打开RTF数据载入窗口。点击左下角的“载入...”按钮可以从一个RTF文件中载入数据。也可以在编辑窗口中直接输入数据，因为Grid++Report没有在这里提供格式编辑功能，所以只能输入无格式的文字。我们建议在Windows的附件“写字板”程序中编辑好RTF格式内容，然后复制粘贴到这里的编辑窗口中。

在文字内容中包含动态数据域

RTF文本框可以在运行时将文本中的动态数据域用实际的数据进行替换。数据域用“[#”与“ #]”包围起来，包围的内容就是关联数据对象的名称，如字段的名称。

请参见

报表部件框概述 | IGRRichTextBox 接口


子报表

子报表 - 开发指南

子报表概述

子报表专门用来在当前报表中输出另外一个报表的内容。子报表部件框关联的报表对象在运行时其本身的页眉与页脚不会输出，而是输出当前报表的页眉与页脚，这样可以保持所有子报表都输出一致的页眉与页脚。

子报表在运行时随主报表一起运行，在主报表中要展现一次子报表时，主报表就会驱动子报表的运行。如果是明细网格中的子报表(内容行与分组头尾中的子报表)，子报表一般会多次展现，所以子报表在主报表的一次运行过程会被运行多次。

由于子报表在运行时其数据是动态的变化，子报表部件框一般都要设置成可伸展的，子报表部件框所在的报表节或内容格也应该设置为可伸展的。

在哪些情况下需要用到子报表

  1. 一个报表中有多个表格：如果不使用子报表，一个报表只能有一个明细网格，所以也只能产生一个表格。如果使用了子报表，就可以在每个子报表中产生一个表格，从而达到在主报表中输出多个表格。
  2. 表格中还包含有下级表格，也就是通常所说的表中表。
  3. 多个报表需要集中在一起打印，在一个打印任务中完成多个报表的展现与打印输出。

说明：因为子报表在运行中运算量比较大，如果一个报表没有必要用子报表实现，就不要采用子报表。过多的使用子报表会降低报表的运行性能，特别是在明细网格中的子报表，如果可以通过分组报表来实现，就应该采用分组报表。

子报表部件框关联对应的报表定义

有3种方式可以关联子报表部件框对应的报表：

  1. 集成在主报表中定义：在设计报表时，双击子报表部件框可以进入子报表设计状态，此时就像设计主报表一样设计子报表，设计完成之后，点击窗口底部的“退出子报表设计”按钮会退回到主报表设计状态。当保存设计时，子报表定义也一并保存下来。
  2. 关联外部报表模板：通过子报表部件框的“报表模板文件”属性关联子报表定义。
  3. 关联报表对象：通过子报表部件框的“Report”属性关联子报表定义，这种方式只能在报表运行时通过编程关联。

如果子报表定义在其它地方不会被用到，建议采用方式1定义。如果要关联子报表事件，可以在外部定义一个新空白报表对象，事件定义在这个新空白报表对象上，然后通过“Report”属性进行关联即可。

主子报表之间建立关联

Grid++Report 在内部这样约定：当子报表在运行时，子报表中的参数会自动从主报表中同名的参数或记录集字段中取值。利用这点特性，就可以让子报表根据主报表的当前数据获取子报表的数据。如果在子报表中应用参数化的查询SQL语句，并让应用到的参数与主报表中的参数或记录集字段同名，这样就自动实现了主子报表的数据关联。

另也可以在子报表的 Initialize 与 FetchRecord 报表事件中编写程序代码实现主子报表关联，在事件代码中可以获取主报表的数据，如报表参数与字段的值，这些值可以设置到子报表上，如根据主表上的这些值作为参数获取子报表的记录集数据。

独立子报表

定义：

如果一个子报表是报表头或报表尾中唯一的部件框，且此子报表的“主表页面设置”属性为“否”，这样的子报表称为独立子报表。独立子报表在运行时单独生成，不用与主表进行叠加，所以独立主报表生成速度要比普通子报表快。独立子报表在生成时将应用其自身的页面设置参数，这样就可以在同一个报表中产生不同页面大小与方向的报表页面。

用途：

  1. 将多个报表集中在一起进行打印预览、打印与数据导出。每个报表的页面大小、边距与方向不要求一样。

  2. 实现在导出Excel时，将不同的报表分别导出在不同的工作表中。设置子报表的“导出到新工作表”属性为“是”，这个子报表在导出Excel时将单独产生在一个新工作表中。

相关例子

  1. C:\Grid++Report 5.0\Samples\Reports\1g.演示子报表.grf：演示在一个报表中集中展现多个表格报表。
  2. C:\Grid++Report 5.0\Samples\Reports\1m.子报表实现表中表.grf：演示在一个表中表报表,子报表采用参数化查询SQL，参数化查询SQL用到的参数与主报表中的字段同名，在运行时会自动获取主报表字段的值并实例化其查询SQL。
  3. 在 C/S 的对应编程语言例子目录“7.SubReport”子目录下的例子程序：演示主报表对象与子报表对象建立关联。
  4. 在 B/S 的对应编程语言例子目录“06.SubReport”子目录下的例子程序：演示在 B/S 下应用子报表。因为B/S 下不能直接应用参数化查询SQL，所以应该在子报表的报表事件中获取主报表的当前值，并据此用 LoadDataFromURL 获取子报表的数据。

请参见

IGRSubReport 接口


执行报表数据导出任务

交叉表 - 开发指南

概述

Grid++Report 本身实现了功能强大的交叉表功能，不需要编写任何代码，只要在报表模板设计时定义交叉表即可。如果遇到特殊要求的交叉表而不能用本身的交叉表功能实现，可以通过编程实现。

设计交叉表

在帮助的“设计报表->交叉表”部分对如何设计交叉表进行了非常详细的说明，请参考。

自定义交叉表

首先用程序代码动态定义出交叉的表格列，然后在报表的 FetchRecord 事件中为动态定义的报表填入报表记录集数据。

  1. C/S报表组件参考 Advance\CustomCrosstab 例子。
  2. B/S报表插件参考 Advance\CustomCrosstab\CustomCrosstab.htm 例子。

请参见

交叉表 | 编程定义报表模板 | IGRCrossTab


图表概述

图表开发概述 - 图表开发指南

概述

Grid++Report 提供了柱图、饼图、折线图、叠加柱状图、散列点图、散列连线图、曲线图、散列曲线图、气泡图等多种图表，可以实现全部常规的图表功能。图表功能通过图表部件框来实现。图表数据既可以在报表设计时提供，也可以在报表运行时动态提供。图表部件框可以插入到任何类型的报表节中，在内容行、分组头与分组尾节中，同一图表可以多次输出，并可以为每次输出提供不一样的数据。图表在查询显示时，提供了交互事件，通过对交互事件的响应可以为图表提供穿透查询分析功能。图表在查询显示时还可以为图形与图例的显示区域指定特定的鼠标光标。

请参见

关于图表数据 | 实现图表穿透(DrillDown)查询 | IGRChart 接口


图表概述

图表数据说明 - 图表开发指南

关于图表数据的说明

图表类型不同，其数据形式也不一样。

1、柱图、饼图、折线图、叠加柱状图与曲线图具有一样的数据样式，其数据相当于一个二维数组，其维数由图表的“数据序列数(SeriesCount)”与“数据组数(GroupCount)”属性确定。通过数据序列序号与数据组序号指定一个个数据元素。每个序列与每个组具有相同个数的数据。数据形式如下：

组1 组2 组3 组4
序列1：A1 A2 A3 A4
序列2：B1 B2 B3 B4
序列3：C1 C2 C3 C4

2、散列点图、散列连线图、散列曲线图其数据相当于多个系列的坐标点(X,Y)，坐标点(X,Y)对应了数据在图表显示区域中的位置。由图表的“数据序列数(SeriesCount)”属性确定有多少个系列，各个系列的数据个数不一定相同。数据形式如下：

序列1：(x1,y1) (x2,y2) ...(xn,yn)
序列2：(x1,y1) (x2,y2) ...(xm,ym)
...

3、气泡图的数据相当于多个系列的坐标点(X,Y)并加上Z值，坐标点(X,Y)对应了数据在图标显示区域中的位置，Z值指定了气泡图形的面积大小。由图表的“数据序列数(SeriesCount)”属性确定有多少个系列，各个系列的数据个数不一定相同。

序列1：(x1,y1,z1) (x2,y2,z2) ...(xn,yn,zn)
序列2：(x1,y1,z1) (x2,y2,z2) ...(xm,ym,zm)
...

Grid++Report 提供了几种方式为图表提供数据，随后的帮助主题会进行专门的说明。

请参见

设计时为图表提供数据 | 运行时通过编程接口为图表提供数据 | 运行时从XML数据包中载入图表数据 | IGRChart 接口


图表设计时数据 - 图表开发指南

关于图表数据的说明

图表类型不同，其数据形式有可能不一样。

1、柱图、饼图、折线图、叠加柱状图与曲线图具有一样的数据样式，其数据相当于一个二维数组，其维数由图表的“数据序列数(SeriesCount)”与“数据组数(GroupCount)”属性确定。通过数据序列序号与数据组序号指定一个个数据元素。

2、散列点图、散列连线图、散列曲线图其数据相当于多个系列的坐标点(X,Y)，由图表的“数据序列数(SeriesCount)”属性确定有多少个系列，各个系列的数据个数不一定相同。

2、气泡图其数据相当于多个系列的坐标点(X,Y)并加上Z值，由图表的“数据序列数(SeriesCount)”属性确定有多少个系列，各个系列的数据个数不一定相同。

在报表设计时为图表提供数据

对于柱图、饼图、折线图、叠加柱状图与曲线图等具有二维数组数据的图表，可以在设计报表时设定图表数据。在报表设计器中，通过编辑图表的“数据”属性，可以为图表提供静态数据。在编辑图表的数据之前，应首先确定图表的数据序列数与数据组数。图表数据编辑在专门的对话框界面中执行，界面如下：

编辑框中第一行数据为每个数据序列的标签文字，每个标签文字之间用“;”隔开。

编辑框中第二行数据为每个数据组的标签文字，每个标签文字之间用“;”隔开。

从第三行开始为图表各个序列的数据，每个序列数据占据一行，每个数据之间用“;”隔开。

在实际应用中，图表的数据都是动态的，应该从各种数据源中获得实时的数据并加载到报表图表中去。在设计时设置图表数据主要是为了在设计时查看图表的显示效果。如果在设计时不为图表提供数据，Grid++Report 也会自动产生模拟图表数据，以供报表开发者在设计时查看图表显式效果。

相关例子

C:\Grid++Report 5.0\Samples\Reports\1e.图表.grf

请参见

关于图表数据 | 运行时通过编程接口为图表提供数据 | 运行时从XML数据包中载入图表数据 | IGRChart 接口


图表运行时数据 - 图表开发指南

在报表运行时通过编程接口为图表提供数据

在报表中图表数据一般都是动态变化的，也就是说报表每次运行时，图表数据都有可能不同，并且也只有在报表运行时才能确定图表数据。如果一个图表在整个报表中只输出一次，一般在报表的 Initialize 事件中为图表提供数据，如位于报表头与报表尾中的图表。如果一个图表要多次输出，就应该在每次输出图表所对应的事件中为图表提供数据，在内容行中的图表应该在 ProcessRecord 事件中提供图表数据，在分组头或分组尾中的图表应该分别在 GroupBegin 与 GroupEnd 事件中提供图表数据。如果是在ProcessRecord、GroupBegin 或 GroupEnd 事件中提供图表数据，在赋值之前必须调用图表的 PrepareSnapShort 方法，在赋值完成之后必须调用图表的 SnapShort方法。

1、设置图表的序列标签文字，序列标签文字将显示在图例中。

Chart.SeriesCount = 3; //设定序列个数为3个
Chart.SeriesLabel(0) = "销售数量"; //设定第1个序列的标签文字
Chart.SeriesLabel(1) = "折前金额"; //设定第2个序列的标签文字
Chart.SeriesLabel(2) = "折后金额"; //设定第3个序列的标签文字

2、设置图表的组标签文字，组标签文字将显示为X轴的刻度文字。只有柱图、饼图、折线图、叠加柱状图与曲线图等需要设置组标签文字。

Chart.GroupCount = 4; //设定组个数为3个
Chart.GroupLabel(0) = "一季度"; //设定第1个组的标签文字
Chart.GroupLabel(1) = "二季度"; //设定第2个组的标签文字
Chart.GroupLabel(2) = "三季度"; //设定第3个组的标签文字
Chart.GroupLabel(3) = "四季度"; //设定第3个组的标签文字

3、设置二维数组类型的图表数据，柱图、饼图、折线图、叠加柱状图与曲线图等需要这种类型的数据。通过序列序号与组序号指定一个个数据,如下代码:

Chart.Value(SeriesIndex, GroupIndex) = Val;

一般通过循环语句给各个数据元素设置值,如:

for (SeriesIndex=0; SeriesIndex<Chart.SeriesCount; ++SeriesIndex)
{
for (GroupIndex=0; GroupIndex<Chart.GroupCount; ++GroupIndex)
{
Val = ...; //根据 SeriesIndex 与 GroupIndex 取得元素值
Chart.Value(SeriesIndex, GroupIndex) = Val;
}
}

4、设置坐标点(X,Y)类型的图表数据，散列点图、散列连线图、散列曲线图等需要这种类型的数据。通过序列序号追加对应序列的一个个数据。一般首先是调用 EmptyXYValue 方法清空原来的数据，然后调用 AddXYValue 方法加入一个个数据项。一般通过循环语句代码给增加一个个数据项，如下示例代码:

Chart.EmptyXYValue(); //清空原来的数据
for (SeriesIndex=0; SeriesIndex<Chart.SeriesCount; ++SeriesIndex)
{
int DataCount = ...; //获取序列 SeriesIndex 的数据个数
for (DataIndex=0; DataIndex<DataCount; ++DataIndex)
{
X = ...//取得X元素值
Y = ...//取得Y元素值
Chart.AddXYValue(SeriesIndex, X, Y);
}
}

5、设置坐标点(X,Y,Z)类型的图表数据，气泡图需要这种类型的数据。设置坐标点(X,Y,Z)类型的图表数据与设置坐标点(X,Y)类型的图表数据基本类似，差别就在要多加一个Z值。通过序列序号追加对应序列的一个个数据。一般首先是调用 EmptyXYZValue 方法清空原来的数据，然后调用 AddXYZValue 方法加入一个个数据项。一般通过循环语句代码给增加一个个数据项，如下示例代码:

Chart.EmptyXYZValue(); //清空原来的数据
for (SeriesIndex=0; SeriesIndex<Chart.SeriesCount; ++SeriesIndex)
{
int DataCount = ...; //获取序列 SeriesIndex 的数据个数
for (DataIndex=0; DataIndex<DataCount; ++DataIndex)
{
X = ...//取得X元素值
Y = ...//取得Y元素值
Z = ...//取得Z元素值
Chart.AddXYZValue(SeriesIndex, X, Y, Z);
}
}

相关例子

  1. C/S报表组件例子: Advance\Chart
  2. B/S报表插件例子: 07.Chart\FillChartData.htm

请参见

关于图表数据 | 设计时为图表提供数据 | 运行时从XML数据包中载入图表数据 | IGRChart 接口


图表XML数据 - 图表开发指南

在报表运行时从XML数据包中载入图表数据

XML数据要满足报表插件明细记录数据的XML格式要求，按照提供明细记录数据一样的方式提供图表数据即可。图表XML数据的数据列必须遵照约定的格式，这样才能成功载入数据。图表中序列与组的标识通过文字匹配或序号匹配，文字和序列与组的标签文字进行匹配，第一个序号从零开始。

从XML数据包中载入图表数据一般用在B/S报表插件开发中，在服务器端根据SQL查询生成XML数据，其数据格式与报表记录数据的XML格式是完全一样的。

如果不是自动从XML数据包中获取序列标签文字与组标签文字，这应该参照“运行时通过编程接口为图表提供数据” 中的说明设定序列标签文字与组标签文字。

1、载入二维数组类型的图表数据，使用图表对象的 LoadDataFromXML 方法载入，方法定义如下：

BOOL LoadDataFromXML(BSTR XML, BOOL FirstSeries, BOOL AutoSeries, BOOL AutoGroup);
参数XML：指定要载入的XML数据包。
参数FirstSeries：指定第一列是否为序列标识数据。
参数AutoSeries：指定是否从数据中自动获取序列标签文字，只有当 FirstSeries=true 时才会自动获取序列标签文字。
参数AutoGroup：指定是否从数据中自动获取组标签文字。

当参数 FirstSeries 为 true 时，XML数据中，第一列数据为序列的标签文字或序号，第二列数据为组的标签文字或序号，第三列数据为对应序列与组的数据，形如：

<xml>
<row><ProductName>蕃茄酱</ProductName><MonthData>0</MonthData><Amount>400.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>2</MonthData><Amount>160.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>4</MonthData><Amount>600.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>6</MonthData><Amount>140.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>9</MonthData><Amount>60.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>10</MonthData><Amount>200.0000</Amount></row>
<row><ProductName>蕃茄酱</ProductName><MonthData>11</MonthData><Amount>200.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>0</MonthData><Amount>912.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>1</MonthData><Amount>836.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>2</MonthData><Amount>912.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>3</MonthData><Amount>228.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>6</MonthData><Amount>190.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>7</MonthData><Amount>1900.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>9</MonthData><Amount>722.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>10</MonthData><Amount>285.0000</Amount></row>
<row><ProductName>牛奶</ProductName><MonthData>11</MonthData><Amount>1615.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>0</MonthData><Amount>489.6000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>2</MonthData><Amount>216.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>3</MonthData><Amount>720.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>4</MonthData><Amount>144.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>5</MonthData><Amount>180.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>6</MonthData><Amount>522.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>7</MonthData><Amount>720.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>9</MonthData><Amount>1260.0000</Amount></row>
<row><ProductName>苹果汁</ProductName><MonthData>10</MonthData><Amount>1044.0000</Amount></row>
</xml>

当参数 FirstSeries 为 false 时，XML数据中，第一列数据为组的标签文字或序号，第二列数据为第一个序列与对应组的数据，第三列数据为第二个序列与对应组的数据，依次类推...，形如：

<xml>
<row><Series>10月</Series><Qty>120</Qty><Amt>2174.0000</Amt><NetAmt>1856</NetAmt></row>
<row><Series>11月</Series><Qty>118</Qty><Amt>2079.0000</Amt><NetAmt>2022</NetAmt></row>
<row><Series>12月</Series><Qty>105</Qty><Amt>1815.0000</Amt><NetAmt>1685.75</NetAmt></row>
<row><Series>1月</Series><Qty>144</Qty><Amt>1801.6000</Amt><NetAmt>1801.60000610352</NetAmt></row>
<row><Series>2月</Series><Qty>55</Qty><Amt>836.0000</Amt><NetAmt>733.400024414063</NetAmt></row>
<row><Series>3月</Series><Qty>111</Qty><Amt>1569.6000</Amt><NetAmt>1375.67999267578</NetAmt></row>
<row><Series>4月</Series><Qty>102</Qty><Amt>2048.0000</Amt><NetAmt>1739</NetAmt></row>
<row><Series>5月</Series><Qty>168</Qty><Amt>2944.0000</Amt><NetAmt>2757.40000152588</NetAmt></row>
<row><Series>6月</Series><Qty>10</Qty><Amt>180.0000</Amt><NetAmt>180</NetAmt></row>
<row><Series>7月</Series><Qty>73</Qty><Amt>1292.0000</Amt><NetAmt>1204</NetAmt></row>
<row><Series>8月</Series><Qty>175</Qty><Amt>3390.0000</Amt><NetAmt>3272</NetAmt></row>
<row><Series>9月</Series><Qty>12</Qty><Amt>264.0000</Amt><NetAmt>237.600006103516</NetAmt></row>
</xml>

2、载入坐标点(X,Y)类型的图表数据，使用图表对象的 LoadXYDataFromXML 方法载入，方法定义如下：

BOOL LoadXYDataFromXML(BSTR XML, BOOL AutoSeries);
参数XML：指定要载入的XML数据包。
参数AutoSeries：指定是否从数据中自动获取序列标签文字。

在XML数据中，第一列数据为序列的标签文字或序号，第二列数据为 X 值，第三列数据为 Y 值，形如：

<xml>
<row><Series>序列1</Series><X_Val>120</X_Val><Y_Val>2174.5</Y_Val></row>
<row><Series>序列1</Series><X_Val>80</X_Val><Y_Val>1800.6</Y_Val></row>
<row><Series>序列1</Series><X_Val>150</X_Val><Y_Val>900.6</Y_Val></row>
<row><Series>序列1</Series><X_Val>130</X_Val><Y_Val>2500.8</Y_Val></row>
<row><Series>序列2</Series><X_Val>180</X_Val><Y_Val>3004.5</Y_Val></row>
<row><Series>序列2</Series><X_Val>210</X_Val><Y_Val>1800</Y_Val></row>
</xml>

3、载入坐标点(X,Y,Z)类型的图表数据，使用图表对象的 LoadXYZDataFromXML 方法载入，方法定义如下：

BOOL LoadXYZDataFromXML(BSTR XML, BOOL AutoSeries);
参数XML：指定要载入的XML数据包。
参数AutoSeries：指定是否从数据中自动获取序列标签文字。

在XML数据中，第一列数据为序列的标签文字或序号，第二列数据为 X 值，第三列数据为 Y 值，第四列数据为 Z 值，形如：

<xml>
<row><Series>序列1</Series><X_Val>120</X_Val><Y_Val>2174.5</Y_Val><Z_Val>4.5</Z_Val></row>
<row><Series>序列1</Series><X_Val>80</X_Val><Y_Val>1800.6</Y_Val><Z_Val>6.3</Z_Val></row>
<row><Series>序列1</Series><X_Val>150</X_Val><Y_Val>900.6</Y_Val><Z_Val>8.1</Z_Val></row>
<row><Series>序列1</Series><X_Val>130</X_Val><Y_Val>2500.8</Y_Val><Z_Val>5</Z_Val></row>
<row><Series>序列2</Series><X_Val>180</X_Val><Y_Val>3004.5</Y_Val><Z_Val>2</Z_Val></row>
<row><Series>序列2</Series><X_Val>210</X_Val><Y_Val>1800</Y_Val><Z_Val>2.5</Z_Val></row>
</xml>

相关例子

B/S报表插件例子: 07.Chart\FillChartData.htm

请参见

关于图表数据 | 设计时为图表提供数据 | 运行时通过编程接口为图表提供数据 | IGRChart 接口


图表穿透查询 - 图表开发指南

为图表提供穿透(DrillDown)查询功能

Grid++Report 在报表查询显示时为图表提供了 ChartClickSeries、ChartDblClickSeries、ChartClickLegend、ChartDblClickLegend 事件。

  1. ChartClickSeries：当鼠标单击一个序列项的图形区域时，触发本事件。
  2. ChartDblClickSeries：当鼠标双击一个序列项的图形区域时，触发本事件。
  3. ChartClickLegend：当鼠标单击一个图例项的显示区域时，触发本事件。
  4. ChartDblClickLegend：当鼠标双击一个图例项的显示区域时，触发本事件。

以上四个事件的参数中包括关联序列项的数据组序号与数据序列序号，通过这两个参数可以知道事件关联的序列项，并可以取得其值。如果在事件响应中打开对应的明细图表、明细报表或其它类型的明细数据，这样就为图表提供了透视查询功能。

另可以为图表设定专门的图例光标与序列光标，这样当鼠标位于图例项或序列项的显示区域上时，鼠标光标将显示为设定的特定光标，这样为图表透视提供了显著的指示功能。

相关例子

  1. C/S报表组件例子: Advance\Chart
  2. B/S报表插件例子: 07.Chart\FillChartData.htm

请参见

关于图表数据 | 关于图表数据 | IGRChart 接口


票据套打概述

票据套打 - 开发指南

Grid++Report 实现票据套打的优势

Grid++Report 非常适合开发票据套打功能。其设计背景图与页面视图功能可以精确快速定位要打印的内容。其每页打印固定行数功能让套打带明细表格的票据更方便，如发票，送货单等。提供了数字金额大写功能，实现与财会相关票据不用写额外代码。

下面说说 Grid++Report 对实现票据套打提供了哪些专门支持与便利条件：

  1. 打印纸张尺寸自定义：在设计报表时可以在页面设置参数中设定自定义的纸张尺寸，这样报表在打印输出时就会将设计时设置的自定义纸张做为默认的打印纸张。报表在运行时，Grid++Report 提供了编程接口可以改变打印输出的纸张参数，这里我们一样可以将报表的打印纸张设定为自定义纸张。
  2. Grid++Report 提供了页面设计视图，报表设计面板按设计页面的的实际尺寸显示，配合面板旁边的设计标尺就可以将报表内容定位在准确的位置。在打印输出时报表内容将准确的输出在其设计时定位的位置。
  3. 提供报表设计背景图功能，报表设计背景图在页面设计视图中平铺显示成设计面板的背景。如果将空白票据扫描成图像，将此图像作为报表设计背景图，这样此背景图就成为定位报表内容的参考，可以快速将报表内容拖放到合适的位置。只要扫描图像与实际没有明显的扭曲变形，就一定可以得到准确的套打定位结果。
  4. 明细表格类票据（如发票）一般都是固定明细行数的，Grid++Report 的每页输出固定行数功能正好与票据这样的要求想吻合，这样保证了票据明细条目的准确套打。
  5. 报表内容在设计时可以指定打印类型，报表打印输出时指定输出模式，报表内容只有在其打印类型相匹配的打印输出模式下才会打印出来。这样在开发票据套打时，可以将整个票据的内容都设计出来，这样我们可以在预览票据时可以看到整个票据的完整内容，通过指定打印类型而让不应该在套打输出时打印的内容被忽略掉。
  6. 打印输出可以设定打印偏移量，打印偏移量还可以在本地电脑保存，保证用不同打印机打印都能准确输出到相应位置。

开发过程指导

  1. 首先将要套打的空白票据用扫描仪制作为图像，格式一般为jpg，图像精度不要太高，图像大小保持在100K以内合适，以免造成设计出的报表模板文件过大。
  2. 用报表设计器设计报表模板，将扫描的票据背景图加载为报表的背景图，按票据尺寸进行报表页面设置，进入页面视图设计打印内容，根据背景图进行拖放定位。
  3. 进行软件设计，在程序中加载报表数据。

报表模板设计要点

  1. 背景图不能扭曲变形，图像四周也不要留有不属于票据的空白。
  2. 报表页面设置与票据的尺寸要一致，通常将页面的页边距全部设为0，报表主对象的“按设计页面打印”属性设为“是”。
  3. 如果票据没有明细表格，如支票、电汇单与快递单等，通常只需定义一个报表头，其高度略小于页面的高度。
  4. 如果票据有明细表格，如发票，通常是定义一个报表头用来显示表头信息，定义一个报表尾用来显示表尾信息，定义一个明细网格用来显示明细信息。
  5. 明细网格通常要设定内容行的“每页行数”属性为与票据行数一致，且明细网格的“追加空白行”属性要设为“是”。
  6. 如果在实际打印输出时位置总体有偏移，在调整打印机进纸位置也没办法纠正，可以在页面设置中设置打印偏移。
  7. 如果是要一次打印多张票据，应该改在明细网格中定义。如果票据没有明细表格，插入一个列，其宽同页宽，内容行高略小于页高，内容格设为自由格，在其中定义打印数据。如果票据有明细表格，定义一个分组，分组头用来显示表头信息，分组尾用来显示表尾信息。
  8. 如果票据的宽度超过页面的宽度，应该将页面设置改为“横向”，如用A4幅面的激光或喷墨打印机打印支票。
  9. 在用穿孔连续纸进行多张票据成批套打，如果在多张打印后存在较明显的误差，应该根据误差的平均值调整纸张的长度值。

关于WEB(B/S)软件票据打印

对于WEB软件，因采用浏览器的网页打印不可能得到用户想要得到的打印效果，通常采用在后台服务器产生 Excel 或 PDF 格式文件供用户下载，然后用户打开下载的文件再进行打印。这样做会存在很多缺点：1、用户在下载文件之前不能预览到打印效果。2、用户必须安装查看 PDF 或 Excel 对应的应用软件，且须熟悉这些软件的操作。3、过程繁琐，要经历下载文件、打开文件、执行打印等过程。如此开发的打印功能对用户体验来说实难称道，如果用户的计算机应用水平一般，很难顺利完成这样的打印任务。对开发人员来说，要开发这样的功能也绝非易事。

采用 Grid++Report 报表插件，可以驱动打印机直接进行打印，所以说开发的报表与打印功能与传统的桌面软件具有一样易用性与便捷性。而开发人员要开发出这样的功能也非常简单且快速。所以说采用 Grid++Report 开发WEB软件票据打印功能是最好的选择，可以实现与C/S软件一样的报表与打印功能。

相关例子

  1. 例子模板：4k.发票套打.grf、4l.发票成批套打.grf、PrintCheck.grf
  2. C/S 报表组件例子：8.PrintInForm、9.CustomPaper、Advance\Invoice
  3. B/S 报表插件例子：在例子程序的 PrintCheck 子目录下。
  4. Grid++Report 网站演示例子，提供相关说明与例子文件下载，点此进入（http://www.rubylong.cn/doc/print_bill_index.htm）。

请参见

支票打印 | 发票打印 | 本地电脑保存打印偏移量


支票打印

支票打印 - 开发指南

概述

支票打印要求在将支票数据准确的打印在空白支票的对应位置，主要有两点需要注意：1、要求数据打印输出位置准确，2、要求数据的书写格式符合支票填写的要求。本文档就将说明用 Grid++Report 实现支票打印的过程，从中可以感受到 Grid++Report 实现票据打印的便利与快速。

准备任务

  1. 精确的测量出支票的长度与宽度，我们测量出支票的宽度为23厘米，长度为8厘米。
  2. 用扫描仪制作出空白支票的图像，要求图像方正不扭曲，长宽比例不发生变化。在安装目录的“Samples\Reports\Image\支票背景图.JPG”就是我们制作的支票图像。

报表模板设计要点

  1. 定义报表的页面设置：将宽度设为8cm，高度为23cm，将方向设为“横向”，将四个页边距全部设为零。
  2. 插入一个报表头，报表头的高度为支票的长度(8cm)。
  3. 定义背景图：为报表的“背景图”属性加载“Samples\Reports\Image\支票背景图.JPG”图像文件，切换到页面视图就可以看到背景图显示在设计面板中。为了让背景图在打印预览时可见。应将报表的“背景图预览”属性设为“是”。
  4. 定义支票数据参数：为每一项支票数据定义一个对应的报表参数。
  5. 定义数据显示部件框：因为有背景图的显示，只要把部件框拖动到背景图中对应的位置就实现了输出位置的精确定位。因为支票数据已经对应定义了参数，所以应该采用静态文字框或综合文字框关联参数的方式来显示支票数据项。
  6. 定义年月日数据显示格式：支票中的“年月日”要求按大写金额数字填写，如“年”对应的参数的格式定义为“$$$0000”，“$$$”表示输出数字为大写金额数字，“0000”表示整数部分固定输出四位，没有小数位。
  7. 定义大写金额数据显示格式：定义其对应输出综合文字框的格式为“$$”，“$$”表示将数字值按大写金额的方式输出。
  8. 定义金额线框数据显示格式：金额值套打右边对应的金额线框，定义表达式将金额值乘100，定义显示格式为“0”；定义综合文字框的“字间距”属性，让每位数字都输出在对应的金额位区域。
  9. 要保证内容较多的数据项能完整显示出来，定义部件框的“按需缩小字体”属性为“是”。

下图即为我们制作的例子模板：

编程说明

将支票数据传递给报表：

在报表的 Initialize 事件中将支票数据传递给报表，为报表中定义的各个参数设置值即可。下面是对应的C++代码。

virtual void Initialize(void)
{
//将支票数据传递给报表，设置各个参数的值
m_pGridppReport->ParameterByName("BankName")->AsString = "中国工商";
m_pGridppReport->ParameterByName("PayTo")->AsString = "锐浪软件技术有限公司";
m_pGridppReport->ParameterByName("Year")->AsInteger = 2008;
m_pGridppReport->ParameterByName("Month")->AsInteger = 8;
m_pGridppReport->ParameterByName("Day")->AsInteger = 8;
m_pGridppReport->ParameterByName("Amount")->AsFloat = 20080808;
m_pGridppReport->ParameterByName("Usage")->AsString = "庆祝北京奥运开幕";
m_pGridppReport->ParameterByName("Remark")->AsString = "Grid++Report 用户包括通用软件厂商与系统集成商，企业行政事业单位，个人用户等";
}

通过程序改变数据项的显示文字

支票中的月日数字如果等于10或20 则要显示为“壹拾”或“贰拾”。如果1x或2x，则要显示为“壹拾几”或“贰拾几”，如15为壹拾伍，28为贰拾捌。而Grid++Report 通过设置格式串并不能直接得到这样的数据，我们在报表中为月日对应参数设置的“格式”为“$$00”,表示按大写金额数字输出各位数字，整数部分固定为两位，没有小数位。如果不用程序进行干预，10格式化出来的显示文字为“壹零”，15格式化出来的显示文字为“壹伍”。所以要通过 TextBoxGetDisplayText 事件来改变这些数据的显示文字。下面是对应的C++代码。

virtual void TextBoxGetDisplayText(IGRTextBox *pTextBox)?
{
//支票中的月日数字如果等于10或20 则要显示为“壹拾”或“贰拾”
//如果1x或2x，则要显示为“壹拾几”或“贰拾几”，如15为壹拾伍，28为贰拾捌
//而Grid++Report通过设置格式串并不能直接得到这样的数据，所以要通过 TextBoxGetDisplayText
//事件改变其显示文字
if (strcmp(pTextBox->Name, "stMonth") == 0)
{
int Month = m_pGridppReport->ParameterByName("Month")->AsInteger;
if (Month == 10)
{
pTextBox->DisplayText = "壹拾";
}
else if (Month > 10)
{
string RawDisplayText = pTextBox->DisplayText;
RawDisplayText.insert(2, "拾");
pTextBox->DisplayText = RawDisplayText.c_str();
}
}
else if (strcmp(pTextBox->Name, "stDay") == 0)
{
int Day = m_pGridppReport->ParameterByName("Day")->AsInteger;
if (Day == 10)
{
pTextBox->DisplayText = "壹拾";
}
else if (Day == 20)
{
pTextBox->DisplayText = "贰拾";
}
else if (Day > 10)
{
string RawDisplayText = pTextBox->DisplayText;
RawDisplayText.insert(2, "拾");
pTextBox->DisplayText = RawDisplayText.c_str();
}
}
}

关于多张支票连续打印

如果要一次成批打印多张支票，应该将打印内容定义在明细网格的内容格中，内容格必须为自由格，并改用字段框显示数据。

相关例子

  1. C/S 报表组件例子：8.PrintInForm
  2. B/S 报表插件例子：04.PrintInForm\Check.htm，04.PrintInForm\CheckDataFromServer.htm

请参见

票据套打概述 | 发票打印


发票打印

发票打印 - 开发指南

概述

发票打印要求将数据准确地打印在空白发票的对应位置，要求数据打印输出位置准确，并且数据的书写格式符合发票的填写要求。本文档将说明用 Grid++Report 实现发票打印的过程，从中感受到 Grid++Report 轻易做到很多国外报表开发工具很难实现的要求，以及实现票据打印的便利与快速。

下图是用 Grid++Report 实现的发票打印预览截图，从图中可以看出发票套打需要克服的难点。

  1. 数据定位准确快速。
  2. 每一笔明细准确输出到对应行中。
  3. 每笔明细的金额准确打印到金额栏位中。
  4. 合计金额大写输出并准确打印到对应金额位中。
  5. 合计大写金额前输出圆圈中画叉图标。

准备任务

  1. 精确的测量出发票的长度与宽度。
  2. 扫描出空白发票的图像，要求图像方正不扭曲，长宽比例不发生变化。在安装目录的‘Samples\Reports\Image\发票背景图.jpg’就是我们制作的空白发票图像。
  3. 如果不具备扫描背景图的条件，就要量出各个数据输出区域的左上角位置与大小。位置以发票的左上角为原点。

报表结构分析

为了将发票与报表定义对应起来，我们把整个发票分为三个部分：票头、明细表格与票尾，这三个部分各自对应报表定义中的报表头、明细网格与报表尾。

报表模板设计主要步骤

  1. 定义报表的页面设置：选定纸型为自定义，根据测量的发票宽高设置纸张宽度与高度；如果宽度超过打印机支持的最大打印宽度，可以将方向设为“横向”；将四个页边距全部设为零。
  2. 加载背景图：报表主对象的“背景图”属性加载“Samples\Reports\Image\发票背景图.JPG”，切换到页面视图就可以看到背景图显示在设计面板中。为了让背景图在打印预览时可见。将报表主对象的‘背景图预览’属性设为‘是’。
  3. 分别插入一个报表头，一个报表尾及明细网格。进入页面视图，根据背景图拖放报表头的高度与票头一致，报表尾的高度与票尾一致，明细网格标题行的高度与明细表格的表头一致，明细网格内容行的高度与明细表格的明细行一致。
  4. 定义票据的数据源：与其它报表设计一样，请参见例子模板中的定义。如果主项数据不在记录集中，可以定义对应的参数对象。
  5. 在报表头与报表尾中定义主项数据的输出，选用合适的部件框并摆放在对应的位置。
  6. 定义明细网格对应的列，根据背景图设定正确的宽度，内容格关联对应的字段。因为票据的明细表格与左边有间距，定义一个空白列对应这个间距。
  7. 明细金额准确打印到金额栏位中：将该列的内容格设为自由格，然后在其中查入一个综合文字框，综合文字框的停靠属性设为“充满”，综合文字框关联对应的数据，并设置综合文字框的“字间距”属性。
  8. 在报表尾插入两个综合文字框，数据为金额求和。其中一个显示金额合计并打印在金额栏位中，另一个显示大写金额，两者都要设置合适的“字间距”。
  9. 中文大写金额：设置数据的格式化串为“$$$$#.00”。
  10. 圆圈中画叉图标：在综合文字框的文本属性值前加一个“*”符号，最后综合文字框的文本属性为“*[#Sum(Amount):$$$$#.00#]”。

下图即为我们制作的例子模板：

以上过程读起来可能会比较晦涩，如果读者对 Grid++Report 比较熟悉，并参考例子模板，完全可以根据自己的思路把整个报表模板设计出来并应用在自己的程序中。在设计的过程中可以切换到“预览视图”，随时查看设计效果。不要任何代码参与就可以设计出发票套打功能，只要在程序中关联实际的数据就可以完成发票打印功能，充分说明了 Grid++Report 是解决我们国内报表与打印任务的最佳工具。

关于多张发票连续打印

1、定义一个分组，以发票单号作为分组依据字段。
2、将整个发票分解为三个区域：头、明细、尾，分别对应报表的分组头、明细网格、分组尾。
3、将空白发票的扫描图作为报表设计背景图，在页面视图中插入部件框，根据背景图定位位置与确定大小。
4、设定合适的综合文字框的“字间距”属性值让文字输出到正确金额位栏中。
5、设置综合文字框前加“*”文字实现圆圈中画叉图形的输出。

相关例子

  1. 例子模板：4k.发票套打.grf、4l.发票成批套打.grf。因为例子数据库不能提供完整的数据，我们制作的例子模板缺少了一些数据，但整个发票打印的要点都涉及到了。
  2. 发票套打主要是报表模版设计，不需要编程处理，所以没有相关的例子程序。
  3. B/S 报表插件例子：04.PrintInForm\InvoiceOne.htm，04.PrintInForm\InvoiceMany.htm

请参见

票据套打概述 | 支票打印


票据套打概述

实现预览与打印不同 - 开发指南

需求描述

有些套打不希望采用空白票据的扫描图像作为背景图来进行设计，而是希望将票据的固定数据与动态数据都通过报表定义出来，在进行打印预览时预览全部数据，而在打印输出时只输出时只打印出动态数据。

实现说明

报表部件框与明晰网格的单元格都有“打印类别”属性，此属性可以选取“内容”与“表单”两种值，分别指定对应报表数据是动态内容数据，还是固定表单数据。在设计报表时，通过设定“打印类别”属性，可以将报表中的内容指定为不同的打印类别。

而在报表的打印预览显示控件(GRPrintViewer)上有“GenerateStyle”属性，此属性指定了预览显示报表中的哪些类型的数据，如果指定此属性为“grpgsPreviewAll(值为4)”，则在打印预览显示控件中显示报表的全部内容，在点击其工具栏上的打印按钮将只打印出动态内容数据，即“打印类别”属性设定为“内容”的数据。

设置打印预览显示控件的“GenerateStyle”属性

C/S程序：

  1. 如果是在From上定义了GRPrintViewer，直接设置其“GenerateStyle”属性。
  2. 如果是用 IGridppReport.PrintPreviewEx 方法打开Grid++Report的缺省预览窗口，设置这个方法的第一个参数为“grpgsPreviewAll”即可。

B/S程序：

  1. 在CreatePrintViewerEx中指定：
    CreatePrintViewerEx("100%", "100%", "path/report.grf", "/data/xmlData.aspx", false, "<param name=GenerateStyle value=4>");
  2. 用JavaScript代码设定：
    ReportViewer.GenerateStyle = 4;

请参见

票据套打概述


使用综合文字框

合同与公文打印 - 开发指南

概述

在很多软件中要实现长篇文章加上动态数据的打印，就是以长篇文章为模板，里面有很多空白项用具体的数据填写，并将两部分数据有机糅合在一起进行打印。比如最常见的合同与协议书打印，其都有固定的模板，但每份中的签约客户、合同产品、数量、日期等信息项不一样。用软件实现合同与公文打印的目标就是自动化融合文本模板与动态数据，提高工作效率并避免手工操作的易出错性。

要方便的实现合同与公文打印，报表开发工具要能满足两方面的要求：一是能方便的编辑排版文章模板格式；二是能在文章模板中嵌入动态数据域，且在运行时用具体的值替换数据域。Grid++Report在功能上能很好的满足这两方面的要求，是进行合同与公文类打印的最佳报表工具。

模板文字编排

Grid++Report的综合文字框具有字间距与行间距设置功能，还具有HTML标签功能。支持的HTML标签有：文字加粗、文字倾斜、文字下划线、上标、下标、文字大小、文字颜色、切换字体与图标等。其中的图标标签可以在文字中绘制各种常见图标，如协议书中常见的项目选择勾选框。综合文字框能方便的编排出合同与公文所要求的格式，是Grid++Report进行合同与公文打印的优先选择。

Grid++Report的RTF文字框能编排出更复杂的格式，并能将WORD等办公软件编排好的格式文本复制过来，所以用RTF文字框也可以实现合同与公文打印。如果整篇文章中的文字需要用不同的格式显示，这样的方式就适合采用RTF文字框来实现。文字模板可以采用Office Word进行排版，然后将其复制到RTF文字框的RTF属性上。

动态数据域

综合文字框与RTF文字框的文本数据中都可以插入动态数据域，且两者的数据域功能是完全一样的，数据域在运行时将被具体的数据替换。数据域支持的数据有：字段、参数、统计函数、系统变量、数学运算表达式与文字框文字引用等。数据域可以设置格式，方便数据按要求的文字形式展现出来。同一数据可以多次引用，且可以设置不同的格式，比如一个日期数据，用不同的格式显示其年、月、日值。

注意事项

  1. 综合文字框是在“文本”属性上编辑数据；RTF文字框是在“RTF文本”属性上编辑数据，文字模板可以采用Office Word进行排版编辑，然后将其复制到RTF文字框的RTF属性上。
  2. 综合文字框如果没有开启HTML标签功能，即“支持HTML标签”属性没有设为“是”，至少要设置“字间距”或“行间距”属性中的一个的值大于0，这样才能避免文字跨页截断的问题。
  3. 因为内容是动态的，每份具体的文章其长度可能有长有短，应该设置部件框及其所在报表节的“可伸展”属性为“是”，让程序自动计算出文章的长度。
  4. 如果文章的篇幅特别长，可以拆分为多部分，且每部分放在不同的报表节(如报表头与报表尾)中，这样不仅方便编辑排版，也能得到更好的运行性能。
  5. 如果一页下部出现很长的空白且后续内容换到新页上输出，应该设置报表节的“保持同页”属性设为“是”。

例子报表

在例子报表目录下有多个这方面的例子，Grid++Report5的默认安装在C:\Grid++Report 5.0\Samples\Reports。

  1. 5n.HTML标签.grf
  2. 6a.合同打印(单份_RTF).grf
  3. 6b.合同打印(多份_RTF).grf
  4. 6c.合同打印(单份_综合文字框).grf
  5. 6d.合同打印(多份_综合文字框).grf
  6. WEB在线演示例子：合同打印(单份/RTF)、合同打印(多份/RTF)、合同打印(单份/综合文字框)、合同打印(多份/综合文字框)


New Page 1

在客户端保存打印偏移参数 - 开发指南

为何要在客户端保存打印偏移参数

票据打印要求打印的位置非常准确，不同的打印机因为进纸位置等因素影响，在打印同一报表时其在纸张上的默认输出位置会不同，通常是通过设置水平与垂直打印偏移量来调整打印位置。在设计报表模板时，可以在页面设置对话框中设置打印偏移量，但这样的设置对不同的打印机都是统一的设置，对一个报表要用多个打印机或不确定的打印机来输出是不合适的。

如果由报表开发者来实现这样的要求，就需要为每个使用不同打印机的用户保存其打印偏移设置，在下次打印时载入保存的设置并调用程序接口应用到报表上。实现这样的要求需要建立客户身份识别与参数保存与载入等编程任务等，肯定是件不小的开发任务。为了很好地解决这样的需求，Grid++Report专门实现了打印偏移保存在本地电脑的功能，开发者只要在设计时勾选开启此功能，不用编写任何代码。

开启报表在客户端保存打印偏移参数功能

设计报表时，在报表的页面设置对话框中勾选“打印偏移保存在本地电脑”项就会开启此功能。见下图红圈处就是要设置的项目。

也可以用程序代码开启此功能，就是设置IGRPrinter的“PrintOffsetSaveToLocal”属性为“TRUE”，程序代码如下：
Report.Printer.PrintOffsetSaveToLocal = true;

报表在客户端保存打印偏移参数运行说明

开启报表在客户端保存打印偏移参数功能的报表每次打印时，将把其设置的打印偏移量保存在本地电脑上，在以后再次打印此报表时，保存的打印偏移量将会自动应用上，这样就可以做到一次设置好的打印偏移量后续持续使用。不同电脑分别保存自己的打印偏移量，同一电脑中根据打印机名称为不同的打印机保存各自的打印偏移量，这样就实现了同一报表用不同的打印机打印时可以应用各自的打印偏移设置。

打印偏移参数在重新设置后会自动保存，切换不同的打印机会应用各自不同的打印偏移参数。

打印偏移保存在本地电脑的功能对票据打印(套打)非常有用。

请参见

票据套打 | 保存打印设置 | IGRPrinter 接口 | IGRPrinter.PrintOffsetSaveToLocal


New Page 1

打印设置参数 - 开发指南

保存当前打印设置

如果期望把当前应用的打印设置参数保存下来以便下次继续按照这些参数生成报表，直接保存报表模板是不能达到的，要进行一定的处理才能实现这样的目的，下面提供两种方式实现这样的目标。

在报表运行过程中，当前的打印参数保存在报表主对象的打印机子对象(通过 Printer 属性访问)中，而打印机子对象中的数据是不会持久保存的。报表中保存有关打印设置参数的相关地方是报表主对象上的一系列名称以“Design”开始的相关属性。

方式一: 直接保存到报表模板中

首先将打印机子对象中的相关属性值设置到报表主对象的“Design”系列属性中，然后再保存报表模板，这样当前的打印机设置参数就持久保存下来了。下次再次载入报表模板就会应用这些打印机设置参数。下面是模拟代码：

//设置到“Design”系列属性
Report.DesignPaperSize = Report.Printer.PaperSize;
Report.DesignPaperName = Report.Printer.PaperName;
Report.DesignPaperWidth = Report.Printer.PaperWidth;
Report.DesignPaperLength = Report.Printer.PaperLength;
Report.DesignPaperOrientation = Report.Printer.PaperOrientation;
Report.DesignPrintDuplex = Report.Printer.PrintDuplex;
Report.DesignLeftMargin = Report.Printer.LeftMargin;
Report.DesignRightMargin = Report.Printer.RightMargin;
Report.DesignTopMargin = Report.Printer.TopMargin;
Report.DesignBottomMargin = Report.Printer.BottomMargin;

//保存模板
Report.SaveToFile(...);

因为报表模板中不保存打印机名称，所以当前应用地是哪台打印机没法用这种方式保存下来。

方式二: 采用其它方式保存，在下次载入在读取前面的保存并利用

报表开发者采用自己的方式将当前打印机设置信息持久保存到文件或数据库，在下次载入报表模板之后，再读入保存的参数并应用到报表中。下面是模拟代码：

//用自己的方式将下面参数持久保存到文件或数据库
... = Report.Printer.PaperSize;
... = Report.Printer.PaperName;
... = Report.Printer.PaperWidth;
... = Report.Printer.PaperLength;
... = Report.Printer.PaperOrientation;
... = Report.Printer.PrintDuplex;
... = Report.Printer.LeftMargin;
... = Report.Printer.RightMargin;
... = Report.Printer.TopMargin;
... = Report.Printer.BottomMargin;
... = Report.Printer.PrinterName;

//在下次载入报表模板之后读入保存的参数，并应用上
Report.LoadFromFile(...);

...载入保存的参数

Report.Printer.PaperSize = ...;
Report.Printer.PaperName = ...;
Report.Printer.PaperWidth = ...;
Report.Printer.PaperLength = ...;
Report.Printer.PaperOrientation = ...;
Report.Printer.PrintDuplex = ...;
Report.Printer.LeftMargin = ...;
Report.Printer.RightMargin = ...;
Report.Printer.TopMargin = ...;
Report.Printer.BottomMargin = ...;
Report.Printer.PrinterName = ...;

请参见

IGridppReport 接口 | IGRPrinter 接口 | IGridppReport.Printer


执行报表数据导出任务

报表数据导出 - 开发指南

执行报表数据导出任务的两种方式

方式一：从界面执行

在打印查看器控件与查询显示控件的工具条上提供了几个数据导出相关按钮，执行这些按钮就可以启动报表数据导出任务。

方式二：调用编程接口执行

Grid++Report 提供了数据导出的编程接口，报表开发者可以用自己的界面通过调用编程接口实现数据导出。实现数据导出有两种编程方式：一种就是直接调用 ExportDirect 方法一步实现数据导出。另一种就是使用 PrepareExport、Export、UnprepareExport 三个方法实现数据导出，在 PrepareExport 方法会返回一个数据导出选项对象的接口引用,报表开发者可以通过此接口引用改变数据导出选项。

编程处理要点：

  1. 在调用 ExportDirect 方法时，如果将参数 ShowOptionDlg 设为真，这在执行导出任务之前显示数据导出选项对话框，可以在其中设置数据导出选项。
  2. 在调用 PrepareExport 方法得到的数据导出选项接口引用在应用时，可以将其转换为具体类型的数据导出选项接口引用。
  3. 使用 PrepareExport 方法后，一定要在任务结束时调用 UnprepareExport 方法，释放 PrepareExport 申请的系统资源。

相关例子

  1. C/S报表组件：3.Export
  2. B/S报表插件：Tutorial\PrintDirect.htm
  3. B/S报表插件：03.Export\CustomExport.htm

请参见

改善报表导出效果 | IGridppReport.ExportDirect | IGridppReport.PrepareExport | IGridppReport.Export | IGridppReport.UnprepareExport


如何改善报表导出效果

改善报表导出效果 - 开发指南

改善报表导出效果 方法

Grid++Report 可以把报表导出为多种数据格式，包括：Excel、RTF、HTML、文本、CSV、PDF、图像等。导出 PDF 与图像类型采用与报表打印页面类似的绘制方式产生数据，所以也会得到与报表打印输出几乎完全一致的结果。其它几种数据类型因为格式上与报表数据不能建立完整的对应关系，有可能在数据导出后丢失一些数据格式信息等。

除导出 PDF 与图像之外的数据导出类型都是按纵横相交的格子来定位数据的位置，也就是将报表数据在打印页面上的绝对位置对应到位于某行某列的格子，如导出到 Excel，就是把报表中数据导出到 Excel 的单元格中。如果报表中的部件框不按照一定的规律进行排列，建立导出的格子信息就会比较复杂与凌乱，如导出 Excel 产生很多细小的列与行。如果存在重叠的部件框，被覆盖住的部件框因为找不倒对应的格子而不会导出，从而导致导出丢失数据。通过改进报表模板，我们一样可以得到良好的报表数据导出效果。下面列出改进设计报表模板的注意方面，并以导出 Excel 进行叙述，对其它几种导出类型也都是适用的。

  1. 用部件框对齐列定位功能减少导出的列：如果部件框都用对齐列功能来定位左右端位置，则导出的Excel表格的列就与报表的明细网格的列保持完全一致，这样导出的Excel表格就非常简洁。
  2. 如果某些部件框实在不能采用对齐列来定位且存在多个这样的部件框，就应该尽力让多个部件框的左右两端保持对齐(即垂直方向对齐)。尽力让左右相邻的两列部件框中间不留空隙。
  3. 让部件框的上下端对齐减少导出的行：尽力让同一个报表节中的多个部件框的上下两端保持对齐(即水平方向对齐)，尽力让上下相邻的两行部件框中间不留空隙。
  4. 让部件框与所在报表节的上下端之间不留间隙。
  5. 部件框不重叠。

改进导出效果的原则就是：部件框多用对齐列定位，部件框之间少留细小的间隙，部件框与报表节的边界之间也少留细小的间隙，部件框不重叠。

一个常见问题说明：我们经常需要将内容格改为自由格，然后在其中插入某个类型的一个部件框。这种情况下，应该首先将内容格中本身已经存在的字段框删掉，因为这个字段框通常是多余的，也会与新加入的部件框位置重叠。另新加入的部件框的“停靠”属性应该设为“充满”。这样注意之后就能保证这个内容格良好的导出效果。

相关例子

例子模板“5h.对齐列改进导出Excel.grf”是在例子模板“2a.基本分组.grf”的基础上制作的，执行这两个报表的导出Excel功能，可以看到改进后导出 Excel 的效果。

请参见

执行报表数据导出任务 | 部件框位置自动排列


报表脚本概述

报表脚本概述 - 开发指南

报表主对象的事件都有对应的脚本属性对应，在很多报表对象上都有脚本属性。通过在脚本属性中编写 JScript 或 VBScript 代码实现对报表生成与行为进行自定义控制。报表脚本编程可以在报表模板中直接实现对报表的自定义控制，通过修改报表模板而不是修改源程序达到对报表运行行为的维护修改。

Grid++Report 采用 Windows 操作系统内建的脚本语言： JScript 与 VBScript，JScript 与 JavaScript 几乎是完全相同的，VBScript是类似 VB 语法的脚本语言。考虑到 JavaScript 是目前最流行的脚本编程语言，我们也建议大家在报表脚本中采用 JScript 脚本语言。在此提供一个 JScript 帮助文档的下载：点击下载 JScript 帮助文档。

报表脚本属性的名称为对应事件的名称再加上“Script”。如果事件由某个报表子对象的相关行为触发，则对应报表脚本属性定义在此子对象上；反之，其它的事件脚本属性定义在报表主对象上。脚本语言类型可以为 JScript 或 VBScript，通过报表主对象的“脚本类别(ScriptType)”属性指定该报表使用的脚本语言类型。

在所有的事件脚本中，都有一个内建变量 Report 可以使用，其是对报表主对象的引用。如果事件有一个触发子对象与之关联，则有一个内建变量 Sender 可以使用，它是对触发事件的子对象的引用。如 FieldGetDisplayTextScript 脚本中，Sender 表示触发此事件的字段(IGRField)对象。

在 Grid++Report 的例子报表模板所在的目录(通常为C:\Grid++Report 5.0\Samples\Reports)中，编号以“7”开始的例子报表模板都是示范报表脚本的，其下的“\Script”子目录下也有几个使用事件脚本的例子报表模板。

请参见

各个报表脚本属性介绍 | 编写报表脚本代码 | 浏览 报表脚本代码 | 在脚本中应用报表参数 | 报表脚本举例


各个报表脚本属性介绍

各个报表脚本属性 - 开发指南

报表脚本都有一个触发报表对象，一般这个触发报表对象对应脚本中的内建 Sender 变量。下面就根据触发报表对象分类列出各个报表脚本属性并进行简要说明。

报表主对象上的脚本属性

  1. 初始化脚本(InitializeScript): 在报表生成开始时执行本脚本。报表开发者可以对报表模板定义进行修改调整。例如用户要从所有可选的列中选择一部分列显示，就可以在此事件中以编程方式动态定义列。
  2. 导出前脚本(ExportBeginScript): 在报表导出数据执行之前触发，可以在本脚本中改变导出选项参数，自定义报表的默认导出行为。本脚本对应的 Sender 变量为 IGRExportOption 接口引用，根据导出数据类型，可以把 Sender 对象转换为具体的导出类型对象，具体请参考 IGRExportOption 接口的编程参考帮助。
  3. 开始处理脚本(ProcessBeginScript): 当报表准备对填入的数据进行分析处理之前触发，可以在此脚本中对已填入的数据进行一些修改与补充，例如根据需要在记录集的后面追加一些空白记录。
  4. 结束处理脚本(ProcessEndScript): 当报表对填入的数据进行分析处理完成之后触发。
  5. 排序前脚本(BeforeSortScript): 当要对记录集中的记录进行重新排序之前触发本。如果设置了记录集的排序字段(SortFields)属性，在每次生成报表时，在 BeginPeocessRecord 事件之前会触发 BeforeSort 事件。另当查询显示器设定为可排序时，点击明细网格的列标题会按点击的列对记录进行重新排序，此时也会触发BeforeSort事件。
  6. 页开始脚本(PageStartScript): 在开始生成一个打印页面时触发。
  7. 页结束脚本(PageEndScript): 在完成一个打印页面生成时触发。
  8. 预览前脚本(ShowPreviewWndScript): 在显示默认打印预览窗口时触发。本脚本对应的 Sender 变量为 IGRPrintViewer 接口引用，在本脚本中通过 Sender 变量改变打印显示控件的属性，从而达到定制打印预览窗口的目的，如隐藏工具栏上的某些按钮等。

记录集上的脚本属性

  1. 处理记录脚本(ProcessRecordScript): 当报表生成时，会按顺序遍历每一条记录，每当遍历一条记录时触发执行本脚本。在此脚本中，可以取记录的各个字段的值。报表开发者可以在此脚本中对数据进行一些自定义的分析统计。
  2. 取记录脚本(FetchRecordScript): 在报表生成时，报表主对象请求数据时触发。
  3. 提交记录前脚本(BeforePostRecordScript): 在向报表记录集中填入记录数据的过程中，每当提交一条记录之前触发件。在此脚本中，我们可以对当前记录的各个字段值进行重新设置。譬如可以设置需要由其它字段通过计算得来的字段值。
  4. 页处理记录脚本(PageProcessRecordScript): 当报表在生成打印页面数据时，会再次按顺序遍历每一条记录，此遍历果城中每当遍历一条记录时触发。

分组上的脚本属性

  1. 分组开始脚本(GroupBeginScript): 在生成报表时，开始一个新分组项时触发。
  2. 分组结束脚本(GroupEndScript): 在生成报表时，一个新分组项结束时触发。

字段上的脚本属性

  1. 取显示文字脚本(GetDisplayTextScript): 当准备获取字段对象的显示文字时触发。在此脚本中可以改写子段的显示文字，通过设置子段的 DisplayText 属性改变其显示文字。例如可以将一个整数字段的显示文字改为任意的非数字文字。

报表节上的脚本属性

  1. 格式化脚本(FormatScript): 当报表节在输出之前触发。包括查询显示与打印生成显示。一般在本脚本中改变节及节中的部件框或单元格的显示外观属性，达到某些突出显示的效果。也可以改变节及节中的部件框或单元格的 Visible 属性，实现按条件动态显示或隐藏报表内容。本脚本会频繁执行到，应注意脚本的运行性能。

部件框上的脚本属性

  1. 自绘脚本(CustomDrawScript): 报表部件框自绘脚本。当部件框为自绘部件框时(部件框的“自绘”属性设置为“是”)，部件框在输出显示时会触发本事件,报表开发者应该在本事件中实现部件框的显示输出。

文字部件框上的脚本属性

  1. 取显示文字脚本(GetDisplayTextScript): 当准备获取文字框的显示文字时触发。在此脚本中可以改写文字框的显示文字，通过设置文字框的 DisplayText 属性改变其显示文字。文字框包括静态框、字段框、统计框、系统变量框与综合文本框。

请参见

报表脚本概述 | 编写报表脚本代码 | 浏览 报表脚本代码 | 在脚本中应用报表参数 | 报表脚本举例


编写报表脚本代码

编辑报表脚本 - 开发指南

脚本语言类型可以为 JScript 或 VBScript，新建报表默认为 JScript。如果要使用 VBScript 脚本语言，通过报表主对象的“脚本类别(ScriptType)”属性指定为 VBScript。

首先选中要编写报表脚本的报表对象，然后在属性编辑窗口选中对应脚本属性,执行脚本属性行右边的“...”按钮可以打开脚本编辑窗口，在此窗口中输入脚本代码。下图为脚本编辑窗口界面：

在所有的事件脚本中，都有两个内建变量 Report 与 Sender 可以使用，Report 变量是对报表主对象的引用。如果事件脚本有一个触发报表子对象与之关联，内建变量 Sender 是对触发事件的报表子对象的引用；反之 Sender 与 Report 都是对报表主对象的引用；如 FieldGetDisplayTextScript 脚本中，Sender 表示触发此事件的字段对象(IGRField)。通过 Report 与 Sender 变量就可以获取或设置报表对象的属性，调用报表对象的方法，请借助本帮助中编程参考部分应用对象的属性与方法。

在上面的脚本编辑窗口中，为字段的 FieldGetDisplayTextScript 事件脚本。其中的 Sender 表示字段对象，当其布尔值为真时，将字段的显示文本属性设为“热卖中”，反之设为另外的“停止销售”。

请参见

报表脚本概述 | 浏览 报表脚本代码 | 各个报表脚本属性介绍 | 在脚本中应用报表参数 | 报表脚本举例


编写报表脚本代码

浏览报表脚本 - 开发指南

整个报表脚本代码浏览功能就是在一个窗口中集中查看整个报表中的全部脚本代码，这样可以方便了解整个报表中的脚本定义情况，以及各个脚本之间的关联关系。

执行报表主对象上的“浏览报表脚本”属性命令可以打开整个报表脚本代码浏览窗口，如下图。

在脚本代码浏览窗口中不能编辑脚本，从列表中选择对应的脚本并执行“编辑脚本...”按钮，或双击下面编辑框中的脚本代码可以打开对应的脚本编辑窗口。

请参见

报表脚本概述 | 编写报表脚本代码 | 各个报表脚本属性介绍 | 在脚本中应用报表参数 | 报表脚本举例


在脚本中应用报表参数

在报表脚本中应用参数 - 开发指南

报表参数可以用来存储脚本运行得到的计算值，以供脚本下一次运行使用，或在另一个脚本中应用。如果某个脚本在报表的一次运行过程中会多次执行到，且一次运行需要用到上一次运行的结果值，这样的方式就需要借助报表参数来存储上一次运行的结果值。如果要实现某项功能需要编写多个报表脚本才能达到，且不同脚本之间需要传递计算值，也需要借助报表参数。

例子1：用报表脚本实现收发存功能

实现一个库存收发存报表，库存有一个期初数，列出每笔库存变动记录，并计算出变动后的结余库存数。用一个报表参数存储期初数，在记录集的“提交记录前脚本”中计算出余额值。

//余额字段的值由上一笔的余额值加上本笔入库数量减去本笔出库数量
Report.FieldByName("Balance").AsFloat = Report.ParameterByName("Balance").AsFloat + Report.FieldByName("IncQty").AsFloat - Report.FieldByName("DecQty").AsFloat

//更新参数的值为本笔的余额，以供下笔计算使用
Report.ParameterByName("Balance").AsFloat = Report.FieldByName("Balance").AsFloat;

例子2：实现自定义统计计算

实现分组统计自定义计算，要求统计金额大于1000以上的数据的合计值。实现这样需要定义一个报表参数存储中间运算值，在分组的“分组开始脚本”中设置报表参数的值为0，在记录集的“处理记录脚本”中按条件累加报表参数的值，在分组的“分组结束脚本”中将报表参数的值传递给要展现这个统计值的统计框。

分组开始脚本如下：

//初始统计值设为0
Report.ParameterByName("SumAmt").AsFloat = 0;

处理记录脚本如下：

//按条件累加报表参数的值
var AmtField = Report.FieldlByName("Amt");
if (AmtField.AsFloat >= 1000)
{
var AmtParam = Report.ParameterByName("SumAmt");
AmtParam.AsFloat= AmtParam.AsFloat + AmtField.AsFloat;
}

分组结束脚本如下：

//将报表参数的值传递给要展现这个统计值的统计框
Report.ControlByName("SumBox").Value = Report.ParameterByName("SumAmt").AsFloat;

请参见

报表脚本概述 | 各个报表脚本属性介绍 | 编写报表脚本代码 | 浏览 报表脚本代码 | 报表脚本举例


报表脚本举例

报表脚本举例 - 开发指南

报表主对象的初始化脚本实现根据报表参数动态确定列的可见性

Report.ColumnByName("Column1").Visible = Report.ParameterByName("ShowColumn1").AsBoolean;
Report.ColumnByName("Column2").Visible = Report.ParameterByName("ShowColumn2").AsBoolean;

说明：根据参数值确定某个列实现显式出来

报表主对象的开始处理脚本实现追加空白记录

描述：报表中有金额线列，每页打印固定行数，最后一页用空白行补齐，让空白行也显示出金额线列。直接用明细网格的追加空白行不能达到金额线列也显示出金额线，而是应该通过追加空白记录的方式来实现。

//假设每页要显示20 行，求出最后要补充的行数
var AppendRows = 20 - (Report.DetailGrid.Recordset.RecordCount % 20);
if (AppendRows == 20)
AppendRows = 0;
for (i=0; i<AppendRows; ++i)
{
Report.DetailGrid.Recordset.Append();
Report.DetailGrid.Recordset.Post();
}

报表主对象的预览前脚本实现隐藏打印显示器的工具栏上的部分按钮

//隐藏发送电子邮件按钮与保存报表文档菜单相
Sender.RemoveToolbarControl(6); //grtctMail
Sender.RemoveToolbarControl(7); //grtctSaveDocument

//显示出导航窗口，以单页模式查看报表
Sender.ShowBookmark = true; //显示出导航窗口
Sender.ViewMode = 2; //grpvmSinglePage 按单页模式查看。

记录集的提交记录前脚本实现计算字段

//字段值根据其它子段计算得来
Report.FieldByName("CalcAmount").AsFloat = Report.FieldByName("Quantity").AsFloat * Report.FieldByName("Unitprice").AsFloat;

字段的取显示文字脚本实现字段显示文字的改变

//将一个整数字段根据不同的值显示不同的文字
if (Sender.AsInteger == 5)
Sender.DisplayText = "优秀";
else if (Sender.AsInteger == 4)
Sender.DisplayText = "良好";
else if (Sender.AsInteger == 3)
Sender.DisplayText = "达标";
else
Sender.DisplayText = "不及格";

报表节的格式化脚本实现突出显示

//这是一个写在内容行上的脚本，通过改变外观属性实现以不同方式显示不同类别的内容
//当Amount字段的值大于等于5000时，将Amount显示为粗体，绿色,背景色为白色
//当Amount字段的值大于等于1000时，将Amount显示为正常体，黄色,背景色为蓝色
//当Amount字段的值小于1000时，将Amount显示为正常体，红色，背景色为白色
var AmountContentCell = Sender.ContentCells.Item("Amount");
var AmountField = Report.FieldByName("Amount");
var FontBold;
var FontItalic;
var TextColor;
var BackColor;
if (AmountField.AsFloat >= 5000)
{
FontBold = true;
FontItalic = false;
TextColor = GetColorValue(0, 255, 0);
BackColor = GetColorValue(255, 255, 255);
}
else if (AmountField.AsFloat >= 1000)
{
FontBold = false;
FontItalic = false;
TextColor = GetColorValue(255, 255, 0);
BackColor = GetColorValue(0, 0, 255);
}
else
{
FontBold = false;
FontItalic = true;
TextColor = GetColorValue(255, 0, 0);
BackColor = GetColorValue(255, 255, 255);
}

//当为打印输出状态时，文字颜色始终为黑色,背景色始终为白色
//if (Report.DisplayMode == grrdmPrintGenerate)
if (Report.DisplayMode == 2)
{
TextColor = GetColorValue(0, 0, 0);
BackColor = GetColorValue(255, 255, 255);
}

AmountContentCell.Font.Bold = FontBold;
AmountContentCell.Font.Italic = FontItalic;
AmountContentCell.ForeColor = TextColor;
AmountContentCell.BackColor = BackColor;

function GetColorValue(r,g,b)
{
return r + g*256 + b*256*256;
}

报表节的格式化脚本实现分组尾按条件隐藏

//这是一个写在分组尾上的脚本，根据条件动态设置 Visible 属性
Sender.Visible = (Report.FieldByName("Type").AsInteger == 0);

报表节的格式化脚本根据页号显示或隐藏报表节或部件框

//只在第一页显示当前报表节
Sender.Visible = (Report.SystemVarValue(3) == 1);

//如果是第一页不显示一个部件框
Report.ControlByName("MemoBox1").Visible = (Report.SystemVarValue(3) != 1);

//控制某个部件框在最后一页显示
Report.ControlByName("MemoBox1").Visible = (Report.SystemVarValue(3) == Report.SystemVarValue(2));

部件框的自绘脚本实现自定义图形与文字绘出

function GetColorValue(r,g,b)
{
return r + g*256 + b*256*256;
}

var Graphics = Report.Graphics;

var x = Graphics.Left;
var y = Graphics.Top;
var width = Graphics.Width;
var height = Graphics.Height;

var PartSize = height/3;
var DrawLeft = x + (width - PartSize)/2;
var DrawRight = DrawLeft + PartSize;
var DrawXCenter = (DrawLeft + DrawRight)/2;

var DrawTop = y;
var DrawBottom = y + height;

//设定绘出线型
Graphics.SelectPen(2, GetColorValue(255, 0, 0), 0/*grpsSolid*/);

//设定填充色
Graphics.SelectFillColor( GetColorValue(0, 255, 255) );

//画箭头两边斜线
Graphics.MoveTo(DrawLeft, DrawTop+PartSize);
Graphics.LineTo(DrawXCenter, DrawTop);
Graphics.LineTo(DrawRight, DrawTop+PartSize);

//画箭头竖线
Graphics.MoveTo(DrawXCenter, DrawTop);
Graphics.LineTo(DrawXCenter, DrawTop+PartSize*2);

//画出圆圈
Graphics.Ellipse(DrawLeft, DrawTop+PartSize*2, PartSize, PartSize, true);

//恢复填充色设定，SelectFillColor调用之后，必须对应调用RestoreFillColor
Graphics.RestoreFillColor();

//恢复绘出线型设定，SelectPen调用之后，必须对应调用RestorePen
Graphics.RestorePen();

请参见

报表脚本概述 | 各个报表脚本属性介绍 | 编写报表脚本代码 | 浏览 报表脚本代码 | 在脚本中应用报表参数


编程定义报表模板

用程序定义报表模板 - 开发指南

概述

Grid++Report 提供了丰富的编程接口，非常适合开发动态通用报表。用报表设计器能够可视化设计定义的报表，一样可以用程序代码动态定义出来，这样报表可以根据不同的参数配置定义出不同的特性，从而可以满足用户不同的多样化要求，所以说 Grid++Report 非常适合开发动态通用的报表。

编程接口的具体用法请参考帮助中的“编程参考”部分，所有的编程接口说明都包含在这部分帮助中，包括所有报表对象每个方法与属性的说明。在帮助的索引中输入关键词可以快速定位到对应的帮助主题。建议看明白其中的编程组件对象模型图，理解整个报表的定义结构模型，然后再查阅对应接口的编程参考帮助。

在用程序定义报表模板前，心中应该清楚如何用报表设计器来设计这个报表。程序定义报表模板的过程就是把设计报表的过程改为用程序代码来实现。在设计器中插入一个子对象，就对应到用程序代码定义一个新子对象。在设计器中改变一个对象的属性为非默认值，就对应用代码设定一个子对象的某个属性值。

例子“Advance\Program”就是用程序定义一个完整的模板，在实现用程序代码定义报表模板之前一定要先看明白这个例子。

定义报表模板包含的主要部分

定义报表模板包括：定义参数、定义页眉页脚、定义报表头、定义报表尾、定义明细网格等。根据一个报表的具体情况实现其需要的各个部分。

定义参数就是用IGridppReport的AddParameter方法增加新参数，然后设置新参数的非默认属性。

定义页眉页脚、定义报表头报表尾也非常简单，定义好这些报表节之后，然后在其中定义一个个要显示的部件框。

定义明细网格相对要复杂一些，这部分也是报表模板定义的核心部分。下面专门对定义明细网格进行特别说明。

定义明细网格

首先定义明细网格记录集的各个字段，再定义要显示的表格列。如果是一个分组报表，再定义分组。分组定义之后，在分组头与分组尾中定义要显示的部件框。

关于部件框的布局

在一般情况下，部件框是根据左边位置、上边位置、宽度与高度来确定其显示位置与大小，也就是分别设定部件框的Left、Top、Width与Height属性。但Grid++Report也为部件框提供多种自动布局的功能，自动布局具有很大的灵活性与自适应性，分别是停靠、对齐列、居中及锚定功能，分别对应部件框的Dock、AlignColumn及相关属性、Center与Anchor属性。我们建议尽量多采用部件框自动布局方式，更多详细信息请参考：部件框布局方式概述，部件框对齐列。

如何定义自由格

首先要找到对应单元格的引用，一般是通过列找到对应的标题格或内容格。然后设定其“FreeCell”属性为“true”，然后插入相应部件框。如果单元格中只有一个部件框要显示，可以将部件框的“停靠”属性设为充满，以便部件框完全占据单元格的全部空间。下面的代码就是示范了定义一个内容格为自由格，然后用一个系统变量框显示行号:

IGRColumn Column = Report.DetailGrid.Columns[1];
Column.ContentCell.FreeCell = true;
Column.ContentCell.Controls.RemoveAll();
IGRSystemVarBox SystemVarBox =
Column.ContentCell.Controls.Add(GRControlType.grctSystemVarBox).AsSystemVarBox;
SystemVarBox.Dock = GRDockStyle.grdsFill;
SystemVarBox.SystemVar = GRSystemVarType.grsvRowNo;

如何定义多层表头

在列定义好之后，定义上层表头的组标题格，最后将组标题格包括的列加入进来。下面是示范代码：

//定义第一个标题组，包括列ProductName、UnitPrice
IGRColumnTitleCell ColumnTitleCell1 =
Report.DetailGrid.AddGroupTitle("ProductTitleGroup", "产品信息");
ColumnTitleCell1.TextAlign = GRTextAlign.grtaMiddleCenter;
ColumnTitleCell1.EncloseColumn("ProductName");
ColumnTitleCell1.EncloseColumn("UnitPrice");

//这两个列不在标题组中，将其顺序移到最后
Report.DetailGrid.ColumnMoveToEnd("Quantity");
Report.DetailGrid.ColumnMoveToEnd("Discount");

//定义第二个标题组，包括列Amount、DiscountAmt、NetAmount
IGRColumnTitleCell ColumnTitleCell2 =
Report.DetailGrid.AddGroupTitle("AmtTitleGroup", "金额信息");
ColumnTitleCell2.TextAlign = GRTextAlign.grtaMiddleCenter;
ColumnTitleCell2.EncloseColumn("Amount");
ColumnTitleCell2.EncloseColumn("DiscountAmt");
ColumnTitleCell2.EncloseColumn("NetAmount");

检查定义结果

在代码定义完成之后，用 IGridppReport 的 SaveToFile 方法将定义结果保存到文件，然后用报表设计器程序打开这个文件，看看那些地方与预想的不符，调整或补充相应的定义代码。

也许因为代码定义设定了不合理的属性，设想某些应该在设计器布局窗口中出现的对象而没有出现。这种情况下，可以在设计器右上位置的对象浏览窗口中展开对应节点，查找并选中对应的对象节点，在属性编辑窗口中检查其属性值。

例如：
Report.SaveToFile("d:\a.grf");
这句代码把报表模板保存到文件，用设计器程序打开“d:\a.grf”检查定义结果。

相关例子

  1. c/s报表组件例子：Advance\Program 目录下。
  2. b/s报表插件例子：Advance\Program\Program.htm。

请参见

报表组件对象模型


New Page 1

部件框布局方式 - 开发指南

部件框布局方式概述

部件框在父容器中的位置与大小通常通过设定 Left,Top,Width,Height 属性而确定，但部件框可以定义几种布局方式自动产生部件框的位置与大小，其位置与大小可以跟随父容器大小的变化而变化。这几种布局方式分别是：锚定(Anchor)、停靠(Dock)、居中(Center)、对齐列(AlignColumn)。

几种布局方式的说明

锚定(Anchor)

通过部件框的 Anchor 属性指定部件框的锚定方式(GRAnchorStyles)，Anchor 的值按位组合。默认值是 grasTop 和 grasLeft。一个部件框可以锚定到其父容器的一个或多个边缘。将部件框锚定到其父容器，可确保当调整父容器的大小时锚定的边缘与父容器的边缘的相对位置保持不变。例如一个部件框的 Anchor 属性值设置为 grasTop 和 grasBottom，当父容器的高度增加时，部件框的高度也同时伸展，以保持到父容器的上边缘和下边缘的距离不变。

停靠(Dock)

指定部件框停靠到父容器的哪一个边缘或者可以停靠到所有边缘并充满父容器。通过部件框的 Dock 属性指定部件框的停靠方式（GRDockStyle）。默认值是不停靠到任何边缘（grdsNone）。部件框自动调整大小以使停靠边缘完全充满，部件框依照 Z 顺序停靠。例如，如果将该属性设置为 grdsLeft，部件框的左边缘将停靠到其父容器的左边缘，同时部件框的高度也变为父容器左边缘的高度。

居中(Center)

指定部件框在水平与垂直方向上居中位于父容器的方式。通过部件框的 Center 属性指定部件框的居中方式(GRCenterStyle)。默认值是在两个方向都不居中(grcsNone)。如果在某个方向上居中，当父容器的大小发生改变时，部件框自动调整位置使自己一直居于父容器的中间。例如，如果将该属性设置为 grcsHorizontal，部件框始终在水平方向上居于父容器的正中间。

对齐列(AlignColumn)

指定部件框左端与右端位置与某一个或两个指定列的对齐。通过部件框的 AlignColumn，AlignColumnEx 与 AlignColumnSide 几个属性指定部件框对齐列的行为，AlignColumn 与 AlignColumnEx 指定对齐到那一个列或那两个列，AlignColumnSide 指定对齐到列的左端、右端或左右两端(GRAlignColumnStyle)。如果指定对齐到列，则部件框的左右端位置与宽度会随列的变化而变化，并始终保证对齐端的位置与列的对应端的位置保持一样，当对齐到列的左右两端时，部件框的宽度与列的宽度始终保持一样。如果希望跨多列对齐，用“对齐列扩展”指定另一个对齐列的名称。

几种布局方式之间的关系

按照优先级从高到底的顺序排列：对齐列-〉停靠-〉锚定-〉居中。就是说在几种布局方式之间如果存在逻辑条件冲突时，优先按照高级别的布局方式调整部件框的大小与位置。例如，将部件框的停靠方式设定为停靠左边缘（grdsLeft），而居中方式为水平居中（grcsHorizontal），则部件框将采用停靠左边缘的停靠方式，而忽略水平居中的居中方式。

应用自动布局的好处与典型应用

  1. 可以更方便的设置部件框的位置与大小，比设置绝对位置与大小更快捷
  2. 可以智能化自动将部件框的位置与大小设置到合理状态，并能根据环境的变化而自动适应。
  3. 在分组节中显示表格线：分组头与分组尾不能直接输出列线，通过部件框的边框线并配合对齐列功能很容易实现。在节中加入部件框，设定部件框显示右边框，设定其对齐列，并调整部件框的高度与节等高。“4a.分组节显示列线.grf”例子模板就展现了这样的应用。
  4. 用对齐列改善报表数据导出，请参考“改善报表导出效果”。
  5. 在为自由格的内容格中只加入一个部件框时，通常应该将部件框的“停靠”属性改为“充满”，让部件框占据整个内容格的空间。如在内容格中插入一个系统变量框显示行号，请查看例子模板为“5b.显示行号.grf”。

特别提示：请报表开发者熟悉部件框的对齐列与停靠等自动布局功能，多应用这些功能一定能带来很多便利与好处。

请参见

IGRControl 接口 | IGRControl.Anchor | IGRControl.Dock | IGRControl.Center | IGRControl.AlignColumn | IGRControl.AlignColumnSide | IGRControl.AlignColumnEx


New Page 1

自定义数据统计 - 开发指南

实现自定义数据统计

统计框与统计函数可以自动实现数据的统计分析，如求和，求平均，最大值、最小值与记数等。但某些特殊的统计要求并不能由统计框与统计函数的功能直接实现，如对某个字段中的不分满足条件的求和，按特定的运算规则计算统计数据等。这些特殊的要求使用Grid++Report都是可以实现的，下面就对实现这样的要求进行简单说明。

方式一: 采用计算字段方式

定义一个计算字段，给计算字段设上合理的值，然后对计算字段进行统计。

在报表的记录集中定义一个新的字段，这个字段与报表数据源的字段并不存在对应关系，其字段值在报表的 BeforePostRecord 事件中根据条件求出，在这里称这样的字段为计算字段。假设计算字段的名称为“CalcField”，下面写出大致的 BeforePostRecord 事件程序代码：

void ReportBeforePostRecord()
{
if (#满足条件#)
Report.FieldByName("CalcField").AsFloat
= #求出值#;
else
Report.FieldByName("CalcField").AsFloat
= 0;
}

将满足统计条件记录的计算字段的值设上相应的数据，而将不满足统计条件记录的计算字段的值设0。应用统计框与统计函数对这个计算字段进行统计，就可以实现对满足条件的部分数据实现统计。

方式二: 在报表事件中自定义统计，最后替换统计框的统计值

这种方式采用在报表事件代码中计算出统计值，最后用计算出统计值替换统计框自动计算出来的值。一般是在报表的 GroupBegin 事件中设定统计初值，在 ProcessRecord 事件中根据条件与统计规则累计统计数据，最后在 GroupEnd 事件中给统计框设上自定义求出的统计值，下面写出大致的程序代码：

void ReportGroupBegin()
{
//变量MyTotal记录统计值,这里首先设初值
MyTotal = 0;
}

void ReportProcessRecord()
{
//这里累计统计，可以按自定义规则运算，可以取各个记录字段的当前值参与运算
MyTotal = MyTotal + ...;
}

void ReportGroupEnd()
{
//将变量MyTotal赋给统计框
MySummaryBox.Value = MyTotal;
}

说明：

  1. 如果不存在分组，而是对所有记录数据进行一遍统计，应该在 ProcessBegin 事件中设统计初值，在 ProcessEnd 事件中给统计框设上自定义求出的统计值。
  2. 也可以用参数代替统计框，将自定义统计值赋给参数，参数的值可以用静态框或综合文本框进行展现。

相关例子

  1. C/S报表组件例子：Advance\CustomSummary、Advance\HowTo
  2. B/S报表插件例子：Advance\CalcField\CalcField.htm Advance\CustomSummary\CustomSummary.htm

请参见

IGRSummaryBox编程参考 报表事件介绍


Lisence

报表透视查询 - 开发指南

概述

Grid++Report 的报表查询显示控件(GRDisplayViewer)可以响应鼠标点击事件，通过对鼠标点击事件的响应，可以实现报表的透视功能。如在汇总报表的事件响应中根据当前点击的数据打开对应的明细报表。

为明细网格的内容行提供穿透(DrillDown)查询功能

就是在鼠标点击内容行时打开本行数据对应的明细报表。Grid++Report 在报表查询显示器的 ContentCellClick、ContentCellDblClick 事件在某个内容格被点击时触发。根据事件中的参数还可以知道是哪个内容格被点击。可以在事件中取报表记录集的当前记录的字段值作为穿透查询的参数。

ContentCellClick | 当鼠标点击在某个内容格上时触发。
ContentCellDblClick | 当鼠标双击在某个内容格上时触发。

为明细网格的分组头与分组尾提供穿透(DrillDown)查询功能

就是在鼠标点击分组头与分组尾时打开本分组项对应的明细报表。Grid++Report 在报表查询显示器的 SectionClick、SectionDblClick 事件在分组头与分组尾被点击时触发。根据事件中的参数还可以知道是哪个分组头与分组尾被点击。可以在事件中取报表记录集当前记录的字段值作为穿透查询的参数。

这两个事件在所有的报表节被点击时都会触发，应该根据事件中的参数确定是分组头尾触发的事件才去执行穿透。

SectionClick | 当鼠标点击在某个节上时触发。
SectionDblClick | 当鼠标双击在某个节上时触发。

为部件框提供穿透(DrillDown)查询功能

就是在鼠标点击某个部件框时打开对应的明细报表。Grid++Report 在报表查询显示器的 ControlClick、ControlDblClick 事件在部件框被点击时触发。根据事件中的参数还可以知道是哪个部件框被点击。

ControlClick | 当鼠标点击在某个部件框上时触发。
ControlDblClick | 当鼠标双击在某个部件框上时触发。

为报表穿透设定特别的指示鼠标光标

Grid++Report 在系统内部定义了一些在报表查询显示时使用的鼠标光标，通过枚举 GRDisplayCursor 指定各个鼠标光标。可以为部件框、内容行、内容格设定不同的鼠标光标。如果为某个部件框设定了特定的鼠标光标，当鼠标光标移动到此部件框的显示区域上时，鼠标光标将变为此部件框设定的鼠标光标。内容格上显示的鼠标光标根据内容行、内容格设定的鼠标光标来确定；如果内容格本身设定了特定鼠标光标，则内容格上显示其本身设定的特定鼠标光标；反之如果内容行设定了特定鼠标光标，则内容格上显示内容行设定的特定鼠标光标。为部件框、内容行、内容格设定特定的鼠标光标为报表透视查询提供了显著的指示作用。另图表还提供序列光标与图例光标设定功能，为图表透视查询所用。

相关例子

  1. C/S报表组件例子: Advance\SummaryToDetail
  2. B/S报表插件例子: 10.SummaryToDetail 目录下

请参见

IGRDisplayViewer


New Page 1

多国语言支持 - 开发指南

关于 Grid++Report 对多语言支持

从 Grid++Report5.0 开始的版本其程序内部是 Unicode 编码的，并集成了多国语言资源 DLL。在程序启动运行时，Grid++Report 将根据 Windows 系统的本地语言设置加载对应的资源文字。如果当前系统是简体中文，则 Grid++Report 加载简体中文资源文字；如果当前系统是英文，则 Grid++Report 加载英文资源文字。

目前已经支持的语言有简体中文、繁体中文与英文。如果系统匹配不到对应的语言资源，将自动应用英文资源。我们稍后将翻译更多的语言资源。我们也可以把语言资源程序提供给用户，用户可以自己翻译需要的语言并制作资源 DLL，主要界面需要翻译的文字很少。

在运行中实时切换界面语言

在程序运行中，可以实时切换加载的资源文字，从而让界面显示为指定的语言。通过设置 IGridppReport.Language 属性实现界面语言切换，c/s开发参考例子“2.Normal”，b/s开发参考例子首页文件“index.htm”中的相关javascript代码。

发布支持多语言的C/S软件

除简体中文外，每种语言资源都编译在不同的 DLL 文件中，如果要支持某种语言，应该把对应的资源 DLL 文件一同发布，资源 DLL 文件必须与 Grid++Report 的发布 DLL 文件在同一个目录或其“lang”子目录下。资源 DLL 文件在 Grid++Report 的安装目录的“lang”子目录下。

各DLL文件名对应语言列表：

  • grcht50.dll - 繁体中文
  • grdeu50.dll - 德语
  • gren50.dll - 英语
  • grfra50.dll - 法语
  • grita50.dll - 意大利语
  • grjpn50.dll - 日语
  • grkor50.dll - 朝鲜语
  • grrus50.dll - 俄语
  • gresp50.dll - 西班牙语
  • grptg50.dll - 葡萄牙语

发布支持多语言的B/S软件

B/S软件已经将多语言资源 DLL 文件集成到插件安装包中，对多语言支持无须进行额外的处理。

编译制作自己的资源DLL

我们已经将 Grid++Report5.0 版的资源项目公开在网站上，下载地址：http://www.rubylong.cn/Download/grlang50.zip。如果有需要，用户可以根据需要自己进行一些翻译并进行编译制作。

请参见

IGridppReport 接口 | IGridppReport.Language | 发布用 Grid++Report 开发的桌面软件


Lisence

在VB中使用 - C/S报表开发

为了在 VB 程序项目中使用 Grid++Report，首先必须在 VB 程序中加入对 Grid++Report 的引用。具体过程如下:

在‘工具箱’面板中加入 Grid++Report 对应构件：
1、首先启动 VB 程序。
2、在‘工具箱’面板中右击鼠标按钮打开弹出式关联菜单，执行菜单项‘Components...’，打开‘Components’引用窗口。
2、在窗口中选择‘Controls’选项卡。
3、从列表中选取对‘Grid++Report Engine5.0 Type Library’与‘Grid++Report Designer5.0 Type Library’两项。
4、执行‘确定’按钮关闭窗口，在‘工具箱’面板中会加入 Grid++Report 的几个控件图标。

注意：如果在你的程序项目中没有用到报表设计器控件，在第 3 部中的‘Grid++Report Designer5.0 Type Library’可以不用选择。


Lisence

在C#与VB.NET中使用 - C/S报表开发

开始使用：Grid++Report 可以在 Visual C#.Net 与 Visual Basic.Net 下的 WinForm 项目中使用。在项目中使用 Grid++Report 之前，首先必须添加对 Grid++Report 的引用。

在 Visual Studio.Net(2003、2005、2008与2010) 中引用 Grid++Report 的过程：

首先打开或新建 Visual Studio.Net 项目。

在‘工具箱’面板中加入 Grid++Report 对应构件：

1、在‘工具箱’面板中右击鼠标按钮打开弹出式关联菜单，执行菜单项‘添加/移除项...’，打开‘自定义工具箱’窗口。(注：VS.Net2005及以后版本的菜单项名称为‘选择项...’，窗口名为‘选择工具箱’。)
2、在‘自定义工具箱’窗口中选择‘COM’选项卡，从列表中选取对‘Grid++Report DisplayViewer 5.6’与‘Grid++Report PrintViewer 5.6’两项。
3、执行‘确定’按钮关闭‘自定义工具箱’窗口，在‘工具箱’面板中会加入两个控件项：‘Grid++Report DisplayViewer 5.6’与‘Grid++Report PrintViewer 5.6’，此时我们可以象使用其它控件一样使用这两个控件。
4、如果在项目中需要为用户提供运行时设计报表的功能，需要使用类似的过程加入对‘Grid++Report Designer 5.6’的引用。

在项目中加入 Grid++Report 类型库的引用：

1、打开 ‘解决方案资源管理器’窗口，展开项目节点。
2、在‘引用’节点上右击鼠标按钮打开弹出式关联菜单，执行菜单项‘添加引用...’，打开‘添加引用’窗口。
3、在‘添加引用’窗口中选择‘COM’选项卡，在列表中双击‘Grid++Report Engine5.6 Type Library’项。
4、执行‘确定’按钮关闭‘添加引用’窗口，完成添加过程。
5、如果在项目中需要为用户提供运行时设计报表的功能，需要使用类似的过程加入对‘Grid++Report Designer5.6 Type Library’的引用。
注：如果在设计 Form 上要加入查询显示控件或打印显示控件，上面对类型库的引用步骤可以不做，因为在控件被加入到 Form 中的时候，项目会自动加入对类型库的引用。

兼容在64位 Windows 系统下运行：

设置 WinForm 项目的目标平台为“x86”可以保证用 Grid++Report 开发的软件在64位Windows下正常运行。设置说明：
1、C#: 项目->属性->生成->目标平台->x86
2、VB.NET: 项目->属性->编译->高级编译选项...->目标CPU->x86
3、也可以在项目的配置管理器中将“Any CPU”平台去掉，增加“x86”平台。操作菜单：生成->配置管理器->活动解决方案
平台，下拉选择“新建...”项可以在打开的对话框中增加“x86”平台，下拉选择“编辑...”项可以在打开的对话框中移除
“Any CPU”平台。
4、如果是在Windows7 64位或其它64位系统下开发，也一定要按以上要求设置项目的目标平台。
5、在 VS2005/2008/2010 中都通过测试，在Windows server 2008与Windows7 的 64 位系统下都可以正常发布。例子
11.CustomDesign 升级到VS2005/2008/2010 并把目标平台改为“x86”，制作出来的安装程序就可以在各种Windows系统下安
装运行。

发布你的项目，用VS.NET制作安装程序：

1、先创建安装项目：在解决方案资源管理器的根节点上点右键，在弹出的菜单里执行“添加->新建项目...”，创建一个“安
装项目”。
2、加入项目发布文件：在解决方案资源管理器的新创建的安装项目节点上点右键，在弹出的菜单里执行“添加->项目输出...
”，在打开的窗口里选择“主输出”，这样可以把程序的发布文件自动加入到安装项目中。
3、设置Grid++Report的DLL文件为COM自注册：分别设置“gregn50.dll”与“grdes50.dll”的“Register”属性为
“vsdrfCOMSelfReg”。

关于C#与VB.NET中数据多次重复填入的问题:

原因: 挂接报表事件的代码被多次执行，因此同一事件函数被多次挂接上；在事件一次触发过程中，这个事件函数会被多次调
用。如 FetchRecord 事件就会多次填入报表数据，从而造成报表数据重复。

解决方式1：移动挂接报表事件的代码的位置，让这些代码只执行一次。一般是在 From 的启动函数或事件中。如下C#与
VB.NET代码：
public Form1()
{
...

//连接报表事件
Report.Initialize += new _IGridppReportEvents_InitializeEventHandler(ReportInitialize);
Report.FetchRecord = new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);
Report.GroupBegin += new _IGridppReportEvents_GroupBeginEventHandler(ReportGroupBegin);
Report.ProcessRecord += new _IGridppReportEvents_ProcessRecordEventHandler(ReportProcessRecord);
Report.SectionFormat += new _IGridppReportEvents_SectionFormatEventHandler(ReportSectionFormat);

...
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
...

'连接报表事件
AddHandler Report.Initialize, AddressOf ReportInitialize
AddHandler Report.FetchRecord, AddressOf ReportFetchRecord
AddHandler Report.ProcessRecord, AddressOf ReportProcessRecord
AddHandler Report.GroupBegin, AddressOf ReportGroupBegin
AddHandler Report.SectionFormat, AddressOf ReportSectionFormat

...
End Sub

解决方式2：在挂接事件前，先移除原来的挂接事件。如下C#与VB.NET代码：
Report.FetchRecord -= new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);
Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);

RemoveHandler Report.FetchRecord, AddressOf ReportFetchRecord
AddHandler Report.FetchRecord, AddressOf ReportFetchRecord


Lisence

在Delphi中使用 - C/S报表开发

Grid++Report 为 Delphi 编写了包装类，组织在‘GRDelphi.dpk’package 项目中，必须首先安装‘GRDelphi.dpk’package 才能在 Delphi 中使用 Grid++Report。要运行与查看为 Delphi 编写的例子也必须先安装‘GRDelphi.dpk’package。

在 Delphi 中安装 Grid++Report 包装类的过程：

1、启动 Delphi。
2、执行菜单命令 File->Close All，关闭所有打开的项目与文件。
3、执行菜单命令 File->Open Project...，将‘Open Project’文件打开对话框中的文件类型改为‘Delphi package (*.dpk)’，打开 %InstallDir%\DelphiWrapper\GRDelphi.dpk。这里 %InstallDir% 指 Grid++Report 的安装目录，缺省在‘C:\Grid++Report 5.0’。
4、执行‘Package - GRDelphi.dpk’窗口上的工具条‘Install’命令按钮, Delphi 将编译并安装包，然后会提示 TGRDesigner, TGRDisplayViewer, TGridppReport, TGRPrintViewer 已经注册。此时在构件面板的 Grid++Report 页中会有此四个构件的图标。
5、执行菜单命令 File->Close All，如有保存文件确认提问消息框可以回答‘No’。
6、执行菜单命令 Tools->Evironment option...，在对话框中选择‘Library’页，执行 Library path 行的‘...’按钮，在打开的对话框中将‘C:\Grid++Report 5.0\DelphiWrapper’添加到列表中。如 Grid++Report 没有安装在默认目录，则以上目录中 C:\Grid++Report 5.0 应改为 Grid++Report 的实际安装目录。
注意：Delphi6 与 Delphi7 在打开 GRDelphi.dpk 项目时会有升级提示，回答‘Ok’即可。

Delphi 应该在每个项目的包含路径或中加入构件VCL包装包路径。具体操作步骤：

1、在 Delphi 程序中执行菜单‘Project->Options’打开‘Project options’窗口。
2、选中‘Directories/Conditionals’页面。
3、点击‘Search path’编辑框旁边的‘...’按钮加入包装包路径，Grid++Report 默认安装在C盘时包装包路径为‘ C:\Grid++Report 5.0\DelphiWrapper’。
4、关闭窗口，完成设置。

在Delphi2006中安装:

在编译包的过程中，会出现编译错误，在错误位置处将：
requires
vcl50,
Vcldb50;
改为
requires
vcl,
Vcldb;

Delphi2007中安装:

在编译包的过程中，会出现编译错误，在错误位置处将：
requires
vcl50,
Vcldb50;
全部删除，然后继续编译就可以顺利通过.


Lisence

在C++Builder中使用 - C/S报表开发

Grid++Report 为 C++Builder 编写了包装类，组织在‘GRBCB.bpk’package 项目中，必须首先安装‘GRBCB.bpk’package 才能在 C++Builder 中使用 Grid++Report。要运行与查看为 C++Builder 编写的例子也必须先安装‘GRBCB.bpk’package。

在 C++Builder 中安装 Grid++Report 包装类的过程：

1、启动 C++Builder。
2、执行菜单命令 File->Close All，关闭所有打开的项目与文件。
3、执行菜单命令 File->Open Project...，将‘Open Project’文件打开对话框中的文件类型改为‘C++Builder package (*.bpk)’，打开 %InstallDir%\CBuilderWrapper\GRCBC.bpk。这里 %InstallDir% 指 Grid++Report 的安装目录，缺省在‘C:\Grid++Report 5.0’。
4、执行‘Package - GRBCB.bpk’窗口上的工具条‘Install’命令按钮, C++Builder 将编译并安装包，然后会提示 TGRDesigner, TGRDisplayViewer, TGridppReport, TGRPrintViewer 已经注册。此时在构件面板的 Grid++Report 页中会有此四个构件的图标。
5、执行菜单命令 File->Close All，如有保存文件确认提问消息框可以回答‘No’。
6、执行菜单命令 Tools->Evironment option...，在对话框中选择‘Library’页，执行 Library path 行的‘...’按钮，在打开的对话框中将‘C:\Grid++Report 5.0\CBuilderWrapper’添加到列表中。如 Grid++Report 没有安装在默认目录，则以上目录中 C:\Grid++Report 5.0 应改为 Grid++Report 的实际安装目录。
注意：C++Builder6 在打开 GRBCB.bpk 项目时会有升级提示，回答‘Ok’即可。C++Builder 项目的选项中一定要禁用内联函数展开，不然运行时可能会有异常错误。在 C++Builder 中,执行project->Options...->Compiler,检查‘disable inline expansions’checkbox 一定要选取上。

关于在C++Builder2006中安装Grid++Report的包装包：

在安装过程中会有一些升级与转换提示，所以在 C++Builder2006 下安装 Grid++Report 的包装包的过程与其它 C++Builder 版本有些取别，下面列出单独的过程进行说明。
1、启动 C++Builder2006。
2、执行菜单命令 File->Open Project...，打开 %InstallDir%\CBuilderWrapper\GRCBC.bpk。这里 %InstallDir% 指 Grid++Report 的安装目录，缺省在‘C:\Grid++Report 5.0’。
3、在 IDE 的‘Project Manager’中用鼠标邮件选择‘GRCBC.bpl’节点，在弹出关联菜单中选择执行‘Install’命令。
4、在随后弹出的‘Find Package Import’窗口中，选中‘Remove this reference’检取框(CkeckBox)，然后执行‘OK’按钮关闭此窗口。
5、‘Find Package Import’窗口会再次弹出，执行与4步中一样的操作。
6、C++Builder2006 会执行编译任务，紧接着弹出‘Change GRBCB.bdsproj’窗口，直接执行‘OK’按钮。
7、如果编译没有通过，从2步开始重新执行，Grid++Report的4个组件就会安装到 IDE 的工具栏中，这样就可以正常地在C++Builder2006中使用 Grid++Report 了。
注意：在编译运行例子程序时，应该在IDE中将所有设计Form打开，然后再编译运行例子，否则例子运行会出现错误。如果不能成功运行，请打开在IDE中将所有设计Form打开，然后选择 Build 来重新进行完全编译。

关于在C++Builder2007中安装Grid++Report的包装包：

已经为C++Builder2007制作了专门版本的包装包，在子目录 C++Builder2007 下，打开包项目并安装即可。


Lisence

在VC中使用 - C/S报表开发

概述

在 VC 中使用 Grid++Report 之前没有特别的准备任务,在 VC 中使用 COM 与 ActiveX 的方式也有多种形式。这里就 Grid++Report 提供的例子程序实现要点进行简单的介绍，也推荐大家采用这样的方式在 VC 中使用 Grid++Report。我们在 VC 例子程序的 Utility 子目录下提供几个可以复用的文件，建议将其应用到您的项目中，如果因为文件位置的原因造成编译不通过，将代码中文件的路径改为实际的就行。下表是这几个文件的简单说明：

GRImport.h | 引用 Grid++Report 类型库，并定义了各个事件对应的常量值
GridppReportEventImpl.h | 定义报表事件响应类，以此类为基类，通过重写各个事件对应的虚函数可以实现对报表事件的响应。此文件中已经加入对 GRImport.h 的包含。
GridppReportEventImpl.c | 报表事件响应类参数信息静态成员变量的定义，在项目中某个.cpp文件中include这个文件。
GetPath.h | 几个根据当前环境获取文件路径与数据源连接串的方法。

在项目中加入对 Grid++Report 的引用:

包含 GridppReportEventImpl.h 即可。如果项目中有很多地方会引用到，将其放在 stdafx.h 中比较合适。

GRImport.h 中的
#import "..\..\..\grpro.tlb" no_namespace named_guids
#import "..\..\..\grdes.tlb" no_namespace named_guids
这两句有可能编译不通过，可以将前面的相对路径用实际路径代替即可，grpro.tlb 与 grdes.tlb 这两个文件在 Grid++Report 的安装目录下。

在项目中加入对 ATL 的支持:

在 stdafx.h 文件中加入以下语句，即可实现程序项目对 ATL 的支持。

//Enable MFC project to support ATL
#include <atlbase.h>
extern CComModule _Module;
#include <atlcom.h>

在项目中加入对 COM 的支持:

应该在项目的起始文件的 WinMain 函数中加入对 COM 支持的代码，Grid++Report 才能在项目中正常的运行。首先定义 _Module 变量，在开始位置调用 ::CoInitialize 与 _Module.Init，在程序退出之前调用 ::CoUninitialize 与 _Module.Term。

MFC 项目，应该在 CWinApp 派生的类中的 InitInstance 与 ExitInstance 方法中实现以上对应的代码。代码类似如下:

//ATL support module
CComModule _Module;

BOOL CDlgApp::InitInstance()
{
//启动时增加程序对 COM 的支持
HRESULT hRes = ::CoInitialize(NULL);
ATLASSERT(SUCCEEDED(hRes));
_Module.Init(0, AfxGetInstanceHandle());

...
}

int CDlgApp::ExitInstance()
{
//退出时对 COM 的支持的释放操作
_Module.Term();
::CoUninitialize();

return CWinApp::ExitInstance();
}

ATL或WTL 项目，代码类似如下:

CComModule _Module;

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE, LPSTR, int nShow)
{

HRESULT hRes = ::CoInitialize(NULL);
ATLASSERT(SUCCEEDED(hRes));

// Initialize the ATL module
_Module.Init(0, hinst);

CSimpleDlg dlgMain;
int nRet = dlgMain.DoModal();

// Terminate the ATL module
_Module.Term();
::CoUninitialize();

return nRet;

}

在对话框资源中加入 Grid++Report 的控件:

Grid++Report 的查询显示器(GRDisplayViewer)、打印显示器(GRPrintViewer)与报表设计器(GRDesigner)需要应用在对话框资源中。打开对话框资源，然后在对话框资源上点鼠标右键弹出关联菜单，执行“Insert ActiveX Control…”，插入 Grid++Report 的对应控件。


New Page 1

升级5.0版之前开发的程序 - C/S报表开发

如果您使用了 Grid++Report5.0 以前的版本并打算将以前开发的工作迁移到 V5.0 下。您应该按照本文档的指导完成升级迁移任务。

概述

Grid++Report 在运行时，5.0 版本可以与其以前的版本在同一台电脑中共存，也就是说用5.0 以前版本开发的程序与用 5.0 版开发的程序可以在同一台电脑中安装与运行，相互之间不会有任何影响。

如果安装有5.0 以前版本，并打算用Grid++Report 5.0进行开发，必须先将以前版本的 Grid++Report 卸载掉，然后才能使用 5.0 版进行报表开发。以前版本开发的程序必须进行简单的升级处理才能在 5.0 中顺利编译运行，下面就怎样升级以前版本的程序进行说明。

特别注意：在升级前，一定要做好原来程序的备份。

VC

  1. VC6.0中，如果对话框资源文件中使用了 GRDisplayViewer、GRPrintViewer 与 GRDesigner 三个控件之一，打开对应的对话框资源，此时会出现两次控件找不到提示消息框，直接点确定既可，删掉原来的控件。

  2. 然后在对话框资源上点鼠标右键弹出关联菜单，执行“Insert ActiveX Control…”，插入同类型的控件即可。注意：应该使新插入控件的 ID 保持与原来的一样，这样可以让程序直接编译通过。

  3. 如果使用了我们例子程序中 Utility 目录下的几个公用文件，应该用 5.0 版本提供的新文件覆盖原来的文件。

VB

  1. 打开以前的VB工程项目，当出现下面的对话框时，选择执行“是”按钮。如果随后还有提示消息框，始终选择“确定”按钮。

  2. 在 VB 的控件工具箱中加入对 Grid++Report 5.0 的引用：用鼠标右键点击控件工具箱，从弹出的关联菜单中选择执行“Components…”菜单项，在打开的对话框窗口中的控件列表中选择“Grid++Report 5.0 Engine Type Library”，如果在项目中使用了报表设计器控件，则将“Grid++Report 5.0 Designer Type Library”也同时选择。

  3. 打开使用了控件的 From，原来的控件已经不存在，从控件工具箱中选取相应控件重新在 Form 中加入，并保持控件的名称保持与原来一致。

  4. 随后编译运行项目即可。

C# 与 VB.NET

注意：在升级前要将项目的生成文件进行清理。

  1. 首先按“在C#与VB.NET中开始使用说明.txt”的指示加入 Grid++Report 的控件到控件工具箱面板中。此过程对所有要升级的项目只要执行一次。

  2. 打开要升级的项目。

  3. 移除对旧版本 AxgrproLib 与 grproLib 的引用：打开 “解决方案资源管理器”窗口，展开项目节点，删除对应的两个节点。

  4. 打开使用了 Grid++Report 控件的 Form，原来的控件已经在 From 上不存在，在 Form 对应的代码中移除原来控件对应的成员变量声明。

  5. 从控件工具箱中选取相应控件重新在 Form 中加入，并保持控件的名称与原来一致。

  6. 随后编译运行项目即可。

Delphi 与 C++Builder

将包括 Grid++Report 的查询显示器控件、打印查看器控件及报表设计器控件的 Form 对应的 .dfm 文件以文本的方式打开，将TGRDisplayViewer、TGRPrintViewer、TGRDesigner 拥有的ControlData 行删除，保存文件即可。
注意：在升级之前要首先编译并安装包装包。

易语言：

升级前请做好源代码的备份.
  1. 将代码中与 Grid++Report 组件有关的代码改为注释方式屏蔽掉。
  2. 易的每一个变量定义行都有一个备注项可填写备注,而易中外部控件升级后变量数据类型会丢失,我们可以在这里备注与 Grid++Report 相关的变量类型。
  3. 如果窗体上用到了查询显示器及打印查看器,设计器,将这几个组件从窗体上删除,这样做的目的是因为在某些情况下,易对包含不能识别控件的窗体会无法打开,删去后就不会出现这种情况,而且恢复时就能确保程序集与窗体的对应关系,减轻工作量。
  4. 保存改过后的源代码。
  5. 在系统中取消 Grid++report3.6/4.X 版本的注册(非必要步骤,如果不取消注册,设置变量类型时会提示两个相同名字的类型,不易识别版本)。
  6. 如果在易中已经注册并安装好 5.0 版控件,可省略此步骤；运行5.0版安装文件,安装控件;把控件安装目录中“Samples\易语言\NPK”下的两个 npk 文件复制到易语言安装目录下的 Lib 目录中。
  7. 重新打开第四步保存过的文件:
    a.根据变量的备注恢复变量类型。
    b.如果窗体上用到了查询显示器及打印显示器、报表设计器的话,从组件箱中拖放相应的 5.0 版组件到窗口上,组件名称应和未修改前的一致,如记不清,可根据蔽掉的源代码来获得。
    c.解除蔽掉与 Grid++report 有关的代码,如果以上步骤没有操作错误,程序可正常升级到新版本。

本方法在由 Grid++Report 3.6/4.X 版升级到 5.0 版中调试成功,其他外部组件也可参照本方法来实现平滑升级。

调整安装程序：

因为 V5.0 与 以前版本 的发布文件名称不一样，需要在您的安装程序中将有关 Grid++Report 的发布文件调整为本版本的。更新的文件有：

  1. gregn*.dll 对应替换为 gregn50.dll。
  2. grdes*.dll 对应替换为 grdes50.dll。


Grid++Report 购买版本开发注册

购买用户注册 - C/S报表开发

概述：

Grid++Report 的注册分两部分：发布注册与开发注册，只有当两部分都进行了正确的操作，Grid++Report 才不会运行在试用状态中。

发布注册就是用您收到的发布注册号在程序代码中调用注册方法。

不同版本具有不同的开发注册设置过程，Grid++Report在开发程序时侦测电脑中的注册状态,并将注册信息写入到控件中。启动“报表组件开发注册”这个程序可以查看本机开发注册状态，在安装 Grid++Report5.0 之后，在 Windows 系统的启动菜单中的“Grid++Report 5.0”下选择“报表组件开发注册”，便可以启动该程序，见下图。

（图）报表组件开发注册程序

注册确认事项：

  1. 在程序启动时调用 IGridppReport 的 Register 方法。Register 方法的调用请参考例子 Advance\Register。
  2. 每个使用 GRDisplayViewer、GRPrintViewer 与 GRDesigner 控件的Form(Dialog)，这几个控件的开发状态必须为已注册，即最后两行文字显示为绿色。

更多具体信息请阅读后面的说明。

发布注册：

在购买 Grid++Report 之后,您会收到产品注册号电子邮件，12位发布注册号就包含在其中。参考例子程序 Advance\Register 中有关注册示范部分，在您的程序中加入注册代码，一定记得用您的发布注册号替换例子中的无效注册号。

每个使用 Grid++Report 开发的应用程序都应该进行发布注册，否则 Grid++Report 在该应用程序中运行为试用版。在一个应用程序中只要进行一次注册方法调用即可，应该在应用程序启动之初与所有报表运行之前调用注册方法。

开发注册：

单机版开发注册

购买单机版的用户会收到一支单机软件狗，将此软件狗插入到开发电脑的USB接口上即可。

企业版开发注册

购买企业版的用户会收到一支网络软件狗，另需根据锐浪软件提供的地址下载注册服务器程序。

服务器电脑配置：首先应该在局域网范围内选定一台电脑用来插接企业版软件狗，在其它电脑使用 Grid++Report 进行开发时，应该保证本台电脑处于开机状态，并与局域网中的其它电脑是互联互通的。首先在 USB 端口插接企业版软件狗，然后启动“Grid++Report 企业版开发注册”程序(grndsvr.exe)，此时在 Windows 的任务栏中会显示本程序的图标(见图1)，双击此图标会显示程序界面窗口,在窗口中会显示企业版软件狗对应的版本信息。“Grid++Report 企业版开发注册(grndsvr.exe)”在首次启动之后，以后 Windows 系统启动时都会自动运行本程序。

图1

开发电脑配置：使用 Grid++Report 进行开发的每一台电脑都需要设置插接企业版软件狗的服务器电脑的访问参数，以便开发电脑可以获取开发注册信息。启动“报表组件 开发注册”程序，在“本机企业版开发注册”框的“服务器”编辑框中输入插接企业版软件狗的机器名或 IP 地址，端口也要与之保持一致，然后执行“注册”按钮。如果根据参数可以侦测到企业版软件，本机注册成功，在“本机开发注册信息侦测”框中将显示对应的版本信息。为了成功注册，必须保证企业版软件狗已经插接在指定电脑，且“企业版开发注册服务程序”在该电脑上已运行。

企业版附送的单机软件狗只要插入到电脑的USB接口上即可，插接电脑可以是任意的，不受限于注册服务器电脑所在的局域网。

机器码开发注册

单机开发版附送的机器码注册是根据用户的电脑硬件信息生成开发注册号，只能用在提供机器码信息的电脑上。

发送机器码：启动“报表组件开发注册”程序，机器码就会显示在“本机机器码”文字框中，执行机器码编辑框右边的“发送机器码...”按钮，在打开的对话框中填写必要的信息，然后执行“直接发送”按钮就会将机器码注册信息发送给锐浪软件。如果直接发送多次尝试都不成功，执行“复制Email文本到粘贴板”按钮将发送内容复制到系统粘贴板，然后启动电子邮件将系统粘贴板中的内容 Email 到 register@rubylong.cn。

提示：发送机器码信息时，必须保证本机已经连接到 Internet。

锐浪软件在审核信息通过之后，把根据机器码生成的开发注册号发送到您的电子邮箱。在您收到开发注册号号之后，将开发注册号复制填入到“开发注册号”编辑框中，然后执行“注册”按钮，此时在下面“本机开发注册信息侦测”框中就会显示正确的开发注册信息。

转换购买前开发的程序

因为购买前开发的程序里的控件中没有写入开发注册信息，所以必须进行转换处理。其过程非常简单：在您的编程语言集成开发环境(IDE)中打开所有使用了 Grid++Report 的查询显示器(GRDisplayViewer)、打印显示器(GRPrintViewer)与报表设计器(GRDesigner)这三个控件的表单(Form，VC为资源对话框)。有以下两种方式可以进行转换：

方式1：选中报表控件，改动控件的一个属性值让控件成为已修改状态，如将一个真假类型的属性值由 TRUE 改为 FALSE，然后再由 FALSE 改为 TRUE 进行还原；然后关闭设计表单并再次重新打开，此时控件会显示正确的版本信息。

方式2：将原控件删除，然后再重新加入,将新插入的控件名称(或ID)改为与原控件一样，然后关闭设计表单并再次重新打开，此时控件会显示正确的版本信息。

在转换成功之后，控件中最后一行文字的颜色应该显示为绿色，下面两图为同一控件在转换前后的显示状态。如果控件的版本信息还是显示为免费版，启动“报表组件开发注册”程序进行开发注册。

(图1)控件转换前显示状态 | (图2)控件转换后显示状态


New Page 1

发布开发的软件 - C/S报表开发

发布概述

Grid++Report 5.0 的最终发布文件只有两个DLL：gregn50.dll 与 grdes50.dll。gregn50.dll 是报表引擎模块，grdes50.dll 是报表设计器模块。这两个文件可以在 Grid++Report 的安装目录下找到，默认安装在 C:\Grid++Report 5.0 目录中。如果在程序中没有嵌入报表设计器控件，只要发布 gregn50.dll 这一个文件就可以了。

这两个 dll 文件都是 COM 自注册动态库，分发时必须在目标电脑上实现自注册。一般的安装程序制作工具都支持文件的自注册，也可以用 Windows 的 regsvr32.exe 程序进行手工注册。Grid++Report 是一个轻量级的COM组件，除了自身包括的两个发布文件，不依赖任何运行时库。

如果要支持多国语言，除简体中文外，应该把需要支持的语言资源DLL文件也一起发布。各种语言资源DLL文件在安装目录的“lang”子目录下。Grid++Report 已经在程序DLL文件中内建加入简体中文语言资源，支持简体中文不需要资源DLL文件。语言资源DLL文件复制到目标目录就行了，不需要进行自注册。

手工注册发布文件

regsvr32.exe 程序是 Windows 自带的注册进程内 COM 对象的工具，在每种 Windows 版本中都带有此应用程序。如果将用 Grid++Report 开发的应用程序分发到目标计算机时，在安装过程中没有对 Grid++Report 的两个发布 DLL 进行自注册，则必须用 regsvr32.exe 程序进行注册操作，在命令行窗口中，执行 regsvr32 命令。语法如下：
regsvr32 "%FilePath%\gregn50.dll"
regsvr32 "%FilePath%\grdes50.dll"
其中 %FilePath% 代表这两个 DLL 文件的目录，在实际中应用目录进行替换。

用安装程序制作工具发布文件并注册

几乎所有的安装制作工具都支持 COM DLL的自注册，只要按照安装制作工具的相关说明进行处理就行。使用可视化设计的安装制作工具一般只要设置一个属性即可完成 COM 动态库的自注册，首先将 gregn50.dll 与 grdes50.dll 加入到安装项目的文件集合中去，然后选中文件，在其属性设置中将其指定为自注册(SelfRegister)即可。完全用脚本定义安装制作工具只要设置合适的脚本就可以实现自注册要求。

Grid++Report 在制作安装程序时，最初采用的安装制作工具是 Inno setup，因 Inno setup 没有繁体版，不能制作繁体版产品的安装程序，后改用NullSoft Scriptable Install System(NSIS)，两种工具的制作过程都不复杂，并且都是免费软件。下面就将这两种工具制作的 Grid++Report 安装程序实现自注册过程进行简要说明，并将整个安装脚本公布出来。

用 Inno setup 制作安装程序：

在脚本中实现 DLL 自注册，将Flags标志设为 Flags: restartreplace sharedfile regserver

Source: "D:\LuChenghui\DragonReport\Source\grpro\Release\gregn50.dll"; DestDir: "{app}"; Flags: restartreplace sharedfile regserver
Source: "D:\LuChenghui\DragonReport\Source\grdes\Release\grdes50.dll"; DestDir: "{app}"; Flags: restartreplacesharedfile regserver

下载 Grid++Report 用 Inno setup 实现的安装脚本

用 NSIS 制作安装程序：

在脚本中实现 DLL 自注册，在一个普通节中调用 RegDLL 进行注册。在 Uninstall 中取消自注册.

Section "Registration"
RegDLL "$INSTDIR\gregn50.dll"
RegDLL "$INSTDIR\grdes50.dll"
...
SectionEnd

Section Uninstall
UnRegDLL "$INSTDIR\gregn50.dll"
UnRegDLL "$INSTDIR\grdes50.dll"
...
SectionEnd

下载 Grid++Report 用 NSIS 实现的安装脚本

在Windows7下安装与发布

在 Windows7 下，在安装 Grid++Report 时，必须以管理员权限用户登陆 Windows7，并以管理员身份运行安装程序。开发者自己制作的安装程序也要以类似的方式进行安装。如果是用 regsvr32.exe 命令进行注册，DLL文件要提供完整的文件路径名。

关于 .NET WinForm 程序的发布说明

由于 .NET 会对 COM 组件引用产生包装 DLL 文件，在发布 WinForm 程序时，这些包装 DLL 文件也要跟随一起发布。Grid++Report 在 .NET 程序中产生的4个包装 DLL 文件也应该跟随一起发布，这些文件在项目的 bin\debug 与 bin\release 目录下，文件名称如下：

AxInterop.grdesLib.dll
AxInterop.grproLib.dll
Interop.grdesLib.dll
Interop.grproLib.dll

VS.NET 本身就可以制作安装程序，也非常易用，也非常方便。 用 VS.NET 制作安装程序过程如下：

  1. 先创建安装项目：在解决方案资源管理器的根节点上点右键，在弹出的菜单里执行“添加->新建项目...”，创建一个“安装项目”。
  2. 加入项目发布文件：在解决方案资源管理器的新创建的安装项目节点上点右键，在弹出的菜单里执行“添加->项目输出...”，在打开的窗口里选择“主输出”，这样可以把程序的发布文件自动加入到安装项目中。
  3. 设置Grid++Report的DLL文件为COM自注册：分别设置“gregn50.dll”与“grdes50.dll”的“Register”属性为“vsdrfCOMSelfReg”。

绿色发布Grid++Report开发的软件，即以拷贝复制方式分发软件

COM DLL 文件的自注册可以用程序代码来实现，如果不想制作安装程序，而是直接拷贝发布软件(即绿色发布)，可以考虑在程序代码中进行COM DLL注册。其基本思路就是：首先尝试创建一个报表对象，如果创建成功，说明 Grid++Report 的发布 DLL
文件已经进行了自注册；反之说明需要用程序代码进行注册，本次注册之后，以后在本机启动
Grid++Report 就无需再次注册。下面是参考代码：//---------------------------------------------------------------------------
//尝试创建一个报表对象，判断是否已经自注册
bool TestGridReportDLLRegister(void) //这个函数适用于VC
{
bool Success = true;
try
{
IGridppReportPtr pGridppReport;
pGridppReport.CreateInstance( __uuidof(GridppReport) );
Success = (pGridppReport != NULL);
}
catch (...)
{
Success = false;
}
return Success;
}
bool TestGridReportDLLRegister(void) //这个函数适用于C++Builder，Delphi下是类似的
{
bool Success = true;
TGridppReport *pTempGridppReport = new TGridppReport(Application);
try
{
Success = pTempGridppReport->GetDefaultInterface();
}
catch (...)
{
Success = false;
}
delete pTempGridppReport;    return Success;
}

//---------------------------------------------------------------------------
//调用COM DLL的DllRegisterServer函数进行自注册
bool RegisterComDLL(const TCHAR *DLLFileName)
{
HINSTANCE hLib = LoadLibrary(DLLFileName);
if (hLib == (HINSTANCE)HINSTANCE_ERROR)
return false;    //获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint = GetProcAddress(hLib,_T("DllRegisterServer"));
//调用注册函数DllRegisterServer
if (lpDllEntryPoint != NULL)
{
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
return false;
};
FreeLibrary(hLib);
}
return true;
}

//---------------------------------------------------------------------------
//按需进行Grid++Report的自注册
bool RegisterGridReportDLL(void)
{
bool Success = true;
if ( !TestGridReportDLLRegister() )
{
//AnsiString AppPath = ExtractFilePath(Application->ExeName);
//AnsiString EgnDLLFile = AppPath + "gregn50.dll";
//AnsiString DesDLLFile = AppPath + "grdes50.dll";
//TBD.. 这里应该根据实际改为绝对路径，并保持文件路径的正确性
TCHAR EgnDLLFile[] = _T(".\\gregn50.dll");
TCHAR DesDLLFile[] = _T(".\\grdes50.dll");        Success = RegisterComDLL(EgnDLLFile);
if ( !Success )
{
MessageBox(NULL, "注册gregn50.dll失败","",MB_OK);
}
else
{
Success = RegisterComDLL(DesDLLFile);
if ( !Success )
MessageBox(NULL, "注册grdes50.dll失败","",MB_OK);
}
}
return Success;
}


New Page 1

报表运行就是将报表数据结合报表模板创建出报表的输出数据，并将输出数据展现给报表使用者。Grid++Report 生成报表的基本过程如下：

驱动报表运行的方式：

  1. 调用报表主对象的 Print 或 PrintEx 方法，直接将报表打印输出。
  2. 调用报表主对象的 Preview 或 PreviewEx 方法，用缺省的打印预览窗口预览报表。
  3. 调用查询显示器(IGRDisplayViewer)的 Start 与 Refresh 方法，让报表在查询显示器控件中显示。
  4. 调用打印显示器(IGRPrintViewer)的 Start 与 Refresh 方法，让报表的打印页面数据在打印显示器控件中显示。
  5. 执行报表数据导出任务。

报表运行过程简述：

  1. 创建报表对象。根据创建 COM 对象的方法进行，如果定义了报表对象的包装类，则创建包装类的实体。
  2. 定义报表对象。一般是从报表模板文件或内存变量中载入报表的定义，也可以通过编程的方式动态定义报表。
  3. 为报表对象提供数据。采用拉模式，报表引擎将主动从数据源提取数据。采用推模式，报表在开始生成时触发 FetchRecord 事件，报表开发者必须在此事件中将报表数据填入到报表对象中。一般报表数据是从数据库中查询出来的，也可以是任何其它途径得到的数据。

在报表的生成与输出过程中，会有很多相关事件被触发，报表开发者可以根据自己的需要去响应适当的事件。


New Page 1

报表主对象是一个COM Automation对象，其类标识（CLSID）是CLSID_GridppReport，接口（interface）是IGridppReport。在各种开发平台下创建报表主对象的过程：

[Visual C++]

CComPtr<IGridppReport> m_pReport;

m_pReport.CoCreateInstance(CLSID_GridppReport);

[C++Builder]

已经生成包装类构件（TGridppReport），在Form或DataModule上放一个TGridppReport构件即可。在头文件中会生成包装类对象的引用定义，类似：

TGridppReport *GridppReport1;

[Delphi]

已经生成包装类构件（TGridppReport），在Form或DataModule上放一个TGridppReport构件即可。


New Page 1

执行报表主对象的 LoadFromFile 方法将报表模板文件载入到报表主对象中。

[Visual C++]

CComPtr<IGridppReport> m_pReport;

...

m_pReport->LoadFromFile( CComBSTR("c:\\ReportDir\\Sample.grf") );

[C++Builder]

TGridppReport *GridppReport1;

...

GridppReport1->LoadFromFile( WideString("c:\\ReportDir\\Sample.grf") );

[Delphi]

GridppReport1: TGridppReport;

...

GridppReport1.LoadFromFile('c:\ReportDir\Sample.grf');


New Page 1

如果没有定义数据库连接串与查询SQL，或指定在运行时不从数据库连接串与查询SQL设置中取得明细记录数据，则必须通过响应 FetchRecord 事件向报表提供明细记录数据。填充过程需要使用 IGRRecordset 接口的 Append 与 Post 方法，另外还需要对各个字段进行赋值。

在 Grid++Report 的例子程序中编写了通用的方法(函数)，用于将各种编程平台的数据集中的数据填入到报表中，此方法可以在报表开发者的程序中再次复用。例子 CustomGroup 与 CustomSummary 采用推模式，用通用方法(函数)将编程平台下的数据集数据提供给报表，请查看 FetchRecord 事件相关的代码。

下面是一段 VC 中填充报表数据的代码：

virtual void FetchRecord(VARIANT_BOOL *pEof)
{
//填充第一条记录
m_pGridppReport->DetailGrid->Recordset->Append();
m_C1Field->AsString = "A";
m_I1Field->AsInteger = 1;
m_F1Field->AsFloat = 1.01;
m_pGridppReport->DetailGrid->Recordset->Post();

//填充第二条记录
m_pGridppReport->DetailGrid->Recordset->Append();
m_C1Field->AsString = "B";
m_I1Field->AsInteger = 2;
m_F1Field->AsFloat = 1.02;
m_pGridppReport->DetailGrid->Recordset->Post();

//填充第三条记录
m_pGridppReport->DetailGrid->Recordset->Append();
m_C1Field->AsString = "C";
m_I1Field->AsInteger = 3;
m_F1Field->AsFloat = 1.03;
m_pGridppReport->DetailGrid->Recordset->Post();
}

下面是一段 VB 中采用通用方法填充报表数据的代码：

Private Sub Report_FetchRecord(pEof As Boolean)
Dim rs As New ADODB.Recordset
rs.Open "select d.ProductID,p.ProductName,sum(d.UnitPrice*d.quantity) as amount " _
& "from [Order Details] d inner join Products p on p.Productid=d.Productid " _
& "group by d.ProductID,p.ProductName " _
& "order by sum(d.UnitPrice*d.quantity) desc", cn

GRFetchRecordFromRecordset Report, rs

rs.Close
End Sub

其中的 GRFetchRecordFromRecordset 就是我们为 VB 编写的通用方法。


New Page 1

只用直接调用报表主对象的接口方法 Print 或 PrintEx 方法就可以将报表生成并将生成数据送至打印机进行输出。Grid++Report 处理 Print 或 PrintEx 方法的主要过程如下：

  1. 首先准备生成报表数据，触发 Initialize 事件，报表开发者可以在此事件中对报表模板进行动态定义。
  2. 如果报表定义了明细网格，报表主对象向使用者请求数据，触发 FetchData 事件，报表开发者必须在此事件中将数据填充到记录集对象中。在提交每条记录时,会触发 BeforePostRecord 事件。
  3. Grid++Report 根据填充的数据进行数据加工。在此过程中，Grid++Report 将逐条处理记录数据，每当处理一条记录时，触发一次 ProcessRecord 事件。如果定义了分组，当一个分组项记录开始时，触发 GroupBegin 事件，当一个分组项记录结束后，触发 GroupEnd 事件。
  4. 生成打印页面数据。在此过程中，Grid++Report 将再次逐条处理记录数据，每当处理一条记录时，触发一次 PageProcessRecord 事件。当输出一个节之前，触发 SectionFormat 事件。当输出每个字段的显示文本时，触发一次 FieldGetDisplayText 事件。
  5. 将打印页面数据送至打印机进行打印输出。

注意：使用PrintEx方法时，根据打印生成方式参数生成打印页面，不同的打印生成方式得到的打印页面不一样，只输出表单数据方式（grpgsOnlyForm）不会执行1至3步过程。


New Page 1

只用直接调用报表主对象的接口方法 PrintPreview 或 PrintPreviewEx 方法就可以将报表生成并将生成数据显示在缺省打印预览窗口中。Grid++Report 处理 PrintPreview 或 PrintPreviewEx 方法的主要过程如下：

  1. 首先准备生成报表数据，触发 Initialize 事件，报表开发者可以在此事件中对报表模板进行动态定义。
  2. 如果报表定义了明细网格，报表主对象向使用者请求数据，触发 FetchData 事件，报表开发者必须在此事件中将数据填充到记录集对象中。在提交每条记录时,会触发 BeforePostRecord 事件。
  3. Grid++Report 根据填充的数据进行报表数据生成。在此过程中，Grid++Report将逐条处理记录数据，每当处理一条记录时，触发一次 ProcessRecord 事件。如果定义了分组，当一个分组项记录开始时，触发 GroupBegin 事件，当一个分组项记录结束后，触发 GroupEnd 事件。
  4. 生成打印页面数据。在此过程中，Grid++Report 将再次逐条处理记录数据，每当处理一条记录时，触发一次 PageProcessRecord 事件。当输出一个节之前，触发 SectionFormat 事件。当输出每个字段的显示文本时，触发一次 FieldGetDisplayText 事件。
  5. 将打印页面数据显示在窗口中。

注意：使用 PrintPreviewEx 方法时，根据打印生成方式参数生成打印页面，不同的生成方式得到的打印页面不一样，只输出表单数据方式（grpgsOnlyForm）不会执行1至3步过程。


New Page 1

要以屏幕查询显示的方式将报表输出显示，必须使用查询显示器。查询显示器是一个 ActiveX 控件，使用查询显示器的主要过程如下：

  1. 首先定义一个窗口，用来承载查询显示器与其它操作界面元素（按钮，编辑框，菜单等）。
  2. 在窗口中创建查询显示器。按照各钟开发平台使用 ActiveX 控件的方法创建。
  3. 建立查询显示器与报表主对象之间的关联。编写代码为查询显示器的 Report 属性赋值。
  4. 在适当的地方调用查询显示器的 Start 方法开始报表的运行。一般在承载窗口创建之后或显示时调用 Start 方法。

当报表开始运行之后，Grid++Report 内部处理的主要过程如下：

  1. 首先准备生成报表数据，触发 Initialize 事件，报表开发者可以在此事件中对报表模板进行动态定义。
  2. 如果报表定义了明细网格，报表主对象向使用者请求数据，触发 FetchData 事件，报表开发者必须在此事件中将数据填充到记录集对象中。在提交每条记录时,会触发 BeforePostRecord 事件。
  3. Grid++Report 根据填充的数据进行报表数据生成。在此过程中，Grid++Report 将逐条处理记录数据，每当处理一条记录时，触发一次 ProcessRecord 事件。如果定义了分组，当一个分组项记录开始时，触发 GroupBegin 事件，当一个分组项记录结束后，触发 GroupEnd 事件。
  4. 将报表数据显示在查询显示器中。当一个节屏幕上画出之前，触发 SectionFormat 事件。当输出每个字段的显示文本时，触发一次 FieldGetDisplayText 事件。


New Page 1

定义自己的打印预览窗口必须用到打印查看器构件。打印查看器是一个 ActiveX 控件，使用打印查看器的主要过程如下：

  1. 首先定义一个窗口，用来承载打印查看器与其它操作界面元素（按钮，编辑框，菜单等）。
  2. 在窗口中创建打印查看器。按照各钟开发平台使用 ActiveX 控件的方法创建。
  3. 建立打印查看器与报表主对象之间的关联，编写代码为打印查看器的 Report 属性赋值。
  4. 在适当的地方调用打印查看器的 Start 方法开始报表的运行。一般在承载窗口创建之后或显示时调用 Start 方法。

当报表开始运行之后，Grid++Report 内部处理的主要过程如下：

  1. 首先准备生成报表数据，触发 Initialize 事件，报表开发者可以在此事件中对报表模板进行动态定义。
  2. 如果报表定义了明细网格，报表主对象向使用者请求数据，触发 FetchData 事件，报表开发者必须在此事件中将数据填充到记录集对象中。在提交每条记录时,会触发 BeforePostRecord 事件。
  3. Grid++Report 根据填充的数据进行报表数据生成。在此过程中，Grid++Report将逐条处理记录数据，每当处理一条记录时，触发一次 ProcessRecord 事件。如果定义了分组，当一个分组项记录开始时，触发 GroupBegin 事件，当一个分组项记录结束后，触发 GroupEnd 事件。
  4. 生成打印页面数据。在此过程中，Grid++Report 将再次逐条处理记录数据，每当处理一条记录时，触发一次 PageProcessRecord 事件。当输出一个节之前，触发 SectionFormat 事件。当输出每个字段的显示文本时，触发一次 FieldGetDisplayText 事件。
  5. 将打印页面数据显示在打印查看器中。

注意：打印查看器的 GenerateStyle 属性定义打印页面的生成方式，不同的打印生成方式得到的打印页面不一样，只输出表单数据方式（grpgsOnlyForm）不会执行1至3步过程。


New Page 1

在报表中定义参数之后，参数的值一般要在报表运行时才能确定，且是动态变化的，需要在报表的宿主程序中为报表参数设置动态值。

在报表的 Initialize 事件中设定参数的值是理想的选择，通过报表主对象的 ParameterByName 方法根据名称找到对应的参数。

VC 示例代码：

virtual void Initialize(void)
{
//将支票数据传递给报表，设置各个参数的值
m_pGridppReport->ParameterByName("BankName")->AsString = "中国工商";
m_pGridppReport->ParameterByName("PayTo")->AsString = "锐浪软件技术有限公司";
m_pGridppReport->ParameterByName("Year")->AsInteger = 2008;
m_pGridppReport->ParameterByName("Month")->AsInteger = 8;
m_pGridppReport->ParameterByName("Day")->AsInteger = 8;
m_pGridppReport->ParameterByName("Amount")->AsFloat = 20080808.88;
m_pGridppReport->ParameterByName("Usage")->AsString = "庆祝北京奥运开幕";
}

相关例子程序

Advance\PrintInForm Advance\Invoice


New Page 1

当采用拉模式向报表提供数据时，数据源访问连接串已经设置在报表模板中，但当开发的程序发布时，实际的数据访问参数会发生变化，如 Access 数据库文件的存放目录会不同，SQL Server 的数据库服务器名称、用户与密码都会发生改变。所以在程序中应该生成新的数据源访问连接参数，并设置到报表中，这样才能保证报表的正常运行。

设置新的数据源访问连接参数就是给报表记录集的 ConnectionString 属性赋值。

VC 示例代码：

m_pGridppReport->DetailGrid->Recordset->ConnectionString = GetDatabaseConnectionString();

其中的 GetDatabaseConnectionString 方法就是根据当前环境参数动态生成出新的数据源连接串。

动态设置 Access 数据源连接串

下面是不带密码的 Access 数据源连接串模板:

Provider=Microsoft.Jet.OLEDB.4.0;
User ID=Admin;
Data Source=%PathFile%;

用数据库文件的实际完整路径文件名代替 %PathFile% 即可。

动态设置 SQL Server 数据源连接串

集成安全模式下数据源连接串模板:

Provider=SQLOLEDB.1;
Integrated Security=SSPI;
Persist Security Info=False;
Initial Catalog=%ServerName%;
Data Source=%DatabaseName%;

用实际数据库服务器名称或IP地址代替 %ServerName%，用实际数据库名称代替 %DatabaseName%。

在用户与密码模式下数据源连接串模板:

Provider=SQLOLEDB.1;
Persist Security Info=False;
User ID=%UserName%;
Password=%Password%;
Initial Catalog=%ServerName%;
Data Source=%DatabaseName%";

用实际用户名称代替 %UserName%，用实际密码代替 %Password%，用实际数据库服务器名称或IP地址代替 %ServerName%，用实际数据库名称代替 %DatabaseName%。

说明：数据源连接串中还可以设置更多的参数，可以根据实际情况扩展上面提供的内容。


New Page 1

当采用拉模式向报表提供数据时，数据源查询SQL语句已经设置在报表模板中，这样SQL语句就是固定不变的。当在实际应用过程中，同一报表其数据是需要变化的，如根据不同的过滤条件筛选数据，显示不同的数据项等。只有在程序中动态改变报表中的查询SQL语句才能满足这样的要求，让报表根据新的查询SQL语句提取数据。

设置新的查询SQL语句就是给报表记录集的 QuerySQL 属性赋值。在报表的 Initialize 事件中为报表重新设置查询SQL语句是理想的选择，在此事件中根据当前设置参数动态生成查询SQL。如果报表在查询显示器或打印显示器中已经运行显示，调用它们的 Refresh 方法驱动报表重新生成运行。

VC 示例代码：

virtual void Initialize(void)
{
m_pGridppReport->DetailGrid->Recordset->QuerySQL = BuildSQL();
}
其中的 BuildSQL 方法就是根据当前环境参数动态创建出查询SQL语句。


New Page 1

在报表的查询SQL语句中可以加入对报表参数的引用。报表在运行时，关联的参数将被参数的值替换，从而生成实际可用的查询SQL语句并用此查询SQL语句从数据源提取数据。在报表运行时，通过为引用参数指定动态变化值，从而实现报表的动态取数，这种方式也为动态报表的实现提供了一种更便捷的方式。

定义参数化查询SQL

在查询SQL语句中通过“:”后紧跟参数名指定要关联的参数。首先在报表中定义要被查询SQL引用的参数。然后在查询SQL文字中加入对参数的引用。例如下面的参数化查询SQL语句：

select * from orders
where OrderDate between :BeginDate And :EndDate

其中就加入了对参数“BeginDate ”与“EndDate ”的引用。

为用到的报表参数提供数据

设置报表参数值 中已经很清楚的说明了在报表运行时为参数提供数据的方法，这里也要用一样的方法来实现。

VC 示例代码：

virtual void Initialize(void)
{
m_pGridppReport->ParameterByName("BeginDate")->AsDateTime = dtBegin;
m_pGridppReport->ParameterByName("EndDate")->AsDateTime = dtEnd;
}

相关例子报表模板

ParamQuerySQL1.grf, ParamQuerySQL2.grf

相关例子程序

ParamQuerySQL


New Page 2

这里介绍怎样使用报表模板设计器应用程序逐步创建各种类型的报表模板。

本届内容

简单列表
演示如何建立一个简单列表报表模板。


New Page 2

在本演示中将创建一个简单列表报表模板。

首先启动报表设计器应用程序。

定义报表头

  1. 插入报表头：执行菜单“插入-〉报表头”，新插入的报表头显示在报表布局窗口中。

  2. 插入报表标题静态框：执行菜单“插入-〉静态框”，用鼠标在报表头的显示区域拖放一个矩形区域，一个新的静态框显示在拖放的矩形区域位置。

  3. 在属性编辑窗口中设定标题静态框的属性：

  • Text = '客户基本信息'

  • Center = Horizontaol

  • Font = 宋体、粗体、三号

  4. 自动调整标题静态框的大小：在此静态框的显示区域上点击鼠标右健打开关联菜单，执行“自动调整大小”菜单项。

  5. 拖动标题静态框在垂直方向上到合适的位置。

定义明细网格

  1. 插入明细网格：执行菜单“插入-〉明细网格”，新插入的明细网格显示在报表布局窗口中。

  2. 定义记录集字段：执行菜单“报表-〉字段集合...”，打开字段集合对话框窗口。增加如下字段。

名称 | 类型 | 属性数据
CustomerID | String |
CompanyName | String |
ContactName | String |
ContactTitle | String |
Address | String |
City | String |
Region | String |
PostalCode | String |
Country | String |
Phone | String |
Fax | String |
  3. 定义明细网格列：在明细网格的显示区域上点击鼠标右健打开关联菜单，执行“自动生成列”菜单项。
  4. 调整列的显示宽度：在明细网格的上端列标尺的分隔位上通过拖动调整列的宽度。
  5. 设定列标题的显示文字：依次选中各个标题格，在属性编辑窗口中设定Text为对应列的标题显示文字。列标题的文字依次为：客户编号、公司名称、联系人、联系人称谓、地址、城市、地区、邮编、国家、电话、传真。

最后是保存数据，执行菜单“文件-〉保存”将模板保存到恰当的目录并进行设定合适的文件名。至此我们已经得到一个与Grid++Report提供的例子“Customer list.grf”相似的报表模板。


New Page 2

在本演示中将创建一个使用查询显示器构件显示报表的项目。

注意：在开始本演示之前，必须保证 Grid++Report 为 C++Builder 编写的包装类包已经安装到 C++Builder 中，具体过程参见在 C++Builder 中使用 Grid++Report。

  1. 启动 C++Builder
  2. 执行“File->New Application”。
  3. 在 Form 上增加一个TPanel构件，Align=alTop。在 TPanel 构件上放置一个 TButton 构件，Caption = '打印预览'。
  4. 在 Form 上增加一个 TADOTable 构件，ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Program files\Grid++Report 3.0\Samples\Data\NorthWind.mdb'，TableName = Customers。
  5. 从构件面板 Grid++Report 页面上拖放 GridppReport 构件到 Form 上，DataSet=ADOTable1。
  6. 从构件面板 Grid++Report 页面上拖放 GRDisplayViewer 构件到 Form 上，Align=alClient, Report=GridppReport1。
  7. 在 Form 的 OnShow 事件中载入报表模板数据并启动报表的运行，代码如下：

void __fastcall TForm1::FormShow(TObject *Sender)
{
GridppReport1->LoadFromFile( WideString("C:\\Program
files\\Grid++Report 3.0\\Samples\\Reports\\简单列表.grf") );
GRDisplayViewer1->Start();
}

  8. 为'打印预览'按钮实现打印预览的功能，在其OnClick事件中添加如下代码：

void __fastcall TForm1::Button1Click(TObject *Sender)
{
GridppReport1->PrintPreview(true);
}

至此本演习已经完成，可以运行以上创建的程序来查看结果。


New Page 2

在本演示中将创建一个使用打印查看器构件实现在自定义窗口中打印预览报表的项目，报表开发者可以为报表最终用户提供自己设计的报表打印预览界面，而不是使用 Grid++Report 提供的缺省打印预览窗口。

注意：在开始本演示之前，必须保证 Grid++Report 为 C++Builder 编写的包装类包已经安装到 C++Builder 中，具体过程参见在 C++Builder 中使用 Grid++Report。

  1. 启动 C++Builder。
  2. 执行“File->New Application”。
  3. 在 Form 上增加一个 TADOTable 构件，ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Program files\Grid++Report 3.0\Samples\Data\NorthWind.mdb'，TableName = Customers。
  4. 从构件面板 Grid++Report 页面上拖放 GridppReport 构件到 Form 上，DataSet=ADOTable1。
  5. 从构件面板 Grid++Report 页面上拖放 GRPrintViewer 构件到 Form 上，Align = alClient, Report=GridppReport1。
  6. 在 Form 的 OnShow 事件中载入报表模板数据并启动报表的运行，代码如下：

void __fastcall TForm1::FormShow(TObject *Sender)
{
GridppReport1->LoadFromFile(WideString("C:\\Program
files\\Grid++Report 3.0\\Samples\\Reports\\简单列表.grf"));
GRPrintViewer1->Start();
}

至此本演习已经完成，可以运行以上创建的程序来查看结果。


New Page 2

在本演示中将创建一个使用查询显示器构件显示报表的项目。

注意：在开始本演示之前，必须保证Grid++Report为Delphi编写的包装类包已经安装到Delphi中，具体过程参见在Delphi中使用Grid++Report。

  1. 启动 Delphi
  2. 执行“File->New Application”。
  3. 在 Form 上增加一个 TPanel 构件，Align=alTop。在 TPanel 构件上放置一个TButton构件，Caption = '打印预览'。
  4. 在 Form 上增加一个 TADOTable 构件，ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Program files\Grid++Report 3.0\Samples\Data\NorthWind.mdb'，TableName = Customers。
  5. 从构件面板 Grid++Report 页面上拖放 GridppReport 构件到 Form 上，DataSet = ADOTable1。
  6. 从构件面板 Grid++Report 页面上拖放 GRDisplayViewer 构件到 Form 上，Align = alClient, Report = GridppReport1。
  7. 在 Form 的 OnShow 事件中载入报表模板数据并启动报表的运行，代码如下：

procedure TForm1.FormShow(Sender: TObject);
begin
GridppReport1.LoadFromFile('C:\Program files\Grid++Report 3.0\Samples\Reports\简单列表.grf');
GRDisplayViewer1.Start();
end;

  8. 为'打印预览'按钮实现打印预览的功能，在其OnClick事件中添加如下代码：

procedure TForm1.Button1Click(Sender: TObject);
begin
GridppReport1.PrintPreview(True);
end;

至此本演习已经完成，可以运行以上创建的程序来查看结果。


New Page 2

在本演示中将创建一个使用打印查看器构件实现在自定义窗口中打印预览报表的项目，报表开发者可以为报表最终用户提供自己设计的报表打印预览界面，而不是使用Grid++Report提供的缺省打印预览窗口。

注意：在开始本演示之前，必须保证 Grid++Report 为 Delphi 编写的包装类包已经安装到 Delphi 中，具体过程参见在 Delphi 中使用 Grid++Report。

  1. 启动 Delphi。
  2. 执行“File->New Application”。
  3. 在 Form 上增加一个 TADOTable 构件，ConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Program files\Grid++Report 3.0\Samples\Data\NorthWind.mdb'，TableName = Customers。
  4. 从构件面板 Grid++Report 页面上拖放 GridppReport 构件到 Form 上，DataSet = ADOTable1。
  5. 从构件面板 Grid++Report 页面上拖放 GRPrintViewer 构件到 Form 上，Align = alClient, Report = GridppReport1。
  6. 在 Form 的 OnShow 事件中载入报表模板数据并启动报表的运行，代码如下：

procedure TForm1.FormShow(Sender: TObject);
begin
GridppReport1.LoadFromFile('C:\Program files\Grid++Report 3.0\Samples\Reports\简单列表.grf');
GRPrintViewer1.Start();
end;

至此本演习已经完成，可以运行以上创建的程序来查看结果。


New Page 1

C/S报表开发例子

概述

Grid++Report 提供了丰富的例子示范其功能与用法，报表开发者可以通过运行示例程序与查看示例代码来直观快捷地了解 Grid++Report 的功能与用法。在多个开发平台下实现了示例程序，包括：VC、VB、VB.NET、C#、Delphi、C++Builder。

示例清单

示例 | 程序子目录 | 说明
各种通常形式的报表 | Normal | 演示各种典型格式报表的查询、预览与打印输出。
多个报表问题的解决方案 | HowTo | 说明多个问题的解决方案，如：计算字段、负数红字显示、列表选中等。
自定义打印预览窗口 | CustomPreview | 示范用“打印查看器”构件实现自定义的打印预览窗口。方式一：并提供一批外围操作界面元素与打印查看器进行互操作。方式二：显示控件工具栏自身的关闭按钮，并通过点击此按钮关闭预览窗口。方式三：自定义显示控件工具栏按钮，显示部分按钮，并按照不同的顺序排列按钮。
自定义报表设计器 | CustomDesigner | 示范用“报表设计器”构件实现自定义的报表设计器。
自定义分组 | CustomGroup | 说明怎样用自定义的条件生成一个个分组项，而不是根据一个或多个字段值的变化生成分组项。
自定义纸张打印 | CustomPaper | 演示使用自定义纸张或编程设定纸张进行打印的方法。
自定义分组统计 | CustomSummary | 说明当分组统计函数不能自动产生需要的统计数据时，怎样进行自定义的分组数据统计。
动态定义网格列 | DynamicColumn | 用两种方式说明怎样在运行时根据环境参数改变明细网格显示的列。
单据打印 | Invoice | 说明单据的一般打印，票据的套打，单据的成批打印。
图像框的使用 | Picture | 说明图像框的各种使用方式。
汇总表透视明细表 | SummaryToDetail | 说明怎样响应“报表查询显示器”构件的事件，根据汇总报表的当前选中行打开对应的明细报表。
参数化查询SQL | ParamQuerySQL | 在报表中定义参数化的查询SQL语句与对应的参数，在程序中的报表 Initialize 事件中为参数赋值，报表数据将根据参数动态得来。
使用打印策略 | PrintAdapt | 演示各种打印适应策略的输出效果。
数据导出 | Export | 示范怎样调用数据导出的相关编程接口实现数据导出的功能。另还演示了报表文档(报表运行快照)的保存与再载入显示。
填入明细记录 | ManualFillRecord | 示范怎样在运行时向报表提供明细记录数据，数据来源不与数据库关联。
子报表 | SubReport | 演示子报表的使用。
编程定义报表模板 | Program | 示范不使用报表模板文件，通过编程的方式定义一个完整的报表模板。
数据库存取报表模板 | LoadFromDB | 说明怎样从数据库中某个表的某个字段载入或存储报表模板数据。
交叉报表 | CrossTab | 说明以编程的方式动态实现交叉表。
打印数据网格 | PrintDBGrid | 实现打印 VCL DBGrid 中显示的数据，只有 Delphi 与 C++Builder 提供此示例。

存放目录

在安装 Grid++Report 之后,所有的例子程序与代码都已经安装在其安装目录的对应子目录之下。例子程序全部位于 Samples 子目录下，如 Grid++Report 安装在“C:\Program Files\Grid++Report 4.0”，则例子程序位于“C:\Program Files\Grid++Report 4.5\Samples”。不同编程语言的例子源代码对应到一个子目录，每个例子程序对应一个子目录，下表是Samples目录下各个子目录的简要说明。

子目录 | 说明
Application | 存放可以直接运行的例子应用子程。
C++Builder | 存放 C++Builder 的全部例子程序。
CSharp | 存放 C# 的全部例子程序。
Data | 存放例子程序用到的数据库文件与图像文件。
Delphi | 存放 Delphi 的全部例子程序。
Reports | 存放例子程序用到的全部报表模板文件。
VB | 存放 Visual Basic 的全部例子程序。
VB.Net | 存放 Visual Basic.NET 的全部例子程序。
VC | 存放 Visual C++ 的全部例子程序。
易语言 | 存放中文编程语言易语言的全部例子程序。


New Page 1

C/S报表开发例子

概述

示范各种各样格式的报表。说明各种格式的报表模板的设计方法，这里的报表一般不需要专门的编程代码去自定义或控制报表的行为。

  1. 简单列表
  2. 内容行高度可伸展
  3. 普通分组小计
  4. 占列式分组(同列)
  5. 占列式分组(不同列)
  6. 邮件标签
  7. 双层表头表
  8. 多层分组
  9. 每个分组打印生成在不同页
  10. 按页统计并在最后总计
  11. 切分纸张打印
  12. 图像--员工档案
  13. 信件--客户订货帐单

一、简单列表

示范怎样利用明细网格实现简单列表报表。

模板文件：Customer list.grf

报表模板设计要点

  1. 定义一个报表头。在报表头中创建一个静态框，Text 属性设为报表标题文字；Center 属性设为 Horizontal，使报表标题在查询显示与打印输出时显示在输出区域的水平中间位置。
  2. 定义一个明细网格。第一步创建要显示列对应的所有字段，第二步根据字段自动生成列，第三步设置每个标题格的 Text 属性。

二、内容行高度可伸展

示范怎样使内容行的高度根据显示内容进行伸展，使所有得显示内容都可见。

模板文件：ExpandableContentRow.grf

报表模板设计要点

  1. 设置 Description 列的内容格的属性：WordWrap=True，使显示文字可以绕行显示；CanGrow=True，运行时格的高度可以伸展，内容行的高度也会跟随伸展。

三、普通分组小计

示范一个最简单的分组报表实现方法。

模板文件：Order detail by order bill.grf

报表模板设计要点

  1. 创建一个名细网格。
  2. 定义字段与列。
  3. 进入分组集合对话框，增加一个分组。设置属性：ByFields=OrderID。
  4. 在分组头中创建显示部件框。
  5. 在分组尾中创建显示部件框。

四、占列式分组(同列)

示范怎样设计一个占列式分组报表，分组占据列的显示输出根据对应内容格的定义生成。

模板文件：Customer by city(OC same as column).grf

报表模板设计要点

  1. 创建一个名细网格。
  2. 定义字段与列。
  3. 进入分组集合对话框，增加一个分组。设置属性：ByFields=City。
  4. 设置分组头的属性：OccupyColumn=True，使分组头成为占列式分组头；OccupiedColumns='City'，指定分组头占据的列；SameAsColumn=True，指定分组头的显示定义来自对应的列的内容格，在分组头中不用定义任何部件框，设计器程序也禁止在此中创建部件框。
  5. 设置分组尾的属性：Visible=False，指示分组尾在生成时不用显示。

五、占列式分组(不同列)

示范怎样设计一个占列式分组报表，分组占据列的显示输出在分组头中定义。

模板文件：Customer by city(OC not same as column).grf

报表模板设计要点

  1. 创建一个名细网格。
  2. 定义字段与列。
  3. 进入分组集合对话框，增加一个分组。设置属性：ByFields=City。
  4. 设置分组头的属性：OccupyColumn=True，使分组头成为占列式分组头；OccupiedColumns='City'，指定分组头占据的列；SameAsColumn=False，指定分组头的显示定义在分组头中。
  5. 在分组头中定义显示的部件框。将各个部件框的 AlignColumn 属性设置为 'City'，AlignColumnSide 属性设为 Both，使部件框的宽度始终与 City 列的宽度一样，且保持左右两端对齐。
  6. 在分组尾中定义显示的部件框。

六、邮件标签

示范怎样应用报表分栏功能实现打印客户邮件标签的功能。

模板文件：Customer mail label.grf

报表模板设计要点

  1. 创建一个明细网格。设置属性：PageColumnCount=3；PageColumnSpacing=0.2。
  2. 设置标题行的 Visible 属性为 False，使标题行生成时不显示。
  3. 定义邮件标签中需要显示的字段。
  4. 创建一个列。设置列的宽度与报表栏的宽度相等。
  5. 将唯一列的内容格改为自由格：FreeCell=True；调整内容行的高度到合适大小。
  6. 在内容格中创建要显示的部件框。

七、双层表头报表

示范怎样设计出具有双层标题的报表。

模板文件：Customer list with double layer title.grf

报表模板设计要点

  1. 创建一个报表头，在其中定义报表标题显示部件框。
  2. 创建一个明细网格。
  3. 定义所有字段。
  4. 根据字段自动生成列。
  5. 进入“列标题布局对话框”，创建几个“组标题格”，将列标题格移到对应的组标题格下面。

八、多层分组

示范怎样设计具有多个分组的报表，在外层的分组具有较少的分组项，内层分组项被外层分组项嵌套包括。

模板文件：Customer list Of Multi Layer Group.grf

报表模板设计要点

  1. 创建一个报表头，在其中定义报表标题显示部件框。
  2. 创建一个明细网格。
  3. 定义所有字段。
  4. 根据字段自动生成列。删除某些不用以列的方式显示的列。
  5. 进入“分组集合”对话框，创建三个分组；其 Name 属性分别为 CountyGroup、RegionGroup、CityGroup；其 ByFields 属性分别为 County、Region、City。
  6. 在每个分组头于分组为中定义部件框。

九、每个分组打印生成在不同页

示范怎样设计每个分组项打印生成在不同的页面上的报表。在每个分组项开始生成时，使输出产生在新的页面中。

模板文件：GroupBeforeNewPage.grf

报表模板设计要点

  1. 创建一个报表头，在其中定义报表标题显示部件框。
  2. 创建一个明细网格。
  3. 定义所有字段。
  4. 根据字段自动生成列。删除某些不用以列的方式显示的列。
  5. 进入“分组集合”对话框，创建一个分组；其 ByFields 属性为 ProductID。
  6. 定义分组头的 NewPage 属性为 Before，使每个分组项打印生成开始之前，创建一个新的页面，让分组项生成在新的打印页面中。
  7. 在分组头与分组尾中定义显示部件框。

十、按页统计并在最后总计

示范怎样定义按页分组，在每页的底部进行数据统计。另外本示例还展现了每页以固定行数生成报表的功能。

模板文件：PageGroupSummary.grf

报表模板设计要点

  1. 创建一个报表头，在其中定义报表标题显示部件框。
  2. 创建一个明细网格。
  3. 设置内容行的 RowsPerPage 属性为 20。
  4. 定义所有字段。
  5. 根据字段自动生成列。删除某些不用以列的方式显示的列。
  6. 进入“分组集合”对话框，创建两个分组。第一个分组的属性：Name=GrandTotalGroup；不定义ByFields属性，使分组成为一个全程分组。第一个分组的属性：Name=PageGroup，PageGroup=True；按页分组不用定义ByFields属性。
  7. 在分组头与分组尾中定义显示部件框。

十一、切分纸张打印

示范怎样将打印纸张均分成几等份，并显示均分线。

模板文件：Customer list divide page.grf

报表模板设计要点

  1. 创建一个报表模板。
  2. 设置报表组对象与均分纸张相关的属性：PageDivideCount=3；PageDivideLine=True。

十二、图像--员工档案

示范怎样利用图像框显示字段中的图像数据。另外也展示文本框与内容格的伸展属性。

模板文件：Employee Profile.grf

报表模板设计要点

  1. 创建一个明细网格。
  2. 设置标题行的 Visible 属性为 False，使标题行生成时不显示。
  3. 定义字段。
  4. 创建一个列。设置列的宽度与设计时页面的宽度相等。
  5. 将唯一列的内容格改为自由格：FreeCell=True；调整内容行的高度到合适大小。
  6. 在内容格中创建要显示的部件框。
  7. 设置图像框的 DataField 属性为 Photo。
  8. 设定备注字段框的 CanGrow 属性为 True。
  9. 设定内容格的 CanGrow 属性为 True。

十三、信件--客户订货帐单

示范怎样利用RTF文本框显示RTF格式文本，并在RTF文本中包含域定义，在运行时域将被实际值替换。另外还展示RTF文本框与报表节的伸展功能。

模板文件：CustomerStatementLetter.grf

报表模板设计要点

  1. 设置报表头属性。NePage=After，使报表头成为独立的一页；CanGrow=True，运行时高度可以伸展。
  2. 设置报表头中的RTF文本框属性。RTF属性加载数据；CanGrow=True，运行时高度可以伸展。
  3. 设置分组头属性：NePage=After，每个分组项输出在不同的页面上；CanGrow=True，运行时高度可以伸展。
  4. 设置分组头中的RTF文本框属性。RTF属性加载数据，数据中包括多个域的定义，在运行时域将被时机数据替换；CanGrow=True，运行时高度可以伸展。


New Page 1

C/S报表开发例子

概述

说明多种特殊格式的报表。这里的报表一般都要求对报表主对象的一个或几个事件进行响应编程。

  1. 打印应用显示列标题布局
  2. 用SectionFormat事件改变显示

一、打印应用显示列标题布局

首先应用报表查询显示器显示报表，在报表查询显示器中可以通过鼠标的拖放改变列的显示顺序与宽度。应用 IGRDsiplayViewer 的 PostColumnLayout 方法将报表查询显示器中明细网格的列的布局信息提交到报表主对象，然后生成报表打印页面，这打印页面是按照报表在查询显示器中的当前显示状况生成的。

模板文件: CCustomer list with double layer title.grf

二、用SectionFormat事件改变显示

在报表主对象的 SectionFormat 事件响应函数中，改变部件框或单元格的显示外观属性，从而达到突出显示的效果。

模板文件: Sale summary by product.grf


New Page 1

C/S报表开发例子

概述

示例用“报表设计器”构件实现自定义的报表设计器窗口。示例实现的报表设计器具有如下特点：

  1. 不显示“报表设计器”构件的属性编辑窗口。
  2. 不显示“报表设计器”构件的对象浏览窗口。
  3. 只允许对报表可见元素的位置与大小进行改变，不能进行其它的报表定义操作。

编程处理要点

  1. 为报表设计器对象设置属性值，限定报表设计器的行为。ShowExplorer=False, ShowInspector=False,OnlyLayout=True。
  2. 调用报表主对象的 LoadFromFile 方法从文件中载入报表模板数据。
  3. 调用报表主对象的 SaveToFile 方法将报表模板数据保存至文件。
  4. 让报表设计器对象的 Report 属性关联报表主对象的接口指针。
  5. 调用报表设计器对象的 Post 方法将当前编辑的报表模板数据提交至报表主对象。


New Page 1

C/S报表开发例子

概述

示范用“打印查看器”构件实现自定义的打印预览窗口，并提供一批外围操作界面元素与打印查看器进行互操作。本示例隐藏打印查看器自身提供的工具栏，而是在窗口中定义多个界面元素对打印查看器进行操作，根据打印查看器的自身状态更新界面元素的使能状态。

编程处理要点

  1. 让打印查看器对象的 Report 属性关联至报表主对象的接口指针。
  2. 设置打印查看器对象的属性，ShowToolbar=False。
  3. 调用打印查看器对象的 Start 方法开始报表的运行。
  4. 在各个界面元素的操作响应函数中调用打印查看器对象的对应方法或设置相应的属性。
  5. 在打印查看器对象的 StatusChange 事件中取得其各种状态值，并对界面元素的状态进行更新。


New Page 1

C/S报表开发例子

概述

演示使用自定义纸张或编程设定纸张进行打印的方法。


New Page 1

C/S报表开发例子

概述

说明怎样用自定义的条件生成分组项，而不是根据一个或多个字段值的变化生成分组项。本示例根据产品汇总销售金额进行分组，小于5000归类为“滞销”，大于等于5000但小于20000的归类为“一般”，大于等于20000的归类为“畅销”。在分组头显示分组项的类别名称，在分组尾显示分组项的统计数据。

模板文件

Custom group sale sum amount by product.grf

报表模板定义要点

  1. 定义一个分组，分组的 ByField 属性不用关联任何字段。
  2. 定义一个参数，Name='Catalog'，DataType=String。
  3. 在分组头中定义一个静态框，Parameter='Catalog'。

编程处理要点

  1. 在报表主对象的 GroupBegin 事件响应函数中求得当前记录的分组类别标志并保存在变量中。根据分组类别标志取得该类别的显示文字，并将其赋值给 Catalog 参数。
  2. 在报表主对象的 ProcessRecord 事件响应函数中求得当前记录的分组类别标志，如果此分组类别标志与 GroupBegin 中保存的变量不相同，则调用 IGRDetailGrid 接口的 StartNewGroup 方法开始一个新的分组项。


New Page 1

C/S报表开发例子

概述

说明当分组统计函数不能自动产生需要的统计数据时，怎样进行自定义的分组数据统计。

定义一个分组，将1997/4/1至1997/6/30的销售数据按产品进行分组。在分组头中显示本年至1997/3/31数量与金额的累计值（期初值）；在分组尾中显示分组项数量与金额的合计值（本期合计），本年至1997/6/30数量与金额的累计值（期末值，= 期初值 + 本期合计）。

模板文件

Custom Summary.grf

报表模板定义要点

  1. 定义一个分组，ByField=ProductID。
  2. 定义期初本年累计数量参数，Name='BeginQty'，DataType=Float。
  3. 定义期初本年累计金额参数，Name='BeginAmt'，DataType=Float。
  4. 在分组头中定义期初本年累计数量显示静态框，关联至期初本年累计数量参数，Parameter='BeginQty'。
  5. 在分组头中定义期初本年累计金额显示静态框，关联至期初本年累计金额参数，Parameter='BeginAmt'。
  6. 在分组尾中定义四个统计框，分别显示本期数量合计、本期金额合计、期末本年数量累计、期末本年金额累计。

编程处理要点

  1. 在报表主对象的 GroupEnd 事件响应函数中根据当前记录的 ProductID 字段值取得对应的期初本年数量累计与期初本年金额累计。并分别赋值给 BeginQty 与 BeginAmt 参数对象的 AsFloat 属性。
  2. 同样在在报表主对象的 GroupEnd 事件响应函数中为期末本年数量累计统计框与期末本年金额累计统计框的值累加上对应的期初值，即以 Value 属性当前值加上期初值设置为 Value 属性的新值。


New Page 1

C/S报表开发例子

概述

演示各种打印适应策略的输出效果。

模板文件

锁定列.grf

编程处理要点

在 Initialize 事件中根据界面设定为报表设定合适的打印策略。


New Page 1

C/S报表开发例子

概述

演示子报表的使用。

模板文件

演示子报表.grf：主控报表
简单列表.grf：占据整个显示页面宽度的子报表
产品清单.grf：占据整个显示页面宽度的子报表
Top10Customer.grf：占据部分显示页面宽度的子报表
Top10Product.grf：占据部分显示页面宽度的子报表

编程处理要点

  1. 在主控报表的 Initialize 事件中设定各个子报表的关联报表对象。
  2. 另外实现显示行号的一种方法。


New Page 1

C/S报表开发例子

概述

说明图像框的各种使用方式。包括：

  1. 位于报表头中的图像框，图像数据存储在报表模板中。
  2. 位于报表头中的图像框，图像数据在运行时从文件载入。
  3. 位于内容格中的图像框，其图像数据来源于记录集字段。
  4. 位于内容格中的图像框，在每一记录行中，其图像数据来源于文件不同的文件。

模板文件

CategoryPicture.grf

报表模板定义要点

  1. 在报表头的左边定义一个图像框，在设计时将其 Picture 属性从一个图像文件中载入数据。
  2. 在报表头的右边定义一个图像框，在设计时 Picture 属性不关联数据，图像数据将在运行时从文件中载入。
  3. 定义内容格中从字段中载入数据的图像框。首先将对应的内容格 FreeCell 属性设为 False, 让此内容格成为自由格；删除格中已经存在的一个字段框；向格中加入一个图像框，设置属性：Dock=Fill、DataField=Picture。
  4. 定义内容格中从文件中载入数据的图像框。首先将对应的内容格 FreeCell 属性设为 False, 让此内容格成为自由格；删除格中已经存在的一个字段框；向格中加入一个图像框，设置属性：Dock=Fill，图像数据将在运行时从文件载入。

编程处理要点

  1. 在报表主对象的 Initialize 事件响应函数中载入报表头右边图像框的图像数据。
  2. 在报表主对象的 ProcessRecord 事件响应函数中根据当前记录的 PictureFile 字段的值从对应文件中载入图像框的数据。


New Page 1

C/S报表开发例子

概述

用两种方式说明怎样在运行时根据环境参数改变明细网格显示的列。

在报表显示窗口的左边有一组 CheckBox 控件，每个 CheckBox 对应一个可显示的列，其选取状态指示其对应的列是否显示。

第一种实现方法在报表模板中将所有可能显示的列及其对应的字段预先全部定义，在Initialize事件响应函数中将显示列的 Visible 属性设为真，将不显示列的 Visible 属性设为假。

第二种实现方法在报表模板中不用预先定义任何列与字段，而是在Initialize事件响应函数中，调用IGRDetailGrid 的 AddColumn 方法定义显示列，调用IGRRecordset 的 AddField 方法定义显示列对应的字段，不显示列及对应字段不用定义到报表模板中。

模板文件

Custom List.grf

报表模板定义要点

  1. 在定义字段与列，保证对应字段与列的名称保持一致，减少编程的复杂性。

编程处理要点

  1. 选取显示的列完成之后，应调用报表查询显示器对象的 Refresh 方法让报表重新运行。
  2. 第一种方法，在报表主对象的 Initialize 事件响应函数中根据列的状态设定列的 Visible 属性。
  3. 第二种方法，在报表主对象的 Initialize 事件响应函数中，首先清除所以以前定义的字段与列，然后将每个显示的列对应的字段与列加入。


New Page 1

C/S报表开发例子

概述

Grid++Report 本身并不对交叉表进行专门的实现，但利用其编程接口可以实现灵活多变的交叉表。本示例提供两个实现交叉表的范例，一个简单一点，另一个在前一个的基础上进行增强。实现的基本思路就是：根据程序的需要与参数设置在报表主对象的 Initialize 事件中动态定义明细网格。在 FetchRecord 事件中向报表填入数据时，原始数据集中的多条记录对应到报表中的一条记录，所以在填入数据时应进行特殊的处理。

模板文件

Product and date period crosstab analysis.grf

Product and date period crosstab analysis advance.grf

报表模板定义

因为页眉、页脚、报表头等在程序运行时不会动态变化，所以在报表模板文件中定义好，减少需要编程定义的模板内容。


New Page 1

C/S报表开发例子

概述

说明怎样使用 Grid++Report 实现票据套打、成批打印及作为纯粹数据网格等功能。Grid++Report 的部件框从打印类别上可以分成两种：表单类与数据类；在套打模式下，只输出数据类的部件框，而表单类的部件框将不会输出；通过调用 IGRGridppReport 接口的 PrintEx 与 PrintPreviewEx 方法可以进入套打生成模式。使用 IGRGridppReport 接口的 BeginLoopPrint、LoopPrint、EndLoopPrint 方法实现成批打印功能。报表模板只定义明细网格，将 Grid++Report 作为一个只渎的数据网格使用,这里示范了两个网格,一个显示主表的数据,一个显示当前主表记录所关联的明细数据, 当主表的当前记录发生改变时,显示明细数据的网格也跟随改变。

模板文件

Invoice.grf

编程处理要点

  1. 通过参数接收主表当前记录的数据。
  2. 使用 BeginLoopPrint 方法后，一定要在任务结束时调用 EndLoopPrint 方法。
  3. 显示主从表的数据网格以编程的方式动态定义。
  4. 用查询显示器的 SelectionCellChange 事件判断当前主表的记录行是否发生改变。


New Page 1

C/S报表开发例子

概述

说明怎样将报表模板数据保存到数据库，以及怎样从数据库中读出报表模板数据。如果数据库位于网络环境中，则可以共享报表模板数据。

注意：只有ＶＢ、Delphi、C++Builder提供此例子，VC没有这样的例子。


New Page 1

C/S报表开发例子

概述

实现打印 VCL DBGrid 的当前显示数据，只有 Delphi 与 C++Builder 提供此示例。

根据 DBGrid 的列定义生成报表主对象的字段与列。

模板文件

PrintDGBrid base.grf

报表模板定义要点

  1. 定义一个报表头，在其中定义报表标题信息。
  2. 定义一个明细网格，不定义任何列与字段，列与字段将在运行时根据 DBGrid 的列定义生成。

编程处理要点

  1. 定义一个通用函数 BuildDetailGridByDBGrid。根据 DBGrid 的列定义信息生成 Grid++Report 的报表主对象的列与字段。
  2. 在报表主对象的 Initialize 事件响应函数中调用函数 BuildDetailGridByDBGrid。


New Page 1

C/S报表开发例子

概述

说明怎样响应“报表查询显示器”构件的事件，根据汇总报表的当前选中行打开对应的明细报表。

在汇总报表中，通过响应报表查询显示器的内容格双击事件，打开当前行对应的明细报表。在明细报表中，通过响应报表查询显示器的内容格双击事件，弹出消息框显示当前行的记录键值。另外此示例还示范怎样在报表运行时改变报表副标题的方法，在报表主对象的 Initialize 事件响应函数中，根据日期范围生成报表副标题的文字，并将其赋值给副标题静态框的 Text 属性。

模板文件

Sale summary by product.grf

Sale detail of product.grf

报表模板定义要点

编程处理要点

  1. 在报表主对象的 Initialize 事件响应函数中设置报表副标题静态框的文本。
  2. 在汇总报表中，在报表查询显示器对象的 ContentCellDblClick 事件响应函数中打开对应的明细报表。
  3. 在明细报表中，在报表查询显示器对象的 ContentCellDblClick 事件响应函数中弹出消息框，并显示当前记录的键值。


New Page 1

C/S报表开发例子

概述

说明怎样使用 Grid++Report 的编程接口动态定义一个完整的报表模板,然后运行此动态定义的报表模板生成报表。此示例不用从报表模板文件或内存中载入报表模板数据，但可以生成一个与示例 CustomPreview 几乎一样的报表。例子中用到页眉、页脚、报表头、明细网格、分组、部件框、记录集、多层表头等方面的编程接口，几乎涉及到 Grid++Report 报表定义编程接口的方方面面。为了很好的理解此示例，报表开发者应该对 Grid++Report 的组件对象模型有一定的了解，有关编程接口的细节可以查阅帮助中的参考。读懂此例子程序对报表开发者开发动态变化的报表非常有帮助。

编程处理要点

报表定义应该在 Initialize 事件响应函数中调用，因为报表每次运行时都会首先触发此事件。可以配合当前应用程序的参数设置,生成不同的报表定义。

请参见

Grid++Report 组件对象模型


New Page 1

常见问题解答 - C/S报表开发

问：怎样与数据库建立连接?

答：如果在设计报表时指定了数据集的数据源连接串与查询 SQL 语句，Grid++Report 采用拉模式主动从数据源提取报表数据，利用 OLE DB 数据引擎从数据源取数，OLE DB 提供了广泛的数据源操作能力。如果 Grid++Report 的数据来源采用推模式，即 Grid++Report 不直接与数据库建立连接，各种编程语言/平台都提供了很好的数据库访问能力，并且易于操作，应用程序在报表主对象(IGridppReport)的 FetchRecord 事件中将数据传入，例子程序提供了各种编程语言填入数据的通用方法，对C++Builder 和 Delphi 还进行了专门的包装，报表对象(TGridppReport)直接关联 TDataSet 对象也可以将 TDataSet 对象中的数据传给报表。

问：如何替换默认打印预览窗口的图标？

答：替换默认打印预览窗口的图标是没办法直接做到的，应该用打印显示器控件实现自己的打印预览窗口，实现起来也很简单，参考例子“CustomPreview”，其中还可以对打印预览窗口进行更多的个性化实现。

问：怎样在运行时控制报表中各个对象的可见性？即怎样在运行时显示或隐藏对象？

答：在报表主对象(GridppReport)的 SectionFormat 事件中设定相应报表子对象的“可见(Visible)”属性即可。

问：报表主对象重新载入数据，设计器中为什么没有反映新载入的数据？

答：应调用 IGRDesigner 的 Reload 方法。

问：怎样实现不进入打印预览界面，直接将报表打印出来？

答：直接调用报表接口(IGridppReport)的 Print 与 PrintEx 方法，报表将生成并直接输出到打印机中，可以控制在打印之前是否显示打印设置对话框。

问：能否在程序中为报表提供动态的数据，实现动态绑定数据库？

答：Grid++Report 是完全可编程定义的报表构件，当然可以为报表提供动态数据，动态绑定到数据库。首先在程序中要实现界面可以定义动态数据，动态数据定义之后，调用查询显示器或打印查看器的 Refresh 方法驱动报表的重新生成。如果采用拉模式用 OLE DB 直接从数据源取数，需要报表开发者动态生成查询 SQL 语句，然后将此查询 SQL 语句设定到报表数据集的 QuerySQL 属性，一般在 Initialize 事件中设置。如果采用推模式向报表提供数据，需要报表开发者准备好动态数据，在 FetchRecord 事件中向报表填入数据。

问：怎样在报表查询显示时将列改变的宽度与顺序反映到打印输出中？

答：在执行打印或打印预览任务之前，调用 IGRDisplayViewer 的 PostColumnLayout 方法就可以了，参考例子“ Advance\HowTo”。

问：怎样在报表查询显示时实现按列排序？

答：只要将报表查询显示器控件的 Resortable 属性设为 yes 就可以，在此报表查询显示器控件中显示的报表就可以通过鼠标点击列进行按列重新排序。更多有关排序方面的应用请参考与例子“Advance\HowTo”中的重排序与重分组。

问: 重新安装新版本 Grid++Report 之后，以前开发的程序不能正常运行。

答：因为每次新发布的版本在编程接口上可能有区别，所以重新安装之后，应对以前开发的应用程序进行升级处理并重新编译。旧版本开发程序升级处理：请看安装启动菜单下的“开始使用 Grid++Report”这个HTML文档中的相关说明；.NET WinForm程序要把整个解决方案清理后再做升级处理；C++Builder 与 Delphi 的包装包也要重新编译安装一下。

问: 如何发布用 Grid++Report 开发的软件？

答：请参考：帮助-〉报表组件(C/S报表)->发布用 Grid++Report 开发的软件, 或参考：http://www.rubylong.cn/doc/deploy.htm

问: 我已经在安装文件中包括 gregn50.dll 与 grdes50.dll，但我的应用程序仍然不能在目标机器上运行。

答：Grid++Report是 COM 组件，需要在 Windows 系统注册表中进行注册。gregn45.dll 与 grdes45.dll 两个文件在安装程序中应设为自注册的，也可以用命令行程序 RegSvr32.exe 进行手动注册。参见发布 Grid++Report 开发的软件

问: Grid++Report 是否支持多国语言？

答：Grid++Report 是多语言集成的与 Unicode 编码的软件，同一软件支持多国语言。Grid++Report 的不同本地化语言文字存在于不同的资源 DLL 中，除简体中文外，其它欲支持的语言的 DLL 文件应随同 gregn50.dll 与 grdes50.dll 一起发布，并放置在同一目录下。

问：找不到某种编程语言的例子程序？

答：Grid++Report 的安装程序中包括Visual Basic、Visual C、Delphi、C++Builder，CSharp(C#), VB.NET与易语言(E语言)等多种编程语言下的例子程序。位于安装目录的“Samples”子目录下，如果采用缺省安装目录，则在“C:\Grid++Report 5.0\Samples”目录下。

问：能否在 VC6.0 下用？是不是只能用于 ATL 项目,而不能用在 MFC 项目中？

答：从 V2.2b 版本之后的 VC 例子程序在 VC6.0 与 VC.NET 下都能用，既可以用于 ATL 项目，也可以用于 MFC 项目。

问：是否可以不用报表模板文件，直接用程序创建报表？

答：可以，如果你开发动态变化的报表，我们更建议你采用这样的方式，因为动态报表必须在程序中反映报表的动态变化。Grid++Report 提供了清晰直观的报表定义编程接口，用报表设计器定义的报表一样可以通过编程的方式来定义。例子“Advance\Program”就用不多的代码将一个完整的分组统计报表定义出来。

问：请问一下怎样将模板文件保存到数据库字段中以供共享使用?

答：当开发多用户的C/S或多层架构的软件时，将报表模板保存在数据库中可以使同样的报表模板共享，并保持报表模板数据的一致性。Grid++Report 提供了多种保存报表模板数据的方法：SaveToFile、LoadFromFile、SaveToStr、LoadFromStr、SaveToVariant、LoadFromVariant。利用合适的方法就可以将报表模板保存到数据库。例子程序“Advance\LoadFromDB”就实现了这样的功能。

问：关于C#与VB.NET中数据多次重复填入的问题?

答：参考 http://www.rubylong.cn/bbs/dispbbs.asp?boardid=17&Id=5760

问：关于C#与VB.NET开发兼容64位 Windows?

答：设置 WinForm 项目的目标平台为“x86”就可以保证用 Grid++Report 开发的软件在64位 Windows 下正常运行。设置说明：项目->属性->生成->目标平台->x86。

问：关于购买用户注册确认事项
 答：1、在程序启动时调用 IGridppReport 的 Register 方法。Register 方法的调用请参考例子 Advance\Register。2、每个使用 GRDisplayViewer、GRPrintViewer 与 GRDesigner 控件的Form，这几个控件的开发状态必须为已注册，即最后两行文字显示为绿色。更多信息请参考: http://www.rubylong.cn/doc/register.htm。

请参见

通用常见问题解答 | B/S报表插件常见问题解答 | 注册与试用方面常见问题解答


New Page 1

开发动态报表首选 Grid++Report

什么是动态报表

动态意即变化，动态报表也就是指可以变化的报表。说得更具体一些：也就是报表开发者为报表最终用户提供的报表是可配置的，是可以进行个性化调整的，一个动态报表相当于一个设计合理的报表模型，不同的报表用户可以配置出他们最想要的运行方式。当然动态报表的变化要讲究一定的规律，提供给最终用户的操作界面是非常直观，非常容易操作的。

动态报表主要包括哪些方面

下面列出动态报表的动态变化主要方面，并进行简单地解释。

  • 报表数据：数据的动态变化主要有两个方面，其一，就是数据筛选条件的动态化，也就是报表的查询条件设置是非常灵活的，报表用户可以设置出他们需要的各种报表数据查询条件；其二，报表查看的数据项是可以动态配置的，在开发报表时应将一个报表所有的可选数据项都提供给报表用户进行选择，不同的用户可以根据他们的需要挑选出他们需要的数据项。
  • 报表分析方式：在一个报表上，用户可以选择不同的统计方式来生成报表。如一个按期间进行统计分析的报表，可以选定统计期间为：月度、季度、年度等。
  • 报表的显示外观：报表的显示外观主要指报表文字的字体、报表数据的显示格式、报表表格线的显示参数等一切与显示有关的方面，报表用户可以配置出他们想要的报表展现格式。
  • 报表的布局：报表开发者可以对报表内容的输出位置、宽度、高度与显示顺序等进行重新配置。
  • 报表输出的自适应：要面对不同用户的报表，必然要面对用户的不同屏幕显示分辨率与不同的打印纸张规格。报表必须保证在这些不同的环境下得到理想的输出结果。
  • 报表配置参数的持久化：指报表用户对报表设定的配置参数可以进行永久保存，并可以在用户下次进入报表时再次载入应用。如果一个用户对某个报表有多种查看方式，最好能够将用户的不同配置参数分开保存，这样就相当于这个动态报表具体化出来多个报表。

以上只是列出动态报表的主要动态变化方面，也不是每个动态报表都会涉及到所有的这些方面，而是应该根据具体情况进行合理的选择，也有可能上面没有列出的因素也需要考虑。

开发动态报表会有哪些好处

一般的软件系统都需要面对不同的用户，通用产品面对的用户更是成千上万，不同的报表用户对同一报表会有不同的需求。即使是专门定制化的软件，同一用户在不同的条件下对报表的需求也会发生变化。怎样开发出满足不同用户需要的报表与怎样满足用户不断变化的报表需求是一件很重要的工作，也是我们开发的报表系统应该达到的目标。

从上面动态报表的作用可以看出动态报表可以为我们带来以下好处：

  • 满足用户多样化需求：同一报表可以满足不同用户的要求和用户在不同条件下对报表的不同要求。
  • 前面说过，动态报表是一种报表模型，从一个动态报表中可以具体化出来同一类型的很多报表。举例来说：对于销售汇总表，肯定会有多种汇总方式，如：按客户，按产品，按期间等，只要定义出合理的抽象模型，我们就可以得到不同汇总方式的销售汇总表。
  • 减少整个报表系统总的开发工作量：虽然开发一个动态报表比通过简单的拖放方式实现一个具体的报表要复杂得多，但是由此一个动态报表可以具体化出一批报表，同时动态报表给用户带来的灵活性是固化报表所不可比拟的。比如在我们经常会开发各种年报表、月报表、日报表等各种按期间统计报表时，这些报表除了统计期间有区别外，其它方面是基本类似的，我们只要开发一个动态报表就可以得到各种按期间统计的报表。
  • 减少整个报表系统的维护工作量：因为报表在最终用户的手中是可以配置，可以满足用户多样化需求，相当于报表最终用户对报表有二次开发能力，所以动态报表具有更持久的生命力。
  • 最终减少整个报表系统的复杂度，并且大大增强报表系统开发的可复用度：如果不对报表进行抽象，而是每个具体报表都分开进行实现，势必需要提供大量的报表，这样数量众多的报表势必增加整个系统的复杂度，同时提供再多的报表也不一定能满足众多用户的不同要求。动态报表相当于一种模型，可以在同一软件系统中共享，也可以在不同的软件系统中复用。

为什么说 Grid++Report 非常适合开发动态报表

首先 Grid++Report 的报表模板定义是完全可编程的。Grid++Report 的可视化设计器功能非常完善，全面支持各种通用操作方式，也符合规范的操作习惯。同时 Grid++Report 也提供完备而清晰的编程接口，整个报表模板定义可以通过程序定义出来。也就是说，报表设计器可视化设计出来的报表，用编程的手段一样可以定义出来。正因为 Grid++Report 是完全可编程定义的，为实现动态报表提供了最基本的实现保障。

仅仅可编程定义报表还不够，如果编程定义的过程非常繁杂，这样实现动态报表也不会轻松。下面就来看看 Grid++Report 怎样轻松实现报表的可编程定义：首先 Grid++Report 的编程模型非常清晰规范，其组件对象模型设计非常合理。其次 Grid++Report 的报表定义核心部分由一个具有超强数据展现能力的明细网格组成，通过动态定义列从而实现整个报表最核心部分的动态变化，列按从左到右的顺序排列，只要给列设定合理的宽度，就可以得到合理的报表明细数据输出，而不用繁琐的计算每个明细数据项的准确位置。

当然 Grid++Report 独有的报表查询显示功能也为实现动态报表提供了极大的便利，报表的动态输出结果将更多的是在报表查询显示状态中，有关Grid++Report 独有的报表查询显示功能的更多介绍请参阅《报表查询显示功能 - Grid++Report 独创》

Grid++Report 在报表查询显示时可以适应不同的显示窗口尺寸。为报表内容提供了多种自动排列方式，可以将报表内容设定到合理的相对位置，这样就可以在动态的显示条件下得到理想的显示效果。居中方式指定在水平与垂直方向上保持位置的居中；锚定方式保持报表部件与一个或几个显示边界的固定距离；停靠方式指定报表部件采用怎样的方式充满显示区域的某一边或整个区域；指定对齐到列与对齐列方式可以让列之外的报表部件与列始终保持对齐。设定合理的自动布局方式，就可以在不同尺寸的查询显示窗口中得到理想的输出布局，从而适应用户动态变化的显示环境。

同样Grid++Report 的自动布局能力在打印输出时可以很好地实现同一报表在不同尺寸的纸张上打印，Grid++Report 无论在何种纸张规格上都会让你得到满意的打印输出效果。很多其它的报表构件只能在设计时指定的纸张规格上得到合理的打印输出结果，如果采用其它规格的纸张打印就不能得到布局良好的输出。另 Grid++Report 还提供多种打印输出适应策略：如列的总宽度大于或小于打印区域的宽度，可以自动进行各个列宽的按比例缩放，调整列的总宽度与打印区域的宽度到一样；如果列的总宽度小于打印区域的宽度，可以指定将所有列水平居中输出到打印区域；当列的总宽度大于打印区域的宽度，可以实现横向分页打印，超范围的列另起新页进行输出，如果存在锁定列，可以指定是否在新页中重复输出锁定列。

在前面说过动态报表需要动态变化的方面，现在就来说说 Grid++Report 如何帮助报表开发者实现这些方面。

  • 实现报表的显示外观的动态变化：因为Grid++Report是完全可编程定义的，只要将用户配置的外观参数定义到报表模板定义中，就实现了报表外观的定义。
  • 实现报表的布局的动态变化：前面已经说过 Grid++Report 的核心由一个有超强数据展现能力的明细网格组成，以及报表部件的多种布局方式，这些都有力地保证了报表可以很好地适应布局的动态变化。Grid++Report专业的可视化设计功能可以帮助报表最终用户进行报表布局的可视化调整。
  • 实现报表数据的动态筛选：根据报表的数据筛选参数，动态定义 Grid++Report 中报表的记录集需要的字段。当然报表开发者此时需要根据报表的数据筛选参数动态地去实现向数据源取数功能，一般也就是根据数据筛选条件动态生成查询数据库数据的 SQL 语句，有了动态的取数功能，可以用推模式或拉模式向报表提供数据。
  • 实现报表分析方式的动态变化：这里同样需要报表的可编程定义功能，需要报表开发者通过编程接口将配置好的报表统计分析方式定义到报表中，至于报表的统计分析功能那就是 Grid++Report 的报表引擎的事情了。
  • 报表输出的自适应：在前面已经叙述了报表在查询显示时与报表打印预览时的自适应能力，这里就不在赘述。报表配置参数的持久化需要报表开发者实现合理的保存与载入功能，建议对于多用户网络环境下的报表系统将报表配置参数保存在服务器的数据库中，这样便可共享动态报表的配置参数。报表配置参数载入之后就是调用报表的编程接口定义到报表中，这样用户的报表配置就可以持久可用。

总结

根据前面的叙述，我们将应用 Grid++Report 开发动态报表的主要任务进行划分，这样报表开发者可以更清楚自己应该做那些事情，明白自己的关注点。

Grid++Report 在开发动态报表中完成的主要任务：

  • 提供编程接口实现报表的动态定义。
  • 实现报表屏幕查询显示的动态输出。
  • 实现报表打印及数据导出等报表生成方面的动态输出。
  • 生成其它一切动态定义的结果。
  • 报表设计器实现报表位置的动态调整。

报表开发者需要完成的主要任务：

  • 实现报表数据筛选界面，动态实现数据源取数(一般为动态生成查询SQL语句)。
  • 实现报表显示外观定义界面及其他配置界面。
  • 调用 Grid++Report 的编程接口动态定义报表。
  • 实现报表动态配置参数的持久化保存与载入应用。

下面就动态报表的开发提一些建议，希望能够对大家有所帮助。如果一个报表需要动态定义的部分不是太多，也可以考虑用报表设计器可视化定义出报表中固定不变比较框架性的部分，然后根据报表配置参数通过编程定义动态部分。以上提出的有关动态报表的方方面面，报表开发者可以根据一个报表的具体情况，以及开发过程中的其它情况，进行适当地剪裁选用，上面的叙述也不一定很全面很准确，开发者也应根据实际情况进行增补。前面说过，动态报表需要模型化的抽象，抽象必须来源于具体实践与认真分析，实现动态报表也应该是一个逐步完善与持续改进的过程，只要你有开发动态报表意识，有归纳总结的习惯，Grid++Report一定可以协助你开发出功能强大的动态报表，你也可以在报表开发上积累宝贵的知识与资源，报表开发不应该只是简单的拖曳排放，不是机械化的简单重复劳动。希望大家都有一颗动态的心，设计开发实用性高、适应范围广、高度可复用的报表系统。

关于 Grid++Report 提供的动态报表例子

Grid++Report 的例子程序中包含了一个简单的动态报表例子程序，只用VC进行了实现，一来是因为例子要简单易懂，二来受VC实现界面繁杂的限制，例子程序未免显得简单与粗糙了一些，但也基本诠释了用 Grid++Report 开发动态报表的思想。下面的几幅图片来自此例子程序，也许能让你有个更直观的认识。

图一：动态报表例子查询显示

图二：动态报表例子筛选数据对话框

图二：动态报表例子显示外观设置对话框


报表查询显示功能

报表查询显示功能 - Grid++Report 独创

为什说报表查询显示功能是Grid++Report所独创与独有的？

软件系统中报表功能的主要目的是为用户提供数据分析与查询能力，报表查询显示应该是每一个报表系统中都必须具有的功能。多数软件系统的报表子系统也都会提供这样的功能，一般都是采用普通网格构件实现格式单调的报表查询数据，用其它第三方报表构件实现报表的打印预览、打印、数据导出等功能。多数时间用户使用报表系统都是在查询显示状态下查看报表提供的统计分析结果，只有在需要将报表保存硬备份时才会将报表打印输出。所以说，使用其它第三方报表控件只是帮助完成了报表的打印预览与打印功能，而用户最需要的报表数据查询显示功能只能由报表开发者费神劳心地采用普通网格控件去实现，并且还不能得到满意的效果。

正是因为认识到报表查询显示的重要性，Grid++Report 不仅提供了报表打印显示器控件，而且提供了报表查询显示器控件，也就是说Grid++Report 为报表的最后输出提供了两种查看模式，这也正是其它任何报表开发工具所不具有的。所以说报表查询显示功能是Grid++Report作为报表开发工具独创的，也是Grid++Report所独有的功能。

报表查询显示器与报表打印显示器有何区别？

报表查询显示器对报表明细数据采用连续不间断不分页的方式在屏幕上显示，也就是类似普通网格控件那样显示数据，当然一般的网格控件只能显示规则单一的二维数据，而Grid++Report 报表查询显示器可以将报表定义的丰富格式都显示出来，也可以在行中显示分组统计数据。

报表打印显示器对报表数据按分页的方式进行显示，也就是在指定的页面规格中按纸张尺寸显示报表，也就是对报表的打印输出进行模拟查看，可以说就是打印输出前的预览检查。对于用户来说，当然是在报表查询显示状态下获取报表数据更方便，这也正是报表查询显示功能不可或缺的原因。

总的来说，用报表查询显示器实现报表查询显示功能，用报表打印显示器实现报表打印预览功能，用报表查询显示器的更多有益之处将在后面一一介绍。

下面几幅图片展示出同一报表在设计状态、查询显示状态与打印预览状态，可以形象体会Grid++Report 全面展示报表的功能。

图一：设计状态

图二：查询显示状态

图三：打印预览状态

使用报表查询显示器给报表开发带来哪些好处？

  • 减少整个报表系统的开发工作量：报表查询显示器与报表打印显示器共用相同的报表模板定义，共用相同的报表引擎驱动，也就是一个报表的查询显示功能与打印预览功能不用进行分开实现，而是由Grid++Report 集成一体化解决，报表查询显示器让报表进入查询显示模式，报表打印显示器让报表进入打印预览模式。报表查询显示器让你丢掉简陋的数据网格控件，所有的数据展现功能都由 Grid++Report 帮你来完成。
  • 保持整个报表在不同查看模式下数据与外观的一致性：正因为 Grid++Report 一体化集成解决报表查询显示功能与打印预览功能，所以可以保持查询显示与打印预览这两种模式下报表的数据与外观的一致性。如果用其它的报表开发工具，报表查询显示功能就必须分开去实现，因为受不同构件展现数据方式的不同影响，在报表展示格式上不可能做到一致，因为查询显示时的数据统计分析也要分开实现，数据很容易出现细微的偏差，稍有不慎，还可能造成明显的差异，这样让报表的最终用户对整个软件系统的信任度大打折扣。
  • 得到格式丰富，条理清晰的报表查询结果：因为报表查询显示器的结果与打印预览的结果保持一致，报表设计时设定的各种格式都可以在查询显示器控件中体现出来。而使用数据网格或其它方式实现报表数据查询显示，因为受其功能限制，只能得到格式贫乏的数据展现，至于复杂的分组统计分析数据展现只能采用各种变通手法去实现，有时候可能还实现不了期望的效果。
  • 实现交互报表，实现报表穿透查询(报表透视功能)：在报表查询显示时的交互事件中打开下级明细报表或数据，实现报表的穿透查询，达到报表数据的追本溯源。从而实现报表与报表用户的互动。
  • 得到性能优良的报表查询显示功能：报表查询显示器的显示性能与报表的明细数据多少没有关系，无论多大的数据量都可以在查询显示器中平滑滚动显示。
  • 实现便捷、实用、专业的报表查询显示功能：报表列锁定(固定)功能，指定要锁定的列数目，让左边的几列不进行水平滚动，始终保持可见。报表列可以通过鼠标拖放进行重排顺序与宽度缩放。用间隔交替色显示记录行，让报表数据水平查看更清晰。按列重排序功能，通过鼠标点击报表列标题执行对报表记录重新排序。Grid++Report 在报表查询显示时可以对报表内容进行自动位置布局，让报表在不同大小的窗口下得到合理的输出布局。更多细节功能在此就不一一叙述。

综上所述，Grid++Report 是一款可以真正从全方位帮你解决报表开发任务的报表开发工具，可以大大减少你开发报表的难度与工作量，让你把更多的时间用到报表的业务分析上，为报表用户设计出更好的报表模型，让 Grid++Report 去生成你的报表，去展现你的报表。Grid++Report：你至少应该去试一试，去体会体会，千万不要错过选择的机会。


报表查询显示功能

选择 Grid++Report 实现票据套打的理由

票据纸张一般都是各种尺寸的非 Windows 内部标准纸张，所以要实现票据套打，就一定要很好地支持自定义纸张打印。票据套打必须要求输出内容的精确定位，这样才能得到满意的打印效果。当然工具应该为票据套打的实现提供很多便利条件，让开发者可以高效率高质量地实现票据套打功能。下面就说说 Grid++Report 对实现票据套打提供了哪些专门支持与便利条件：

  1. 打印纸张尺寸自定义：在设计报表时可以在页面设置参数中设定自定义的纸张尺寸，这样报表在打印输出时就会将设计时设置的自定义纸张做为默认的打印纸张。报表在运行时 Grid++Report 提供了编程接口可以改变打印输出的纸张参数，这里我们一样可以将报表的打印纸张设定为自定义纸张。
  2. Grid++Report 提供了报表页面设计视图，报表设计面板按设计页面的的实际尺寸显示，配合面板旁边的设计标尺就可以将报表内容定位在准确的位置。在打印输出时报表内容将准确的输出在其设计时定位的位置。
  3. 提供报表设计背景图显示功能，报表设计背景图在页面设计视图中平铺显示成设计面板的背景。如果将空白票据扫描成图像，将此图像作为报表设计背景图，这样此背景图就成为定位报表内容的参考，可以快速将报表内容拖放到合适的位置。只要扫描图像与实际没有明显的扭曲变形，就一定可以得到准确的套打结果。
  4. 票据一般都是有确定明细行数的，每页输出固定行数功能正好与票据这样的情况想吻合，这样保证了票据明细条目的准确套打。
  5. 报表内容在设计时可以指定打印类型，报表打印输出时指定输出模式，报表内容只有在其打印类型相匹配的打印输出模式下才会打印出来。这样在开发票据套打时，可以将整个票据的内容都设计出来，这样我们可以在预览票据时可以看到整个票据的完整内容，通过指定打印类型而让不应该在套打输出时打印的内容被过滤掉。

在开发票据打印时，一定要在支持指定义纸张的打印机上来测试，当然最后报表用户在运行时也必须要有合适的打印机来支持票据的打印，这些是用户在实现票据打印时经常遇到的问题。已经有很多用户采用 Grid++Report 在各种型号的打印机上实现了票据打印，如果您也有票据打印方面的开发任务，不妨试试 Grid++Report。Grid++Report 是一个完整的报表开发工具，它也一定能胜任报表开发中方方面面的任务。Grid++Report - 报表开发者至少应该了解一下。

Grid++Report 提供没有任何功能与使用期限限制的免费版，了解与试用 Grid++Report 请访问网站：http://www.rubylong.cn/。安装 Grid++Report 之后，可以运行与查看例子 Invoice 与 CustomPaper 对票据套打的具体实现。


New Page 1

通用报表开发常见问题解答

报表设计

怎样在设计时打印预览报表？

怎样用 Grid++Report 设计交叉表？

怎样设置整个报表的缺省字体？

怎样在打印时限制一页的输出行数？

如何强制数据换页显式？

如何根据数据文字多少伸展显示？

如何在明细网格中插入各种类型的部件框？

怎样改变数据(包括数字、日期与布尔类型)的显示格式？

怎样显示中文大写金额？

怎样实现 0 值不显示与不打印？

能否实现自定义纸张与票据打印？

怎样实现多栏报表?

如何实现套打？

如何调整自定义连续纸多页打印走纸不准的问题？

Grid++Report 有没有横向分页功能？

怎样实现报表本页小计功能？

如何设计多层表头报表？

如何设计纵向单元格个合并报表？

如何设计多数据源报表？

如何设计长篇文字(文字内容超过一页，如合同与公文等)报表？

为何综合文本框与统计框的表达式不能正常运行，或其引用的数据域没有起作用？

关于连接 Oracle 数据库设计报表。

报表运行

怎样与数据库建立连接?

如何改变缺省打印预览窗口的窗口标题？

利用集合对象的编程接口取子对象的接口引用，但不是自己期望的结果。

打印时能否对打印纸张进行自适应？支持表格的折行打印吗?

怎样在运行时控制报表中各个对象的可见性？即怎样在运行时显示或隐藏对象？

报表主对象重新载入数据，设计器中为什么没有反映新载入的数据？

怎样实现不进入打印预览界面，直接将报表打印出来？

能否在程序中为报表提供动态的数据，实现动态绑定数据库？

怎样在报表查询显示时将列改变的宽度与顺序反映到打印输出中？

怎样在报表查询显示时实现按列排序？

是否可以不用报表模板文件，直接用程序创建报表？

请问一下怎样将模板文件保存到数据库字段中以供共享使用?

其它

关于技术支持

Grid++Report快速入门指导

Grid++Report 是否支持繁体版及其它语言，它提供了哪些语言版本？

用以前版本做的报表在新版本下能兼容运行吗？

请问那些人使用 Grid++Report，即 Grid++Report 的最直接目标用户是谁？

Grid++Report 的运行性能与数据容量怎样？

报表设计

问：怎样在设计时打印预览报表？

答：为了及时查看报表的设计效果，Grid++Report 报表设计应用程序提供了四种查看视图：普通视图、页面视图、预览视图与查询视图。通过窗口下边的 Tab 按钮可以在四种视图中任意切换。在预览视图中查看报表的打印效果，在查询视图中查看报表的查询显示效果。如果报表的记录集提供了数据源连接串与查询 SQL，在进入预览视图与查询视图时会利用数据源连接串与查询 SQL 从数据源中自动取数,否则 Grid++Report 将自动生成模拟数据进行打印预览与查询显示。注意：在预览视图与查询视图中看到的报表运行结果有可能与在你程序中的最终运行结果有差异，因为在报表的生成过程中我们可以在程序中对报表的生成行为进行编程控制。

问：怎样用 Grid++Report 设计交叉表？

答：方式一：Grid++Report4.5 版已经提供了专门的交叉表功能，通过简单的属性设置就可以得到很专业的交叉报表。首先设置明细网格的“交叉表方式”属性为“是”指定报表为交叉表，然后选中明细网格的子对象“交叉表”进行属性设置。
方式二：如果有特殊格式的交叉表要实现，可以利用 Grid++Report 的编程接口可以做出灵活多变，功能丰富的交叉表。示例程序 CrossTab 就是一个实现交叉表的例子程序，认真领会此例子程序，你就可以做出自己想要的各种交叉表，并能提取一些共用代码，便于重复使用。

问：怎样设置整个报表的缺省字体？

答：设置报表主对象的字体属性，也就是设置了整个报表的缺省字体。如果改变报表主对象的字体属性，没有专门设置字体属性的子对象的字体会跟随改变。同样每个报表节与明细网格也有字体属性，他们的字体属性也就是其拥有的子对象的缺省字体。

问：怎样在打印时限制一页的输出行数？

答：设定明细网格的内容行的“每页行数(RowsPerPage)”属性即可。另要注意“调节行高(AdjustRowHeight)”属性值：为“真”时根据页面的输出高度自动调整行的高度，使整个页面的输出区域充满；为“假”时按设计时的节高度输出行。

问：如何强制数据换页显式？

答：设定报表节的“换新页(NewPage)”属性即可。

问：如何根据数据文字多少伸展显示？

答：设定部件框的“可伸展(CanGrow)”属性为“是”，通常也需要设置部件框所在的报表节或内容格的“可伸展”属性为“是”。如果是文字部件框，一般应该将其“文字自动绕行”属性设为“是”。子报表通常都是需要伸展的，其“可伸展”属性默认为“是”。

问：如何在明细网格中插入各种类型的部件框？

答：首先应该定义明细网格的列，如果不存在列，应该新定义一个列。选中列对应的内容格，设置内容格的“自由格”属性为“是”。然后就可以在内容格中插入一个或多个各种类型的部件框。如果只用插入一个部件框，通常应该把部件框的“停靠”属性设为“充满”，如在内容格中插入一个系统变量框显示行号。

问：怎样改变数据(包括数字、日期与布尔类型)的显示格式？

答：改变数据的显示格式，通常是为数据设置合适的格式。如果是用字段框、综合文字框与内容格展现报表字段的数据，应该设置对应报表字段的“格式”属性。如果是用静态文本框、综合文字框展现报表参数的数据，应该设置对应报表参数的“格式”属性。系统变量框与统计框上本身有“格式”属性，此属性会影响数据的显示。如果综合文字框定义了表达式，则在表达式的后面可以定义数据显式格式。

归纳来说，在报表字段、报表参数、系统变量框、统计框与综合文本框的表达式上可以设置数据的显示格式。更多细节请参考帮助中的“设计报表->设置数据显示格式”部分

问：怎样显示中文大写金额？

答：将对象的“格式(Format)”属性设为 “$$” 及可，可以设置格式的对象有：字段(IGRField)、参数(IGRParameter)、系统变量(IGRSystemVarBox)与综合文字框(IGRMemoBox)，其中综合文字框是在表达式上设格式，表达式与格式通过“:”分隔，表达式在前，格式在后。

问：怎样实现 0 值不打印？

答：直接设置格式串即可以，在“数字格式”设置对话框中选定“0 不显示”，即可得到合适的格式串。也可以通过直接录入格式串来指定“0 不显示”，但格式串必须符合 Grid++Report 的规定格式。

问：能否实现自定义纸张与票据打印？

答：Grid++Report 完全支持自定义纸张的打印，只要在报表设计时在页面设置中选定自定义纸张，并指定准确的纸张尺寸。一般还需要将报表主对象的“按设计页面打印”属性设为“是”，这样即使在不支持自定义纸张打印的打印机上也可以进行打印。例子 CustomPaper 可供参考。

问：怎样实现多栏报表?

答：在明细网格上设“页栏数（PageColumnCount）”属性值大于 1 即可。通过 Grid++Report 的“页栏输出顺序”还可以指定多栏报表的输出顺序是“先从上到下”还是“先从左到右”。

问：如何实现票据套打？

答：Grid++Report 为实现票据套打做了很多专门的安排：报表设计器提供了页面设计模式，按照设定的纸张尺寸显示设计面板，如果将空白票据的扫描图设为设计背景图，参照背景图可以快速定位报表内容的输出位置。报表部件可以设定打印类别，非套打输出的内容在套打打印模式下就不会输出。例子 PrintInForm 中就实现了支票的打印。

问：如何调整自定义连续纸多页打印走纸不准的问题？

答：有时按测量的纸张尺寸精确设置报表的纸张页面大小后，用打印机进行实际输出多页时会发生位置偏移，一般都是因为打印机走纸不准造成的。要修正这样的走纸误差，可以一次性连续多打印几页（如3-5页），量出最后一页的位置误差值，据此求出每页的平均误差，然后根据这个平均误差值调整报表中的页面高度值。

问：Grid++Report 有没有横向分页功能？

答：回答是肯定的，在列的总宽度超过打印页面的输出宽度时，Grid++Report 可以另起新页输出剩余的列，如果左边存在锁定列，锁定列可以在后面的新页中重复输出，这样可以保证关键数据列在每一页都有输出。仔细体会 Grid++Report 提供的多种打印适应策略，选用最合适的方式。Grid++Report 的多种打印适应策略为开发动态报表提供了很好的支持。设置明细网格的“打印策略”及相关属性可以应用不同的打印适应方式。运行例子 PrintAdapt 体验同一报表在不同打印策略下的输出效果。

问：怎样实现报表本页小计功能？

答：定义一个报表分组,设定其“页分组”属性为“是”将本分组定义为页分组，在本分组的分组头与分组尾上定义统计内容相关部件框。页分组会在每页产生一个分组项，在每页的上端与下端分别显示其分组头与分组尾，页分组不用定义分组依据字段。参考例子模板“2g.页分组.grf”。

问：如何设计多层表头报表？

答：请参考帮助中的“设计报表->明细网格->定义多层表头”部分。

问：如何设计纵向单元格个合并报表？

答：请参考帮助中的“设计报表->明细网格->分组单元格合并(占列式分组)”部分。

问：如何设计多数据源报表？

答：如果在一个报表中有多个表格要显示，应该应用Grid++Report的“子报表”功能。

问：如何设计长篇文字(文字内容超过一页，如合同与公文等)报表？

答：利用综合文字框来实现，中间可以插入动态数据域。为了防止文字换页时出现从中间截断的情况，应该将“行间距”或“字间距”属性的值设为大于0，如“5”或“50”。

问：为何综合文本框与统计框的表达式不能正常运行，或其引用的数据域没有起作用？

答：首先确保表达式合法，且引用的数据域名称正确。另请注意：报表里的对象名称一般要求为英文字母，数字，汉字与连字符，且首字母不能为数字，否则被综合文字框或统计框引用时需要在名称前后加"#"符号括起来。

问：关于连接 Oracle 数据库设计报表

答：注意：OLE DB 驱动不要用“Microsoft OLE DB for Oracle”，而应该用“Oracle Provider for OLE DB”，不然包含BLOB、CLOB与TIMESTAMP类型字段的查询不能用。可能是因为“Microsoft OLE DB for Oracle”支持 Oracle 版本比较低的缘故。例子模板：C:\Grid++Report 5.0\Samples\Reports\Oracle.grf

报表运行

问：怎样与数据库建立连接?

答：如果在设计报表时指定了数据集的数据源连接串与查询 SQL 语句，Grid++Report 采用拉模式主动从数据源提取报表数据，利用 OLE DB 数据引擎从数据源取数，OLE DB 提供了广泛的数据源操作能力。如果 Grid++Report 的数据来源采用推模式，即 Grid++Report 不直接与数据库建立连接，各种编程语言/平台都提供了很好的数据库访问能力，并且易于操作，应用程序在报表主对象(IGridppReport)的 FetchRecord 事件中将数据传入报表，例子程序提供了各种编程语言填入数据的通用方法，对C++Builder 和 Delphi 还进行了专门的包装，报表对象(TGridppReport)直接关联 TDataSet 对象也可以将 TDataSet 对象中的数据传给报表。

问：如何改变缺省打印预览窗口的窗口标题？

答：改变报表主对象的“标题(Title)”属性即可。

问：利用集合对象的编程接口取子对象的接口引用，但不是自己期望的结果。

答：Grid++Report中所有集合对象的下标索引都是从 1 开始，另按对象的名称查找对象的接口引用时，名称字符是不区分大小写的。

问：打印时能否对打印纸张进行自适应？支持表格的折行打印吗?

答：Grid++Report 在打印时采用多种适应策略，通过设置明细网格(IGRDetailGrid)的“打印策略(PrintAdaptMethod)”属性指定打印策略。(1)丢弃：按设计时列的宽度输出，超出范围的内容不显示。(2)绕行：按设计时列的宽度输出，如果在当前行不能完整输出，则另起新行进行输出。(3)缩放适应：对所有列的输出宽度进行按比例地缩放，使总宽度等于页面的输出宽度。(4)缩小适应：如果列的总宽度小于页面的输出宽度，对所有列的输出宽度进行按比例地缩小，使总宽度等于页面的输出宽度。(5)横向分页：超范围的列在新页中输出，打印顺序可以是先从上到下，也可以是先从坐到右。(6)横向分页并重复锁定列，打印顺序可以是先从上到下，也可以是先从坐到右。

问：怎样在运行时控制报表中各个对象的可见性？即怎样在运行时显示或隐藏对象？

答：在报表主对象(GridppReport)的 SectionFormat 事件中设定相应报表子对象的“可见(Visible)”属性即可。

问：报表主对象重新载入数据，设计器中为什么没有反映新载入的数据？

答：应调用 IGRDesigner 的 Reload 方法。

问：怎样实现不进入打印预览界面，直接将报表打印出来？

答：直接调用报表接口(IGridppReport)的 Print 与 PrintEx 方法，报表将生成并直接输出到打印机中，可以控制在打印之前是否显示打印设置对话框。

问：能否在程序中为报表提供动态的数据，实现动态绑定数据库？

答：Grid++Report 是完全可编程定义的报表构件，当然可以为报表提供动态数据，动态绑定到数据库。首先在程序中要实现界面可以定义动态数据，动态数据定义之后，调用查询显示器或打印查看器的 Refresh 方法驱动报表的重新生成。如果采用拉模式用 OLE DB 直接从数据源取数，需要报表开发者动态生成查询 SQL 语句，然后将此查询 SQL 语句设定到报表数据集的 QuerySQL 属性，一般在 Initialize 事件中设置。如果采用推模式向报表提供数据，需要报表开发者准备好动态数据，在 FetchRecord 事件中向报表填入数据。

问：怎样在报表查询显示时将列改变的宽度与顺序反映到打印输出中？

答：在执行打印或打印预览任务之前，调用 IGRDisplayViewer 的 PostColumnLayout 方法就可以了。

问：怎样在报表查询显示时实现按列排序？

答：只要将报表查询显示器控件的“Resortable”属性设为“true”就可以开启报表查询显示器的点击列标题排序功能，在此报表查询显示器控件中显示的报表表格就可以通过鼠标点击列进行按列重新排序。更多有关排序方面的应用请参考与例子“HowTo”中的重排序与重分组。

问：是否可以不用报表模板文件，直接用程序创建报表？

答：可以，如果你开发动态变化的报表，我们更建议你采用这样的方式，因为动态报表必须在程序中反映报表的动态变化。Grid++Report 提供了清晰直观的报表定义编程接口，用报表设计器定义的报表一样可以通过编程的方式来定义。例子 Program 就用不多的代码将一个完整的分组统计报表定义出来。

问：请问一下怎样将模板文件保存到数据库字段中以供共享使用?

答：当开发多用户的C/S或多层架构的软件时，将报表模板保存在数据库中可以使同样的报表模板可以共享，并可以保持报表模板数据的一致性。Grid++Report 提供了多种保存报表模板数据的方法：SaveToFile、LoadFromFile、SaveToStr、LoadFromStr、SaveToVariant、LoadFromVariant。利用合适的方法就可以将报表模板保存到数据库。例子程序 LoadFromDB 就实现了这样的功能。我们将 Grid++Report 报表设计器应用程序的源代码公开了，报表开发者可以在此基础上实现自己的报表设计程序，可以将报表的载入与保存改为数据库。

其它

问：关于技术支持

答：我们将尽力提供各方面的技术支持，解答用户的疑问，及时更正发现的错误，实现合理的建议功能。技术支持的途径有:给我们发送Email(support@rubylong.cn)，在网站论坛(http://www.rubylong.cn/bbs)中发帖子，向我们打电话咨询等。当然要用好 Grid++Report，还需要用户认真的学习它，多看我们的例子与帮助。欢迎大家提出任何意见与建议。

问：Grid++Report快速入门指导

答：Grid++Report快速入门指导请参考: http://www.rubylong.cn/doc/get_starting.htm 或 帮助的“产品介绍->快速入门指导”部分。

问: Grid++Report 是否支持繁体版，它提供了哪些语言版本？

答：Grid++Report 是多语言集成的与 Unicode 编码的软件，同一软件支持多国语言。

问：用以前版本做的报表在新版本下能兼容运行吗？

答：新旧版本开发的应用程序可以在同一台电脑中兼容运行，彼此不会有任何干绕。新版本可以兼容读取旧版本的报表模板文件，但旧版本不能打开新版本设计的报表模板。建议在开发时只安装一个版本的Grid++Report，以免版本混淆带来不必要的麻烦。

问：请问那些人使用 Grid++Report，即 Grid++Report 的最直接目标用户是谁？

答：Grid++Report 主要用户是软件开发人员,为他们提供报表开发工具,各个层次的程序员都可以轻易上手,为他们开发的应用程序提供数据展现、打印及数据导出方面的开发工具。

问：运行性能与数据容量

答：Grid++Report 可以高性能的在应用程序前端展现与分析数据，即使超过40万条记录的数据也可以在报表查询显示器中平滑显示。

请参见

C/S报表组件常见问题解答 | B/S报表插件常见问题解答 | 注册与试用方面常见问题解答


New Page 1

有关产品注册与支持的常见问题

问：如何试用 Grid++Report

答：从我们网站下载的软件就可以试用学习。提供了丰富的C/S与B/S例子，例子程序都在安装目录下。试用时除了打印页面上有标志文字，没有任何功能与时间期限限制。试用时设计的报表模板与开发的代码都可以直接无修改地供购买注册之后继续开发与使用。

问：关于技术支持

答：我们将尽力提供各方面的技术支持，解答用户的疑问，及时更正发现的错误，实现合理的建议功能。技术支持的途径有:给我们发送Email(support@rubylong.cn)，在网站论坛(http://www.rubylong.cn/bbs)中发帖子，向我们打电话咨询等。当然要用好 Grid++Report，还需要用户认真的学习它，多看我们的例子与帮助。欢迎大家提出任何意见与建议。

问：请问那些人使用 Grid++Report，即 Grid++Report 的最直接目标用户是谁？

答：Grid++Report 主要用户是软件开发人员,为他们提供报表开发工具,各个层次的程序员都可以轻易上手,为他们开发的应用程序提供数据分析、展现、打印及数据导出等方面的功能。

问：Grid++Report 有哪些版本？

答：请参考 Grid++Report 版本。

问：如何购买 Grid++Report？

答：首先确定要购买的版本，购买流程请参考：http://www.rubylong.cn/grpurchase.htm

请参见

通用常见问题解答 | C/S报表组件常见问题解答 | B/S报表插件常见问题解答


报表插件常见问题解答

常见问题解答(FAQ) - WEB报表

ISS6 WEB服务器不能访问 grf 报表模板文件的问题

通过 IE 不能访问到 .grf 报表文件，这是因为 IIS6 对访问的扩展名做了限制，所以除了已经定义的扩展名之外，其他的扩展名都不能访问，这跟 ISS5 不一样，ISS5对所有的扩展名都不做限制。

解决办法：打开“Internet信息服务”管理界面，增加“.grf”扩展名定义 MIME 类型。能够直接下载.grf文件，这样这个问题肯定就解决了。

操作步骤：

1. 打开 IIS Microsoft 管理控制台 (MMC)，右键单击本地计算机名称，然后单击“属性”。
2. 单击“MIME 类型”。
3. 单击“新建”。
4. 在“扩展名”框中，键入所需的文件扩展名“.grf”。
5. 在“MIME 类型”框中，键入“报表模板文件”。
6. 应用新设置,必须重新启动“万维网发布服务”或重新启动计算机。

客户端“创建网络连接组件不成功”

建议网页与模板文件名中不包含汉字，这样会避免一些麻烦。比如ASP.NET中是可以支持汉字URL的,但在VS2005中直接启动调试就不支持汉字URL。

通常是因为"msxml3.dll"在Windows系统中丢失了注册信息，执行命令“regsvr32 msxml3.dll”可修复此问题。操作步骤：从Windows桌面执行“开始->运行...”,然后输入"regsvr32 msxml3.dll"并点击“确定”按钮。

报表模板文件名中有汉字时不能运行报表

有些WEB服务器中不支持URL中包含汉字，或者需要进行字符集的专门设置才能支持汉字。在不支持汉字URL时，如果模板文件名中带有汉字就不能被访问到，所以报表也就不能成功运行。在这种情况下就要避免使用汉字文件名。在浏览器的地址栏中直接输入模板文件的完整URL地址，看模板文件能否正常下载，如果不能，就有可能是WEB服务器不支持汉字URL。

建议网页与模板文件名中不包含汉字，这样会避免一些麻烦。比如ASP.NET中是可以支持汉字URL的,但在VS2005中直接启动调试就不支持汉字URL。

不能保存设计的模板文件

在代码无误的前提下，一般是因为“Internet 来宾账户”不具备保存目录的写入权限，为“Internet 来宾账户”增加这个目录的写入权限。

在WindowsXP中如果看不到目录的属性窗口中的“安全”选项卡，必须取消使用简单文件共享且磁盘是NTFS格式时才可以设置目录权限(操作过程：打开资源管理器-〉工具-〉选项-〉查看，将“使用简单文件共享(推荐)”前的勾选去掉)。

查找不能访问到报表数据的原因

在浏览器中直接输入访问报表数据的 URL，如果有访问参数，应提供合适的参数，如：http://localhost/data.aspx?param=8。如果浏览器中显示了错误提示，据此排查问题。如果没有错误提示，说明页面访问成功，打开网页的源文件，查看XML数据是否符合约定的格式。

报表插件客户端需不需要安装？是否需要进行某些配置？

客户端不需要手动安装任何程序，用户在初次访问报表时，IE浏览器会自动下载插件安装包并安装插件，具体请参考在服务器部署插件安装包。因为报表数据是从WEB服务器取XML数据，所以客户端也不需要安装任何数据库的客户端。

如何查看报表插件的版本信息？如何升级插件安装包？

在插件的打印预览界面中，将 ctrl+atl 键同时按下，并鼠标双击打印页面，报表插件的关于窗口将弹出，在其中就可以看到详细的版本信息。报表插件升级处理请参考：升级报表插件CAB包

客户端javascript代码不能访问定义的报表对象？

<OBJECT id="Report" classid="CLSID:9E4CCA44-17FC-402b-822C-BFA6CBA77C0C" codebase="../griectl.cab#Version=5,0,8,1215" VIEWASTEXT></OBJECT>
当以这样的方式定义报表对象时，如果本段代码不在网页的“HEAD”区域，在javascript代码中就有可能不能访问Report变量，通过网页document对象的getElementById方法取得报表对象的引用，代码如下：
var Report = document.getElementById("Report");

报表模板中的数据源连接串与查询SQL有何作用？在运行时是否用到？

报表模板中的数据源连接串与查询SQL对于设计报表模板并不是必需的，但它们可以让我们在设计报表模板时更方便，可以根据它们自动生成报表字段，可以在设计报表时加载数据以便及时查看报表的运行效果。对WEB报表来说，数据源连接串与查询SQL在运行时是不起作用的，也可以不提供，因为报表数据是从WEB服务器取XML形式的数据。

在满足W3C标准的网页中定义了插件，但插件无法显示出来？

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PrintReport.aspx.cs" Inherits="PrintReport" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<TITLE>Web报表(B/S报表)演示, 用报表打印显示器插件(打印预览插件)展现报表 - <%=Request.QueryString["Report"]%></TITLE>
<script src="CreateControl.js" language="javascript"></script>
<style type="text/css">
html,body {
margin:0;
height:100%;
}
</style>
 </head>
<BODY style="margin:0">
<script language="javascript">
CreatePrintViewer("grf/<%=Request.QueryString["Report"]%>", "<%=Request.QueryString["Data"]%>") ;
</script>
</body>
</html>

参考上面的代码，在 head 部分加上“height:100%”样式定义。注意红色部分内容，第一部分指明了网页满足W3C标准，第二部分指明了网页布局方式。

数据无法更新,或遇到一下找不到合理原因的疑难问题？

可以尝试重启 IE 浏览器并清理 IE 的缓存。因为 IE 浏览器会缓存访问过数据,服务器上即使更新了数据,但客户端却使用了过期的缓存数据。URL访问采用POST方式的HTTP请求方法可以避免缓存，详细请参考这里说明。

ASP.NET程序在 IIS 下不能运行的问题

要对 asp.net 程序所在的目录进行设置,步骤:

控制面板->管理工具->Internet 信息服务->%Machine%(本地计算机)->网站->%ASP.NET程序虚拟目录%-〉右键打开弹出菜单-〉属性-〉目录-〉应用程序设置-〉应用程序名-〉创建。

ASP.NET(*.aspx)网页的客户端javascript代码不能访问报表插件对象？

<form id="form1" runat="server">
<script language="javascript">
CreateDisplayViewer("ReadReport.aspx?Report=<%=Request.QueryString["Report"]%>", "<%=Request.QueryString["Data"]%>");</script>
</form>

如果按以上方式创建了报表插件，在网页的javascript代码中不能访问ReportViewer对象，应该把创建报表插件移到<form id="form1" runat="server">之外。如：

<form id="form1" runat="server">
</form>
<script language="javascript">
CreateDisplayViewer("ReadReport.aspx?Report=<%=Request.QueryString["Report"]%>", "<%=Request.QueryString["Data"]%>")</script>

如果必须在from里创建插件，虽然不能直接通过插件的ID在javascript代码中应用插件，但通过网页document对象的getElementById方法取得插件的引用，代码大致如下，ReportViewer是插件的ID：
var ReportViewer = document.getElementById("ReportViewer");

如果网页使用了母版页，也要采用这样的方式访问插件。

ASP.NET报表在运行时，遇到“解析报表XML格式数据不成功”这样的失败提示

如果提供报表数据的网页是按要求写的，且单独运行这个网页也正常，很可能是网页中除了自动生成的XML数据外，还包含有额外的数据。打开对应的网页程序，删掉除生成XML数据代码之外的所有其它内容。

请参见

分析报表不能运行的原因 | 通用常见问题解答 | C/S报表组件常见问题解答 | 注册与试用方面常见问题解答


New Page 1

在类库参考文档中，对属性按特征进行归类，当属性具有某个特征时，在文档中将特征列出。 以下是各个特征的说明：

特征名称 | 说明
设计器中可见 | 指示属性在报表设计器中可见，可修改。当属性的拥有对象选中时，属性在属性编辑窗口种列出。
仅运行时可用 | 指示属性仅在报表处于运行时状态时才能使用。
仅用于打印 | 指示属性值仅与报表打印生成时的行为有关，即此属性只影响打印生成结果。
仅用于查询 | 指示属性值仅与报表在查询显示器中的行为有关，即此属性只影响查询显示器输出报表的结果。
仅用于设计 | 指示属性值仅用于在报表设计器中设计报表，定义设计器设计的行为，而与报表生成输出没有关系。


New Page 1

C/S报表开发例子

概述

说明怎样使用 Grid++Report 的数据导出编程接口实现数据导出功能。在打印查看器控件的工具条上提供了一个数据导出按钮，即可以在打印预览界面执行数据导出任务。另外 Grid++Report 还提供了数据导出的编程接口，报表开发者可以用自己的界面届口实现数据导出的功能。本示例说明了 Grid++Report 实现数据导出的两种编程方式。一种就是直接调用 ExportDirect 方法一步实现数据导出。另一种就是使用 PrepareExport、Export、UnprepareExport 三个方法实现数据导出，在 PrepareExport 方法会返回一个数据导出选项对象的接口引用,报表开发者可以通过此接口引用改变数据导出选项。

模板文件

Customer list.grf

编程处理要点

  1. 在调用 ExportDirect 方法时，如果将参数 ShowOptionDlg 设为真，这在执行导出任务之前显示数据导出选项对话框，可以在其中设置数据导出选项。
  2. 在调用 PrepareExport 方法得到的数据导出选项接口引用在应用时，可以将其转换为具体类型的数据导出选项接口引用。
  3. 使用 PrepareExport 方法后，一定要在任务结束时调用 UnprepareExport 方法，释放 PrepareExport 申请的系统资源。

请参见

IGRExportOption


New Page 1

C/S报表开发例子

概述

说明怎样向 Grid++Report 提供明细记录数据，数据来源不与任何数据库关联。报表在运行时，触发 FetchRecord 事件要求报表开发者在此填入明细记录数据。报表开发者在填入数据时可以采用两种方式：一是一次性全部填入全部明细记录数据，在填入一条记录开始时调用 Append 方法，完成时调用 Post 方法；这种方式报表一次运行只触发一次 FetchRecord 事件。二是采用 FetchRecord 事件每一次触发时只填入一条记录，如果本次填入了一条记录，则应将事件的 pEof 参数设为假，这样 FetchRecord 事件将再次触发，直到 pEof 参数设为真为止；采用这种方式可以不调用 Append 与 Post 方法，因为 Grid++Report 在内部会调用这两个方法。

模板文件

ManualFillRecord.grf


New Page 1

C/S报表开发例子

概述

在报表模板中定义参数化的查询SQL语句与对应的参数，在程序中的报表 Initialize 事件中为参数赋值，报表数据将根据参数动态得来。首先在一个窗口中可以设置日期范围，报表的数据根据设定的日期范围来获取。通过响应查询显示器控件的 ContentCellDblClick 事件穿透到一个明细报表，将对应的参数传递给明细报表。

模板文件

ParamQuerySQL1.grf
ParamQuerySQL2.grf

编程处理要点

在 Initialize 事件中为报表模板中定义的参数赋值。


GRControlType 枚举

指定部件框的具体类型。

成员名称 | 枚举值 | 说明
grctStaticBox | 1 | 静态文字框。
grctShapeBox | 2 | 图形框。
grctSystemVarBox | 3 | 系统变量框。
grctFieldBox | 4 | 字段框。
grctSummaryBox | 5 | 统计框。
grctRichTextBox | 6 | RTF格式文字框
grctPictureBox | 7 | 图像框。
grctMemoBox | 8 | 综合文字框。
grctSubReport | 9 | 子报表。
grctLine | 10 | 线段。
grctChart | 11 | 图表。
grctBarcode | 12 | 条形码。

请参见

IGRControl.ControlType 属性 | IGRControls.Add 方法 | IGRDesigner.PrepareInsertControl 方法


GRFieldType 枚举

指定字段对象的具体类型。

成员名称 | 枚举值 | 说明
grftString | 1 | 字符字段。
grftInteger | 2 | 整数字段。
grftFloat | 3 | 浮点数字段。
grftCurrency | 4 | 货币字段。
grftBoolean | 5 | 布尔字段。
grftDateTime | 6 | 日期时间字段。
grftBinary | 7 | 二进制字段。

请参见

IGRField 接口 | IGRField.FieldType 属性 | IGRRecordset.AddField 方法


GRDockStyle 枚举

指定部件框停靠的位置和方式。

成员名称 | 枚举值 | 说明
grdsNone | 0 | 该部件框未停靠。
grdsLeft | 1 | 该部件框的左边缘停靠在父容器的左边缘。
grdsTop | 2 | 该部件框的上边缘停靠在父容器的顶端。
grdsRight | 3 | 该部件框的右边缘停靠在父容器的右边缘。
grdsBottom | 4 | 该部件框的下边缘停靠在父容器的底部。
grdsFill | 5 | 部件框的各个边缘分别停靠在父容器的各个边缘，并且适当调整大小。

说明

当部件框停靠到其容器的一条边缘时，调整容器的大小时，始终使部件框与那条边缘对齐。如果多个部件框停靠到一条边缘，那么这些部件框将按照它们的 Z 顺序并排出现，部件框在 Z 顺序中的位置越高，距离容器边缘就越远。

如果选择了 Left、Right、Top 或 Bottom，则调整部件框的指定边缘和相对边缘的尺寸至包含部件框的相应边缘的尺寸。如果选择了 Fill，则调整部件框的所有四条边以匹配包含部件框的边缘。

请参见

IGRControl.Dock 属性 | IGRControl 接口


IGridppReport 概述

IGridppReport 接口

表示报表的主对象。其他报表元素对象都是其子孙对象，对其它对象的访问与使用都是以此对象作为进入起点。

有关此接口所有成员的列表，请参阅 IGridppReport 成员。

IDispatch
IGridppReport

说明

是一个COM自动化（COM Automation）对象的接口定义，是Grid++Report组件对象模型的最外层对象。报表主对象是所有其它报元素对象的直接或间接拥有者，直接拥有的报表元素对象有：明细网格，报表节集合、参数集合、打印机对象。另也包括报表有关的公共信息，如设计行为属性、计量单位、整个报表的缺省字体等。

请参见

IGridppReport 成员 | IGRPrinter 接口 | GRScriptType 枚举 | GRStorageFormat 枚举 | GRUnit 枚举 | IGRDisplayViewer.Report 属性 | IGRPrintViewer.Report 属性 | IGRSubReport.Report 属性 | IGridppReport.MyInterface 属性 | IGridppReport.ParentReport 属性


IGridppReport成员

IGridppReport 概述

公共属性

AlignToGrid | 当在设计器中设计报表模板时，是否将部件框的边框对齐到设计栅格点。
BackColor | 报表对象的缺省背景色。
BackImage | 指定报表在设计器中进入页面视图时显示的背景图。
BackImageFile | 指定报表在设计器中进入页面视图时显示的背景图文件的路径与名称。
BackImagePreview | 指示在报表预览时，是否显示设计背景图。
BackImagePrint | 指定在打印输出、导出PDF、导出图像时是否输出背景图。
BeforeSortScript | 表示报表 BeforeSort 事件对应的脚本语言代码。
ConnectionString | 指定连接到数据源的连接串。
ContinuePrint | 指定是否采用连续打印，即打即停的方式打印输出报表。
DesignBottomMargin | 指定设计报表时所定义的页面下边距。
DesignLeftMargin | 指定设计报表时所定义的页面左边距。
DesignPaperLength | 指定设计报表时所定义的页面长度，仅自定义纸张设置此属性有效。
DesignPaperName | 指定设计报表时所定义的纸张名称。
DesignPaperOrientation | 指定设计报表时所定义的纸张打印方向。
DesignPaperSize | 指定设计报表时所定义的纸张大小代号。
DesignPaperWidth | 指定设计报表时所定义的页面宽度，仅自定义纸张设置此属性有效。
DesignPrintDuplex | 指示报表在设计时指定的双面打印模式。
DesignRightMargin | 指定设计报表时所定义的页面右边距。
DesignTopMargin | 指定设计报表时所定义的页面上边距。
DetailGrid | 获取明细网格对象的接口引用。
DisplayMode | 指示报表的输出显示状态。
ExportBeginScript | 表示报表 ExportBegin 事件对应的脚本代码。
FirstPass | 指示报表是否在第一遍报表运行过程中。
FloatControls | 指定报表中的浮动部件框集合
Font | 获取报表对象的缺省字体对象的引用。
Graphics | 自绘部件框的自绘对象引用。
GridColsPerUnit | 在设计器中，水平方向上每个计量单位显示的设计栅格点个数。
GridRowsPerUnit | 在设计器中，垂直方向上每个计量单位显示的设计栅格点个数。
HasFloatControl | 指定报表中是否包含有浮动部件框
ImageList | 获取报表对象中图像集合对象的接口引用。
InitializeScript | 表示报表 Initialize 事件对应的脚本语言代码。
IsBlank | 指示报表模板是否为空白未定义状态。
Language | 指定当前应用的界面语言。
MirrorMargins | 指定是否镜像左右页边距打印输出报表。
MonoPrint | 指定是否按黑白色打印输出。
MyInterface | 获取本对象自身的接口引用。
PageBlankHeight | 报表在生成打印页面数据的过程中，当前页面剩余的空白区域高度
PageDivideCount | 打印输出时，纸张在垂直方向上的均分个数。
PageDivideLine | 打印输出时，是否显示纸张在垂直方向均分的分隔线。
PageDivideSpacing | 打印输出时，纸张在垂直方向均分时的分隔间距。
PageEndScript | 表示报表 PageEnd 事件对应的脚本语言代码。
PageFooter | 获取页脚对象的接口引用。
PageHeader | 获取页眉对象的接口引用。
PageStartScript | 表示报表 PageStart 事件对应的脚本语言代码。
Parameters | 获取参数集合对象的接口引用。
ParentReport | 指定子报表对象的主报表引用
PrintAsDesignPaper | 指定是否按设计时的页面设置生成打印页面。
Printer | 获取打印机对象的接口引用。
PrintToStretch | 在按设计页面打印报表，且打印机的当前页面设置与报表设计页面不匹配，指定打印输出是否进行缩放适应。
ProcessBeginScript | 表示报表 ProcessBegin 事件对应的脚本语言代码。
ProcessEndScript | 表示报表 ProcessEnd 事件对应的脚本语言代码。
QuerySQL | 从数据源中取数的SQL语句。
ReportFooter | 根据名称或序号取得某个报表尾对象的接口引用。
ReportFooterCount | 获取报表中定义的报表尾个数。
ReportHeader | 根据名称或序号取得某个报表头对象的接口引用。
ReportHeaderCount | 获取报表中定义的报表头个数。
Running | 指示报表是否处于运行状态中。
RunningDetailGrid | 获取报表运行时展现出来的明细网格对象接口。
ScriptType | 指定在本报表中使用的脚本语言类型。
SharePrintSetupObject | 获取当前应用程序的共享全局打印设置对象的接口引用。
SharePrintSetupOptions | 指定共享全局打印设置参数的选项。
ShowGrid | 获取或设置是否在设计器中显示设计栅格点的标志。
ShowMoneyDigit | 指定在报表中显示金额线或金额位标签时显示的位数。
ShowMoneyLineColor | 指定金额位分隔线的颜色。
ShowMoneySepLineColor | 指定元与角位之间的分隔线的颜色。
ShowMoneyWidth | 指定在报表中显示金额线或金额位标签时显示全部位的宽度。
ShowPreviewWndScript | 表示报表 ShowPreviewWnd 事件对应的脚本代码。
ShowProgressUI | 指定报表在运行时是否显示进度指示。
SkipQuery | 指示在生成报表时，是否忽略从数据源取数的属性设置。
StorageFormat | 指定报表模板数据的保存格式
TextEncode | 指定报表模板保存时所用的文字编码方式
Title | 指定报表文档的标题文字。
Unit | 用来表示报表元素位置与大小的计量单位。
Version | 指示Grid++Report的当前运行版本。
Watermark | 指定报表在生成打印页面时在每页中显示的水印背景图像。
WatermarkAlignment | 指定水印图在页面中显示时的位置对齐方式。
WatermarkSizeMode | 指定水印图在页面中显示时使用的缩放方式。

公共方法

AbortPrint | 中断打印任务的执行。
About | 显示Grid++Report关于对话框。
AddParameter | 增加一个参数定义。
BeginLoopPrint | 准备开始循环打印。
CalcTextOut | 根据区域大小、字体等信息计算出一段文字不能输出剩余部分的文字
CancelRecordset | 取消向报表加入明细记录数据进行的准备。
Clear | 清除所有的报表模板定义数据，使报表主对象成为一张空白报表。
ColumnByName | 根据名称找到对应列对象的接口引用。
ControlByName | 从报表主对象包括的所有部件框中根据部件框名称找到对应部件框对象的接口引用。
DeleteDetailGrid | 删除整个明细网格的定义，报表主对象将不具有明细网格。
DeletePageFooter | 删除页脚的定义，报表主对象将不具有页脚。
DeletePageHeader | 删除页眉的定义，报表主对象将不具有页眉。
DeleteReportFooter | 根据报表尾的名称或序号删除一个报表尾。
DeleteReportHeader | 根据报表头的名称或序号删除一个报表头。
EndLoopPrint | 结束循环打印。
Export | 执行数据导出。
ExportDirect | 直接进行数据导出。
ExtractXMLFromURL | 从指定的 URL 获取XML数据包。
ExtractXMLFromURLEx | 从指定的 URL 获取XML数据包。
FieldByDBName | 根据字段的字段名称得到匹配字段对象的接口引用。
FieldByName | 根据字段名称得到匹配字段对象的接口引用。
FindFirstControl | 找出报表中的第一个部件框。
FindNextControl | 找出报表中的下一个部件框的引用。
ForceNewPage | 在报表生成过程中，结束当前页，开始一个新页面。
GenerateDocumentFile | 生成报表的 Grid++Report 文档文件到指定的文件。
GetSkin | 获取控件界面风格的参数。
InsertDetailGrid | 向报表主对象插入明细网格，使报表主对象具有明细网格。
InsertPageFooter | 增加页脚定义。
InsertPageHeader | 增加页眉定义。
InsertReportFooter | 增加一个报表尾。
InsertReportHeader | 增加一个报表头。
LoadBackImageFromFile | 从指定的图像文件中载入报表设计页面背景图。
LoadBackImageFromMemory | 从内存数据中载入报表设计页面背景图。
LoadDataFromURL | 从指定的 URL 地址载入报表明细记录集数据，数据必须为XML格式并符合约定的形式。
LoadDataFromURLEx | 从指定的 URL 地址载入报表数据，返回数据必须为XML格式并符合约定的形式。
LoadDataFromXML | 从XML文字串中载入报表明细记录集数据，数据应符合约定的形式。
LoadFromFile | 从报表模板文件中载入报表模板定义。
LoadFromMemory | 从内存中载入报表模板数据。
LoadFromStr | 从字符串中载入报表模板数据。
LoadFromURL | 从指定的 URL 地址载入报表模板数据。
LoadFromVariant | 从一个包含报表模板数据的 Variant 变量中载入报表。
LoadWatermarkFromFile | 从指定的图像文件中载入水印背景图。
LoadWatermarkFromMemory | 从内存数据中载入报表水印背景图。
LoopPrint | 在循环打印过程中，执行一次打印生成过程。
ParameterByName | 根据名称找到对应参数对象的接口引用。
PixelsToUnit | 将屏幕像素值转换为报表当前使用的计量单位值。
PrepareExport | 准备进行数据导出，指定要导出的文件类型。
PrepareRecordset | 准备向报表中加入明细记录数据。调用此方法后，就可以向报表的记录集中加入数据。
Print | 执行打印报表。
PrintEx | 打印报表,按指定方式生成生成打印数据。
PrintPreview | 在Grid++Report提供的缺省打印预览窗口中预览报表。
PrintPreviewEx | 在Grid++Report提供的缺省打印预览窗口中预览报表，可以指定打印数据的生成方式。
Register | 用Grid++Report的产品序列号进行注册。
SaveToFile | 将报表模板数据保存到报表模板文件中去。以文本格式保存保存模板数据。
SaveToMemory | 保存报表模板数据保存至内存缓冲区。以文本格式保存保存模板数据。
SaveToStr | 保存报表模板数据保存至字符串。以文本格式保存保存模板数据。
SaveToURL | 将报表模板数据提交给指定的 URL 地址，由此 URL 网页服务完成报表模板的保存。
SaveToVariant | 保存报表模板数据保存至内存缓冲区。以文本格式保存保存模板数据。
SetSkin | 设置控件界面风格的参数。
SharePrintSetupDisableAllOptions | 指定禁用全部的共享打印设置参数。
SharePrintSetupEnableAllOptions | 指定应用全部的共享打印设置参数。
SharePrintSetupGetOptionEnabled | 获取是否应用某个共享全局打印参数项的使能状态。
SharePrintSetupSetOptionEnabled | 设定是否应用某个共享全局打印参数项的标志。
SystemVarValue | 在报表运行时，取得本报表某个指定系统参数的当前值。
UnitToPixels | 将报表当前使用的计量单位值转换为屏幕像素值。
UnprepareExport | 数据导出完成之后，进行一些内部释放任务。

事件

BeforePostRecord | 在向报表中填入记录数据的过程中，每当提交一条记录之前触发本事件。
BeforeSort | 当要对记录集中的记录进行重新排序之前触发本事件。
ControlCustomDraw | 报表部件框自绘事件。
ExportBegin | 在报表导出任务执行之前触发本事件。
ExportEnd | 在报表导出任务完成时触发本事件。
FetchRecord | 在报表生成时且以推模式向报表提供数据，报表主对象请求数据时触发。
FieldGetDisplayText | 当字段对象准备生成其显示文本时触发。
GeneratePagesBegin | 在产生打印页面数据之前触发本事件。
GeneratePagesEnd | 在产生打印页面数据完成后触发本事件。
GroupBegin | 在生成报表数据时，开始一个分组触发。
GroupEnd | 在生成报表数据时，结束一个分组触发。
Initialize | 在报表生成开始时触发。
PageEnd | 在完成一个打印页面生成时触发本事件。
PageProcessRecord | 当报表在生成打印数据时，会再次按顺序遍历每一条记录，每当遍历一条记录时触发本事件。
PageStart | 在开始生成一个打印页面时触发本事件。
PrintAborted | 当打印任务中途取消时触发本事件。
PrintBegin | 在开始打印报表之前，触发本事件。
PrintEnd | 在结束打印报表之后，触发本事件。
PrintPage | 在打印每一页报表页面时触发本事件。
ProcessBegin | 当报表准备对填入的数据进行分析处理之前触发本事件。
ProcessEnd | 当报表对填入的数据进行分析处理完成之后触发本事件。
ProcessRecord | 当报表生成时，会按顺序遍历每一条记录，每当遍历一条记录时触发本事件。
SectionFormat | 当报表节在输出之前触发。包括查询显示与打印生成显示。
ShowPreviewWnd | 在显示默认打印预览窗口时触发本事件。
TextBoxGetDisplayText | 当文字类型的部件框准备生成其显示文本时触发。

请参见

IGridppReport 接口 | IGRPrinter 接口 | GRScriptType 枚举 | GRStorageFormat 枚举 | GRUnit 枚举 | IGRDisplayViewer.Report 属性 | IGRPrintViewer.Report 属性 | IGRSubReport.Report 属性 | IGridppReport.MyInterface 属性 | IGridppReport.ParentReport 属性


IGRSection 概述

IGRSection 接口

报表节的基类，表示各种报表节相同的属性与方法。

有关此接口所有成员的列表，请参阅 IGRSection 成员。

IDispatch
IGRSection
派生接口

说明

整个报表的输出显示由多种类型的占据整个水平输出区域宽度的矩形区域组成，以上各种类型显示区域统称为报表节。Grid++Report节类型包括：页眉、页脚、报表头、报表尾、标题行，内容行、分组头、分组尾。

请参见

IGRSection 成员 | IGridppReport.SectionFormat 事件 | IGRDisplayViewer.SectionClick 事件 | IGRDisplayViewer.SectionDblClick 事件 | IGRDisplayViewer.GetSectionFromPos 方法 | IGRSections.Item 属性 | IGRSections.Add 方法 | IGRPageHeader 接口 | IGRPageFooter 接口 | IGRReportHeader 接口 | IGRReportFooter 接口 | IGRColumnSection 接口 | IGRGroupSection 接口


IGRSection成员

IGRSection 概述

公共属性

BackColor | 报表节的背景填充色。
BookmarkText | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow | 指示节高度在运行时是否可以伸展的标志。
CanShrink | 指示节高度在运行时是否可以收缩的标志。
Controls | 获取拥有的部件框集合对象的接口引用。
Font | 报表节的缺省字体。
FormatScript | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height | 报表节的高度。
Name | 报表节的名称标识。
Parent | 父对象的IUnknown接口引用。
SectionType | 指示报表节的具体类型。
Visible | 是否显示报表节的标志。

请参见

IGRSection 接口 | IGridppReport.SectionFormat 事件 | IGRDisplayViewer.SectionClick 事件 | IGRDisplayViewer.SectionDblClick 事件 | IGRDisplayViewer.GetSectionFromPos 方法 | IGRSections.Item 属性 | IGRSections.Add 方法


IGRPageHeader 概述

IGRPageHeader 接口

表示报表的页眉。页眉只在打印生成时显示，紧靠每页上边距的上面显示。

有关此接口所有成员的列表，请参阅 IGRPageHeader 成员。

IDispatch
IGRSection
IGRPageHeader

说明

页眉在打印生成时，输出在每页的上边距之上；在屏幕查询显示时，页眉被忽略掉，即屏幕查询显示不使用页眉。一个报表只能定义一个页眉。在页眉中一般定义页号，总页数，文档名称，打印时间及其它需要显示在输出纸张页眉区域的信息。

请参见

IGRPageHeader 成员 | IGRPageFooter 接口 | IGRReportFooter 接口 | IGRReportHeader 接口 | IGridppReport.InsertPageHeader 方法 | IGridppReport.PageHeader 属性


IGRPageHeader成员

IGRPageHeader 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
Name(从 IGRSection 继承) | 报表节的名称标识。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRPageHeader 接口 | IGRPageFooter 接口 | IGRReportFooter 接口 | IGRReportHeader 接口 | IGridppReport.InsertPageHeader 方法 | IGridppReport.PageHeader 属性


IGRPageFooter 概述

IGRPageFooter 接口

表示报表的页脚。页脚只在打印生成时显示，紧靠每页下边距的下面显示。

有关此接口所有成员的列表，请参阅 IGRPageFooter 成员。

IDispatch
IGRSection
IGRPageFooter

说明

页脚在打印生成时，输出在每页的上边距之上；在屏幕查询显示时，页脚被忽略掉，即屏幕查询显示不使用页脚。一个报表只能定义一个页脚。在页脚中一般定义页号，总页数，文档名称，打印时间及其它需要显示在输出纸张页脚区域的信息。

请参见

IGRPageFooter 成员 | IGRPageHeader 接口 | IGRReportFooter 接口 | IGRReportHeader 接口 | IGridppReport.InsertPageFooter 方法 | IGridppReport.PageFooter 属性


IGRPageFooter成员

IGRPageFooter 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
Name(从 IGRSection 继承) | 报表节的名称标识。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRPageFooter 接口 | IGRPageHeader 接口 | IGRReportFooter 接口 | IGRReportHeader 接口 | IGridppReport.InsertPageFooter 方法 | IGridppReport.PageFooter 属性


IGRReportHeader 概述

IGRReportHeader 接口

表示报表的报表头。报表头一般显示在报表的最前面。

有关此接口所有成员的列表，请参阅 IGRReportHeader 成员。

IDispatch
IGRSection
IGRReportHeader

说明

报表头在打印生成时，如果不选择每页重复输出，则只在报表的开始生成时输出一次；在屏幕查询显示时，显示在明细网格之上。一个报表可以定义多个报表头，在一般情况下我们只需定义一个报表头就可以了。在报表头中一般定义报表的标题，报表标识信息，徽标图像及其它只需在报表开始时显示一次的信息。

请参见

IGRReportHeader 成员 | IGRReportFooter 接口 | IGRPageFooter 接口 | IGRPageHeader 接口 | IGridppReport.InsertReportHeader 方法 | IGridppReport.ReportHeader 属性


IGRReportHeader成员

IGRReportHeader 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
KeepTogether | 是否保持本节输出显示在同一页标志。
Name(从 IGRSection 继承) | 报表节的名称标识。
NewPage | 指定新页的产生方式。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
RepeatOnPage | 是否在每页中重复输出显示标志。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRReportHeader 接口 | IGRReportFooter 接口 | IGRPageFooter 接口 | IGRPageHeader 接口 | IGridppReport.InsertReportHeader 方法 | IGridppReport.ReportHeader 属性


IGRReportFooter 概述

IGRReportFooter 接口

表示报表的报表尾。报表尾一般显示在报表的最后面。

有关此接口所有成员的列表，请参阅 IGRReportFooter 成员。

IDispatch
IGRSection
IGRReportFooter

说明

报表尾在打印生成时，如果不选择每页重复输出，则只在报表的最后输出一次；在屏幕查询显示时，显示在明细网格之下。一个报表可以定义多个报表尾，在一般情况下我们只需定义一个报表尾就可以了。在报表尾中一般定义报表的统计信息及其它只需在报表结束时显示一次的信息。

请参见

IGRReportFooter 成员 | IGRReportHeader 接口 | IGRPageFooter 接口 | IGRPageHeader 接口 | IGridppReport.InsertReportFooter 方法 | IGridppReport.ReportFooter 属性


IGRReportFooter成员

IGRReportFooter 概述

公共属性

AppendBlankRowExclude | 是否将报表尾行从明细网格的空白行计数中排除。
BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
KeepTogether | 是否保持本节输出显示在同一页标志。
Name(从 IGRSection 继承) | 报表节的名称标识。
NewPage | 指定新页的产生方式。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
PrintAtBottom | 是否将本节输出在页面底部标志。
RepeatOnPage | 打印输出时，是否在每页中重复显示的标志。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRReportFooter 接口 | IGRReportHeader 接口 | IGRPageFooter 接口 | IGRPageHeader 接口 | IGridppReport.InsertReportFooter 方法 | IGridppReport.ReportFooter 属性


IGRDetailGrid 概述

IGRDetailGrid 接口

表示明细网格对象。绝大多数报表都拥有明细网格，并且明细网格是多数报表的主体。

有关此接口所有成员的列表，请参阅 IGRDetailGrid 成员。

IDispatch
IGRDetailGrid

说明

明细网格就是处理报表明细数据生成的实现定义，一般的报表都需要一个明细网格，明细网格一般生成在报表头之后及报表尾之前，一般明细网格构成了一个报表的主体，报表的主要信息输出在明细网格中，明细网格由实现明细数据生成需要的多种子对象组成。

请参见

IGRDetailGrid 成员 | IGRCrossTab 接口 | GRColumnPrintAdaptMethod 枚举 | GRNewPageColumnStyle 枚举 | GRPageColumnDirection 枚举 | IGridppReport.DetailGrid 属性 | IGRColumn.Parent 属性 | IGRColumnSection.DetailGrid 属性 | IGRGroup.Parent 属性 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.RunningDetailGrid 属性


IGRDetailGrid成员

IGRDetailGrid 概述

公共属性

AppendBlankCol | 打印输出时，是否补充空白列把纸张右边的空白填满。
AppendBlankColWidth | 当补充空白列打印时，指定空白列的宽度，为0则与最后列同宽
AppendBlankRow | 打印输出时，是否在页的剩余区域补充显示空白内容行的标志。
AppendBlankRowAtLast | 打印输出时如果追加空白行,是否在分组尾之后输出空白行
BackColor | 指定明细网格的标题行、内容行、分组头与分组尾的默认背景色。
BorderColor | 边框线颜色。
BorderPrintType | 指定明细网格的边框的打印类别。
BorderStyles | 指定网格边框线的输出方式。
BorderWidth | 边框线宽度。
CenterView | 当明细网格的列总宽度小于显示区域宽度时，指定是否水平居中显示明细网格。
ColLineColor | 指定列分隔线的颜色。
ColLineWidth | 网格列线的宽度，以屏幕像素为计量单位。
ColumnContent | 明细网格拥有的内容行的接口引用。
Columns | 获取网格拥有的列集合对象的接口引用。
ColumnTitle | 获取明细网格拥有的标题行对象的接口引用。
CrossTab | 获取交叉表定义对象的接口引用。
FixCols | 查询显示时，指定锁定的列数，左边被锁定的列始终不进行水平滚动。
Font | 获取明细网格拥有的子对象的缺省字体对象的接口引用。
GridLinePrintType | 指定明细网格的行列线的打印输出方式。
Groups | 获取网格拥有的分组集合对象的接口引用。
GrowToBottom | 指示是否将明细网格的下边框延伸到页的底部。
IsCrossTab | 指定明细网格是否按交叉表方式去生成。
NewPage | 打印生成时，指定强制换新页的方式。
PageColumnCount | 在水平方向上均分打印输出区域的个数，也就是报表栏数。
PageColumnDirection | 在输出多栏报表时，数据行生成到输出位置的方向。
PageColumnSpacing | 指定多栏报表的栏间距，以报表的计量单位表示。
PrintAdaptFitText | 指定是否在打印输出时自动调整列的宽度，以便列中的显示文字都能完整的显示出来。
PrintAdaptMethod | 打印输出时，根据输出页面的情况，指定列的输出策略。
PrintAdaptRepeat | 当打印策略为‘另起新页’或‘另起新页并重复固定列’时，报表头与报表尾是否在新页中再次输出。
PrintAdaptRFCStep | 当横向分页打印时，锁定列重复打印的间隔页数
Recordset | 获取网格拥有的记录集对象的接口引用。
RowLineColor | 指定行分隔线的颜色。
RowLineWidth | 网格行线的宽度，以屏幕像素为计量单位。
ShowColLine | 指定是否显示网格列分隔线。
ShowRowLine | 指定是否显示网格行分隔线。

公共方法

AddColumn | 增加一个新列。
AddGroupTitle | 增加一个新组标题格。
ClearColumns | 删除所有的列。
ClearGroupTitles | 删除全部组标题格。
ColumnMoveTo | 移动指定列到新的显示位置。
ColumnMoveToEnd | 将列的显示顺序移动到最后。
FindGroupTitleCell | 根据名称找到组标题格对象的接口引用。
StartNewGroup | 在报表生成时，开始生成一个新的分组项。

请参见

IGRDetailGrid 接口 | IGRCrossTab 接口 | GRColumnPrintAdaptMethod 枚举 | GRNewPageColumnStyle 枚举 | GRPageColumnDirection 枚举 | IGridppReport.DetailGrid 属性 | IGRColumn.Parent 属性 | IGRColumnSection.DetailGrid 属性 | IGRGroup.Parent 属性 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.RunningDetailGrid 属性


IGRSections 概述

IGRSections 接口

公开报表主对象直接拥有节的集合对象。

有关此接口所有成员的列表，请参阅 IGRSections 成员。

IDispatch
IGRSections

说明

报表主对象直接拥有的节包括页眉，页脚，报表头，报表尾，所以在此集合对象中只能拥有以上四种类型的节。

请参见

IGRSections 成员 | IGRSection 接口


IGRSections成员

IGRSections 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有列的个数。
Item | 根据列的顺序号或名称得到列的接口引用。

公共方法

Add | 增加一个子对象并返回新增子对象的接口引用，如果子对象具有具体类型，则此方法有一个类型参数，通过此参数指定子对象的类型。
IndexByName | 根据子对象的名称取得其顺序号，如果不存在与名称匹配的子对象，则返回值为-1。子对象的名称不区分字母的大小写。
Remove | 根据子对象的顺序号或名称将子对象移除掉，在输入参数种指定要移除子对象的顺序号或名称。
RemoveAll | 清除全部子对象。

请参见

IGRSections 接口 | IGRSection 接口


IGRControls 概述

IGRControls 接口

公开部件框容器中的所有部件框的集合对象。

有关此接口所有成员的列表，请参阅 IGRControls 成员。

IDispatch
IGRControls

请参见

IGRControls 成员 | IGRControl 接口 | IGRColumnCell.Controls 属性 | IGRSection.Controls 属性 | IGridppReport.FloatControls 属性


IGRControls成员

IGRControls 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有部件框的个数。
Item | 根据部件框的顺序号或名称得到部件框的接口引用。

公共方法

Add | 根据部件框的类型参数增加一个部件框并返回新增部件框的接口引用。
IndexByName | 根据部件框的名称取得其顺序号，如果不存在与名称匹配的部件框，则返回-1。部件框的名称不区分字母的大小写。
Remove | 根据部件框的顺序号或名称将部件框移除，在输入参数种指定要移除部件框的顺序号或名称。
RemoveAll | 清除全部部件框。
SetItemOrder | 改变指定部件框的显示顺序。

请参见

IGRControls 接口 | IGRControl 接口 | IGRColumnCell.Controls 属性 | IGRSection.Controls 属性 | IGridppReport.FloatControls 属性


IGRControl 概述

IGRControl 接口

部件框的基接口，定义各种类型的部件框所具有的共同属性与方法。

有关此接口所有成员的列表，请参阅 IGRControl 成员。

IDispatch
IGRControl
派生接口

说明

部件框是对报表中最基本可显示单元的统称，部件框在其父容器中占据一个矩形区域，部件框的内容输出在此矩形区域中，部件框包括背景填充方式与背景色、边框输出模式、以及具体类型的部件框的输出前景色。

请参见

IGRControl 成员 | GRAlignColumnStyle 枚举 | GRAnchorStyles 枚举 | GRBackStyle 枚举 | GRBorderStyles 枚举 | GRCenterStyle 枚举 | GRDockStyle 枚举 | IGridppReport.ControlCustomDraw 事件 | IGRControls.Item 属性 | IGRControls.Add 方法 | IGridppReport.ControlByName 方法 | IGRDisplayViewer.ControlClick 事件 | IGRDisplayViewer.ControlDblClick 事件 | IGRDisplayViewer.GetControlFromPos 方法 | IGRDisplayViewer.UpdateControl 方法 | IGridppReport.FindFirstControl 方法 | IGridppReport.FindNextControl 方法 | IGRTextBox 接口 | IGRShapeBox 接口 | IGRPictureBox 接口 | IGRRichTextBox 接口 | IGRSubReport 接口 | IGRLine 接口 | IGRChart 接口 | IGRBarCode 接口


IGRControl成员

IGRControl 概述

公共属性

AlignColumn | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide | 部件框对齐到明细网格列的方式。
Anchor | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode | 将本部件框转换为条形码部件框的接口引用。
AsChart | 将本部件框转换为图表部件框的接口引用。
AsFieldBox | 将本部件框转换为字段框的接口引用。
AsLine | 将本部件框转换为线段的接口引用。
AsMemoBox | 转换本部件框为综合文本框的接口引用。
AsPictureBox | 将本部件框转换为图像框的接口引用。
AsRichTextBox | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox | 将本部件框转换为图形框的接口引用。
AsStaticBox | 将本部件框转换为静态框的接口引用。
AsSubReport | 转换本部件框为子报表的接口引用。
AsSummaryBox | 将本部件框转换为统计框的接口引用。
AsSystemVarBox | 将本部件框转换为系统变量框的接口引用。
AsTextBox | 转换本部件框为文字框基类的接口引用。
BackColor | 部件框的背景色。
BackStyle | 部件框显示时背景的填充方式。
BorderColor | 边框线的显示颜色。
BorderStyles | 边框线的显示方式。
BorderWidth | 边框线的宽度。
Center | 指定水平与垂直方向的居中对齐方式。
ControlType | 获取本部件框的具体类型。
Cursor | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw | 指定部件框是否为自绘部件框。
CustomDrawScript | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
Dock | 指定部件框停靠到父容器的哪一个边缘。
Font | 输出文字时使用的字体。
ForeColor | 部件框输出内容的前景色。
Height | 部件框的显示高度。
Left | 部件框的左端显示位置。
Name | 部件框的名称标识。
Parent | 父容器对象的 IUnknown 接口引用。
PrintType | 部件框的打印输出方式。
Tag | 部件框的标识值。
Top | 部件框的顶端显示位置。
Visible | 是否显示部件框的标志。
Width | 部件框的显示宽度。

公共方法

BringToFront | 将部件框带到 Z 顺序的前面。
DrawDefault | 按部件框本身行为输出显示内容。
LoadCursor | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack | 将部件框发送到 Z 顺序的后面。
SetBounds | 设置部件框在其父容器中的边界位置。

请参见

IGRControl 接口 | GRAlignColumnStyle 枚举 | GRAnchorStyles 枚举 | GRBackStyle 枚举 | GRBorderStyles 枚举 | GRCenterStyle 枚举 | GRDockStyle 枚举 | IGridppReport.ControlCustomDraw 事件 | IGRControls.Item 属性 | IGRControls.Add 方法 | IGridppReport.ControlByName 方法 | IGRDisplayViewer.ControlClick 事件 | IGRDisplayViewer.ControlDblClick 事件 | IGRDisplayViewer.GetControlFromPos 方法 | IGRDisplayViewer.UpdateControl 方法 | IGridppReport.FindFirstControl 方法 | IGridppReport.FindNextControl 方法


IGRTextBox 概述

IGRTextBox 接口

各种文字部件框的基类，表示各种文字部件框的相同属性与方法。

有关此接口所有成员的列表，请参阅 IGRTextBox 成员。

IDispatch
IGRControl
IGRTextBox
派生接口

说明

各种显示文本的部件框的统称，包括：静态框、字段框、统计框、系统变量框。

请参见

IGRTextBox 成员 | GRTextAlign 枚举 | IGRControl.AsTextBox 属性 | IGridppReport.TextBoxGetDisplayText 事件 | IGRStaticBox 接口 | IGRFieldBox 接口 | IGRSummaryBox 接口 | IGRSystemVarBox 接口 | IGRMemoBox 接口


IGRTextBox成员

IGRTextBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DisplayText | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
GetDisplayTextScript | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShowMoneyLabel | 指定是否在此文字框中显示金额标签。
ShowMoneyLine | 指定是否显示成金额线格式。
ShrinkFontToFit | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
Tag(从 IGRControl 继承) | 部件框的标识值。
TextAlign | 文字的输出对齐方式。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRTextBox 接口 | GRTextAlign 枚举 | IGRControl.AsTextBox 属性 | IGridppReport.TextBoxGetDisplayText 事件


IGRStaticBox 概述

IGRStaticBox 接口

文字部件框。可以与参数对象关联，显示参数对象的值。

有关此接口所有成员的列表，请参阅 IGRStaticBox 成员。

IDispatch
IGRControl
IGRTextBox
IGRStaticBox

说明

用来显示静态文本的部件框，一般在设计时设定要显示的文本，在输出显示时根据输出格式信息将显示文本画出来。静态框可以关联某个参数对象，在这种情况下，在输出显示时部件框的显示文本为参数对象的显示文本，当一个部件框在输出时要显示多次，而其关联的参数对象的值是变化的，则此静态框在不同位置输出时的显示文字是变化的。

请参见

IGRStaticBox 成员 | IGRParameter 接口 | IGRControl.AsStaticBox 属性


IGRStaticBox成员

IGRStaticBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DisplayText(从 IGRTextBox 继承) | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis(从 IGRTextBox 继承) | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
GetDisplayTextScript(从 IGRTextBox 继承) | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parameter | 指定关联参数对象的名称。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShowMoneyLabel(从 IGRTextBox 继承) | 指定是否在此文字框中显示金额标签。
ShowMoneyLine(从 IGRTextBox 继承) | 指定是否显示成金额线格式。
ShrinkFontToFit(从 IGRTextBox 继承) | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
Tag(从 IGRControl 继承) | 部件框的标识值。
Text | 显示文本。
TextAlign(从 IGRTextBox 继承) | 文字的输出对齐方式。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap(从 IGRTextBox 继承) | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRStaticBox 接口 | IGRParameter 接口 | IGRControl.AsStaticBox 属性


IGRFieldBox 概述

IGRFieldBox 接口

表示字段部件框。关联一个记录集的字段，显示字段的值。

有关此接口所有成员的列表，请参阅 IGRFieldBox 成员。

IDispatch
IGRControl
IGRTextBox
IGRFieldBox

说明

用来显示字段内容的部件框，在设计时关联一个字段对象，在输出显示时根据输出格式信息将字段对象在当前记录的显示文本画出来。字段框一般使用在明细网格的自由内容格、分组头、分组尾中。

请参见

IGRFieldBox 成员 | IGRField 接口 | IGRControl.AsFieldBox 属性


IGRFieldBox成员

IGRFieldBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DataField | 获取或设置关联字段对象的名称。
DisplayText(从 IGRTextBox 继承) | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis(从 IGRTextBox 继承) | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
GetDisplayTextScript(从 IGRTextBox 继承) | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShowMoneyLabel(从 IGRTextBox 继承) | 指定是否在此文字框中显示金额标签。
ShowMoneyLine(从 IGRTextBox 继承) | 指定是否显示成金额线格式。
ShrinkFontToFit(从 IGRTextBox 继承) | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
Tag(从 IGRControl 继承) | 部件框的标识值。
TextAlign(从 IGRTextBox 继承) | 文字的输出对齐方式。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap(从 IGRTextBox 继承) | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRFieldBox 接口 | IGRField 接口 | IGRControl.AsFieldBox 属性


IGRSummaryBox 概述

IGRSummaryBox 接口

表示统计框。

有关此接口所有成员的列表，请参阅 IGRSummaryBox 成员。

IDispatch
IGRControl
IGRTextBox
IGRSummaryBox

说明

用来显示统计数据的部件框，在设计时设定某种统计函数，除计数（Count）函数外，其余统计函数都需要关联一个字段对象。在统计框中可以定义统计值的输出格式。统计框一般使用在分组头、分组尾中。有时为了统计全部记录的统计数据，可以将部件框使用在报表尾，报表头中。

请参见

IGRSummaryBox 成员 | IGRField 接口 | GRSummaryFun 枚举 | IGRControl.AsSummaryBox 属性


IGRSummaryBox成员

IGRSummaryBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DataField | 关联的数据字段对象名称。
DisplayText(从 IGRTextBox 继承) | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis(从 IGRTextBox 继承) | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Format | 统计值生成显示文字所应用的格式串。
GetDisplayTextScript(从 IGRTextBox 继承) | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
RankNo | 指定取统计数据中的第几名数据。
ShowMoneyLabel(从 IGRTextBox 继承) | 指定是否在此文字框中显示金额标签。
ShowMoneyLine(从 IGRTextBox 继承) | 指定是否显示成金额线格式。
ShrinkFontToFit(从 IGRTextBox 继承) | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
SummaryFun | 指定应用的统计函数。
Tag(从 IGRControl 继承) | 部件框的标识值。
TextAlign(从 IGRTextBox 继承) | 文字的输出对齐方式。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Value | 再生成过程中，统计部件框的当前统计值。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap(从 IGRTextBox 继承) | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRSummaryBox 接口 | IGRField 接口 | GRSummaryFun 枚举 | IGRControl.AsSummaryBox 属性


IGRSystemVarBox 概述

IGRSystemVarBox 接口

表示系统变量框。

有关此接口所有成员的列表，请参阅 IGRSystemVarBox 成员。

IDispatch
IGRControl
IGRTextBox
IGRSystemVarBox

说明

用来显示系统变量值的部件框，在设计时设定某种系统变量，在系统变量框中可以定义值的输出格式。系统变量框可以使用在任何部件框容器中，例如页号、页总数一般使用在页眉与页脚中。

grsvPageCount(页数)，grsvPageNumber(页号)，grsvGroup1/2/3PageNumber(分组页数)，grsvGroup1/2/3PageCount(分组页号)等系统变量只在产生打印页面数据时有效，在查询显示报表时，应避免对这些系统变量的使用。

关于分组页号与页数的更进一步说明：
1、为了产生分组页号与页数信息，必须设置对应分组头与分组尾的“可见性”属性为“是”，且其“高度”属性值大于0。
2、如果实际不需要显示分组头与分组尾，可以在其“格式化脚本”上写脚本代码“Sender.Visible = false;”，这样可以在运行时将分组头与分组尾隐藏不显示。
3、分组页号页数在查询显示报表时不会得到正确的值，所以不应在查询显示报表时显示分组页号页数。

请参见

IGRSystemVarBox 成员 | GRSystemVarType 枚举 | IGRControl.AsSystemVarBox 属性


IGRSystemVarBox成员

IGRSystemVarBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DisplayText(从 IGRTextBox 继承) | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis(从 IGRTextBox 继承) | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Format | 系统变量值生成显示文字所应用的格式串。
GetDisplayTextScript(从 IGRTextBox 继承) | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShowMoneyLabel(从 IGRTextBox 继承) | 指定是否在此文字框中显示金额标签。
ShowMoneyLine(从 IGRTextBox 继承) | 指定是否显示成金额线格式。
ShrinkFontToFit(从 IGRTextBox 继承) | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
SystemVar | 指定应用的系统变量类型。
Tag(从 IGRControl 继承) | 部件框的标识值。
TextAlign(从 IGRTextBox 继承) | 文字的输出对齐方式。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap(从 IGRTextBox 继承) | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRSystemVarBox 接口 | GRSystemVarType 枚举 | IGRControl.AsSystemVarBox 属性


IGRShapeBox 概述

IGRShapeBox 接口

表示图形框。

有关此接口所有成员的列表，请参阅 IGRShapeBox 成员。

IDispatch
IGRControl
IGRShapeBox

说明

用来显示各种图形的部件框，在设计时设定某种图形类别，并设定该种图形的一些参数信息。图形框一般用来对报表进行一些修饰。

请参见

IGRShapeBox 成员 | GRShapeType 枚举 | IGRControl.AsShapeBox 属性


IGRShapeBox成员

IGRShapeBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
CornerDx | 圆角矩形框的圆角椭圆宽度。
CornerDy | 圆角矩形框的圆角椭圆高度。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
FillColor | 封闭图形对象的内部填充色。
FillStyle | 封闭图形对象的内部填充方式。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PenColor | 画图形线条的颜色。
PenStyle | 指定画线条的画笔类型。
PenWidth | 指定画线条的画笔的宽度。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShapeType | 指定图形的类型。
Tag(从 IGRControl 继承) | 部件框的标识值。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRShapeBox 接口 | GRShapeType 枚举 | IGRControl.AsShapeBox 属性


IGRRecordset 概述

IGRRecordset 接口

表示明细网格的记录集。拥有一组字段，在报表运行时可以读取与添加记录数据。

有关此接口所有成员的列表，请参阅 IGRRecordset 成员。

IDispatch
IGRRecordset

请参见

IGRRecordset 成员 | IGRField 接口 | IGRCrossTab 接口 | IGridppReport.PrepareRecordset 方法 | IGRDetailGrid.Recordset 属性 | IGRGroup._DataSet 属性 | IGRCrossTab.Recordset 属性


IGRRecordset成员

IGRRecordset 概述

公共属性

BeforePostRecordScript | 表示报表 BeforePostRecord 事件对应的脚本语言代码。
ConnectionString | 与数据源连接的参数文字串
Editable | 指定记录集在报表运行时是否为可编辑。
FetchRecordScript | 表示报表 FetchRecord 事件对应的脚本语言代码。
Fields | 拥有的字段集合对象的接口引用。
FullRelate | TBD
PageProcessRecordScript | 表示报表 PageProcessRecord 事件对应的脚本语言代码。
ProcessRecordScript | 表示报表 ProcessRecord 事件对应的脚本语言代码。
QuerySQL | 从数据源中取数的SQL语句。
RecordCount | 指示记录集中的记录条数。
RecordNo | 指示当前记录的记录号，记录号从0开始。
RelationFields | TBD
SkipQuery | 指示在生成报表时，是否忽略从数据源取数的属性设置。
SortAsc | 指定是否按升序排列记录。
SortCaseSensitive | 当排序字段为字符型时，指定排序比较是否为大小写字符敏感。
SortFields | 指定在报表生成时对记录进行排序的依据字段。

公共方法

AddField | 增加一个字段。
Append | 添加一条形记录。
Bof | 判断记录集的游标是否位于第一条记录之前。
Cancel | 取消当前记录的可编辑状态，并还原记录的原来数据。
Edit | 使当前记录进入可编辑状态，从而可以改变字段的值。
Empty | 请空记录集中的全部记录。
Eof | 判断记录集的游标是否位于最后一条记录之后。
First | 使第一条记录成为当前记录。
Last | 使最后一条记录成为当前记录。
MoveBy | 将游标向前或向后移动指定个数的记录。
MoveTo | 将记录集的当前记录设为指定记录号的记录。
Next | 使当前记录的下一条记录成为当前记录。
Post | 提交新增记录。
Prior | 使当前记录的上一条记录成为当前记录。
RemoveAllFields | 删除所有的字段定义。
Resort | 对记录集中的记录进行重新排序。
SaveDataToXML | 将记录集中的数据保存为XML文本。

请参见

IGRRecordset 接口 | IGRField 接口 | IGRCrossTab 接口 | IGridppReport.PrepareRecordset 方法 | IGRDetailGrid.Recordset 属性 | IGRGroup._DataSet 属性 | IGRCrossTab.Recordset 属性


IGRFields 概述

IGRFields 接口

公开记录集的所有字段的集合对象。

有关此接口所有成员的列表，请参阅 IGRFields 成员。

IDispatch
IGRFields

请参见

IGRFields 成员 | IGRField 接口 | IGRRecordset.Fields 属性


IGRFields成员

IGRFields 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有字段的个数。
Item | 根据字段的顺序号或名称得到字段的接口引用。

公共方法

Add | 根据字段类型参数增加一个字段并返回新增字段的接口引用。
IndexByName | 根据字段的名称取得其顺序号，如果不存在与名称匹配的字段，则返回-1。字段的名称不区分字母的大小写。
Remove | 根据字段的顺序号或名称将字段移除，在输入参数种指定要移除字段的顺序号或名称。
RemoveAll | 清除全部字段。

请参见

IGRFields 接口 | IGRField 接口 | IGRRecordset.Fields 属性


IGRField 概述

IGRField 接口

定义各种类型的数据字段的类。

有关此接口所有成员的列表，请参阅 IGRField 成员。

IDispatch
IGRField

说明

定义记录的每个数据项，字段存储的数据类型由子段的类型确定。在运行时，记录的读写就是通过各个字段值的读写实现。在编辑记录时，不允许对不定长字符字段与二进制字段进行改变。

请参见

IGRField 成员 | IGRRecordset 接口 | IGridppReport.FieldByName 方法 | IGridppReport.BeforePostRecord 事件 | IGRFields.Item 属性 | IGRFields.Add 方法 | IGRRecordset.AddField 方法 | IGridppReport.FieldGetDisplayText 事件 | IGridppReport.FieldByDBName 方法


IGRField成员

IGRField 概述

公共属性

AsBoolean | 获取或设置字段的用布尔类型表示的值。
AsCurrency | 获取或设置字段的用货币类型表示的值。
AsDateTime | 获取或设置字段的用日期时间类型表示的值。
AsFloat | 获取或设置字段的用浮点数类型表示的值。
AsInteger | 获取或设置字段的用整数类型表示的值。
AsString | 获取或设置字段的用字符串类型表示的值。
DataBuffer | 获取存储二进制字段值的数据缓冲区内存地址指针。
DataSize | 获取存储二进制字段值的数据缓冲区的大小，以字节为计量单位。
DBFieldName | 指定字段对应的数据源字段名称。
DisplayText | 获取或设置部件框的输出显示文本。
FieldType | 获取或设置字段的数据类型。
Format | 获取或设置将字段值转换为显示文本时所应用的格式文字串。
GetDisplayTextScript | 表示报表 FieldGetDisplayText 事件对应的脚本语言代码。
IsNull | 获取字段值是否为空的标志。
Length | 获取或设置字符类型字段的字符长度，为 0 表示不定长类型字符类型字段。
Name | 获取或设置字段的名称标识。
RTrimBlankChars | 指定是否自动截除字符型字段右边的空格字符。
RunningDBField | 获取在报表运行时与数据源字段进行匹配的字段名称。
Value | 获取或设置字段在运行时的值。

公共方法

Clear | 将字段的值设为空。
LoadFromFile | 运行时从文件中载入二进制字段的值。
LoadFromMemory | 运行时从内存数据缓冲区中载入二进制字段的值。

请参见

IGRField 接口 | IGRRecordset 接口 | IGridppReport.FieldByName 方法 | IGridppReport.BeforePostRecord 事件 | IGRFields.Item 属性 | IGRFields.Add 方法 | IGRRecordset.AddField 方法 | IGridppReport.FieldGetDisplayText 事件 | IGridppReport.FieldByDBName 方法


IGRColumnSection 概述

IGRColumnSection 接口

明细网格的标题行与内容行的基接口。表示标题行与内容行的共同属性与方法。

有关此接口所有成员的列表，请参阅 IGRColumnSection 成员。

IDispatch
IGRSection
IGRColumnSection
派生接口

请参见

IGRColumnSection 成员 | IGRColumnContent 接口 | IGRColumnTitle 接口


IGRColumnSection成员

IGRColumnSection 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
DetailGrid | 获取拥有本节的明细网格的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
KeepTogether | 指定是否保持整个行打印生成在同一页。
Name(从 IGRSection 继承) | 报表节的名称标识。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

公共方法

SetCellsBackColor | 改变节中全部格的背景色。
SetCellsForeColor | 改变节中全部格的前景色。

请参见

IGRColumnSection 接口


IGRColumnContent 概述

IGRColumnContent 接口

表示明细网格的内容行。

有关此接口所有成员的列表，请参阅 IGRColumnContent 成员。

IDispatch
IGRSection
IGRColumnSection
IGRColumnContent

说明

内容行显示在明细网格标题之后，按照明细网格的记录的顺序每个记录生成一次内容行，如果定义有分组，在每个分组开始与结束时，要插入分组头与分组尾。内容行拥有所有内容格，内容行显示区域被一个个内容格所划分。

请参见

IGRColumnContent 成员 | IGRColumnContentCell.Parent 属性 | IGRDetailGrid.ColumnContent 属性


IGRColumnContent成员

IGRColumnContent 概述

公共属性

AdjustRowHeight | 指定在每页输出固定行数时，是否自动调整行的高度。
AlternatingBackColor | 指定间隔输出内容行的交替背景色。
BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
ContentCells | 获取拥有的内容格集合对象的接口引用。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Cursor | 指定在查询显示报表时，在本内容行上显示的鼠标光标。
DetailGrid(从 IGRColumnSection 继承) | 获取拥有本节的明细网格的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
GrowToNextRow | 指定当列中的文字内容不能完全显示出来时，是否在下一行中继续显示。
Height(从 IGRSection 继承) | 报表节的高度。
KeepTogether(从 IGRColumnSection 继承) | 指定是否保持整个行打印生成在同一页。
Name(从 IGRSection 继承) | 报表节的名称标识。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
RowsPerPage | 打印生成时，指定在一页中显示的行数。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

公共方法

LoadCursor | 从光标文件中载入要在内容行上显示的鼠标光标。
SetCellsBackColor(从 IGRColumnSection 继承) | 改变节中全部格的背景色。
SetCellsForeColor(从 IGRColumnSection 继承) | 改变节中全部格的前景色。

请参见

IGRColumnContent 接口 | IGRColumnContentCell.Parent 属性 | IGRDetailGrid.ColumnContent 属性


IGRColumnTitle 概述

IGRColumnTitle 接口

表示明细网格的标题行的接口。其拥有一组标题格，标题格在显示排列上具有层次关系，可以定义多层表头。

有关此接口所有成员的列表，请参阅 IGRColumnTitle 成员。

IDispatch
IGRSection
IGRColumnSection
IGRColumnTitle

说明

标题行一般显示在明细网格的最上端，通常只在明细网格开始时输出一次。标题行拥有所有标题格，标题行显示区域被一个个标题格所划分。

请参见

IGRColumnTitle 成员 | GRRepeatStyle 枚举 | IGRColumnTitleCell.Parent 属性 | IGRDetailGrid.ColumnTitle 属性


IGRColumnTitle成员

IGRColumnTitle 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
DetailGrid(从 IGRColumnSection 继承) | 获取拥有本节的明细网格的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Height(从 IGRSection 继承) | 报表节的高度。
KeepTogether(从 IGRColumnSection 继承) | 指定是否保持整个行打印生成在同一页。
Name(从 IGRSection 继承) | 报表节的名称标识。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
RepeatStyle | 在打印生成时，指定明细网格标题的重复输出方式。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
TitleCells | 获取拥有的标题格集合对象的接口引用。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

公共方法

SetCellsBackColor(从 IGRColumnSection 继承) | 改变节中全部格的背景色。
SetCellsForeColor(从 IGRColumnSection 继承) | 改变节中全部格的前景色。

请参见

IGRColumnTitle 接口 | GRRepeatStyle 枚举 | IGRColumnTitleCell.Parent 属性 | IGRDetailGrid.ColumnTitle 属性


IGRColumnCell 概述

IGRColumnCell 接口

明细网格中单元格接口的基接口。

有关此接口所有成员的列表，请参阅 IGRColumnCell 成员。

IDispatch
IGRColumnCell
派生接口

说明

明细网格的标题行与内容行的显示区域划分为一个个的单元格，单元格可以直接显示文字，也可以作为部件框容器使用，作为部件框容器的单元格称为自由格。标题行中的单元格称为标题格，内容行中的单元格称为内容格。

请参见

IGRColumnCell 成员 | IGRColumnContentCell 接口 | IGRColumnTitleCell 接口


IGRColumnCell成员

IGRColumnCell 概述

公共属性

BackColor | 指定单元格的背景色。
Column | 本单元格对应的列的接口引用。
Controls | 本单元格所拥有的部件框集合对象的接口引用。
EndEllipsis | 指定是否用省略号表示超出单元格范围的文字。
Font | 指定输出文字时应用的字体对象的接口引用。
ForeColor | 指定单元格的输出文本的文字颜色。
FreeCell | 指定本单元格是否为自由格。
Name | 指定单元格的名称标识。
PrintType | 指定单元格的打印生成类别。
ShowMoneyLabel | 指定是否在此单元格中显示金额标签。
ShowMoneyLine | 指定是否在此单元格中将值显示成金额线格式。
ShrinkFontToFit | 在格的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
TextAlign | 指定显示文本的文字对齐方式。
WordWrap | 指定文字是否折行输出的标志。

请参见

IGRColumnCell 接口


IGRColumnContentCell 概述

IGRColumnContentCell 接口

表示明细网格的内容行中每个列对应的内容格，内容行拥有一组内容格。

有关此接口所有成员的列表，请参阅 IGRColumnContentCell 成员。

IDispatch
IGRColumnCell
IGRColumnContentCell

说明

每当增加一个明细网格的列之后，都会在内容行添加一个对应的显示单元格，此种显示单元格称为内容格。一般每个内容格关联一个字段，用来显示字段的内容。如果把内容格设为自由格，则内容格成为部件框容器，可以向内容格添加部件框。

请参见

IGRColumnContentCell 成员 | IGRColumn.ContentCell 属性 | IGRColumnContentCells.Item 属性 | IGRDisplayViewer.ContentCellClick 事件 | IGRDisplayViewer.ContentCellDblClick 事件 | IGRDisplayViewer.GetContentCellFromPos 方法


IGRColumnContentCell成员

IGRColumnContentCell 概述

公共属性

BackColor(从 IGRColumnCell 继承) | 指定单元格的背景色。
CanGrow | 指定内容格在运行时是否可以伸展高度。
CanShrink | 指定内容格在运行时是否可以收缩高度。
Column(从 IGRColumnCell 继承) | 本单元格对应的列的接口引用。
Controls(从 IGRColumnCell 继承) | 本单元格所拥有的部件框集合对象的接口引用。
Cursor | 指定在查询显示报表时，在本内容格上显示的鼠标光标。
DataField | 指定本内容格关联的记录集字段的名称，在运行时将显示关联字段的显示文字。
EndEllipsis(从 IGRColumnCell 继承) | 指定是否用省略号表示超出单元格范围的文字。
Font(从 IGRColumnCell 继承) | 指定输出文字时应用的字体对象的接口引用。
ForeColor(从 IGRColumnCell 继承) | 指定单元格的输出文本的文字颜色。
FreeCell(从 IGRColumnCell 继承) | 指定本单元格是否为自由格。
Name(从 IGRColumnCell 继承) | 指定单元格的名称标识。
Parent | 获取拥有本内容格的内容行的接口引用。
PrintType(从 IGRColumnCell 继承) | 指定单元格的打印生成类别。
ShowMoneyLabel(从 IGRColumnCell 继承) | 指定是否在此单元格中显示金额标签。
ShowMoneyLine(从 IGRColumnCell 继承) | 指定是否在此单元格中将值显示成金额线格式。
ShrinkFontToFit(从 IGRColumnCell 继承) | 在格的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
TextAlign(从 IGRColumnCell 继承) | 指定显示文本的文字对齐方式。
WordWrap(从 IGRColumnCell 继承) | 指定文字是否折行输出的标志。

公共方法

LoadCursor 从光标文件中载入要在本内容格上显示的鼠标光标。

请参见

IGRColumnContentCell 接口 | IGRColumn.ContentCell 属性 | IGRColumnContentCells.Item 属性 | IGRDisplayViewer.ContentCellClick 事件 | IGRDisplayViewer.ContentCellDblClick 事件 | IGRDisplayViewer.GetContentCellFromPos 方法


IGRColumnTitleCell 概述

IGRColumnTitleCell 接口

表示明细网格的标题行中的标题格。每个列对应一个标题格，一个拥有下级标题格的标题格称为组标题格，组标题格不与某个具体的列唯一对应。

有关此接口所有成员的列表，请参阅 IGRColumnTitleCell 成员。

IDispatch
IGRColumnCell
IGRColumnTitleCell

说明

每当增加一个明细网格的列之后，都会在标题行添加一个对应的显示单元格。当我们需要定义多层标题时，具有下级标题的标题也要在标题行添加一个对应的显示单元格，这两种类型的单元格称为标题格。一般在明细网格的标题格中定义列的标题文字。如果把标题格设为自由格，则标题格成为部件框容器，可以向标题格添加部件框。

请参见

IGRColumnTitleCell 成员 | IGRColumn.TitleCell 属性 | IGRColumnTitleCells.Item 属性 | IGRColumnTitleCells.AddGroup 方法 | IGRColumnTitleCell.AddSubGroupTitle 方法 | IGRDetailGrid.AddGroupTitle 方法 | IGRDetailGrid.FindGroupTitleCell 方法 | IGRDisplayViewer.TitleCellClick 事件 | IGRDisplayViewer.TitleCellDblClick 事件 | IGRDisplayViewer.GetTitleCellFromPos 方法 | IGRColumnTitleCell.SupCell 属性


IGRColumnTitleCell成员

IGRColumnTitleCell 概述

公共属性

BackColor(从 IGRColumnCell 继承) | 指定单元格的背景色。
Column(从 IGRColumnCell 继承) | 本单元格对应的列的接口引用。
Controls(从 IGRColumnCell 继承) | 本单元格所拥有的部件框集合对象的接口引用。
EndEllipsis(从 IGRColumnCell 继承) | 指定是否用省略号表示超出单元格范围的文字。
Font(从 IGRColumnCell 继承) | 指定输出文字时应用的字体对象的接口引用。
ForeColor(从 IGRColumnCell 继承) | 指定单元格的输出文本的文字颜色。
FreeCell(从 IGRColumnCell 继承) | 指定本单元格是否为自由格。
GroupTitle | 指定本标题格是否为组标题格。
Height | 指定组标题格的高度。
Name(从 IGRColumnCell 继承) | 指定单元格的名称标识。
Parent | 获取拥有本标题格的标题行对象的接口引用。
PrintType(从 IGRColumnCell 继承) | 指定单元格的打印生成类别。
ShowMoneyLabel(从 IGRColumnCell 继承) | 指定是否在此单元格中显示金额标签。
ShowMoneyLine(从 IGRColumnCell 继承) | 指定是否在此单元格中将值显示成金额线格式。
ShrinkFontToFit(从 IGRColumnCell 继承) | 在格的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
SubTitles | 获取本标题格拥有的直接下级标题格集合对象的接口引用。
SupCell | 获取本标题格的上级组标题格。
Text | 指定标题格的显示文本。
TextAlign(从 IGRColumnCell 继承) | 指定显示文本的文字对齐方式。
Visible | 指定是否显示本标题格。
WordWrap(从 IGRColumnCell 继承) | 指定文字是否折行输出的标志。

公共方法

AddSubGroupTitle | 在此组标题格中增加一个下级组标题格。
EncloseColumn | 将一个列对应的标题格包含到此组标题格中，新包含进来的列标题格在显示顺序上处于本组的最后。

请参见

IGRColumnTitleCell 接口 | IGRColumn.TitleCell 属性 | IGRColumnTitleCells.Item 属性 | IGRColumnTitleCells.AddGroup 方法 | IGRColumnTitleCell.AddSubGroupTitle 方法 | IGRDetailGrid.AddGroupTitle 方法 | IGRDetailGrid.FindGroupTitleCell 方法 | IGRDisplayViewer.TitleCellClick 事件 | IGRDisplayViewer.TitleCellDblClick 事件 | IGRDisplayViewer.GetTitleCellFromPos 方法 | IGRColumnTitleCell.SupCell 属性


IGRColumnContentCells 概述

IGRColumnContentCells 接口

公开内容行的所有内容格的集合对象。

有关此接口所有成员的列表，请参阅 IGRColumnContentCells 成员。

IDispatch
IGRColumnContentCells

说明

内容格伴随列的创建而创建，伴随列的移除而移除，所以在此集合对象中不提供增加与移除集合元素的方法。

请参见

IGRColumnContentCells 成员 | IGRColumnContentCell 接口 | IGRColumnContent.ContentCells 属性


IGRColumnContentCells成员

IGRColumnContentCells 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有内容格的个数。
Item | 根据内容格的顺序号或名称得到内容格的接口引用。

公共方法

IndexByName 根据内容格的名称取得其顺序号，如果不存在与名称匹配的内容格，则返回值为-1。内容格的名称不区分字母的大小写。

请参见

IGRColumnContentCells 接口 | IGRColumnContentCell 接口 | IGRColumnContent.ContentCells 属性


IGRColumnTitleCells 概述

IGRColumnTitleCells 接口

标题行的拥有的标题格集合对象的接口。

有关此接口所有成员的列表，请参阅 IGRColumnTitleCells 成员。

IDispatch
IGRColumnTitleCells

说明

与列对应的标题格伴随列的创建而创建，伴随列的移除而移除，但组标题格不存在唯一对应的列，其创建与移除独立于列，所以在此集合对象中不提供增加与移除集合元素的通常方法，但提供AddGroup与RemoveGroup方法专门用来增加与移除组标题格。

请参见

IGRColumnTitleCells 成员 | IGRColumnTitleCell 接口 | IGRColumnTitleCell.SubTitles 属性 | IGRColumnTitle.TitleCells 属性


IGRColumnTitleCells成员

IGRColumnTitleCells 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有标题格的个数。
Item | 根据标题格的顺序号或名称得到标题格的接口引用。

公共方法

AddGroup | 增加一个组标题格。
IndexByName | 根据标题格的名称取得其顺序号，如果不存在与名称匹配的标题格，则返回-1。标题格的名称不区分字母大小写。
RemoveGroup | 根据组标题格的顺序号或名称移除一个组标题格。

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCell 接口 | IGRColumnTitleCell.SubTitles 属性 | IGRColumnTitle.TitleCells 属性


IGRColumns 概述

IGRColumns 接口

公开明细网格的所有列的集合对象。

有关此接口所有成员的列表，请参阅 IGRColumns 成员。

IDispatch
IGRColumns

请参见

IGRColumns 成员 | IGRColumn 接口 | IGRDetailGrid.Columns 属性


IGRColumns成员

IGRColumns 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有列的个数。
Item | 根据列的顺序号或名称得到列的接口引用。

公共方法

Add | 增加一个列并返回新增列的接口引用。
IndexByName | 根据列的名称取得其顺序号，如果不存在与名称匹配的列，则返回值为-1。列的名称不区分字母的大小写。
Remove | 根据列的顺序号或名称将列移除。
RemoveAll | 清除全部列。

请参见

IGRColumns 接口 | IGRColumn 接口 | IGRDetailGrid.Columns 属性


IGRColumn 概述

IGRColumn 接口

表示明细网格的列。明细网格拥有一组列，整个明细网格在垂直方向上按列切分。

有关此接口所有成员的列表，请参阅 IGRColumn 成员。

IDispatch
IGRColumn

请参见

IGRColumn 成员 | IGRColumns.Item 属性 | IGRColumns.Add 方法 | IGRColumnCell.Column 属性 | IGRDetailGrid.AddColumn 方法 | IGridppReport.ColumnByName 方法


IGRColumn成员

IGRColumn 概述

公共属性

ContentCell | 本列对应的内容格的接口引用。
Name | 列的名称标识，必须保证每个列的名称唯一。
Parent | 拥有列的明细网格的接口引用。
TitleCell | 本列对应的标题格的接口引用。
Visible | 指定列在输出时是否可见。
Width | 列的显示宽度。

请参见

IGRColumn 接口 | IGRColumns.Item 属性 | IGRColumns.Add 方法 | IGRColumnCell.Column 属性 | IGRDetailGrid.AddColumn 方法 | IGridppReport.ColumnByName 方法


IGRGroups 概述

IGRGroups 接口

公开明细网格的所分组的集合对象。

有关此接口所有成员的列表，请参阅 IGRGroups 成员。

IDispatch
IGRGroups

请参见

IGRGroups 成员 | IGRGroup 接口 | IGRDetailGrid.Groups 属性


IGRGroups成员

IGRGroups 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有分组的个数。
Item | 根据分组的顺序号或名称得到列分组接口引用。

公共方法

Add | 增加一个分组并返回新增分组的接口引用。
IndexByName | 根据分组的名称取得其顺序号，如果不存在与名称匹配的分组，则返回-1。分组的名称不区分字母的大小写。
Remove | 根据分组的顺序号或名称将分组移除，在输入参数种指定要移除分组的顺序号或名称。
RemoveAll | 清除全部分组。

请参见

IGRGroups 接口 | IGRGroup 接口 | IGRDetailGrid.Groups 属性


IGRGroup 概述

IGRGroup 接口

表示记录的分组。可以定义不同的分组方式，分组对象拥有一个分组头与分组尾。

有关此接口所有成员的列表，请参阅 IGRGroup 成员。

IDispatch
IGRGroup

说明

定义分组规则，对所有的记录数据进行归类，并将归类统计数据显示在分组头或分组尾。当属性PageGroup为真，在打印生成页面时，每个页产生一个分组项；当属性PageGroup为假，如果属性ByFields关联字段，将相同字段值的记录归类为一个分组项，通常记录的顺序应按分组字段进行排序，如果属性ByFields没有定义，表示全部记录形成一个分组项。在报表主对象的ProcessRecord事件中每执行IGRDetailGrid接口的StartNewGroup方法，将生成指定分组的一个分组项。

请参见

IGRGroup 成员 | IGRGroups.Item 属性 | IGRGroups.Add 方法 | IGRGroupSection.Group 属性 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件


IGRGroup成员

IGRGroup 概述

公共属性

_DataSet | Used by internal。
ByFields | 获取或设置分组依据字段的名称。
Footer | 获取本分组拥有的分组尾对象的接口引用。
GroupBeginScript | 表示报表 GroupBegin 事件对应的脚本语言代码。
GroupEndScript | 表示报表 GroupEnd 事件对应的脚本语言代码。
Header | 获取本分组拥有的分组头对象的接口引用。
Name | 获取或设置分组的名称标识。
PageGroup | 获取或设置本分组是否为页分组的标志。
Parent | 获取父对象引用，亦即明细网格的接口引用。

请参见

IGRGroup 接口 | IGRGroups.Item 属性 | IGRGroups.Add 方法 | IGRGroupSection.Group 属性 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件


IGRGroupSection 概述

IGRGroupSection 接口

分组头与分组尾的基类，表示分组头与分组尾相同的属性与方法。

有关此接口所有成员的列表，请参阅 IGRGroupSection 成员。

IDispatch
IGRSection
IGRGroupSection
派生接口

请参见

IGRGroupSection 成员 | GRGrpKpTogetherStyle 枚举 | IGRGroupHeader 接口 | IGRGroupFooter 接口


IGRGroupSection成员

IGRGroupSection 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Group | 获取拥有本分组节的分组对象的接口引用。
Height(从 IGRSection 继承) | 报表节的高度。
HNewPageFixed | 指定在横向分页打印时，分组头尾是否锁定始终打印页面左边的内容。
KeepTogether | 获取或设置是否保持本分组节输出显示在相同页的标志。
Name(从 IGRSection 继承) | 报表节的名称标识。
NewPage | 获取或设置换新页的产生方式。
NewPageColumn | 指定强制换新页栏的方式。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
PrintGridBorder | 获取或设置是否打印本分组节对应位置的明细网格边框。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
ShowColLine | 未实现
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRGroupSection 接口 | GRGrpKpTogetherStyle 枚举


IGRGroupHeader 概述

IGRGroupHeader 接口

表示明细网格分组的分组头。分组头显示在每个分组的第一行。

有关此接口所有成员的列表，请参阅 IGRGroupHeader 成员。

IDispatch
IGRSection
IGRGroupSection
IGRGroupHeader

说明

一个报表可以定义一个或多个嵌套分组，每个分组对应一个分组头与一个分组尾。分组头显示在每个分组开始位置，一般在分组头上定义分组的标识信息，分组初始值及其它只需在分组开始时显示一次的信息。

请参见

IGRGroupHeader 成员 | IGRGroupFooter 接口 | GRGrpKpTogetherStyle 枚举 | GROCGroupHeaderVAlign 枚举 | IGRGroup.Header 属性


IGRGroupHeader成员

IGRGroupHeader 概述

公共属性

BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Group(从 IGRGroupSection 继承) | 获取拥有本分组节的分组对象的接口引用。
GroupKeepTogether | 打印输出时，指定本分组项的分组头与其它行保持同页的方式。
Height(从 IGRSection 继承) | 报表节的高度。
HNewPageFixed(从 IGRGroupSection 继承) | 指定在横向分页打印时，分组头尾是否锁定始终打印页面左边的内容。
IncludeFooter | 为占列式分组头时，获取或设置分组尾是否被包含在占列分组中的标志。
KeepTogether(从 IGRGroupSection 继承) | 获取或设置是否保持本分组节输出显示在相同页的标志。
Name(从 IGRSection 继承) | 报表节的名称标识。
NewPage(从 IGRGroupSection 继承) | 获取或设置换新页的产生方式。
NewPageColumn(从 IGRGroupSection 继承) | 指定强制换新页栏的方式。
OccupiedColumns | 为占列式分组头时，指定占据列的名称。
OccupyColumn | 获取或设置是否为占列式分组头的标志。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
PrintGridBorder(从 IGRGroupSection 继承) | 获取或设置是否打印本分组节对应位置的明细网格边框。
RepeatOnPage | 指定是否在新页中重复显示当前分组项的分组头。
SameAsColumn | 为占列式分组头时，获取或设置是否采用占据列的内容格定义进行显示的标志。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
ShowColLine(从 IGRGroupSection 继承) | 未实现
VAlign | 为占列式分组头时，获取或设置显示位置在垂直方向上的对齐方式。
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRGroupHeader 接口 | IGRGroupFooter 接口 | GRGrpKpTogetherStyle 枚举 | GROCGroupHeaderVAlign 枚举 | IGRGroup.Header 属性


IGRGroupFooter 概述

IGRGroupFooter 接口

表示明细网格分组的分组尾。分组尾显示在每个分组的最后一行。

有关此接口所有成员的列表，请参阅 IGRGroupFooter 成员。

IDispatch
IGRSection
IGRGroupSection
IGRGroupFooter

说明

一个报表可以定义一个或多个嵌套分组，每个分组对应一个分组头与一个分组尾。分组尾显示在每个分组结束位置，一般在分组尾上定义定义分组的统计信息及其它只需在分组开始时显示一次的信息。

请参见

IGRGroupFooter 成员 | IGRGroupHeader 接口 | IGRGroup.Footer 属性


IGRGroupFooter成员

IGRGroupFooter 概述

公共属性

AppendBlankRowExclude | 是否将分组尾行从空白行的计数中排除。
BackColor(从 IGRSection 继承) | 报表节的背景填充色。
BookmarkText(从 IGRSection 继承) | 指定节的书签文本，文本中可以包含多种数据域。
CanGrow(从 IGRSection 继承) | 指示节高度在运行时是否可以伸展的标志。
CanShrink(从 IGRSection 继承) | 指示节高度在运行时是否可以收缩的标志。
Controls(从 IGRSection 继承) | 获取拥有的部件框集合对象的接口引用。
Font(从 IGRSection 继承) | 报表节的缺省字体。
FormatScript(从 IGRSection 继承) | 表示报表 SectionFormat 事件对应的脚本语言代码。
Group(从 IGRGroupSection 继承) | 获取拥有本分组节的分组对象的接口引用。
Height(从 IGRSection 继承) | 报表节的高度。
HNewPageFixed(从 IGRGroupSection 继承) | 指定在横向分页打印时，分组头尾是否锁定始终打印页面左边的内容。
KeepTogether(从 IGRGroupSection 继承) | 获取或设置是否保持本分组节输出显示在相同页的标志。
Name(从 IGRSection 继承) | 报表节的名称标识。
NewPage(从 IGRGroupSection 继承) | 获取或设置换新页的产生方式。
NewPageColumn(从 IGRGroupSection 继承) | 指定强制换新页栏的方式。
Parent(从 IGRSection 继承) | 父对象的IUnknown接口引用。
PrintAtBottom | 打印输出时，指定是否将本节显示在页面底部。
PrintGridBorder(从 IGRGroupSection 继承) | 获取或设置是否打印本分组节对应位置的明细网格边框。
SectionType(从 IGRSection 继承) | 指示报表节的具体类型。
ShowColLine(从 IGRGroupSection 继承) | 未实现
Visible(从 IGRSection 继承) | 是否显示报表节的标志。

请参见

IGRGroupFooter 接口 | IGRGroupHeader 接口 | IGRGroup.Footer 属性


IGRPrinter 概述

IGRPrinter 接口

表示打印机与纸张。定义获取与设置打印机与纸张信息的属性与方法。

有关此接口所有成员的列表，请参阅 IGRPrinter 成员。

IDispatch
IGRPrinter

请参见

IGRPrinter 成员 | IGridppReport.Printer 属性 | IGridppReport 接口 | GRPaperOrientation 枚举 | GRPaperSourceKind 枚举 | GRPrintPageType 枚举 | GRPrintRangeType 枚举


IGRPrinter成员

IGRPrinter 概述

公共属性

BottomMargin | 页面的下边距。
CanCollate | 指示当前打印机是否支持逐份打印。
CanDuplex | 指示当前打印机是否支持双面打印。
Collate | 指示打印文档是否逐份打印。
Copies | 获取或设置要打印的文档份数。
Duplex | 指示报表打印输出应用的双面打印模式。
LeftMargin | 页面的左边距。
Online | 指示当前打印机是否处于开机在线状态。
PageCount | 指示当前打印文档的总页数。
PaperLength | 获取或设置打印纸张的长度。
PaperName | 打印纸张的名称。
PaperOrientation | 打印纸张的方向。
PaperSize | 表示打印纸张的大小。
PaperSource | 指定打印机的纸张来源。
PaperWidth | 获取或设置打印纸张的宽度。
PrinterName | 在运行时，获取或设置使用打印机的名称。
PrintOffsetSaveToLocal | 指示是否将打印偏移量保存在客户端本地机器上。
PrintOffsetX | 指示报表的输出位置在水平方向上的偏移量，以报表的计量单位表示，向右为正，向左为负。
PrintOffsetY | 指示报表的输出位置在垂直方向上的偏移量，以报表的计量单位表示，向下为正，向上为负。
PrintPageType | 指定从选定的页范围中输出的页类型。
PrintRangeType | 指定打印输出选定的页范围。
RightMargin | 页面的右边距。
SelectionPrintPages | 用文本指定的页范围，仅当PrintRangeType为grprtSelectionPages时才有效。
SheetPages | 指定在打印输出纸张上每页输出的页面版数
SheetPaperSize | 指定实际输出纸张的类型，如果为0，则按报表生成的纸张类型进行打印，这种方式也是默认的方式。
SupportCustomPaper | 指示当前打印机是否支持自定义纸张打印。
TopMargin | 页面的上边距。

公共方法

PageSetupDialog | 显示页面设置对话框。
PrintDialog | 显示打印对话框。
PrinterSetupDialog | 显示打印机设置对话框

请参见

IGRPrinter 接口 | IGridppReport.Printer 属性 | IGridppReport 接口 | GRPaperOrientation 枚举 | GRPaperSourceKind 枚举 | GRPrintPageType 枚举 | GRPrintRangeType 枚举


GRAnchorStyles 枚举

指定部件框如何锚定到其容器的边缘。

成员名称 | 枚举值 | 说明
grasLeft | 1 | 该部件框锚定到其容器的左边缘。
grasTop | 2 | 该部件框锚定到其容器的上边缘。
grasRight | 4 | 该部件框锚定到其容器的右边缘。
grasBottom | 8 | 该部件框锚定到其容器的下边缘。

说明

如果将部件框锚定到其容器的边缘，当调整该容器的大小时，该部件框与指定边缘间的距离保持不变。例如，如果将控件锚定到其容器的右边缘，则当调整该容器的大小时，该控件的右边缘与容器的右边缘之间的距离保持不变。可以将控件锚定到任何控件边缘的组合上。如果将控件锚定到其容器的相对边缘上（例如，锚定到顶部和底部），当调整容器的大小时，控件大小就会随之改变。

请参见

IGRControl.Anchor 属性 | IGRControl 接口


GRBackStyle 枚举

指定部件再显示时用来填充其所占区域背景的方式。

成员名称 | 枚举值 | 说明
grbkNormal | 1 | 部件框使用背景色填充他占据的矩形区域。
grbkTransparent | 2 | 部件框背景透明，允许任何背景图像或其他部件框透过自身显示。

请参见

IGRControl.BackStyle 属性 | IGRShapeBox.FillStyle 属性 | IGRControl 接口


GROCGroupHeaderVAlign 枚举

指定占列式分组头在整个分组列区域的垂直方向上对齐位置。

成员名称 | 枚举值 | 说明
grbaTop | 1 | 占列式分组头显示在整个分组列区域的顶部。
grbaMiddle | 2 | 占列式分组头显示在整个分组列区域的中部（垂直方向）。
grbaBottom | 3 | 占列式分组头显示在整个分组列区域的底部。

请参见

IGRGroupHeader.VAlign 属性 | IGRGroupHeader 接口


GRCenterStyle 枚举

指定用来在容器中居中对齐部件框的方式。

成员名称 | 枚举值 | 说明
grcsNone | 0 | 部件框在父容器中不居中对齐。
grcsHorizontal | 1 | 部件框始终位于父容器水平方向的正中间。
grcsVertical | 2 | 部件框始终位于父容器垂直方向的正中间。
grcsBoth | 3 | 部件框始终位于父容器水平与垂直方向的正中间

说明

可以在水平与垂直两个方向上设定部件框的居中对齐方式，如果设定水平方向上居中对齐，不论部件框父容器改变大小，还是部件框自身改变大小与位置，系统自动将部件框放置在父容器水平方向上的居中位置。在垂直方向上的居中对齐有类似行为。
注意：如果部件框设定了停靠（Dock）方式，则先以停靠方式自动调整部件框位置与大小，然后再应用居中对齐方式。

请参见

IGRControl.Center 属性 | IGRControl 接口


GRGrpKpTogetherStyle 枚举

指定分组头行与本分组项其他行在打印输出时聚集在相同页的方式。

成员名称 | 枚举值 | 说明
grgktsNone | 1 | 不要求分组头行与本分组项其他行打印输出聚集在相同页。
grgktsFirstDetail | 2 | 要求分组头行与本分组项的第一个明细记录行打印输出在相同页。
grgktsAll | 3 | 要求分组头行与本分组项的其他所有行尽量打印输出在相同页。

请参见

IGRGroupHeader.GroupKeepTogether 属性 | IGRGroupHeader 接口


GRUnit 枚举

指定表示报表元素大小与位置的计量单位。

成员名称 | 枚举值 | 说明
grmuCm | 1 | 以厘米为单位表示报表部件的尺寸与位置。
grmuInch | 2 | 以英寸为单位表示报表部件的尺寸与位置。

请参见

IGridppReport.Unit 属性 | IGridppReport 接口 | IGRSharePrintSetupObject.Unit 属性


GRNewPageColumnStyle 枚举

在打印生成明细网格的分组头时，指定是否强制产生新页列的方式。

成员名称 | 枚举值 | 说明
grncsNone | 1 | 分组头在任何时候都不另起新页栏。
grncsBefore | 2 | 分组头在打印输出之前另起新页栏进行输出。
grncsAfter | 3 | 分组头在打印输出之后另起新页栏。后续内容输出在新页栏中。
grncsBeforeAfter | 4 | 分组头在打印输出之前与之后都另起新页栏。

请参见

IGRGroupHeader.NewPageColumn 属性 | IGRDetailGrid 接口 | IGRGroupSection.NewPageColumn 属性


GRNewPageStyle 枚举

在打印生成报表节时，指定是否强制产生新页的方式。

成员名称 | 枚举值 | 说明
grnpsNone | 1 | 报表节不强制产生新页。
grnpsBefore | 2 | 报表节在打印输出之前要求产生新页，保证本节在新页中输出。
grnpsAfter | 3 | 报表节在打印输出之后要求产生新页，保证本节之后的后续节在新页中输出。
grnpsBeforeAfter | 4 | 报表节在打印输出之前与之后要求产生新页。

请参见

IGRGroupSection.NewPage 属性 | IGRReportHeader.NewPage 属性 | IGRReportFooter.NewPage 属性 | IGRDetailGrid.NewPage 属性


GRPageColumnDirection 枚举

在明细网格打印生成时，如果生成多栏报表，指定明细网格的各种行的在各页栏中的输出次序。

成员名称 | 枚举值 | 说明
grpcdDownAcross | 1 | 按从上到下，再从左到右的顺序在页栏中打印输出。
grpcdAcrossDown | 2 | 按从左到右，再从上到下的顺序在页栏中打印输出。
grpcdDownAcrossEqual | 3 | 按从上到下，再从左到右的顺序在页栏中打印输出，保持每栏输出基本一样多的数据。

请参见

IGRDetailGrid.PageColumnDirection 属性 | IGRDetailGrid 接口


GRPaperOrientation 枚举

指定生成打印页面时在纸张中的输出方向。

成员名称 | 枚举值 | 说明
grpoDefault | 0 | 应用打印机当前设置的纸张输出方向
grpoPortrait | 1 | 纸张输出方向为纵向。
grpoLandscape | 2 | 纸张输出方向为横向。

请参见

IGRPrinter.PaperOrientation 属性 | IGRPrinter 接口 | IGRSharePrintSetupObject.PaperOrientation 属性 | IGridppReport.DesignPaperOrientation 属性


GRPenStyle 枚举

画线条时，指定画线笔的类型。

成员名称 | 枚举值 | 说明
grpsSolid | 0 | 画实线。
grpsDash | 1 | 画段虚线。
grpsDot | 2 | 画点虚线。
grpsDashDot | 3 | 画点段虚线。
grpsDashDotDot | 4 | 画双点段虚线。
grpsClear | 5 | 不画线。
grpsInsideFrame | 6 | 画内框线。

请参见

IGRShapeBox.PenStyle 属性 | IGRLine.PenStyle 属性 | IGRGraphics.SelectPen 方法


GRRepeatStyle 枚举

指定明细网格标题的重复输出方式。

成员名称 | 枚举值 | 说明
grrsNone | 1 | 明细网格标题不重复输出。
grrsOnPage | 2 | 明细网格标题在每页重复输出。
grrsOnPageColumn | 4 | 明细网格标题在每个页栏重复输出。
grrsOnGroupHeader | 8 | 明细网格标题在最内层的分组头之后重复输出。
grrsOnGroupHeaderPage | 10 | 明细网格标题在每页与最内层的分组头之后重复输出。

说明

如果为不重复输出方式（None），则只在明细网格打印生成的开始时输出一次标题。如果为每页重复方式（OnPage)或每页列重复方式（OnPageColumn）,则在明细网格打印生成的开始时与产生新页或新页列时输出标题。如果为在分组头上重复方式（OnGroupHeader），则在明细网格打印生成的开始时不输出报表头，而是在每个分组头输出后输出标题。

请参见

IGRColumnTitle.RepeatStyle 属性 | IGRColumnTitle 接口


GRSectionType 枚举

指定报表节的具体类型。

成员名称 | 枚举值 | 说明
grstPageHeader | 1 | 页眉。
grstReportHeader | 2 | 报表头。
grstReportFooter | 3 | 报表尾。
grstPageFooter | 4 | 页脚。
grstColumnTitle | 5 | 明细网格标题行。
grstColumnContent | 6 | 明细网格内容行。
grstGroupHeader | 7 | 分组头。
grstGroupFooter | 8 | 分组尾。

请参见

IGRSection.SectionType 属性 | IGRSections.Add 方法


GRShapeType 枚举

指定图形部件框的具体类型。

成员名称 | 枚举值 | 说明
grsbtCircle | 1 | 圆。
grsbtEllipse | 2 | 椭圆。
grsbtRectangle | 3 | 矩形。
grsbtRoundRect | 4 | 圆角矩形。
grsbtRoundSquare | 5 | 圆角正方形。
grsbtSquare | 6 | 正方形。
grsbtLine | 7 | 直线。

请参见

IGRShapeBox.ShapeType 属性 | IGRShapeBox 接口


GRSummaryFun 枚举

指定统计部件框应用的统计函数。

成员名称 | 枚举值 | 说明
grsfSum | 1 | 统计某个字段的合计值。
grsfAvg | 2 | 统计某个字段的平均值。
grsfCount | 3 | 统计明细记录的个数。
grsfMin | 4 | 找出某个字段的最小值。
grsfMax | 5 | 找出某个字段的最大值。
grsfVar | 6 | 方差
grsfVarP | 7 | 总体方差
grsfStdDev | 8 | 标准偏差
grsfStdDevP | 9 | 总体标准偏差
grsfAveDev | 10 | 平均偏差
grsfDevSq | 11 | 偏差平方和
grsfCountBlank | 12 | 空值个数
grsfCountA | 13 | 非空值个数
grsfDistinct | 14 | 非重复值个数
grsfAvgA | 15 | 非空值平均
grsfMinN | 16 | 第N个最小值
grsfMaxN | 17 | 第N个最大值
grsfStrMin | 18 | 字符最小值
grsfStrMax | 19 | 字符最大值

请参见

IGRSummaryBox.SummaryFun 属性 | IGRSummaryBox 接口


GRSystemVarType 枚举

指定系统变量部件框应用的系统变量类型。

成员名称 | 枚举值 | 说明
grsvCurrentDateTime | 1 | 计算机的当前日期时间。
grsvPageCount | 2 | 总页数。
grsvPageNumber | 3 | 当前页号。
grsvRecordNo | 4 | 明细记录的当前记录号，从1开始计数。
grsvGroup1RowNo | 5 | 一级分组的当前分组项的序号，从1开始计数。
grsvGroup2RowNo | 6 | 二级分组的当前分组项的序号，从1开始计数。
grsvGroup3RowNo | 7 | 三级分组的当前分组项的序号，从1开始计数。
grsvRowNo | 8 | 明细网格的当前行号，从1开始计数。
grsvGroupOrderNo | 9 | 分组项序号，最内层分组的项序号。
grsvGroup1PageNumber | 10 | 一级分组的当前分组页号。
grsvGroup2PageNumber | 11 | 二级分组的当前分组页号。
grsvGroup3PageNumber | 12 | 三级分组的当前分组页号。
grsvGroup1PageCount | 13 | 一级分组的当前分组页数。
grsvGroup2PageCount | 14 | 二级分组的当前分组页数。
grsvGroup3PageCount | 15 | 三级分组的当前分组页数。
grsvGroup1OrderNo | 16 | 一级分组的分组项序号，即各个分组项的全程序号。
grsvGroup2OrderNo | 17 | 二级分组的分组项序号，即各个分组项的全程序号。
grsvGroup3OrderNo | 18 | 三级分组的分组项序号，即各个分组项的全程序号。

说明

grsvPageCount(页数)，grsvPageNumber(页号)，grsvGroup1/2/3PageNumber(分组页数)，grsvGroup1/2/3PageCount(分组页号)等系统变量只在产生打印页面数据时有效，在查询显示报表时，应避免对这些系统变量的使用。

关于分组页号与页数的更进一步说明：
1、为了产生分组页号与页数信息，必须设置对应分组头与分组尾的“可见性”属性为“是”，且其“高度”属性值大于0。
2、如果实际不需要显示分组头与分组尾，可以在其“格式化脚本”上写脚本代码“Sender.Visible = false;”，这样可以在运行时将分组头与分组尾隐藏不显示。
3、分组页号页数在查询显示报表时不会得到正确的值，所以不应在查询显示报表时显示分组页号页数。

请参见

IGRSystemVarBox.SystemVar 属性 | IGridppReport.SystemVarValue 方法 | IGRSystemVarBox 接口


IGRColumn.Name 属性

IGRColumn.Name(名称) 属性

列的名称标识，必须保证每个列的名称唯一。

BSTR Name

特征

可读写

设计器中可见

说明

列的名称标识，必须保证每个列的名称唯一。列、对应标题格与对应内容格三者的名称始终保持一致，改变其中任一个的名称也会同时改变另外两者的名称。

请参见

IGRColumn 接口 | IGRColumn 成员 | 属性特征说明


IGRColumn.ContentCell 属性

本列对应的内容格的接口引用。

IGRColumnContentCell *ContentCell

特征

只读

请参见

IGRColumn 接口 | IGRColumn 成员 | IGRColumnContentCell 接口 | IGRColumn.TitleCell 属性 | 属性特征说明


IGridppReport.GridColsPerUnit 属性

IGridppReport.GridColsPerUnit(每单位栅格点列数) 属性

在设计器中，水平方向上每个计量单位显示的设计栅格点个数。

SHORT GridColsPerUnit

默认值

5

特征

可读写

设计器中可见

仅用于设计

说明

有效值范围：1-50

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AlignToGrid 属性 | IGridppReport.GridRowsPerUnit 属性 | IGridppReport.ShowGrid 属性 | 属性特征说明


IGridppReport.GridRowsPerUnit 属性

IGridppReport.GridRowsPerUnit(每单位栅格点行数) 属性

在设计器中，垂直方向上每个计量单位显示的设计栅格点个数。

SHORT GridRowsPerUnit

默认值

5

特征

可读写

设计器中可见

仅用于设计

说明

有效值范围：1-50

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AlignToGrid 属性 | IGridppReport.GridColsPerUnit 属性 | IGridppReport.ShowGrid 属性 | 属性特征说明


IGridppReport.Unit 属性

IGridppReport.Unit(计量单位) 属性

用来表示报表元素位置与大小的计量单位。

GRUnit Unit

默认值

drmuCm

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | GRUnit 枚举 | IGridppReport.UnitToPixels 方法 | 属性特征说明


IGridppReport.BackColor 属性

IGridppReport.BackColor(背景色) 属性

报表对象的缺省背景色。

OLE_COLOR BackColor

默认值

grclWindow

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGridppReport.Printer 属性

获取打印机对象的接口引用。

IGRPrinter *Printer

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPrinter 接口 | IGRPrinter 接口 | IGridppReport.PrintBegin 事件 | 属性特征说明


IGridppReport.DetailGrid 属性

IGridppReport.DetailGrid(明细网格) 属性

获取明细网格对象的接口引用。

IGRDetailGrid *DetailGrid

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRDetailGrid 接口 | IGridppReport.RunningDetailGrid 属性 | 属性特征说明


IGridppReport.Font 属性

IGridppReport.Font(字体) 属性

获取报表对象的缺省字体对象的引用。

IGRFont *Font

特征

只读

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRFont 接口 | 属性特征说明


IGRColumn.Visible 属性

IGRColumn.Visible(可见性) 属性

指定列在输出时是否可见。

VARIANT_BOOL Visible

默认值

TRUE

特征

可读写

设计器中可见

说明

如果Visible属性值为假，则本列在屏幕显示与打印生成时将被忽略掉。

请参见

IGRColumn 接口 | IGRColumn 成员 | 属性特征说明


IGRColumn.Width 属性

IGRColumn.Width(宽度) 属性

列的显示宽度。

DOUBLE Width

特征

可读写

设计器中可见

说明

列的显示宽度，以报表使用的计量单位表示的输出宽度值。此属性代表列在设计时的宽度，当其输出时显示的宽度有可能与设计时的宽度不一致。例如，当明细网格的打印方法为列适应输出区域宽度，则列的宽度将按比例进行伸缩以刚好适应输出页面的输出区域宽度。

请参见

IGRColumn 接口 | IGRColumn 成员 | 属性特征说明


IGRColumn.TitleCell 属性

本列对应的标题格的接口引用。

IGRColumnTitleCell *TitleCell

特征

只读

请参见

IGRColumn 接口 | IGRColumn 成员 | IGRColumnTitleCell 接口 | IGRColumn.ContentCell 属性 | 属性特征说明


IGRColumn.Parent 属性

拥有列的明细网格的接口引用。

IGRDetailGrid *Parent

特征

只读

请参见

IGRColumn 接口 | IGRColumn 成员 | IGRDetailGrid 接口 | 属性特征说明


IGRColumns.Item 属性

根据列的顺序号或名称得到列的接口引用。

IGRColumn *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定列的顺序号或名称，列的顺序号从一开始。名称在匹配时不区分字母大小写。

请参见

IGRColumns 接口 | IGRColumns 成员 | IGRColumn 接口 | 属性特征说明


IGRColumns.Count 属性

指示拥有列的个数。

LONG Count

特征

只读

请参见

IGRColumns 接口 | IGRColumns 成员 | 属性特征说明


IGRColumns._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRColumns 接口 | IGRColumns 成员 | 属性特征说明


IGRColumns.Add 方法

增加一个列并返回新增列的接口引用。

IGRColumn *Add(void);

返回值

IGRColumn *

新增列的接口引用。

请参见

IGRColumns 接口 | IGRColumns 成员 | IGRColumn 接口


IGRColumns.IndexByName 方法

根据列的名称取得其顺序号，如果不存在与名称匹配的列，则返回值为-1。列的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果存在名称匹配的列，返回列的顺序号，否则返回-1。

参数

BSTR Name

指定列的名称。

请参见

IGRColumns 接口 | IGRColumns 成员


IGRColumns.Remove 方法

根据列的顺序号或名称将列移除。

void Remove(VARIANT Index);

参数

VARIANT Index

指定列的顺序号或名称。

请参见

IGRColumns 接口 | IGRColumns 成员


IGRColumns.RemoveAll 方法

清除全部列。

void RemoveAll(void);

请参见

IGRColumns 接口 | IGRColumns 成员


IGRColumnCell.BackColor 属性

IGRColumnCell.BackColor(背景色) 属性

指定单元格的背景色。

OLE_COLOR BackColor

特征

可读写

设计器中可见

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumnSection.SetCellsBackColor 方法 | 属性特征说明


IGRColumnCell.Column 属性

本单元格对应的列的接口引用。

IGRColumn *Column

特征

只读

说明

单元格按照列的宽度与顺序进行排列，一个列对应有一个标题格与一个内容格。如果是组标题格，因为组标题格不存在唯一对应的某个列，所以本属性值为NULL。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumn 接口 | 属性特征说明


IGRColumnCell.Controls 属性

本单元格所拥有的部件框集合对象的接口引用。

IGRControls *Controls

特征

只读

说明

如果格不是自由格时，因非自由格不是部件框容器，所以本属性值为NULL。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRControls 接口 | 属性特征说明


IGRColumnCell.EndEllipsis 属性

IGRColumnCell.EndEllipsis(超长文字省略号) 属性

指定是否用省略号表示超出单元格范围的文字。

VARIANT_BOOL EndEllipsis

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性值为真，用省略号（...）表示超出格范围的文字。
注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumnCell.TextAlign 属性 | IGRColumnCell.WordWrap 属性 | 属性特征说明


IGRColumnCell.Font 属性

IGRColumnCell.Font(字体) 属性

指定输出文字时应用的字体对象的接口引用。

IGRFont *Font

特征

只读

设计器中可见

说明

如果单元格是非自由单元格，此属性表示输出显示文本使用的字体，如果单元格是自由单元格，此属性表示子部件框的缺省字体。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRFont 接口 | 属性特征说明


IGRColumnCell.ForeColor 属性

IGRColumnCell.ForeColor(前景色) 属性

指定单元格的输出文本的文字颜色。

OLE_COLOR ForeColor

默认值

Black

特征

可读写

设计器中可见

说明

注意：只有在格是非自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | 属性特征说明


IGRColumnCell.FreeCell 属性

IGRColumnCell.FreeCell(自由格) 属性

指定本单元格是否为自由格。

VARIANT_BOOL FreeCell

默认值

FALSE

特征

可读写

设计器中可见

说明

当本属性为真时，格为自由格，单元格成为部件框容器，可以添加任意个数，自由排列的部件框到格中；当本属性为假时，单元格不是部件框容器，不能向格中插入部件框，格本身可以显示输出文本。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | 属性特征说明


IGRColumnCell.Name 属性

IGRColumnCell.Name(名称) 属性

指定单元格的名称标识。

BSTR Name

特征

可读写

设计器中可见

说明

注意：当为内容格或当为标题格而不是组标题格时，即格存在对应列，格的名称与列的名称保持一致。当改变格的名称也同时改变列的名称，反之改变列的名称也同时改变格的名称。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | 属性特征说明


IGRColumnCell.TextAlign 属性

IGRColumnCell.TextAlign(文字对齐) 属性

指定显示文本的文字对齐方式。

GRTextAlign TextAlign

特征

可读写

设计器中可见

说明

注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | GRTextAlign 枚举 | IGRColumnCell.EndEllipsis 属性 | IGRColumnCell.WordWrap 属性 | 属性特征说明


IGRColumnCell.WordWrap 属性

IGRColumnCell.WordWrap(文字自动绕行) 属性

指定文字是否折行输出的标志。

VARIANT_BOOL WordWrap

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性值为真，文字可以折行输出，否则不论文字多少，只在一行中输出文字。
注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumnCell.EndEllipsis 属性 | IGRColumnCell.TextAlign 属性 | IGRColumnContentCell.CanGrow 属性 | 属性特征说明


GRTextAlign 枚举

指定文字在显示区域的输出对齐方式。

成员名称 | 枚举值 | 说明
grtaTopLeft | 17 | 内容在垂直方向上顶部对齐，在水平方向上左边对齐。
grtaTopCenter | 18 | 内容在垂直方向上顶部对齐，在水平方向上居中对齐。
grtaTopRight | 20 | 内容在垂直方向上顶部对齐，在水平方向上右边对齐。
grtaMiddleLeft | 33 | 内容在垂直方向上中间对齐，在水平方向上左边对齐。
grtaMiddleCenter | 34 | 内容在垂直方向上中间对齐，在水平方向上居中对齐。
grtaMiddleRight | 36 | 内容在垂直方向上中间对齐，在水平方向上右边对齐。
grtaBottomLeft | 65 | 内容在垂直方向上底边对齐，在水平方向上左边对齐。
grtaBottomCenter | 66 | 内容在垂直方向上底边对齐，在水平方向上居中对齐。
grtaBottomRight | 68 | 内容在垂直方向上底边对齐，在水平方向上右边对齐。

说明

使用文字对齐的报表元素包括：各种文字显示部件，非自由格的明细网格标题格与内容格。

请参见

IGRTextBox.TextAlign 属性 | IGRColumnCell.TextAlign 属性 | IGRDesigner.GetObjectTextAlign 方法 | IGRTextBox 接口 | IGRGraphics.DrawString 方法 | IGRGraphics.DrawSpacedString 方法


IGRColumnTitleCell.Text 属性

IGRColumnTitleCell.Text(文本) 属性

指定标题格的显示文本。

BSTR Text

特征

可读写

设计器中可见

说明

注意：本属性只能在标题格为非自由格时使用。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | 属性特征说明


IGRColumnTitleCell.Parent 属性

获取拥有本标题格的标题行对象的接口引用。

IGRColumnTitle *Parent

特征

只读

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitle 接口 | 属性特征说明


IGRColumnTitleCell.GroupTitle 属性

指定本标题格是否为组标题格。

VARIANT_BOOL GroupTitle

特征

只读

说明

本属性为真，标题格称为组标题格。组标题格不是由列自动创建，也不与一个列关联。组标题格包含数个下级标题格，从而使网格标题具有层次关系。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCell.SubTitles 属性 | IGRColumnTitleCell.SupCell 属性 | 属性特征说明


IGRColumnTitleCell.SubTitles 属性

获取本标题格拥有的直接下级标题格集合对象的接口引用。

IGRColumnTitleCells *SubTitles

特征

只读

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCells 接口 | IGRColumnTitleCell.GroupTitle 属性 | IGRColumnTitleCell.SupCell 属性 | 属性特征说明


IGRColumnTitleCell.Visible 属性

IGRColumnTitleCell.Visible(可见性) 属性

指定是否显示本标题格。

VARIANT_BOOL Visible

默认值

TRUE

特征

可读写

设计器中可见

说明

当标题格不是组标题格时，本属性与其对应的列的 Visible 属性保持一致。当标题格是组标题格时，当本属性为假时，本组标题格所包含的所有列在输出时都将被忽略掉，而不管所包含的列自身的 Visible 属性为何值。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCell.GroupTitle 属性 | 属性特征说明


IGRColumnContentCell.Parent 属性

获取拥有本内容格的内容行的接口引用。

IGRColumnContent *Parent

特征

只读

请参见

IGRColumnContentCell 接口 | IGRColumnContentCell 成员 | IGRColumnContent 接口 | 属性特征说明


IGRColumnContentCell.DataField 属性

IGRColumnContentCell.DataField(数据字段) 属性

指定本内容格关联的记录集字段的名称，在运行时将显示关联字段的显示文字。

BSTR DataField

特征

可读写

设计器中可见

说明

注意：本属性只能在内容格为非自由格时使用。

请参见

IGRColumnContentCell 接口 | IGRColumnContentCell 成员 | IGRField 接口 | 属性特征说明


IGRColumnContentCells.Item 属性

根据内容格的顺序号或名称得到内容格的接口引用。

IGRColumnContentCell *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定内容格的顺序号或名称，内容格的顺序号从一开始。

请参见

IGRColumnContentCells 接口 | IGRColumnContentCells 成员 | IGRColumnContentCell 接口 | 属性特征说明


IGRColumnContentCells.Count 属性

指示拥有内容格的个数。

LONG Count

特征

只读

请参见

IGRColumnContentCells 接口 | IGRColumnContentCells 成员 | 属性特征说明


IGRColumnContentCells._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRColumnContentCells 接口 | IGRColumnContentCells 成员 | 属性特征说明


IGRColumnContentCells.IndexByName 方法

根据内容格的名称取得其顺序号，如果不存在与名称匹配的内容格，则返回值为-1。内容格的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果存在名称匹配的内容格，返回内容格的顺序号，否则返回-1。

参数

BSTR Name

指定查找内容格的名称。

请参见

IGRColumnContentCells 接口 | IGRColumnContentCells 成员


IGRColumnTitleCells.Item 属性

根据标题格的顺序号或名称得到标题格的接口引用。

IGRColumnTitleCell *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定标题格的顺序号或名称，标题格的顺序号从一开始。

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员 | IGRColumnTitleCell 接口 | 属性特征说明


IGRColumnTitleCells.Count 属性

指示拥有标题格的个数。

LONG Count

特征

只读

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员 | 属性特征说明


IGRColumnTitleCells._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员 | 属性特征说明


IGRColumnTitleCells.IndexByName 方法

根据标题格的名称取得其顺序号，如果不存在与名称匹配的标题格，则返回-1。标题格的名称不区分字母大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的标题格，返回其顺序号，否则返回-1。

参数

BSTR Name

指定查找标题格的名称。

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员


IGRColumnTitleCells.AddGroup 方法

增加一个组标题格。

IGRColumnTitleCell *AddGroup(BSTR Name, BSTR Title);

返回值

IGRColumnTitleCell *

新增组标题格的接口引用。

参数

BSTR Name

新增组标题格的名称。

BSTR Title

新增组标题格的显示文本。

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员 | IGRColumnTitleCell 接口


IGRColumnTitleCells.RemoveGroup 方法

根据组标题格的顺序号或名称移除一个组标题格。

void RemoveGroup(VARIANT Index);

参数

VARIANT Index

指示准备移除的组标题格的顺序号或名称。

说明

根据组标题格的顺序号或名称移除一个组标题格。只有当指定名称或序号的标题格存在，并且此标题格是组标题格时，才能成功移除标题格。

请参见

IGRColumnTitleCells 接口 | IGRColumnTitleCells 成员


IGRControl.AlignColumn 属性

IGRControl.AlignColumn(对齐列) 属性

指定部件框水平位置对齐到明细网格列的名称。

BSTR AlignColumn

特征

可读写

设计器中可见

说明

如果本属性值不为空时，配合 AlignColumnSide 属性一起指定部件框与列的对齐方式，部件框的水平位置将跟随列位置的改变而改变。

AlignColumnEx 与 AlignColumn 可以指定到不同的列，这样部件框就可以跨列对齐到不同的列。如果 AlignColumnEx 与 AlignColumn 只设定了其中之一的，则部件框只对齐到一个列。如果两者都没有设定，则部件框不会对齐到任何列。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.AlignColumnSide 属性 | IGRControl.AlignColumnEx 属性 | IGRControl.Anchor 属性 | IGRControl.Dock 属性 | IGRControl.Center 属性 | 属性特征说明


IGRControl.Anchor 属性

IGRControl.Anchor(锚定) 属性

指定部件框的哪些边缘锚定到其容器边缘。

GRAnchorStyles Anchor

默认值

Left|Top

特征

可读写

设计器中可见

说明

本属性值是 GRAnchorStyles 值的按位组合。默认值是 grasTop 和 grasLeft。

请参见

IGRControl 接口 | IGRControl 成员 | GRAnchorStyles 枚举 | IGRControl.AlignColumn 属性 | IGRControl.Center 属性 | IGRControl.Dock 属性 | 属性特征说明


IGRControl.AsFieldBox 属性

将本部件框转换为字段框的接口引用。

IGRFieldBox *AsFieldBox

特征

只读

说明

只有当本部件框确实是字段框(FieldBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRFieldBox 接口 | 属性特征说明


IGRControl.AsStaticBox 属性

将本部件框转换为静态框的接口引用。

IGRStaticBox *AsStaticBox

特征

只读

说明

只有当本部件框确实是静态框(StaticBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRStaticBox 接口 | 属性特征说明


IGRControl.AsSummaryBox 属性

将本部件框转换为统计框的接口引用。

IGRSummaryBox *AsSummaryBox

特征

只读

说明

只有当本部件框确实是统计框(SummaryBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRSummaryBox 接口 | 属性特征说明


IGRControl.AsSystemVarBox 属性

将本部件框转换为系统变量框的接口引用。

IGRSystemVarBox *AsSystemVarBox

特征

只读

说明

只有当本部件框确实是系统变量框(SystemVarBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRSystemVarBox 接口 | 属性特征说明


IGRControl.AsShapeBox 属性

将本部件框转换为图形框的接口引用。

IGRShapeBox *AsShapeBox

特征

只读

说明

只有当本部件框确实是图形框(ShapeBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRShapeBox 接口 | 属性特征说明


IGRControl.BackColor 属性

IGRControl.BackColor(背景色) 属性

部件框的背景色。

OLE_COLOR BackColor

默认值

Inherit from parent

特征

可读写

设计器中可见

说明

如果 BackStyle 属性为 grbsTranparent 时，部件框生成时不填充背景，本属性此时被忽略掉。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.BorderStyles 属性 | 属性特征说明


IGRControl.BackStyle 属性

IGRControl.BackStyle(背景模式) 属性

部件框显示时背景的填充方式。

GRBackStyle BackStyle

默认值

grbsTransparent

特征

可读写

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | GRBackStyle 枚举 | IGRControl.BackColor 属性 | 属性特征说明


IGRControl.BorderColor 属性

IGRControl.BorderColor(边框颜色) 属性

边框线的显示颜色。

OLE_COLOR BorderColor

默认值

Black

特征

可读写

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.BorderStyles 属性 | IGRControl.BorderWidth 属性 | 属性特征说明


IGRControl.BorderStyles 属性

IGRControl.BorderStyles(边框模式) 属性

边框线的显示方式。

GRBorderStyles BorderStyles

默认值

None

特征

可读写

设计器中可见

说明

本属性值是 GRBorderStyles 值的按位组合。默认值是 0，不显示任何边框。

请参见

IGRControl 接口 | IGRControl 成员 | GRBorderStyles 枚举 | IGRControl.BorderColor 属性 | IGRControl.BorderWidth 属性 | 属性特征说明


GRBorderStyles 枚举

指定是否画部件框的上下左右边框线的组合方式。

成员名称 | 枚举值 | 说明
grbsDrawLeft | 1 | 部件框或明细网格显示左边边框线。
grbsDrawTop | 2 | 部件框或明细网格显示上边边框线。
grbsDrawRight | 4 | 部件框或明细网格显示右边边框线。
grbsDrawBottom | 8 | 部件框或明细网格显示下边边框线。

请参见

IGRControl.BorderStyles 属性 | IGRDetailGrid.BorderStyles 属性 | IGRControl 接口


IGRControl.BorderWidth 属性

IGRControl.BorderWidth(边框宽度) 属性

边框线的宽度。

FLOAT BorderWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素作为计量单位，默认是 1。本属性值可以为小数，可以更精细控制线条在打印输出时的粗细。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.BorderColor 属性 | IGRControl.BorderStyles 属性 | 属性特征说明


IGRControl.Center 属性

IGRControl.Center(居中) 属性

指定水平与垂直方向的居中对齐方式。

GRCenterStyle Center

默认值

None

特征

可读写

设计器中可见

说明

指定部件框在容器中水平与垂直方向上的居中对齐方式。

请参见

IGRControl 接口 | IGRControl 成员 | GRCenterStyle 枚举 | IGRControl.AlignColumn 属性 | IGRControl.Anchor 属性 | IGRControl.Dock 属性 | 属性特征说明


IGRControl.Dock 属性

IGRControl.Dock(停靠) 属性

指定部件框停靠到父容器的哪一个边缘。

GRDockStyle Dock

默认值

None

特征

可读写

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | GRDockStyle 枚举 | IGRControl.AlignColumn 属性 | IGRControl.Anchor 属性 | IGRControl.Center 属性 | 属性特征说明


IGRControl.Font 属性

IGRControl.Font(字体) 属性

输出文字时使用的字体。

IGRFont *Font

默认值

Inherit from parent

特征

只读

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | IGRFont 接口 | 属性特征说明


IGRControl.ForeColor 属性

IGRControl.ForeColor(前景色) 属性

部件框输出内容的前景色。

OLE_COLOR ForeColor

默认值

Inherit from parent

特征

可读写

设计器中可见

说明

一般表示输出文字的显示颜色。

请参见

IGRControl 接口 | IGRControl 成员 | 属性特征说明


IGRControl.Height 属性

IGRControl.Height(高度) 属性

部件框的显示高度。

DOUBLE Height

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的显示高度值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.Left 属性 | IGRControl.Width 属性 | IGRControl.Top 属性 | IGRControl.SetBounds 方法 | 属性特征说明


IGRControl.Left 属性

IGRControl.Left(左) 属性

部件框的左端显示位置。

DOUBLE Left

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的左端显示位置值，相对于父容器。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.Height 属性 | IGRControl.Top 属性 | IGRControl.Width 属性 | IGRControl.SetBounds 方法 | 属性特征说明


IGRControl.Name 属性

IGRControl.Name(名称) 属性

部件框的名称标识。

BSTR Name

特征

可读写

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | 属性特征说明


IGRControl.Parent 属性

父容器对象的 IUnknown 接口引用。

IUnknown *Parent

特征

只读

请参见

IGRControl 接口 | IGRControl 成员 | 属性特征说明


IGRControl.Tag 属性

IGRControl.Tag(标识) 属性

部件框的标识值。

BSTR Tag

默认值

0

特征

可读写

设计器中可见

说明

可以按自己意愿任意使用本属性，如可以将此属性作为对象的身份标识。

请参见

IGRControl 接口 | IGRControl 成员 | 属性特征说明


IGRControl.Top 属性

IGRControl.Top(上) 属性

部件框的顶端显示位置。

DOUBLE Top

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的顶端显示位置值，相对于父容器。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.SetBounds 方法 | IGRControl.Height 属性 | IGRControl.Left 属性 | IGRControl.Width 属性 | 属性特征说明


IGRControl.ControlType 属性

获取本部件框的具体类型。

GRControlType ControlType

特征

只读

请参见

IGRControl 接口 | IGRControl 成员 | GRControlType 枚举 | 属性特征说明


IGRControl.Width 属性

IGRControl.Width(宽度) 属性

部件框的显示宽度。

DOUBLE Width

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的显示宽度值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.Height 属性 | IGRControl.Left 属性 | IGRControl.Top 属性 | 属性特征说明


IGRTextBox.EndEllipsis 属性

IGRTextBox.EndEllipsis(超长文字省略号) 属性

是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。

VARIANT_BOOL EndEllipsis

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRTextBox.TextAlign 属性 | IGRTextBox.WordWrap 属性 | 属性特征说明


IGRTextBox.TextAlign 属性

IGRTextBox.TextAlign(文字对齐) 属性

文字的输出对齐方式。

GRTextAlign TextAlign

默认值

grtaLeftTop

特征

可读写

设计器中可见

请参见

IGRTextBox 接口 | IGRTextBox 成员 | GRTextAlign 枚举 | IGRTextBox.EndEllipsis 属性 | IGRTextBox.WordWrap 属性 | 属性特征说明


IGRTextBox.WordWrap 属性

IGRTextBox.WordWrap(文字自动绕行) 属性

是否多行显示文本标志。

VARIANT_BOOL WordWrap

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRTextBox.EndEllipsis 属性 | IGRTextBox.TextAlign 属性 | IGRTextBox.CanGrow 属性 | 属性特征说明


IGRStaticBox.Text 属性

IGRStaticBox.Text(文本) 属性

显示文本。

BSTR Text

特征

可读写

设计器中可见

说明

当静态框关联参数时，此属性在显示时被忽略。

请参见

IGRStaticBox 接口 | IGRStaticBox 成员 | 属性特征说明


IGRShapeBox.ShapeType 属性

IGRShapeBox.ShapeType(图形类型) 属性

指定图形的类型。

GRShapeType ShapeType

默认值

drstRectangle

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | GRShapeType 枚举 | 属性特征说明


IGRFieldBox.DataField 属性

IGRFieldBox.DataField(数据字段) 属性

获取或设置关联字段对象的名称。

BSTR DataField

特征

可读写

设计器中可见

请参见

IGRFieldBox 接口 | IGRFieldBox 成员 | IGRField 接口 | 属性特征说明


IGRSummaryBox.DataField 属性

IGRSummaryBox.DataField(数据字段) 属性

关联的数据字段对象名称。

BSTR DataField

特征

可读写

请参见

IGRSummaryBox 接口 | IGRSummaryBox 成员 | IGRSummaryBox.SummaryFun 属性 | 属性特征说明


IGRSummaryBox.SummaryFun 属性

IGRSummaryBox.SummaryFun(统计函数) 属性

指定应用的统计函数。

GRSummaryFun SummaryFun

默认值

grsfSum

特征

可读写

请参见

IGRSummaryBox 接口 | IGRSummaryBox 成员 | GRSummaryFun 枚举 | IGRSummaryBox.DataField 属性 | 属性特征说明


IGRSystemVarBox.SystemVar 属性

IGRSystemVarBox.SystemVar(系统变量) 属性

指定应用的系统变量类型。

GRSystemVarType SystemVar

默认值

drsdPageNumber

特征

可读写

设计器中可见

请参见

IGRSystemVarBox 接口 | IGRSystemVarBox 成员 | GRSystemVarType 枚举 | 属性特征说明


IGRControls.Item 属性

根据部件框的顺序号或名称得到部件框的接口引用。

IGRControl *Item

特征

可读写

说明

在读取时要传入一个VARIANT类型的参数，指定部件框的顺序号或名称，部件框的顺序号从一开始。

[javascript代码]

//遍历全部部件框

var ReportHeader = Report.ReportHeader("ReportHeader1");

var Controls = ReportHeader.Controls

for (var i=1; i<=Controls.Count; ++i)

{

var Control = Controls.Item(i);

var ControlType = Control.ControlType;

if (ControlType == 9) //grctSubReport

{

//做自己的任务

}

}

请参见

IGRControls 接口 | IGRControls 成员 | IGRControl 接口 | 属性特征说明


IGRControls.Count 属性

指示拥有部件框的个数。

LONG Count

特征

只读

说明

[javascript代码]

//遍历全部部件框

var ReportHeader = Report.ReportHeader("ReportHeader1");

var Controls = ReportHeader.Controls

for (var i=1; i<=Controls.Count; ++i)

{

var Control = Controls.Item(i);

var ControlType = Control.ControlType;

if (ControlType == 9) //grctSubReport

{

//做自己的任务

}

}

请参见

IGRControls 接口 | IGRControls 成员 | 属性特征说明


IGRControls._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRControls 接口 | IGRControls 成员 | 属性特征说明


IGRControls.Add 方法

根据部件框的类型参数增加一个部件框并返回新增部件框的接口引用。

IGRControl *Add(GRControlType Type);

返回值

IGRControl *

新增部件框对象的接口引用。

参数

GRControlType Type

指定新增部件框的类型。

请参见

IGRControls 接口 | IGRControls 成员 | IGRControl 接口 | GRControlType 枚举


IGRControls.Remove 方法

根据部件框的顺序号或名称将部件框移除，在输入参数种指定要移除部件框的顺序号或名称。

void Remove(LONG Index);

参数

LONG Index

指定部件框的顺序号或名称。

请参见

IGRControls 接口 | IGRControls 成员


IGRControls.RemoveAll 方法

清除全部部件框。

void RemoveAll(void);

请参见

IGRControls 接口 | IGRControls 成员


IGRControls.IndexByName 方法

根据部件框的名称取得其顺序号，如果不存在与名称匹配的部件框，则返回-1。部件框的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的部件框，返回其顺序号，否则返回-1。

参数

BSTR Name

指定部件框的名称。

请参见

IGRControls 接口 | IGRControls 成员


IGRControls.SetItemOrder 方法

改变指定部件框的显示顺序。

void SetItemOrder(VARIANT Index, LONG OrderNo);

参数

VARIANT Index

指定部件框的名称或序号。

LONG OrderNo

指定部件框的新顺序号。

请参见

IGRControls 接口 | IGRControls 成员


IGRSection.BackColor 属性

IGRSection.BackColor(背景色) 属性

报表节的背景填充色。

OLE_COLOR BackColor

特征

可读写

设计器中可见

请参见

IGRSection 接口 | IGRSection 成员 | IGRColumnSection.SetCellsBackColor 方法 | 属性特征说明


IGRSection.Font 属性

IGRSection.Font(字体) 属性

报表节的缺省字体。

IGRFont *Font

特征

只读

设计器中可见

请参见

IGRSection 接口 | IGRSection 成员 | IGRFont 接口 | 属性特征说明


IGRSection.Name 属性

IGRSection.Name(名称) 属性

报表节的名称标识。

BSTR Name

特征

可读写

设计器中可见

请参见

IGRSection 接口 | IGRSection 成员 | 属性特征说明


IGRSection.Visible 属性

IGRSection.Visible(可见性) 属性

是否显示报表节的标志。

VARIANT_BOOL Visible

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRSection 接口 | IGRSection 成员 | IGRSection.FormatScript 属性 | 属性特征说明


IGRReportHeader.KeepTogether 属性

IGRReportHeader.KeepTogether(保持同页) 属性

是否保持本节输出显示在同一页标志。

VARIANT_BOOL KeepTogether

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportHeader 接口 | IGRReportHeader 成员 | 属性特征说明


IGRReportHeader.NewPage 属性

IGRReportHeader.NewPage(换新页) 属性

指定新页的产生方式。

GRNewPageStyle NewPage

默认值

drnpsNone

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportHeader 接口 | IGRReportHeader 成员 | GRNewPageStyle 枚举 | 属性特征说明


IGRReportFooter.KeepTogether 属性

IGRReportFooter.KeepTogether(保持同页) 属性

是否保持本节输出显示在同一页标志。

VARIANT_BOOL KeepTogether

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportFooter 接口 | IGRReportFooter 成员 | 属性特征说明


IGRReportFooter.NewPage 属性

IGRReportFooter.NewPage(换新页) 属性

指定新页的产生方式。

GRNewPageStyle NewPage

默认值

drnpsNone

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportFooter 接口 | IGRReportFooter 成员 | GRNewPageStyle 枚举 | 属性特征说明


IGRReportFooter.PrintAtBottom 属性

IGRReportFooter.PrintAtBottom(打印在页底) 属性

是否将本节输出在页面底部标志。

VARIANT_BOOL PrintAtBottom

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportFooter 接口 | IGRReportFooter 成员 | 属性特征说明


IGRDetailGrid.CenterView 属性

IGRDetailGrid.CenterView(居中显示) 属性

当明细网格的列总宽度小于显示区域宽度时，指定是否水平居中显示明细网格。

VARIANT_BOOL CenterView

默认值

TRUE

特征

可读写

设计器中可见

说明

当列的总宽度小于显示区域的宽度时，当本属性值为真时，在水平方向上将明细网格居中显示，反之则靠左边显示。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | 属性特征说明


IGRDetailGrid.Columns 属性

获取网格拥有的列集合对象的接口引用。

IGRColumns *Columns

特征

只读

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumns 接口 | 属性特征说明


IGRDetailGrid.ColumnContent 属性

明细网格拥有的内容行的接口引用。

IGRColumnContent *ColumnContent

特征

只读

说明

在输出时，每条明细记录将根据内容行定义输出一次。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumnContent 接口 | 属性特征说明


IGRDetailGrid.FixCols 属性

IGRDetailGrid.FixCols(锁定列数) 属性

查询显示时，指定锁定的列数，左边被锁定的列始终不进行水平滚动。

SHORT FixCols

默认值

0

特征

只读

设计器中可见

仅用于查询

说明

指定固定列的个数，默认时0。当属性值大于0时，前 FixCols 个列不跟随水平滚动条的滚动而滚动，而是始终显示在明细网格的左端。
注意：本属性只应用于查询显示器中。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | 属性特征说明


IGRDetailGrid.RowLineColor 属性

IGRDetailGrid.RowLineColor(行线颜色) 属性

指定行分隔线的颜色。

OLE_COLOR RowLineColor

默认值

grclBlack

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.ShowColLine 属性 | IGRDetailGrid.ShowRowLine 属性 | IGRDetailGrid.ColLineColor 属性 | IGRDetailGrid.BorderColor 属性 | IGRDetailGrid.RowLineWidth 属性 | 属性特征说明


IGRDetailGrid.Groups 属性

获取网格拥有的分组集合对象的接口引用。

IGRGroups *Groups

特征

只读

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRGroups 接口 | 属性特征说明


IGRDetailGrid.PageColumnCount 属性

IGRDetailGrid.PageColumnCount(页栏数) 属性

在水平方向上均分打印输出区域的个数，也就是报表栏数。

SHORT PageColumnCount

默认值

1

特征

可读写

设计器中可见

仅用于打印

说明

值范围：1-50

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.PageColumnDirection 属性 | IGRDetailGrid.PageColumnSpacing 属性 | IGRGroupSection.NewPageColumn 属性 | 属性特征说明


IGRDetailGrid.PageColumnDirection 属性

IGRDetailGrid.PageColumnDirection(页栏输出顺序) 属性

在输出多栏报表时，数据行生成到输出位置的方向。

GRPageColumnDirection PageColumnDirection

默认值

drpcdDownAcross

特征

可读写

设计器中可见

仅用于打印

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRPageColumnDirection 枚举 | IGRDetailGrid.PageColumnCount 属性 | IGRDetailGrid.PageColumnSpacing 属性 | 属性特征说明


IGRDetailGrid.PageColumnSpacing 属性

IGRDetailGrid.PageColumnSpacing(页栏间隙) 属性

指定多栏报表的栏间距，以报表的计量单位表示。

DOUBLE PageColumnSpacing

默认值

0

特征

可读写

设计器中可见

仅用于打印

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.PageColumnCount 属性 | IGRDetailGrid.PageColumnDirection 属性 | 属性特征说明


IGRDetailGrid.Recordset 属性

获取网格拥有的记录集对象的接口引用。

IGRRecordset *Recordset

特征

只读

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRRecordset 接口 | 属性特征说明


IGRDetailGrid.ColumnTitle 属性

获取明细网格拥有的标题行对象的接口引用。

IGRColumnTitle *ColumnTitle

特征

只读

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumnTitle 接口 | 属性特征说明


IGRDetailGrid.ShowColLine 属性

IGRDetailGrid.ShowColLine(显示列线) 属性

指定是否显示网格列分隔线。

VARIANT_BOOL ShowColLine

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.ShowRowLine 属性 | IGRDetailGrid.ColLineColor 属性 | 属性特征说明


IGRDetailGrid.ShowRowLine 属性

IGRDetailGrid.ShowRowLine(显示行线) 属性

指定是否显示网格行分隔线。

VARIANT_BOOL ShowRowLine

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.RowLineColor 属性 | IGRDetailGrid.ShowColLine 属性 | 属性特征说明


IGRColumnSection.DetailGrid 属性

获取拥有本节的明细网格的接口引用。

IGRDetailGrid *DetailGrid

特征

只读

请参见

IGRColumnSection 接口 | IGRColumnSection 成员 | IGRDetailGrid 接口 | 属性特征说明


IGRColumnContent.AlternatingBackColor 属性

IGRColumnContent.AlternatingBackColor(交替背景色) 属性

指定间隔输出内容行的交替背景色。

OLE_COLOR AlternatingBackColor

默认值

与背景色相同

特征

可读写

设计器中可见

说明

如果本属性值与背景色(BackColor)属性值不相同，输出时用背景色与交替背景色轮流作为内容行的背景色，此时各个内容格本身的背景色将被忽略掉。

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | IGRSection.BackColor 属性 | 属性特征说明


IGRColumnContent.ContentCells 属性

获取拥有的内容格集合对象的接口引用。

IGRColumnContentCells *ContentCells

特征

只读

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | IGRColumnContentCells 接口 | 属性特征说明


IGRGroupSection.KeepTogether 属性

IGRGroupSection.KeepTogether(保持同页) 属性

获取或设置是否保持本分组节输出显示在相同页的标志。

VARIANT_BOOL KeepTogether

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | 属性特征说明


IGRGroupSection.NewPage 属性

IGRGroupSection.NewPage(换新页) 属性

获取或设置换新页的产生方式。

GRNewPageStyle NewPage

默认值

drnpNone

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | GRNewPageStyle 枚举 | IGRGroupSection.NewPageColumn 属性 | 属性特征说明


IGRGroupHeader.VAlign 属性

IGRGroupHeader.VAlign(垂直对齐方式) 属性

为占列式分组头时，获取或设置显示位置在垂直方向上的对齐方式。

GROCGroupHeaderVAlign VAlign

默认值

drbaTop

特征

可读写

设计器中可见

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | GROCGroupHeaderVAlign 枚举 | IGRGroupHeader.OccupiedColumns 属性 | IGRGroupHeader.OccupyColumn 属性 | IGRGroupHeader.SameAsColumn 属性 | IGRGroupHeader.IncludeFooter 属性 | 属性特征说明


IGRGroupHeader.GroupKeepTogether 属性

IGRGroupHeader.GroupKeepTogether(保持分组同页) 属性

打印输出时，指定本分组项的分组头与其它行保持同页的方式。

GRGrpKpTogetherStyle GroupKeepTogether

默认值

drktsNone

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | GRGrpKpTogetherStyle 枚举 | 属性特征说明


IGRGroupHeader.IncludeFooter 属性

IGRGroupHeader.IncludeFooter(包括分组尾) 属性

为占列式分组头时，获取或设置分组尾是否被包含在占列分组中的标志。

VARIANT_BOOL IncludeFooter

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | IGRGroupHeader.VAlign 属性 | IGRGroupHeader.OccupiedColumns 属性 | IGRGroupHeader.OccupyColumn 属性 | IGRGroupHeader.SameAsColumn 属性 | 属性特征说明


IGRGroupHeader.OccupyColumn 属性

IGRGroupHeader.OccupyColumn(占列式) 属性

获取或设置是否为占列式分组头的标志。

VARIANT_BOOL OccupyColumn

默认值

FALSE

特征

可读写

设计器中可见

说明

当 OccupyColumn 属性为真时，在输出显示时，分组头不是独立占据一个水平带状区域，而是在 OccupiedColumns 属性指定列的显示区域中与内容行一起显示。OccupiedColumns 属性指定的列本身的输出显示被忽略掉。

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | IGRGroupHeader.VAlign 属性 | IGRGroupHeader.IncludeFooter 属性 | IGRGroupHeader.OccupiedColumns 属性 | IGRGroupHeader.SameAsColumn 属性 | 属性特征说明


IGRGroupHeader.OccupiedColumns 属性

IGRGroupHeader.OccupiedColumns(占据列) 属性

为占列式分组头时，指定占据列的名称。

BSTR OccupiedColumns

特征

可读写

设计器中可见

说明

如果要占据多个列，列名称之间用分号（;）隔开。

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | IGRGroupHeader.VAlign 属性 | IGRGroupHeader.IncludeFooter 属性 | IGRGroupHeader.OccupyColumn 属性 | IGRGroupHeader.SameAsColumn 属性 | 属性特征说明


IGRGroupHeader.SameAsColumn 属性

IGRGroupHeader.SameAsColumn(显示同列) 属性

为占列式分组头时，获取或设置是否采用占据列的内容格定义进行显示的标志。

VARIANT_BOOL SameAsColumn

默认值

FALSE

特征

可读写

设计器中可见

说明

为占列式分组头时，输出定义采用列内容格的定义。当此属性为真时，分组头中不用定义任何显示部件框，此时在报表设计器中禁止向此分组头插入部件框。

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | IGRGroupHeader.VAlign 属性 | IGRGroupHeader.IncludeFooter 属性 | IGRGroupHeader.OccupiedColumns 属性 | IGRGroupHeader.OccupyColumn 属性 | 属性特征说明


IGRGroupHeader.NewPageColumn 属性

IGRGroupHeader.NewPageColumn(换新页栏) 属性

指定强制换新页栏的方式。

GRNewPageColumnStyle NewPageColumn

默认值

drncsNone

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | GRNewPageColumnStyle 枚举 | 属性特征说明


IGRGroupFooter.PrintAtBottom 属性

IGRGroupFooter.PrintAtBottom(打印在页底) 属性

打印输出时，指定是否将本节显示在页面底部。

VARIANT_BOOL PrintAtBottom

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupFooter 接口 | IGRGroupFooter 成员 | 属性特征说明


IGRGroup.ByFields 属性

IGRGroup.ByFields(依据字段) 属性

获取或设置分组依据字段的名称。

BSTR ByFields

特征

可读写

设计器中可见

说明

如果要根据多个字段进行分组，字段名称之间用分号（;）隔开。如果本属性值为空，则为全程分局，即全部明细记录只产生一个分组项。

请参见

IGRGroup 接口 | IGRGroup 成员 | IGRField 接口 | IGRGroup.PageGroup 属性 | IGRDetailGrid.StartNewGroup 方法 | 属性特征说明


IGRGroup.Footer 属性

获取本分组拥有的分组尾对象的接口引用。

IGRGroupFooter *Footer

特征

只读

请参见

IGRGroup 接口 | IGRGroup 成员 | IGRGroupFooter 接口 | IGRGroup.Header 属性 | 属性特征说明


IGRGroup.Header 属性

获取本分组拥有的分组头对象的接口引用。

IGRGroupHeader *Header

特征

只读

请参见

IGRGroup 接口 | IGRGroup 成员 | IGRGroupHeader 接口 | IGRGroup.Footer 属性 | 属性特征说明


IGRGroup.Name 属性

IGRGroup.Name(名称) 属性

获取或设置分组的名称标识。

BSTR Name

特征

可读写

设计器中可见

说明

分组的名称与其拥有的分组头与分组尾的名称保持相同。当改变三者中任何一个名称都会引起其它两个名称跟随改变。

请参见

IGRGroup 接口 | IGRGroup 成员 | 属性特征说明


IGRGroup.Parent 属性

获取父对象引用，亦即明细网格的接口引用。

IGRDetailGrid *Parent

特征

可读写

请参见

IGRGroup 接口 | IGRGroup 成员 | IGRDetailGrid 接口 | 属性特征说明


IGRGroups.Item 属性

根据分组的顺序号或名称得到列分组接口引用。

IGRGroup *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定分组的顺序号或名称，分组的顺序号从一开始。

请参见

IGRGroups 接口 | IGRGroups 成员 | IGRGroup 接口 | 属性特征说明


IGRGroups.Count 属性

指示拥有分组的个数。

LONG Count

特征

只读

请参见

IGRGroups 接口 | IGRGroups 成员 | 属性特征说明


IGRGroups._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRGroups 接口 | IGRGroups 成员 | 属性特征说明


IGRGroups.Add 方法

增加一个分组并返回新增分组的接口引用。

IGRGroup *Add(void);

返回值

IGRGroup *

新增分组的接口引用。

请参见

IGRGroups 接口 | IGRGroups 成员 | IGRGroup 接口


IGRGroups.Remove 方法

根据分组的顺序号或名称将分组移除，在输入参数种指定要移除分组的顺序号或名称。

void Remove(VARIANT Index);

参数

VARIANT Index

指定分组的顺序号或名称。

请参见

IGRGroups 接口 | IGRGroups 成员


IGRGroups.RemoveAll 方法

清除全部分组。

void RemoveAll(void);

请参见

IGRGroups 接口 | IGRGroups 成员


IGRGroups.IndexByName 方法

根据分组的名称取得其顺序号，如果不存在与名称匹配的分组，则返回-1。分组的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的分组，返回其顺序号，否则返回-1。

参数

BSTR Name

指定分组的名称。

请参见

IGRGroups 接口 | IGRGroups 成员


IGRPrinter.PaperLength 属性

获取或设置打印纸张的长度。

DOUBLE PaperLength

特征

可读写

仅用于打印

说明

以报表使用的计量单位表示属性值。只有当设置纸张类型为自定义纸张时，设置本属性才生效。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PaperWidth 属性 | IGRPrinter.PaperSize 属性 | 属性特征说明


IGRPrinter.PaperWidth 属性

获取或设置打印纸张的宽度。

DOUBLE PaperWidth

特征

可读写

仅用于打印

说明

以报表使用的计量单位表示属性值。只有当设置纸张类型为自定义纸张时，设置本属性才生效。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PaperLength 属性 | IGRPrinter.PaperSize 属性 | 属性特征说明


IGRPrinter.LeftMargin 属性

页面的左边距。

DOUBLE LeftMargin

默认值

2.5

特征

可读写

设计器中可见

仅用于打印

说明

以报表使用的计量单位表示属性值。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.BottomMargin 属性 | IGRPrinter.RightMargin 属性 | IGRPrinter.TopMargin 属性 | 属性特征说明


IGRPrinter.TopMargin 属性

页面的上边距。

DOUBLE TopMargin

默认值

2.5

特征

可读写

设计器中可见

仅用于打印

说明

以报表使用的计量单位表示属性值。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.BottomMargin 属性 | IGRPrinter.LeftMargin 属性 | IGRPrinter.RightMargin 属性 | 属性特征说明


IGRPrinter.RightMargin 属性

页面的右边距。

DOUBLE RightMargin

默认值

2.5

特征

可读写

设计器中可见

仅用于打印

说明

以报表使用的计量单位表示属性值。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.BottomMargin 属性 | IGRPrinter.LeftMargin 属性 | IGRPrinter.TopMargin 属性 | 属性特征说明


IGRPrinter.BottomMargin 属性

页面的下边距。

DOUBLE BottomMargin

默认值

2.5

特征

可读写

设计器中可见

仅用于打印

说明

以报表使用的计量单位表示属性值。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.LeftMargin 属性 | IGRPrinter.RightMargin 属性 | IGRPrinter.TopMargin 属性 | 属性特征说明


IGRPrinter.PaperName 属性

打印纸张的名称。

BSTR PaperName

默认值

A4

特征

可读写

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PaperLength 属性 | IGRPrinter.PaperWidth 属性 | IGRPrinter.PaperName 属性 | 属性特征说明


IGRPrinter.PaperOrientation 属性

打印纸张的方向。

GRPaperOrientation PaperOrientation

默认值

Portrait

特征

可读写

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRPaperOrientation 枚举 | 属性特征说明


IGRFields.Item 属性

根据字段的顺序号或名称得到字段的接口引用。

IGRField *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定字段的顺序号或名称，字段的顺序号从一开始。

请参见

IGRFields 接口 | IGRFields 成员 | IGRField 接口 | 属性特征说明


IGRFields.Count 属性

指示拥有字段的个数。

LONG Count

特征

只读

请参见

IGRFields 接口 | IGRFields 成员 | 属性特征说明


IGRFields._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRFields 接口 | IGRFields 成员 | 属性特征说明


IGRFields.Add 方法

根据字段类型参数增加一个字段并返回新增字段的接口引用。

IGRField *Add(void);

返回值

IGRField *

新增字段的接口引用。

请参见

IGRFields 接口 | IGRFields 成员 | IGRField 接口


IGRFields.Remove 方法

根据字段的顺序号或名称将字段移除，在输入参数种指定要移除字段的顺序号或名称。

void Remove(VARIANT Index);

参数

VARIANT Index

指定字段的顺序号或名称。

请参见

IGRFields 接口 | IGRFields 成员


IGRFields.RemoveAll 方法

清除全部字段。

void RemoveAll(void);

请参见

IGRFields 接口 | IGRFields 成员


IGRFields.IndexByName 方法

根据字段的名称取得其顺序号，如果不存在与名称匹配的字段，则返回-1。字段的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的字段，返回其顺序号，否则返回-1。

参数

BSTR Name

指定字段的名称。

请参见

IGRFields 接口 | IGRFields 成员


IGRField.DisplayText 属性

获取或设置部件框的输出显示文本。

BSTR DisplayText

特征

可读写

仅运行时可用

说明

获取或设置部件框的输出显示文本。只有在运行时才能使用本属性，当不能由Grid++Report根据字段的值自动产生显示文本时，在FieldGetDisplayText事件中为字段的DisplayText属性赋一个新的显示文本。

例如当需要将金额的负数值显示为红字时，需要将数字显示文字前面的负号去掉，就必须响应FieldGetDisplayText事件并使用DisplayText属性。

请参见

IGRField 接口 | IGRField 成员 | IGridppReport.FieldGetDisplayText 事件 | IGRField.GetDisplayTextScript 属性 | 属性特征说明


IGRField.IsNull 属性

获取字段值是否为空的标志。

VARIANT_BOOL IsNull

特征

只读

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | IGRField.Clear 方法 | 属性特征说明


IGRField.Name 属性

IGRField.Name(名称) 属性

获取或设置字段的名称标识。

BSTR Name

特征

可读写

设计器中可见

请参见

IGRField 接口 | IGRField 成员 | IGridppReport.FieldByName 方法 | IGridppReport.FieldByDBName 方法 | IGRField.RunningDBField 属性 | IGRField.DBFieldName 属性 | 属性特征说明


IGRField.FieldType 属性

IGRField.FieldType(类型) 属性

获取或设置字段的数据类型。

GRFieldType FieldType

默认值

grftString

特征

可读写

设计器中可见

请参见

IGRField 接口 | IGRField 成员 | GRFieldType 枚举 | 属性特征说明


GRPrintType 枚举

指定报表元素的打印类别。

成员名称 | 枚举值 | 说明
grptForm | 1 | 表单固定数据，在套打输出内容时不输出。
grptContent | 2 | 表单内容数据，在套打输出内容时输出。

说明

包括两种打印类别：报表表单数据（Form），报表内容数据（Content）。

打印生成时，如果指定打印生成方式（PrintGenerateStyle）为只输出报表内容数据（OnlyContent）,则只输出打印类别为报表内容数据的报表元素，其它打印类别为报表表单数据的报表元素将不会输出。在只输出报表内容数据时，报表节的背景色不会填充，明细网格的边框线与行列线也不会输出。在只输出报表内容数据的打印生成方式特别适用于进行票据套打与现存格式报表的套打。

打印生成时，如果指定印生成方式（PrintGenerateStyle）为输出报表表单数据（OnlyForm）,生成方式与只输出报表内容数据（OnlyContent）反之对应。在此种方式下，明细网格的记录数据不会应用到，明细行的生成与明细记录不对应，不填充明细记录页可以输出报表表单数据。报表表单数据一般只生成一页，用来制作票据与固定格式报表的印刷模版。

打印生成时，如果指定印生成方式（PrintGenerateStyle）为输出全部数据（All）,则所有数据都会输出，这也是我们平时最多用到的方式。

可以指定打印类别的报表元素包括部件框，明细网格标题格，明细网格内容格。

请参见

IGRControl.PrintType 属性 | IGRColumnCell.PrintType 属性 | IGRDetailGrid.GridLinePrintType 属性 | IGRDetailGrid.BorderPrintType 属性


IGRControl.PrintType 属性

IGRControl.PrintType(打印类别) 属性

部件框的打印输出方式。

GRPrintType PrintType

特征

可读写

设计器中可见

仅用于打印

请参见

IGRControl 接口 | IGRControl 成员 | GRPrintType 枚举 | GRPrintGenerateStyle 枚举 | IGridppReport.PrintEx 方法 | IGridppReport.PrintPreviewEx 方法 | IGRPrintViewer.GenerateStyle 属性 | 属性特征说明


IGRSection.Parent 属性

父对象的IUnknown接口引用。

IUnknown *Parent

特征

只读

请参见

IGRSection 接口 | IGRSection 成员 | 属性特征说明


IGRSection.SectionType 属性

指示报表节的具体类型。

GRSectionType SectionType

特征

只读

请参见

IGRSection 接口 | IGRSection 成员 | GRSectionType 枚举 | 属性特征说明


IGRSection.Height 属性

IGRSection.Height(高度) 属性

报表节的高度。

DOUBLE Height

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的节的高度值，如果高度值为零，则本节再生成时将被忽略掉。

请参见

IGRSection 接口 | IGRSection 成员 | 属性特征说明


IGRGroupSection.Group 属性

获取拥有本分组节的分组对象的接口引用。

IGRGroup *Group

特征

只读

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | IGRGroup 接口 | 属性特征说明


IGRColumnTitle.RepeatStyle 属性

IGRColumnTitle.RepeatStyle(重复打印方式) 属性

在打印生成时，指定明细网格标题的重复输出方式。

GRRepeatStyle RepeatStyle

默认值

drrsNone

特征

可读写

设计器中可见

仅用于打印

说明

一般标题行只在明细网格的开始位置输出显示一次，当指定重复方式之后，标题行就可以多次输出。

请参见

IGRColumnTitle 接口 | IGRColumnTitle 成员 | GRRepeatStyle 枚举 | 属性特征说明


IGRColumnTitle.TitleCells 属性

获取拥有的标题格集合对象的接口引用。

IGRColumnTitleCells *TitleCells

特征

只读

请参见

IGRColumnTitle 接口 | IGRColumnTitle 成员 | IGRColumnTitleCells 接口 | 属性特征说明


IGridppReport.AlignToGrid 属性

IGridppReport.AlignToGrid(对齐到栅格点) 属性

当在设计器中设计报表模板时，是否将部件框的边框对齐到设计栅格点。

VARIANT_BOOL AlignToGrid

默认值

TRUE

特征

可读写

仅用于设计

说明

如果本属性为真时，通过鼠标拖放改变部件框的位置与大小，设计器将强制部件边框对齐到设计栅格点，但通过其他方式改变部件框的位置与大小时，不受此属性约束。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.GridColsPerUnit 属性 | IGridppReport.GridRowsPerUnit 属性 | IGridppReport.ShowGrid 属性 | 属性特征说明


IGRDetailGrid.BackColor 属性

IGRDetailGrid.BackColor(背景色) 属性

指定明细网格的标题行、内容行、分组头与分组尾的默认背景色。

OLE_COLOR BackColor

特征

可读写

设计器中可见

说明

此属性作为明细网格拥有的各种子对象的缺省背景色。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | 属性特征说明


IGRDetailGrid.Font 属性

IGRDetailGrid.Font(字体) 属性

获取明细网格拥有的子对象的缺省字体对象的接口引用。

IGRFont *Font

特征

只读

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRFont 接口 | 属性特征说明


IGRRecordset.Fields 属性

拥有的字段集合对象的接口引用。

IGRFields *Fields

特征

只读

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRFields 接口 | 属性特征说明


IGRControl.AlignColumnSide 属性

IGRControl.AlignColumnSide(对齐列方式) 属性

部件框对齐到明细网格列的方式。

GRAlignColumnStyle AlignColumnSide

默认值

dracsBoth

特征

可读写

设计器中可见

说明

注意：只有当部件框在分组头与分组尾中时才能使用本属性。

请参见

IGRControl 接口 | IGRControl 成员 | GRAlignColumnStyle 枚举 | IGRControl.AlignColumn 属性 | 属性特征说明


GRAlignColumnStyle 枚举

指定用来对齐部件框到明细网格列方式。

成员名称 | 枚举值 | 说明
gracsLeft | 1 | 对齐到列的左端。
gracsRight | 2 | 对齐到列的右端。
gracsBoth | 3 | 对齐到列的左右两端，部件框宽度与列保持一致。

请参见

IGRControl.AlignColumn 属性 | IGRControl 接口 | IGRControl.AlignColumnSide 属性


IGRDetailGrid.BorderColor 属性

IGRDetailGrid.BorderColor(边框颜色) 属性

边框线颜色。

OLE_COLOR BorderColor

默认值

Black

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.BorderStyles 属性 | IGRDetailGrid.BorderWidth 属性 | 属性特征说明


IGRDetailGrid.BorderWidth 属性

IGRDetailGrid.BorderWidth(边框宽度) 属性

边框线宽度。

FLOAT BorderWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素作为计量单位，默认是 1。本属性值可以为小数，可以更精细控制线条在打印输出时的粗细。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.BorderColor 属性 | IGRDetailGrid.BorderStyles 属性 | 属性特征说明


IGRDetailGrid.BorderStyles 属性

IGRDetailGrid.BorderStyles(边框模式) 属性

指定网格边框线的输出方式。

GRBorderStyles BorderStyles

默认值

Left|Top|Right|Bottom

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRBorderStyles 枚举 | IGRDetailGrid.BorderColor 属性 | IGRDetailGrid.BorderWidth 属性 | 属性特征说明


IGRControl.Visible 属性

IGRControl.Visible(可见性) 属性

是否显示部件框的标志。

VARIANT_BOOL Visible

默认值

TRUE

特征

可读写

设计器中可见

说明

当此属性为假时，部件框在输出时将被忽略掉。

请参见

IGRControl 接口 | IGRControl 成员 | 属性特征说明


IGRColumnSection.KeepTogether 属性

IGRColumnSection.KeepTogether(保持同页) 属性

指定是否保持整个行打印生成在同一页。

VARIANT_BOOL KeepTogether

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

说明

如果本属性值为真，在当前页中不能够完整显示本节时，换新页并将本节在新页中输出。反之本节有可能被分割输出在两页中。

请参见

IGRColumnSection 接口 | IGRColumnSection 成员 | 属性特征说明


IGRDetailGrid.NewPage 属性

IGRDetailGrid.NewPage(换新页) 属性

打印生成时，指定强制换新页的方式。

GRNewPageStyle NewPage

默认值

None

特征

可读写

设计器中可见

仅用于打印

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRNewPageStyle 枚举 | 属性特征说明


IGRReportFooter.RepeatOnPage 属性

IGRReportFooter.RepeatOnPage(每页重复打印) 属性

打印输出时，是否在每页中重复显示的标志。

VARIANT_BOOL RepeatOnPage

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportFooter 接口 | IGRReportFooter 成员 | 属性特征说明


IGRReportHeader.RepeatOnPage 属性

IGRReportHeader.RepeatOnPage(每页重复打印) 属性

是否在每页中重复输出显示标志。

VARIANT_BOOL RepeatOnPage

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRReportHeader 接口 | IGRReportHeader 成员 | 属性特征说明


IGRColumnCell.PrintType 属性

IGRColumnCell.PrintType(打印类别) 属性

指定单元格的打印生成类别。

GRPrintType PrintType

默认值

grptContent

特征

可读写

设计器中可见

说明

注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | GRPrintType 枚举 | IGridppReport.PrintEx 方法 | IGridppReport.PrintPreviewEx 方法 | IGRPrintViewer.GenerateStyle 属性 | GRPrintGenerateStyle 枚举 | IGRDetailGrid.GridLinePrintType 属性 | IGRDetailGrid.BorderPrintType 属性 | 属性特征说明


IGRColumnContent.RowsPerPage 属性

IGRColumnContent.RowsPerPage(每页行数) 属性

打印生成时，指定在一页中显示的行数。

SHORT RowsPerPage

默认值

0

特征

可读写

设计器中可见

仅用于打印

说明

指定打印生成时一页中显示的内容行个数。当本属性等于 0 时，按照内容行的设计高度输出显示内容行，每页中显示内容行的个数为页中可以容纳行的个数。当本属性大于 0 时，每页中显示的内容行个数为 RowsPerPage。默认为 0。

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | IGRColumnContent.AdjustRowHeight 属性 | IGRGroupFooter.AppendBlankRowExclude 属性 | IGRReportFooter.AppendBlankRowExclude 属性 | 属性特征说明


IGRDetailGrid.AppendBlankRow 属性

IGRDetailGrid.AppendBlankRow(追加空白行) 属性

打印输出时，是否在页的剩余区域补充显示空白内容行的标志。

VARIANT_BOOL AppendBlankRow

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AppendBlankCol 属性 | IGRDetailGrid.AppendBlankRowAtLast 属性 | IGRGroupFooter.AppendBlankRowExclude 属性 | IGRReportFooter.AppendBlankRowExclude 属性 | 属性特征说明


IGRDetailGrid.PrintAdaptMethod 属性

IGRDetailGrid.PrintAdaptMethod(打印策略) 属性

打印输出时，根据输出页面的情况，指定列的输出策略。

GRColumnPrintAdaptMethod PrintAdaptMethod

默认值

grpamShrinkToFit

特征

可读写

设计器中可见

仅用于打印

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRColumnPrintAdaptMethod 枚举 | IGRDetailGrid.PrintAdaptRepeat 属性 | IGRDetailGrid.PrintAdaptFitText 属性 | IGRDetailGrid.PrintAdaptRFCStep 属性 | IGRGroupSection.HNewPageFixed 属性 | 属性特征说明


IGridppReport.PageDivideCount 属性

IGridppReport.PageDivideCount(页分割数) 属性

打印输出时，纸张在垂直方向上的均分个数。

SHORT PageDivideCount

默认值

1

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageDivideLine 属性 | IGridppReport.PageDivideSpacing 属性 | 属性特征说明


IGridppReport.PageDivideLine 属性

IGridppReport.PageDivideLine(页分割线) 属性

打印输出时，是否显示纸张在垂直方向均分的分隔线。

VARIANT_BOOL PageDivideLine

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageDivideCount 属性 | IGridppReport.PageDivideSpacing 属性 | 属性特征说明


IGridppReport.PageDivideSpacing 属性

IGridppReport.PageDivideSpacing(页分割间隙) 属性

打印输出时，纸张在垂直方向均分时的分隔间距。

DOUBLE PageDivideSpacing

默认值

0

特征

可读写

设计器中可见

仅用于打印

说明

以报表使用的计量单位表示属性值。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageDivideCount 属性 | IGridppReport.PageDivideLine 属性 | 属性特征说明


IGridppReport.Parameters 属性

IGridppReport.Parameters(参数集合) 属性

获取参数集合对象的接口引用。

IGRParameters *Parameters

特征

只读

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRParameters 接口 | 属性特征说明


IGridppReport.ShowGrid 属性

IGridppReport.ShowGrid(显示栅格点) 属性

获取或设置是否在设计器中显示设计栅格点的标志。

VARIANT_BOOL ShowGrid

默认值

TRUE

特征

可读写

设计器中可见

仅用于设计

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AlignToGrid 属性 | IGridppReport.GridColsPerUnit 属性 | IGridppReport.GridRowsPerUnit 属性 | 属性特征说明


IGridppReport.Title 属性

IGridppReport.Title(标题) 属性

指定报表文档的标题文字。

BSTR Title

特征

可读写

设计器中可见

说明

当打印输出报表时，打印文档的标题是此属性的值。

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGridppReport.Version 属性

指示Grid++Report的当前运行版本。

BSTR Version

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGRGroup.PageGroup 属性

IGRGroup.PageGroup(按页分组) 属性

获取或设置本分组是否为页分组的标志。

VARIANT_BOOL PageGroup

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

如果本属性为真，表示分组按打印页进行归类，即每个打印页生成一个分组项。按页分组在查询显示器中不应用。

请参见

IGRGroup 接口 | IGRGroup 成员 | IGRGroup.ByFields 属性 | IGRDetailGrid.StartNewGroup 方法 | 属性特征说明


IGRShapeBox.CornerDx 属性

IGRShapeBox.CornerDx(圆角椭圆宽度) 属性

圆角矩形框的圆角椭圆宽度。

SHORT CornerDx

默认值

4

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | IGRShapeBox.CornerDy 属性 | IGRShapeBox.ShapeType 属性 | 属性特征说明


IGRShapeBox.CornerDy 属性

IGRShapeBox.CornerDy(圆角椭圆高度) 属性

圆角矩形框的圆角椭圆高度。

SHORT CornerDy

默认值

4

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | IGRShapeBox.CornerDx 属性 | IGRShapeBox.ShapeType 属性 | 属性特征说明


IGRShapeBox.FillColor 属性

IGRShapeBox.FillColor(填充颜色) 属性

封闭图形对象的内部填充色。

OLE_COLOR FillColor

默认值

grclBlack

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | IGRShapeBox.FillStyle 属性 | 属性特征说明


IGRShapeBox.FillStyle 属性

IGRShapeBox.FillStyle(填充方式) 属性

封闭图形对象的内部填充方式。

GRBackStyle FillStyle

默认值

grbkTransparent

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | GRBackStyle 枚举 | IGRShapeBox.FillColor 属性 | 属性特征说明


IGRShapeBox.PenColor 属性

IGRShapeBox.PenColor(画笔颜色) 属性

画图形线条的颜色。

OLE_COLOR PenColor

默认值

grclBlack

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | IGRShapeBox.PenStyle 属性 | IGRShapeBox.PenWidth 属性 | 属性特征说明


IGRShapeBox.PenStyle 属性

IGRShapeBox.PenStyle(画笔样式) 属性

指定画线条的画笔类型。

GRPenStyle PenStyle

默认值

grpsSolid

特征

可读写

设计器中可见

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | GRPenStyle 枚举 | IGRShapeBox.PenColor 属性 | IGRShapeBox.PenWidth 属性 | 属性特征说明


IGRShapeBox.PenWidth 属性

IGRShapeBox.PenWidth(画笔宽度) 属性

指定画线条的画笔的宽度。

FLOAT PenWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素表示属性值。

请参见

IGRShapeBox 接口 | IGRShapeBox 成员 | IGRShapeBox.PenColor 属性 | IGRShapeBox.PenStyle 属性 | 属性特征说明


IGRSummaryBox.Format 属性

IGRSummaryBox.Format(格式) 属性

统计值生成显示文字所应用的格式串。

BSTR Format

特征

可读写

设计器中可见

请参见

IGRSummaryBox 接口 | IGRSummaryBox 成员 | 属性特征说明


IGRSummaryBox.Value 属性

IGRSummaryBox.Value(值) 属性

再生成过程中，统计部件框的当前统计值。

FLOAT Value

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRSummaryBox 接口 | IGRSummaryBox 成员 | 属性特征说明


IGRSystemVarBox.Format 属性

IGRSystemVarBox.Format(格式) 属性

系统变量值生成显示文字所应用的格式串。

BSTR Format

特征

可读写

设计器中可见

请参见

IGRSystemVarBox 接口 | IGRSystemVarBox 成员 | 属性特征说明


IGRStaticBox.Parameter 属性

IGRStaticBox.Parameter(参数) 属性

指定关联参数对象的名称。

BSTR Parameter

特征

可读写

设计器中可见

请参见

IGRStaticBox 接口 | IGRStaticBox 成员 | IGRParameter 接口 | 属性特征说明


GRColumnPrintAdaptMethod 枚举

打印生成时，明细网格列对输出页面的适应方法。

成员名称 | 枚举值 | 说明
grcpamDiscard | 1 | 在打印输出时，超出页面输出范围的列内容将被忽略掉，即不输出显示。
grcpamWrap | 2 | 在打印输出时，超出页面输出范围的列内容将另起新行输出显示。
grcpamResizeToFit | 3 | 在打印输出时，根据列的宽度按比列将所有要输出的列的总宽度调整到页面输出区域的宽度。
grcpamShrinkToFit | 4 | 在打印输出时，如果列的总宽度超出页面输出范围，与grcpamResizeToFit相同，反之按设计时宽度输出。
grcpamToNewPage | 5 | 在打印输出时，超出页面输出范围的列内容将另起新页输出显示，按先从上到下的顺序输出。
grcpamToNewPageEx | 6 | 在打印输出时，超出页面输出范围的列内容将另起新页输出显示，按先从左到右的顺序输出。
grcpamToNewPageRFC | 7 | 在打印输出时，超出页面输出范围的列内容将另起新页输出显示，且左边的固定列在每页中重复输出，按先从上到下的顺序输出。
grcpamToNewPageRFCEx | 8 | 在打印输出时，超出页面输出范围的列内容将另起新页输出显示，且左边的固定列在每页中重复输出，按先从左到右的顺序输出。

说明

在打印输出到纸张页面中，输出列的总宽度与页面的输出宽度（除掉左右页边距的宽度）很可能不一样，系统可以采用几种方法来处理列的输出。如采用调整列的宽度以适应输出区域的宽度，则系统根据每个列的设计宽度按比列调整其打印输出宽度，使所有打印输出列的打印输出总宽度与打印输出区域宽度保持一样；如果列的设计总宽度小于输出区域宽度，所有列的打印宽度将放大，反之则缩小。

请参见

IGRDetailGrid.PrintAdaptMethod 属性 | IGRDetailGrid 接口


IGRParameter 概述

IGRParameter 接口

表示报表中的可变参数值。报表拥有一组参数，参数在报表运行时可以通过编程的方式改变其值。

有关此接口所有成员的列表，请参阅 IGRParameter 成员。

IDispatch
IGRParameter

说明

参数对象用来在报表运行时存储生成过程中的数据，参数具有多种数据类型，参数可以被静态框关联，静态框输出参数当前值的显示文本。报表开发者可以在报表生成过程中的事件中读取与设置参数的值，例如利用参数，我们可以进行自定义的数据统计计算。

请参见

IGRParameter 成员 | IGRStaticBox 接口 | IGRCrossTab.BeginDateParameter 属性 | IGRCrossTab.EndDateParameter 属性 | IGridppReport.AddParameter 方法 | IGRParameters.Item 属性 | IGRParameters.Add 方法 | IGridppReport.ParameterByName 方法


IGRParameter成员

IGRParameter 概述

公共属性

AsBoolean | 获取或设置布尔值，只有当为布尔类型参数时才能成功使用此属性。
AsDateTime | 获取或设置日期时间值，只有当为日期时间类型参数时才能成功使用此属性。
AsFloat | 获取或设置浮点数值，只有当为浮点数类型参数时才能成功使用此属性。
AsInteger | 获取或设置整数值，只有当为整数类型参数时才能成功使用此属性。
AsString | 获取或设置文本值，只有当为文本类型参数时才能成功使用此属性。
DataType | 指示参数的数据类型。
DisplayText | 参数的输出显示文本。
Format | 整数、浮点数、日期时间类型的参数生成输出显示文本的格式串。
IsNull | 参数的值是否为空标志。
Name | 参数的名称标识。
Value | 参数的值。

请参见

IGRParameter 接口 | IGRStaticBox 接口 | IGRCrossTab.BeginDateParameter 属性 | IGRCrossTab.EndDateParameter 属性 | IGridppReport.AddParameter 方法 | IGRParameters.Item 属性 | IGRParameters.Add 方法 | IGridppReport.ParameterByName 方法


IGRDetailGrid.ClearColumns 方法

删除所有的列。

void ClearColumns(void);

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AddColumn 方法 | IGRDetailGrid.ColumnMoveToEnd 方法 | IGRDetailGrid.Columns 属性


IGRSection.Controls 属性

获取拥有的部件框集合对象的接口引用。

IGRControls *Controls

特征

只读

请参见

IGRSection 接口 | IGRSection 成员 | IGRControls 接口 | 属性特征说明


IGridppReport.About 方法

显示Grid++Report关于对话框。

void About(void);

请参见

IGridppReport 接口 | IGridppReport 成员


IGridppReport.AddParameter 方法

增加一个参数定义。

IGRParameter *AddParameter(BSTR Name, GRParameterDataType Type);

返回值

IGRParameter *

返回新增参数对象的接口引用。

参数

BSTR Name

指定参数的名称标识。

GRParameterDataType Type

指定参数的类型。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRParameter 接口 | GRParameterDataType 枚举 | IGridppReport.ParameterByName 方法


IGridppReport.BeginLoopPrint 方法

准备开始循环打印。

void BeginLoopPrint(GRPrintGenerateStyle GenerateStyle, VARIANT_BOOL ShowPrintDlg);

参数

GRPrintGenerateStyle GenerateStyle

指定打印数据的生成方式。

VARIANT_BOOL ShowPrintDlg

指定是否显示打印对话框。

说明

BeginLoopPrint,LoopPrint,EndLoopPrint三个方法必须在一起调用，在要进行循环打印开始时调用BeginLoopPrint，在循环打印完成时调用EndLoopPrint，在中间根据需要多次调用LoopPrint。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPrintGenerateStyle 枚举 | IGridppReport.LoopPrint 方法 | IGridppReport.EndLoopPrint 方法 | IGridppReport.Print 方法 | IGridppReport.PrintEx 方法


IGridppReport.Clear 方法

清除所有的报表模板定义数据，使报表主对象成为一张空白报表。

void Clear(void);

说明

如果要用完全编程的方式定义报表模板数据，在定义数据之前，有必要调用此方法将已存在的旧数据全部清除掉。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromFile 方法 | IGridppReport.IsBlank 属性


IGridppReport.ControlByName 方法

从报表主对象包括的所有部件框中根据部件框名称找到对应部件框对象的接口引用。

IGRControl *ControlByName(BSTR Name);

返回值

IGRControl *

如果找到名称匹配的部件框，则返回该部件框对象的接口引用，否则返回NULL。

参数

BSTR Name

指定部件框的名称标识。

说明

注意：匹配名称时不区分字母的大小写。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRControl 接口 | IGridppReport.FindFirstControl 方法 | IGridppReport.FindNextControl 方法 | IGridppReport.ColumnByName 方法 | IGridppReport.FieldByName 方法 | IGridppReport.ParameterByName 方法


IGridppReport.EndLoopPrint 方法

结束循环打印。

void EndLoopPrint(void);

请参见

IGridppReport 接口 | IGridppReport 成员


IGridppReport.FieldByName 方法

根据字段名称得到匹配字段对象的接口引用。

IGRField *FieldByName(BSTR Name);

返回值

IGRField *

如果找到名称匹配的字段，则返回该字段对象的接口引用，否则返回NULL。

参数

BSTR Name

指定字段的名称。

说明

注意：匹配名称时不区分字母的大小写。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRField 接口 | IGRField 接口 | IGRField.Name 属性 | IGridppReport.ColumnByName 方法 | IGridppReport.ControlByName 方法 | IGridppReport.ParameterByName 方法 | IGridppReport.FieldByDBName 方法


IGridppReport.InsertDetailGrid 方法

向报表主对象插入明细网格，使报表主对象具有明细网格。

IGRDetailGrid *InsertDetailGrid(void);

返回值

IGRDetailGrid *

明细网格接口引用。

说明

只有当报表主对象不存在明细网格对象时，才能成功插入明细网格，报表主对象只能拥有一个明细网格。此方法一般在以编程方式定义报表模板时使用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRDetailGrid 接口 | IGridppReport.DetailGrid 属性 | IGRDetailGrid 接口 | IGridppReport.InsertPageFooter 方法 | IGridppReport.InsertPageHeader 方法 | IGridppReport.InsertReportFooter 方法 | IGridppReport.InsertReportHeader 方法


IGridppReport.LoadFromFile 方法

从报表模板文件中载入报表模板定义。

VARIANT_BOOL LoadFromFile(BSTR FileName);

返回值

VARIANT_BOOL

指示载入报表模板数据是否成功。

参数

BSTR FileName

指定模板文件的完全路径名称。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SaveToFile 方法 | IGridppReport.Clear 方法 | IGridppReport.LoadFromMemory 方法 | IGridppReport.LoadFromStr 方法 | IGridppReport.LoadFromVariant 方法


IGridppReport.LoopPrint 方法

在循环打印过程中，执行一次打印生成过程。

void LoopPrint(void);

说明

每调用一次LoopPrint方法，就会首先生成报表数据，然后生成打印页面数据，最后将打印页面数据送至打印机进行打印输出。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BeginLoopPrint 方法 | IGridppReport.EndLoopPrint 方法 | IGridppReport.Print 方法 | IGridppReport.PrintEx 方法


IGridppReport.PixelsToUnit 方法

将屏幕像素值转换为报表当前使用的计量单位值。

DOUBLE PixelsToUnit(LONG Pixels);

返回值

DOUBLE

转换得到的计量单位值。

参数

LONG Pixels

指定要转换的屏幕像素值。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.Unit 属性 | IGridppReport.UnitToPixels 方法


IGridppReport.PrintEx 方法

打印报表,按指定方式生成生成打印数据。

void PrintEx(GRPrintGenerateStyle GenerateStyle, VARIANT_BOOL ShowPrintDialog);

参数

GRPrintGenerateStyle GenerateStyle

指定打印数据的生成类型。

VARIANT_BOOL ShowPrintDialog

指示在打印前是否显示打印对话框。

说明

类同 Print 方法。当生成方式为 grpgsAll 时，与 Print 方法完全一样；当成方式为 grpgsOnlyContent 时，生成打印页面时将忽略掉属于表单类型的数据；当成方式为 grpgsOnlyForm 时,不会触发 FetchData 事件，生成打印页面时仅生成属于表单类型的数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPrintGenerateStyle 枚举 | IGridppReport.Print 方法 | IGridppReport.PrintPreview 方法 | IGridppReport.PrintPreviewEx 方法


IGridppReport.Print 方法

执行打印报表。

void Print(VARIANT_BOOL ShowPrintDialog);

参数

VARIANT_BOOL ShowPrintDialog

指示在打印前是否显示打印对话框。

说明

调用此方法后，首先生成报表数据，过程中会触发一系列事件；然后生成打印页面数据，过程中也会触发一系列事件；最后将生成的打印数据送至打印机进行打印。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintEx 方法 | IGridppReport.PrintBegin 事件 | IGridppReport.PrintEnd 事件 | IGridppReport.PrintAborted 事件 | IGridppReport.PrintPage 事件 | IGridppReport.PrintPreview 方法 | IGridppReport.PrintPreviewEx 方法


IGridppReport.PrintPreviewEx 方法

在Grid++Report提供的缺省打印预览窗口中预览报表，可以指定打印数据的生成方式。

void PrintPreviewEx(GRPrintGenerateStyle GenerateStyle, VARIANT_BOOL ShowModal, VARIANT_BOOL MaximizeWindow);

参数

GRPrintGenerateStyle GenerateStyle

指定打印数据的生成方式。

VARIANT_BOOL ShowModal

指定是否以有模的方式显示打印预览窗口。

VARIANT_BOOL MaximizeWindow

指定是否最大化显示打印预览窗口。

说明

类同　PrintPreview　方法。当生成方式为 grpgsAll 时，与 PrintPreview 方法完全一样。当成方式为 grpgsOnlyContent 时，生成打印页面时将忽略掉属于表单类型的数据。当成方式为 grpgsOnlyForm 时,不会触发FetchRecord事件，生成打印页面时仅生成属于表单类型的数据。当成方式为 grpgsPreviewAll 时,预览报表全部内容，但只打印出内容数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPrintGenerateStyle 枚举 | IGridppReport.PrintPreview 方法 | IGridppReport.ShowPreviewWnd 事件 | IGridppReport.Print 方法 | IGridppReport.PrintEx 方法


IGridppReport.PrintPreview 方法

在Grid++Report提供的缺省打印预览窗口中预览报表。

void PrintPreview(VARIANT_BOOL ShowModal);

参数

VARIANT_BOOL ShowModal

指定是否以有模的方式显示窗口。

说明

调用此方法后，首先生成报表数据，过程中会触发一系列事件；然后生成打印页面，过程中也会触发一系列事件；最后打开缺省预览窗口并将生成的打页面显示在窗口中。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintPreviewEx 方法 | IGridppReport.ShowPreviewWnd 事件 | IGridppReport.Print 方法 | IGridppReport.PrintEx 方法


IGridppReport.SaveToFile 方法

将报表模板数据保存到报表模板文件中去。以文本格式保存保存模板数据。

VARIANT_BOOL SaveToFile(BSTR FileName);

返回值

VARIANT_BOOL

指示保存报表模板数据是否成功。

参数

BSTR FileName

指定模板文件的完全路径名称。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromFile 方法 | IGridppReport.SaveToMemory 方法 | IGridppReport.SaveToStr 方法 | IGridppReport.SaveToVariant 方法 | IGridppReport.SaveToFileEx 方法 | IGridppReport.SaveToStrEx 方法


IGRColumnTitleCell.AddSubGroupTitle 方法

在此组标题格中增加一个下级组标题格。

IGRColumnTitleCell *AddSubGroupTitle(BSTR Name, BSTR Title);

返回值

IGRColumnTitleCell *

新增下级组标题格对象的接口引用。

参数

BSTR Name

新增组标题格的名称标识。

BSTR Title

新增组标题格的显示文本。

说明

在一个组标题格中，如果还需要包括下级组标题格，则调用本方法进行定义。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCell.EncloseColumn 方法 | IGRColumnTitleCell.SubTitles 属性 | IGRColumnTitleCell.GroupTitle 属性


IGRColumnTitleCell.EncloseColumn 方法

将一个列对应的标题格包含到此组标题格中，新包含进来的列标题格在显示顺序上处于本组的最后。

void EncloseColumn(VARIANT ColumnIndex);

参数

VARIANT ColumnIndex

指定被包含列的名称或顺序号。

说明

只有当标题格为组标题格时，才能调用本方法。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCell.AddSubGroupTitle 方法 | IGRColumnTitleCell.GroupTitle 属性 | IGRColumnTitleCell.SubTitles 属性


IGRControl.BringToFront 方法

将部件框带到 Z 顺序的前面。

void BringToFront(void);

说明

此部件框将在同一容器中的其它部件框之后输出显示，如果前面输出的部件框与其在位置上有重叠，则此部件框将覆盖前面输出的部件框。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.SendToBack 方法


IGRControl.SendToBack 方法

将部件框发送到 Z 顺序的后面。

void SendToBack(void);

说明

此部件框将在同一容器中的其它部件框之前输出显示，如果后输出的部件框与其在位置上有重叠，则后输出的部件框将覆盖此部件框。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.BringToFront 方法


IGRControl.SetBounds 方法

设置部件框在其父容器中的边界位置。

void SetBounds(DOUBLE left, DOUBLE Top, DOUBLE Right, DOUBLE Bottom);

参数

DOUBLE left

左端位置。

DOUBLE Top

上端位置。

DOUBLE Right

右端位置。

DOUBLE Bottom

下端位置。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.Height 属性 | IGRControl.Left 属性 | IGRControl.Top 属性 | IGRControl.Width 属性


IGRDetailGrid.AddColumn 方法

增加一个新列。

IGRColumn *AddColumn(BSTR Name, BSTR Title, BSTR DataField, DOUBLE Width);

返回值

IGRColumn *

新增列对象的接口引用。

参数

BSTR Name

列的名称标识。

BSTR Title

列的标题文本。

BSTR DataField

列关联的字段名称。

DOUBLE Width

列的宽度。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumn 接口 | IGRDetailGrid.ClearColumns 方法 | IGRDetailGrid.ColumnMoveToEnd 方法 | IGRDetailGrid.Columns 属性


IGRDetailGrid.AddGroupTitle 方法

增加一个新组标题格。

IGRColumnTitleCell *AddGroupTitle(BSTR Name, BSTR Title);

返回值

IGRColumnTitleCell *

返回新增组标题格对象的接口引用。

参数

BSTR Name

指定新增组标题格的名称。

BSTR Title

指定新增组标题格的显示文本。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumnTitleCell 接口 | IGRDetailGrid.ClearGroupTitles 方法 | IGRDetailGrid.FindGroupTitleCell 方法 | IGRColumnTitle.TitleCells 属性


IGRDetailGrid.ClearGroupTitles 方法

删除全部组标题格。

void ClearGroupTitles(void);

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AddGroupTitle 方法 | IGRDetailGrid.FindGroupTitleCell 方法 | IGRColumnTitle.TitleCells 属性


IGRDetailGrid.ColumnMoveToEnd 方法

将列的显示顺序移动到最后。

void ColumnMoveToEnd(VARIANT Index);

参数

VARIANT Index

指定列的标识，可以是列的名称，也可以是列的顺序号。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AddColumn 方法 | IGRDetailGrid.ClearColumns 方法 | IGRColumnTitleCell.EncloseColumn 方法 | IGRDetailGrid.ColumnMoveTo 方法


IGRDetailGrid.FindGroupTitleCell 方法

根据名称找到组标题格对象的接口引用。

IGRColumnTitleCell *FindGroupTitleCell(BSTR Name);

返回值

IGRColumnTitleCell *

名称匹配的组标题格对象的接口引用。

参数

BSTR Name

指定要查找组标题格的名称。

说明

如果存在与输入名称参数匹配的组标题格对象，则返回组标题格对象的接口引用，否则返回NULL。例如使用此方法取得组标题格的接口引用，然后向其中添加包含的列。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRColumnTitleCell 接口 | IGRDetailGrid.AddGroupTitle 方法 | IGRDetailGrid.ClearGroupTitles 方法 | IGRColumnTitle.TitleCells 属性


IGRDetailGrid.StartNewGroup 方法

在报表生成时，开始生成一个新的分组项。

void StartNewGroup(VARIANT Index);

参数

VARIANT Index

指定分组对象的标识，可以是分组对象的名称，也可以是分组对象的顺序号。

说明

只能在报表生成时的 ProcessRecord 事件中调用本方法，目的是为了生成自定义的分组。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRGroup 接口 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件 | IGridppReport.ProcessRecord 事件


IGRField.Clear 方法

将字段的值设为空。

void Clear(void);

说明

应只在报表主对象的 FetchRecord 与 BeforePostRecord 事件响应函数中调用此方法。

请参见

IGRField 接口 | IGRField 成员 | IGRField.IsNull 属性 | IGridppReport.FetchRecord 事件 | IGridppReport.BeforePostRecord 事件 | IGRField.Value 属性


IGRPrinter.PageSetupDialog 方法

显示页面设置对话框。

VARIANT_BOOL PageSetupDialog(void);

返回值

VARIANT_BOOL

如果成功显示页面设置对会框，返回真，否则返回假。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PrintDialog 方法 | IGRPrinter.PrinterSetupDialog 方法


IGRPrinter.PrinterSetupDialog 方法

显示打印机设置对话框

VARIANT_BOOL PrinterSetupDialog(void);

返回值

VARIANT_BOOL

如果成功显示打印机对会框，返回真，否则返回假。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PageSetupDialog 方法 | IGRPrinter.PrintDialog 方法


IGRPrinter.PrintDialog 方法

显示打印对话框。

VARIANT_BOOL PrintDialog(void);

返回值

VARIANT_BOOL

如果成功显示打印对会框，返回真，否则返回假。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PageSetupDialog 方法 | IGRPrinter.PrinterSetupDialog 方法 | IGRPrinter.PrintOffsetSaveToLocal 属性


IGRRecordset.AddField 方法

增加一个字段。

IGRField *AddField(BSTR Name, GRFieldType Type);

返回值

IGRField *

返回新增字段对象的接口引用。

参数

BSTR Name

指定字段的名称标识。

GRFieldType Type

指定字段的类型。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRField 接口 | GRFieldType 枚举 | IGRFields 接口 | IGRRecordset.RemoveAllFields 方法


IGRRecordset.Append 方法

添加一条形记录。

void Append(void);

说明

在调用Append方法之后，然后向各个字段赋值，最后调用Post方法将新记录提交。新记录只有提交之后才会存储打记录集中。此方法只能在 FetchData 事件响应函数中使用。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Post 方法 | IGridppReport.PrepareRecordset 方法


IGRRecordset.Bof 方法

判断记录集的游标是否位于第一条记录之前。

VARIANT_BOOL Bof(void);

返回值

VARIANT_BOOL

游标位于第一条记录之前，返回真，否则返回假。

说明

当游标位于第一条记录之前，各个字段的值为第一条记录的数据。当记录集中不存在记录时，Bof始终返回真。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Eof 方法


IGRRecordset.Eof 方法

判断记录集的游标是否位于最后一条记录之后。

VARIANT_BOOL Eof(void);

返回值

VARIANT_BOOL

游标位于最后一条记录之后，返回真，否则返回假。

说明

当游标位于最后一条记录之后，各个字段的值为最后一条记录的数据。当记录集中不存在记录时，Eof始终返回真。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Bof 方法


IGRRecordset.First 方法

使第一条记录成为当前记录。

void First(void);

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Last 方法 | IGRRecordset.MoveBy 方法 | IGRRecordset.MoveTo 方法 | IGRRecordset.Next 方法 | IGRRecordset.Prior 方法


IGRRecordset.Last 方法

使最后一条记录成为当前记录。

void Last(void);

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.First 方法 | IGRRecordset.MoveBy 方法 | IGRRecordset.MoveTo 方法 | IGRRecordset.Next 方法 | IGRRecordset.Prior 方法


IGRRecordset.MoveBy 方法

将游标向前或向后移动指定个数的记录。

void MoveBy(LONG Delta);

参数

LONG Delta

当前记录移动偏移量，为正向前移动，为负向后移动。

说明

如果移动偏移量超出记录集的范围，将使记录集位置处于Bof或Eof的位置。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.First 方法 | IGRRecordset.Last 方法 | IGRRecordset.MoveTo 方法 | IGRRecordset.Next 方法 | IGRRecordset.Prior 方法


IGRRecordset.MoveTo 方法

将记录集的当前记录设为指定记录号的记录。

void MoveTo(LONG RecordNo);

参数

LONG RecordNo

指定移动到目标记录的记录号。

说明

记录好的编号从零开始，依次递增。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.First 方法 | IGRRecordset.Last 方法 | IGRRecordset.MoveBy 方法 | IGRRecordset.Next 方法 | IGRRecordset.Prior 方法


IGRRecordset.Next 方法

使当前记录的下一条记录成为当前记录。

void Next(void);

说明

如果当前记录已经是最后一条记录，调用Next方法将使记录集游标位于Eof。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.First 方法 | IGRRecordset.Last 方法 | IGRRecordset.MoveBy 方法 | IGRRecordset.MoveTo 方法 | IGRRecordset.Prior 方法


IGRRecordset.Prior 方法

使当前记录的上一条记录成为当前记录。

void Prior(void);

说明

如果当前记录已经是第一条记录，调用Prior方法将使记录集游标位于Bof。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.First 方法 | IGRRecordset.Last 方法 | IGRRecordset.MoveBy 方法 | IGRRecordset.MoveTo 方法 | IGRRecordset.Next 方法


IGRRecordset.RemoveAllFields 方法

删除所有的字段定义。

void RemoveAllFields(void);

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.AddField 方法


IGRDesigner 概述

IGRDesigner 接口

表示报表设计器。

有关此接口所有成员的列表，请参阅 IGRDesigner 成员。

IDispatch
IGRDesigner

说明

报表设计器是一个ActiveX控件。报表设计器提供设计报表模板的操作界面，并提供属性与方法与设计器进行交互处理。设计器界面主要有布局窗口，属性编辑窗口，对象浏览窗口三部分组成，在布局窗口中可以对可显示的报表元素进行位置与大小的设计；在属性编辑窗口中可以查看与修改当前选中的报表元素对象的属性数据；在对象浏览窗口中以树形结构的方式将所有的报表元素对象列出，不可显示的报表元素对象可以在此窗口中选中。

报表开发者可以利用报表设计器构件定义自己的报表设计器，通过提供外围操作界面与设计器构件进行交互，从而为报表用户提供自定义的报表设计器，使用户在运行时可以对报表进行修改。

请参见

IGRDesigner 成员 | IGridppReport 接口 | GRDesignerOption 枚举 | GRDesignerWindowLayout 枚举 | GRPropertyCategory 枚举


IGRDesigner成员

IGRDesigner 概述

公共属性

AsFormUI | 指示是否按页面模式显示报表布局窗口。
AsNativeUI | 指示设计器是否显示为全中文界面
DataURL | 指定插件要展现的报表数据来源 URL 值，当进入预览视图与查询视图时从此 URL 载入XML格式的报表数据。
DefaultAction | 指定是否按默认方式执行控件工具栏对应的动作。
DesignEdgeColor | 指定表示部件框设计边界的框线颜色。
DesignGridColor | 指定设计器的设计删格点颜色。
Dirty | 指示设计器中的数据是否已修改并未保存的标志。
EnableQuickEdit | 指定是否允许即时编辑。
IsBlank | 指示当前设计的报表是否进行了定义。
IsInsertingControl | 指示设计器是否正在插入部件框状态下。
LoadReportURL | 指定插件要设计报表的报表模板所处的 URL 值，在运行时从此 URL 载入报表模板数据。
OnlyLayout | 指示设计器只能进行改变位置大小的操作。
Options | 指定定制报表设计器的选项值。
Published | 指定要公开的属性类别组合值。
Report | 关联报表主对象的接口引用。设计器将显示关联报表主对象的数据。
SaveReportURL | 指定插件设计的报表模板数据提交保存的 URL 地址，由此 URL 网页服务完成报表模板的保存。
SerialNo | 指定报表插件的注册序列号。
ShowExplorer | 是否显示对象浏览器窗口标志。
ShowInspector | 是否显示属性编辑窗口标志。
ShowMenubar | TBD
ShowToolbar | 指定是否显示控件内建的工具栏。
UserName | 指定报表插件的注册用户名。
ViewFloatSection | 指示当前是否在设计浮动节状态下。
ViewMode | 获取或设置设计器运行的视图模式。
ViewStyle | 获取或设置设计器显示的视图组合模式。
WindowLayout | 指示报表布局窗口在整个控件中的停靠位置。

公共方法

CancelInsertControl | 取消设计器插入部件框状态，使其回到平常操作状态。
DisableAllOptions | 关闭所有的控制选项。
DisableAllPublished | 隐藏所有的属性类别。
DoAction | 执行设计其的某个动作。
EnableAllOptions | 开启所有的控制选项。
EnableAllPublished | 公开所有的属性类别。
GetObjectCount | 获取设计器中当前选中对象的个数。
GetObjectFontBold | 获取选中对象其字体属性是否为粗体。
GetObjectFontItalic | 获取选中对象其字体属性是否为斜体。
GetObjectFontName | 获取选中对象其字体属性的名称。
GetObjectFontPoint | 获取选中对象其字体属性的大小点数。
GetObjectFontStrikethrough | 获取选中对象其字体属性是否画删除线。
GetObjectFontUnderline | 获取选中对象其字体属性是否画下画线。
GetObjectName | 获取某个选中对象的名称，由选中序号指定某个对象。
GetObjectTextAlign | 获取选中对象的文字输出对齐方式。
GetObjectTextOrientation | 获取选中对象的文字输出方向。
GetObjectType | 获取当前选中对象的类型。
GetOptionValue | 获取指定的控制选项是否开启。
GetPublishedValue | 获取指定的属性类别是否为公开状态。
IsActionEnabled | 判断某个动作在此时是否可以执行。
IsInsertControlEnabled | 获取控件当前状态是否允许插入部件框。
IsSetObjectBackColorEnabled | 获取当前选中对象是否允许设置背景色属性。
IsSetObjectFontEnabled | 获取当前选中对象是否允许设置字体属性。
IsSetObjectForeColorEnabled | 获取当前选中对象是否允许设置前景色属性。
Post | 将设计器中的当前报表模板数据提交到关联的报表主对象中去。
PrepareInsertControl | 使设计器进入插入部件框状态，在参数中指定部件框的类型。
Reload | 从关联的报表主对象中重新载入模板数据。
SetObjectBackColor | 设置选中对象的背景色属性值。
SetObjectFontName | 设置选中对象的字体名称属性值。
SetObjectFontPoint | 设置选中对象的字体点数大小属性值。
SetObjectForeColor | 设置选中对象的前景色属性值。
SetOptionValue | 设置开启或关闭指定的控制选项。
SetPublishedValue | 设置公开或隐藏指定的属性类别。
ShowClassProperty | 指定是否在属性侦测窗口上显示某类的属性。
ShowOneProperty | 设置是否在属性窗口中显示某个类的某个属性。
UpdateLanguage | 在重新设置报表界面语言后，调用本方法更新控件界面显示。

事件

BeforeDoAction | 在报表执行每个任务动作前触发本事件，任务动作对应DoAction方法所能执行的任务。
DataChange | 当修改了报表定义时触发本事件
ExplorerContextMenu | 当在对象浏览窗口中执行打开关联弹出式菜单时触发本事件。
InspectorChange | 当属性侦测窗口的数据发生变化时触发本事件。
InspectorContextMenu | 当在属性编辑窗口中执行打开关联弹出式菜单时触发本事件。
LayoutPanelContextMenu | 当在报表布局窗口中执行打开关联弹出式菜单时触发本事件。
OpenReport | 当执行设计器工具栏中的打开按钮时触发本事件。
SaveReport | 当执行设计器工具栏中的保存按钮时触发本事件。

请参见

IGRDesigner 接口 | IGridppReport 接口 | GRDesignerOption 枚举 | GRDesignerWindowLayout 枚举 | GRPropertyCategory 枚举


IGRDisplayViewer 概述

IGRDisplayViewer 接口

表示报表查询显示器。

有关此接口所有成员的列表，请参阅 IGRDisplayViewer 成员。

IDispatch
IGRDisplayViewer

说明

是报表查询显示器的ActiveX Control对象的接口定义。在使用时要关联一个报表主对象。开始运行时向报表主对象发出生成数据请求，然后本构件显示报表主对象生成的数据，本对象为最终用户提供了完善的查看显示数据的操作。报表开发人员通过对本对象交互事件的响应，为最终用户提供可交互的互操作。例如通过对汇总报表的明细网格内容格的双击事件的响应，打开对应的明细报表，达到从汇总报表向明细报表的穿透查询。

请参见

IGRDisplayViewer 成员 | IGridppReport 接口 | GRViewerBorderStyle 枚举 | IGRPrintViewer 接口 | IGridppReport.DisplayMode 属性


IGRDisplayViewer成员

IGRDisplayViewer 概述

公共属性

AlwaysShowHScrollBar | 是否始终显示明细表格的水平滚动条的标志。
AlwaysShowSelection | 指定是否始终显示选中的内容格或内容行。
AlwaysShowVScrollBar | 是否始终显示明细网格的垂直滚动条。
AutoRun | 指示本控件在显示之后是否自动启动运行报表。
BackgroundColor | 当明细网格不能完整充满查询显示器的显示区域时，指定明细网格外围的空白区域的背景填充色。
BatchFinished | 指示在分批次获取报表明细记录时，所有数据已经全部获取完备。
BatchGetRecord | 指定是否为分批获取报表明细记录数据。
BatchNo | 指示在分批次获取报表明细记录时，指示当前请求数据的批次序号，序号从1开始。
BatchStartRecNo | 指示在分批次获取报表明细记录时，指示当前请求数据的开始记录序号，记录序号从0开始。
BatchWantRecords | 指定一个批次希望获取的记录数量，如果为0，将由数据提供者自己确定一个批次获取的记录数量。
BorderStyle | 指定查询显示器的边框样式。
BottomGap | 下边留出的空白间距，以像素为单位。
ColumnMove | 指定是否可以用鼠标拖放改变明细网格列的显示顺序。
ColumnResize | 指定是否可以通过鼠标拖放改变明细网格列的显示宽度。
CurPageNo | 当分页显示报表时，指定对当前页号。
DataParam | 指定向服务器提供的参数。
DataURL | 指定插件要展现的报表数据来源 URL 值，在运行时从此 URL 载入XML格式的报表明细记录集数据。
GridCenterView | 当报表明细网格所有列的总宽度小于本控件的宽度时，指定明细网格是否水平居中显示在本控件中。
GridTitle3D | 指定是否将明细网格的列标题显示为3D形状。
HScrollPos | 在运行时，获取与设置水平滚动条的位置。
LeftGap | 左边留出的空白间距，以像素为单位。
PageCount | 获取当前数据的页数。
Report | 关联报表主对象的接口引用。
ReportURL | 指定插件要展现报表的报表模板文件或数据的 URL 值，在运行时从此 URL 载入报表模板数据。
ResizeToFit | 指定是否对报表节的大小进行缩放，以适应本控件窗口的大小，以便所有报表节都完整显示出来。
Resortable | 指定是否可以通过点击明细网格的列标题对明细记录进行重新排序。
ResortCaseSensitive | 指定点击列标题进行排序时，对字符进行排序比较是否大小写敏感。
ResortDefaultAsc | 当点击列标题进行排序时，首先是否按升序进行排序。
RightGap | 右边留出的空白间距，以像素为单位。
RowCount | 运行时，当前查看报表的总行数。
RowSelection | 指定在查询显示报表时是否整行选中内容行。如果不是，选中仅为一个格。
RowsPerPage | 指定浏览数据时的分页方式
Running | 指示查询显示器是否正在运行显示报表中。
Searchable | 指示是否提供默认的文字查找功能。
SelColumnName | 获取或设置明细网格中当前选中列的名称。
SelColumnNo | 选中单元格的列序号。
SelectionBackColor | 查询显示时，选中格或行的背景填充色。
SelectionFollowScroll | 指示选中格或行是否跟随表格的垂直滚动而滚动。
SelectionForeColor | 查询显示时，选中格或行的前景色。
SelRowNo | 选中单元格的行序号。
SerialNo | 指定报表插件的注册序列号。
ShowFooter | 是否显示报表尾的标志。
ShowHeader | 是否显示报表头的标志。
ShowPreviewLine | 指示是否显示报表打印页面的垂直区域分隔线。
ShowToolbar | 指定是否显示本控件的工具栏。
SortColumns | 指定当前进行排序的列名称，如果有多个列，中间用“;”隔开
TopGap | 上边留出的空白间距，以像素为单位。
ToPostColumnLayout | 指定是否将本控件上的列布局状态应用到打印输出上。
TotalRecord | 在分批次获取报表明细数据，且当获取第一批次的数据时，指定全部记录总数。
UserName | 指定报表插件的注册用户名。
VScrollPos | 在运行时，获取与设置垂直滚动条的位置。

公共方法

AddToolbarControl | 在工具栏中增加显示指定的按钮。
AddToolbarCustomButton | 在工具栏上增加一个自定义按钮。
FirstPage | 移动至首页。
GetColumnVisible | 取得指定列在查询显示器中的显示或隐藏状态。
GetContentCellFromPos | 取得指定位置处的内容格对象的接口引用。
GetControlFromPos | 取得指定位置处的部件框对象的接口引用。
GetSectionFromPos | 取得指定位置处的报表节对象的接口引用。
GetSelRowCellText | 获取当前选中行的指定单元格的显示文字。
GetTitleCellFromPos | 取得指定位置处的标题格对象的接口引用。
LastPage | 移动至最后一页。
LockUpdate | 锁定控件的显示更新。
NextPage | 显示下一页。
PostColumnLayout | 将报表列的当前显示顺序与宽度信息提交到关联报表主对象中去。
PriorPage | 显示上一页。
QuickRefresh | 快速刷新显示报表。
Refresh | 刷新数据，报表重新生成。
RemoveToolbarControl | 从工具栏中删除显示指定的按钮。
ResetToolbarContent | 清除工具栏中所有显示的按钮，以便重新进行加入定义。
ResizeColumnToFit | 自动调整所有列的宽度，让所有列可以在网格的显示区域完整的显示出来并刚好完整显示。
ResizeColumnToFitPage | 自动调整所有列的宽度，让整个网格可以在当前页面设置纸张中完整输出。
ResizeColumnToFitText | 按内容格中文字内容多少伸展列的显示宽度，以便文字完整显示出来，文字少不缩小。
Search | 执行查找报表文字任务，被匹配的文字将被高亮显示。
SearchAgain | 根据前面的查找条件进行继续查找，被匹配的文字将被高亮显示。
SetColumnVisible | 设置指定列在查询显示器中的显示或隐藏状态。
ShowColumnVisibleDlg | 打开报表列可见性设置对话框，在此对话框中可以设置列是否显示。
Start | 开始报表生成并按查询显示的方式展现出来。
Stop | 停止报表的查询显示，并停止报表的运行。
UnlockUpdate | 解锁控件的显示更新。
UpdateColumnView | 当改变列的显示状态之后，调用本方法更新列的显示。
UpdateControl | 更新显示指定的部件框。
UpdateLanguage | 在重新设置报表界面语言后，调用本方法更新控件界面显示。
UpdateSelCell | 更新显示当前选中内容格。
UpdateSelRow | 更新显示当前选中内容行。
UpdateToolbar | 在改变按钮定义之后，调用本方法重新显示工具栏，以便新定义生效。
UpdateViewer | 更形显示整个查询显示器。

事件

BatchFetchRecord | 当分批次请求报表明细数据时触发本事件。
ChartClickLegend | 当点击图表的图例时触发本事件。
ChartClickSeries | 当点击图表的图形时触发本事件。
ChartDblClickLegend | 当双击图表的图例时触发本事件。
ChartDblClickSeries | 当双击图表的图形时触发本事件。
Click | 当鼠标在查询显示器上进行了点击时触发。
CloseButtonClick | 当点击工具栏上的关闭按钮时触发本事件。
ColumnLayoutChange | 当列的显示宽度或顺序发生改变时触发。
ContentCellClick | 当鼠标点击在某个内容格上时触发。
ContentCellDblClick | 当鼠标双击在某个内容格上时触发。
ControlClick | 当鼠标点击在某个部件框上时触发。
ControlDblClick | 当鼠标双击在某个部件框上时触发。
CustomButtonClick | 当点击工具栏上的自定义按钮时触发本事件。
DblClick | 当鼠标在查询显示器上进行了双击时触发。
KeyDown | 当查询显示器拥有输入焦点时，某个键盘健按下时触发。
KeyPress | 当查询显示器拥有输入焦点时，某个键盘健按下时触发。
KeyUp | 当查询显示器拥有输入焦点时，某个键盘健按下之后再释放时触发。
MouseDown | 在查询显示器上鼠标按钮按下时触发。
MouseMove | 在查询显示器上鼠标光标移动时触发。
MouseUp | 在查询显示器上鼠标按钮按下再释放时触发。
SectionClick | 当鼠标点击在某个节上时触发。
SectionDblClick | 当鼠标双击在某个节上时触发。
SelectionCellChange | 当前显示的单元格发生改变时触发。
StatusChange | 当控件的查看状态发生改变时触发本事件。
TitleCellClick | 当鼠标点击在某个标题格上时触发。
TitleCellDblClick | 当鼠标双击在某个标题格上时触发。

请参见

IGRDisplayViewer 接口 | IGridppReport 接口 | GRViewerBorderStyle 枚举 | IGRPrintViewer 接口 | IGridppReport.DisplayMode 属性


IGRParameters 概述

IGRParameters 接口

公开报表组对象的所有参数的集合对象。

有关此接口所有成员的列表，请参阅 IGRParameters 成员。

IDispatch
IGRParameters

请参见

IGRParameters 成员 | IGRParameter 接口 | IGridppReport.Parameters 属性


IGRParameters成员

IGRParameters 概述

公共属性

_NewEnum | 返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。
Count | 指示拥有参数的个数。
Item | 根据参数的顺序号或名称得到参数的接口引用。

公共方法

Add | 增加一个参数并返回新增参数的接口引用。
IndexByName | 根据参数的名称取得其顺序号，如果不存在与名称匹配的参数，则返回-1。参数的名称不区分字母的大小写。
Remove | 根据参数的顺序号或名称将参数移除，在输入参数种指定要移除参数的顺序号或名称。
RemoveAll | 清除全部参数。

请参见

IGRParameters 接口 | IGRParameter 接口 | IGridppReport.Parameters 属性


IGRPrintViewer 概述

IGRPrintViewer 接口

表示报表打印预览查看器。

有关此接口所有成员的列表，请参阅 IGRPrintViewer 成员。

IDispatch
IGRPrintViewer

请参见

IGRPrintViewer 成员 | GRPrintViewMode 枚举 | IGRDisplayViewer 接口 | IGridppReport.DisplayMode 属性 | IGridppReport.ShowPreviewWnd 事件


IGRPrintViewer成员

IGRPrintViewer 概述

公共属性

AutoRun | 指示本控件在显示之后是否自动启动运行报表。
ColPages | 多页查看模式下，每行显示的页数。
CurPageNo | 当前显示页的页号。页号从一开始计数。
DataParam | 指定向服务器提供的参数。
DataURL | 指定插件要展现的报表数据来源 URL 值，在运行时从此 URL 载入XML格式的报表明细记录集数据。
EditMode | 指定报表文字在预览时的即时编辑模式，默认为不可编辑。
GenerateStyle | 指定打印数据的生成方式。
PageCount | 报表的总页数。
Report | 获取或设置关联报表主对象的接口引用。
ReportURL | 指定插件要展现报表的报表模板文件或数据的 URL 值，在运行时从此 URL 载入报表模板数据。
RowPages | 多页查看模式下，每列显示的页数。
Running | 获取本控件是否在运行状态中。
Searchable | TBD
SerialNo | 指定报表插件的注册序列号。
ShowBookmark | 指定是否显示书签导航窗口。
ShowMarginCorner | 指示是否显示页边距的拐角指示线。
ShowRuler | 是否显示标尺标志。
ShowToolbar | 是否显示工具条标志。
UserName | 指定报表插件的注册用户名。
ViewMode | 打印页面的查看模式。
ZoomPercent | 打印页面的查看显示百分比例。

公共方法

AddToolbarControl | 向工具栏中增加一个指定的操作界面元素。
AddToolbarCustomButton | 在工具栏上增加一个自定义按钮。
FirstPage | 移动至首页。
LastPage | 移动至最后一页。
LoadFromDocumentFile | 载入指定的 Grid++Report 文档文件并在打印查看器中显示。
NextPage | 显示下一页打印页面。
Print | 打印出打印查看器生成的打印数据。
PriorPage | 显示上一页打印页面。
QuickRefresh | 快速刷新显示报表。
Refresh | 重新生成打印数据，并更新显示。
RemoveToolbarControl | 从工具栏中移除一个指定的操作按钮或其它功能项界面元素。
ResetToolbarContent | 清除工具栏中的全部操作界面元素。
Search | TBD
SearchAgain | TBD
Start | 开始获取报表数据，生成报表打印页面数据，并按打印预览的方式把报表展现出来。
Stop | 停止报表运行，结束打印预览查看。
UpdateLanguage | 在重新设置报表界面语言后，调用本方法更新界面显示。
UpdateToolbar | 更新工具栏的显示。
ZoomIn | 增大显示比例。
ZoomOut | 缩小显示比例。
ZoomToFit | 缩放页面显示比例到刚好在查看区域中完整显示出来。
ZoomToHeight | 缩放页面显示比例到刚好使其高度在查看区域中完整显示出来。
ZoomToWidth | 缩放页面显示比例到刚好使其宽度在查看区域中完整显示出来。

事件

Click | 当鼠标在打印查看器上点击时触发。
CloseButtonClick | 当工具栏上的关闭按钮被点击时触发本事件。
CustomButtonClick | 当点击工具栏上的自定义按钮时触发本事件。
DblClick | 当鼠标在打印查看器上双击时触发。
KeyDown | 当打印查看器拥有输入焦点时，某个键盘健按下时触发。
KeyPress | 当打印查看器拥有输入焦点时，某个键盘健按下时触发。
KeyUp | 当打印查看器拥有输入焦点时，某个键盘健按下再释放时触发。
MouseDown | 在打印查看器上鼠标按钮按下时触发。
MouseMove | 在打印查看器上鼠标移动时触发。
MouseUp | 在打印查看器上鼠标按钮按下之后再释放时触发。
PageClick | 当鼠标在页面的显示区域上点击时触发。
PageDblClick | 当鼠标在页面的显示区域上双击时触发。
RulerClick | 当鼠标在标尺上点击时触发。
RulerDblClick | 当鼠标在标尺上双击时触发。
StatusChange | 当打印查看器的状态信息改变时触发。

请参见

IGRPrintViewer 接口 | GRPrintViewMode 枚举 | IGRDisplayViewer 接口 | IGridppReport.DisplayMode 属性 | IGridppReport.ShowPreviewWnd 事件


GRDesignerAction 枚举

指定执行报表设计器动作的类型。

成员名称 | 枚举值 | 说明
grdaEditUndo | 101 | 恢复操作。
grdaEditRedo | 102 | 重复操作。
grdaEditCut | 103 | 剪切操作。
grdaEditPaste | 104 | 粘贴操作。
grdaEditCopy | 105 | 复制操作。
grdaEditDelete | 106 | 删除当前选中的报表元素。
grdaEditSelectAll | 107 | 全选操作，根据当前的选中对象，执行相应全部选中对象任务。
grdaAutoSizeControl | 201 | 根据文字框地显示文本自动调整框的大小，使文本刚好完整显示出来。
grdaAutoGenColumn | 202 | 根据记录集的字段定义，自动生成列的定义。如果已经处在列，已存在的列将被删除。
grdaAutoGenField | 203 | 根据明细网格的记录集数据源取数设置自动生成报表字段定义。
grdaSectionMoveUp | 204 | 将当前选中报表头或报标尾的显示顺序前移。
grdaSectionMoveDown | 205 | 将当前选中报表头或报标尾的显示顺序后移。
grdaAutoGenParameter | 206 | 根据报表主对象上的参数数据源取数设置自动生成报表参数定义。
grdaReportPaperSetting | 301 | 打开页面设置对话框。
grdaSetupDBQuery | 302 | 打开明细网格的记录集数据源取数设置对话框。
grdaReportParameterCollection | 303 | 打开参数集合对话框。
grdaReportGroupCollection | 304 | 打开分组集合对话框。
grdaReportColumnCollection | 305 | 打开列集合对话框。
grdaReportFieldCollection | 306 | 打开字段集合对话框。
grdaReportColumnTitleLayout | 307 | 打开列标题布局对话框。
grdaBrowseScriptCode | 308 | 打开报表脚本浏览窗口
grdaExitSubReportDesign | 309 | 退出当前子报表设计，返回到其主表设计。
grdaSetupParamDBQuery | 310 | 打开报表主对象的参数数据源取数设置对话框。
grdaInsertReportHeader | 401 | 插入一个报表头。
grdaInsertReportFooter | 402 | 插入一个报表尾。
grdaInsertPageHeader | 403 | 插入页眉。
grdaInsertPageFooter | 404 | 插入页脚。
grdaInsertDetailGrid | 405 | 插入明细网格。
grdaInsertGroup | 406 | 插入一个分组。
grdaInsertField | 407 | 插入字段。
grdaInsertColumn | 408 | 插入列。
grdaInsertParameter | 409 | 插入参数。
grdaFormatAlignLeft | 501 | 使选中的多个部件框左端对齐。
grdaFormatAlignRight | 502 | 使选中的多个部件框右端对齐。
grdaFormatAlignCenter | 503 | 使选中的多个部件框水平居中对齐。
grdaFormatAlignTop | 504 | 使选中的多个部件框上端对齐。
grdaFormatAlignMiddle | 505 | 使选中的多个部件框垂直居中对齐。
grdaFormatAlignBottom | 506 | 使选中的多个部件框底端对齐。
grdaFormatAlignToGrid | 507 | 使选中的部件框左上角对齐到设计格点。
grdaFormatSizeSameWidth | 508 | 使选中的多个部件框宽度相同。
grdaFormatSizeSameHeight | 509 | 使选中的多个部件框高度相同。
grdaFormatSizeSameBoth | 510 | 使选中的多个部件框大小相同。
grdaFormatSizeToGrid | 511 | 使选中的部件框四角伸缩到最近设计格点。
grdaFormatSpaceEquallyVertical | 512 | 使选中的多个部件框垂直间距相等。
grdaFormatSpaceIncreaseVertical | 513 | 使选中的多个部件框垂直间距增大。
grdaFormatSpaceDecreaseVertical | 514 | 使选中的多个部件框垂直间距减小。
grdaFormatSpaceEquallyHorizontal | 515 | 使选中的多个部件框水平间距相等。
grdaFormatSpaceIncreaseHorizontal | 516 | 使选中的多个部件框水平间距增大。
grdaFormatSpaceDecreaseHorizontal | 517 | 使选中的多个部件框水平间距减小。
grdaFormatSpaceRemoveHorizontal | 518 | 去除选中的多个部件框的水平间距。
grdaFormatSpaceRemoveVertical | 519 | 去除选中的多个部件框的垂直间距。
grdaFormatOrderBringToFront | 520 | 将选中部件框的 Z 顺序置于最上层。
grdaFormatOrderSendToBack | 521 | 将选中部件框的 Z 顺序置于最下层。
grdaFormatFontBold | 601 | 使选中文字框的文字按粗体显示。
grdaFormatFontItalic | 602 | 使选中文字框的文字按斜体显示。
grdaFormatFontUnderline | 603 | 使选中文字框的文字加下划线显示。
grdaFormatTextAlignTopLeft | 604 | 使选中文字框的文字按左上对齐显示。
grdaFormatTextAlignTopCenter | 605 | 使选中文字框的文字按中上对齐显示。
grdaFormatTextAlignTopRight | 606 | 使选中文字框的文字按右上对齐显示。
grdaFormatTextAlignMiddleLeft | 607 | 使选中文字框的文字按左中对齐显示。
grdaFormatTextAlignMiddleCenter | 608 | 使选中文字框的文字按中中对齐显示。
grdaFormatTextAlignMiddleRight | 609 | 使选中文字框的文字按右中对齐显示。
grdaFormatTextAlignBottomLeft | 610 | 使选中文字框的文字按左下对齐显示。
grdaFormatTextAlignBottomCenter | 611 | 使选中文字框的文字按中下对齐显示。
grdaFormatTextAlignBottomRight | 612 | 使选中文字框的文字按右下对齐显示。
grdaFormatTextOrientationDefault | 613 | 设定选中文字框的文字方向为默认方式。
grdaFormatTextOrientationU2DL2R0 | 614 | 设定选中文字框的文字方向为从上到下，从左到右方式显示文字，文字不旋转。
grdaFormatTextOrientationD2UL2R1 | 615 | 设定选中文字框的文字方向为从下到上，从左到右方式显示文字，文字旋转。
grdaFormatTextOrientationU2DR2L0 | 616 | 设定选中文字框的文字方向为从上到下，从右到左方式显示文字，文字不旋转。
grdaFormatTextOrientationU2DR2L1 | 617 | 设定选中文字框的文字方向为按从上到下，从右到左方式显示文字，文字旋转。
grdaFormatTextOrientationInvert | 618 | 设定选中文字框的文字方向为倒影方式。

说明

在IGRDesigner接口DoAction与IsActionEnabled方法中，指定动作的类型。

请参见

IGRDesigner.DoAction 方法 | IGRDesigner.IsActionEnabled 方法 | IGRDesigner.BeforeDoAction 事件


GRSelectionObjectType 枚举

指定设计器可以执行的动作类型。

成员名称 | 枚举值 | 说明
grdssReport | 1 | 选中对象为报表主对象
grdssPageHeader | 2 | 选中对象为页眉
grdssPageFooter | 3 | 选中对象为页脚
grdssReportHeader | 4 | 选中对象为报表头
grdssReportFooter | 5 | 选中对象为报表尾
grdssControlSingle | 6 | 选中对象为单个部件框
grdssControlMulti | 7 | 选中对象为多个部件框
grdssDetailGrid | 8 | 选中对象为明细网格
grdssColumn | 9 | 选中对象为列
grdssColumnContentCell | 10 | 选中对象为内容格
grdssColumnTitleCell | 11 | 选中对象为标题格
grdssColumnContent | 12 | 选中对象为明细内容行
grdssColumnTitle | 13 | 选中对象为标题行
grdssGroup | 14 | 选中对象为分组
grdssGroupHeader | 15 | 选中对象为分组头
grdssGroupFooter | 16 | 选中对象为分组尾
grdssRecordset | 17 | 选中对象为记录集
grdssField | 18 | 选中对象为字段
grdssParameter | 19 | 选中对象为参数
grdssCrossTab | 20 | 选中对象为交叉表

请参见

IGRDesigner.GetObjectType 方法


GRMouseButton 枚举

在鼠标事件中，指定鼠标按钮。

成员名称 | 枚举值 | 说明
grmbLeft | 1 | 鼠标左按钮。
grmbRight | 2 | 鼠标右按钮。
grmbMiddle | 3 | 鼠标中按钮。

请参见

IGRDisplayViewer 接口 | IGRPrintViewer 接口 | IGRDisplayViewer.MouseDown 事件 | IGRDisplayViewer.MouseUp 事件 | IGRPrintViewer.MouseDown 事件 | IGRPrintViewer.MouseUp 事件


GRParameterDataType 枚举

指示参数对象值的具体数据类型。

成员名称 | 枚举值 | 说明
grptString | 1 | 字符串类型，可以为任意长度。
grptInteger | 2 | 整数类型，可以设定格式化串。
grptFloat | 3 | 浮点数类型，可以设定格式化串。
grptBoolean | 4 | 布尔类型，可以真值与假值的显示文字。
grptDateTime | 5 | 日期时间类型，可以设定格式化串。

请参见

IGRParameter.DataType 属性 | IGRParameter 接口 | IGridppReport.AddParameter 方法


GRPrintGenerateStyle 枚举

指示打印页面的生成方式。

成员名称 | 枚举值 | 说明
grpgsOnlyForm | 1 | 只生成报表表单数据。
grpgsOnlyContent | 2 | 只生成报表内容数据。
grpgsAll | 3 | 生成报表所有数据。
grpgsPreviewAll | 4 | 预览报表全部内容，但只打印出内容数据。

说明

打印生成时，如果指定打印生成方式为只输出报表内容数据（OnlyContent）,则只输出打印类别为报表内容数据的报表元素，其它打印类别为报表表单数据的报表元素将不会输出。在只输出报表内容数据时，报表节的背景色不会填充，明细网格的边框线与行列线也不会输出。在只输出报表内容数据的打印生成方式特别适用于进行票据套打与现存格式报表的套打。

打印生成时，如果指定印生成方式为输出报表表单数据（OnlyForm）,生成方式与只输出报表内容数据（OnlyContent）反之对应。在此种方式下，明细网格的记录数据不会被应用，明细行的生成与明细记录不对应，不填充明细记录页也可以输出报表表单数据。报表表单数据一般只生成一页。此种模式一般用来制作票据与固定格式报表的印刷模版。

打印生成时，如果指定印生成方式（PrintGenerateStyle）为输出全部数据（All）,则所有数据都会输出，这也是我们平时最多用到的方式。

使用打印页面的生成方式的地方有： 在IGridppReport接口中执行PrintEx与PrintViewEx方法中可以指定打印页面的生成方式，另可以设定打印预览查看器的打印页面的生成方式（GenerateStyle）属性。

请参见

IGridppReport.BeginLoopPrint 方法 | IGridppReport.PrintEx 方法 | IGridppReport.PrintPreviewEx 方法 | IGRPrintViewer.GenerateStyle 属性 | IGRControl.PrintType 属性 | IGRDetailGrid.BorderPrintType 属性 | IGRDetailGrid.GridLinePrintType 属性


GRPrintViewMode 枚举

在打印预览查看器中，指定查看模式。

成员名称 | 枚举值 | 说明
grpvmContinuousPage | 1 | 连续页模式，所有页面按顺序在垂直方向上显示，通过垂直滚动可以连续察看。
grpvmSinglePage | 2 | 单页模式，只在打印预览窗口中显示一页打印页面。
grpvmMultiPage | 3 | 多页模式，在打印预览窗口中同时显示多页打印页面。

请参见

IGRPrintViewer.ViewMode 属性 | IGRPrintViewer 接口


GRShiftStates 枚举

在鼠标与键盘事件中，指定事件触发时鼠标与键盘的状态。

成员名称 | 枚举值 | 说明
grssShift | 1 | 指示键盘‘Shift’键按下标志。
grssAlt | 2 | 指示键盘‘Alt’键按下标志。
grssCtrl | 4 | 指示键盘‘Ctrl’键按下标志。
grssLeft | 8 | 指示鼠标左按钮按下标志。
grssRight | 16 | 指示鼠标右按钮按下标志。
grssMiddle | 32 | 指示鼠标中按钮按下标志。
grssDouble | 64 | 指示鼠标双击标志。

请参见

IGRDisplayViewer 接口 | IGRPrintViewer 接口 | IGRDisplayViewer.KeyDown 事件 | IGRDisplayViewer.KeyUp 事件 | IGRDisplayViewer.MouseDown 事件 | IGRDisplayViewer.MouseMove 事件 | IGRDisplayViewer.MouseUp 事件 | IGRPrintViewer.KeyDown 事件 | IGRPrintViewer.KeyUp 事件 | IGRPrintViewer.MouseDown 事件 | IGRPrintViewer.MouseUp 事件 | IGRPrintViewer.MouseMove 事件


IGridppReport.GroupBegin 事件

在生成报表数据时，开始一个分组触发。

void GroupBegin(IGRGroup *pSender);

参数

IGRGroup *pSender

指示触发事件的分组对象的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRGroup 接口 | IGridppReport.GroupEnd 事件 | IGridppReport.ProcessRecord 事件 | IGridppReport.PageProcessRecord 事件 | IGRRecordset 接口


IGridppReport.GroupEnd 事件

在生成报表数据时，结束一个分组触发。

void GroupEnd(IGRGroup *pSender);

参数

IGRGroup *pSender

指示触发事件的分组对象的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRGroup 接口 | IGridppReport.GroupBegin 事件 | IGridppReport.PageProcessRecord 事件 | IGridppReport.ProcessRecord 事件 | IGRRecordset 接口


IGridppReport.FetchRecord 事件

在报表生成时且以推模式向报表提供数据，报表主对象请求数据时触发。

void FetchRecord(void);

说明

当报表的记录集上没有定义数据源连接串与查询SQL，或其“忽略数据查询”属性设为“是”，则在报表生成时，报表主对象请求数据时触发本事件。报表开发者必须在此事件中向记录集填入数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRRecordset 接口 | IGRField 接口 | IGRRecordset.Append 方法 | IGRRecordset.Post 方法 | IGridppReport.PrepareRecordset 方法 | IGridppReport.BeforePostRecord 事件


IGridppReport.FieldGetDisplayText 事件

当字段对象准备生成其显示文本时触发。

void FieldGetDisplayText(IGRField *Sender);

参数

IGRField *Sender

指定触发此事件的字段对象的接口引用。

说明

当字段对象准备生成其显示文本时触发。如果一个字段的显示文本不是字段对象内部生成的文本，就需要在此事件中为字段设定显示文本，通过给字段的 DisplayText 属性赋值改变字段的显示文本。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRField 接口 | IGRField 接口 | IGRField.DisplayText 属性 | IGridppReport.TextBoxGetDisplayText 事件


IGridppReport.Initialize 事件

在报表生成开始时触发。

void Initialize(void);

说明

在报表生成开始时触发。在此事件中，报表开发者可以对报表模板定义进行修改调整。例如用户在报表生成之从所有可选的列中选择一部分列显示，就可以在此事件中以编程方式动态定义列。

请参见

IGridppReport 接口 | IGridppReport 成员


IGridppReport.PageProcessRecord 事件

当报表在生成打印数据时，会再次按顺序遍历每一条记录，每当遍历一条记录时触发本事件。

void PageProcessRecord(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件 | IGridppReport.PageProcessRecord 事件 | IGRRecordset 接口 | IGridppReport.ForceNewPage 方法 | IGridppReport.GeneratePagesBegin 事件 | IGridppReport.GeneratePagesEnd 事件 | IGridppReport.PageEnd 事件 | IGridppReport.PageStart 事件


IGridppReport.ProcessRecord 事件

当报表生成时，会按顺序遍历每一条记录，每当遍历一条记录时触发本事件。

void ProcessRecord(void);

说明

当报表生成时，会按顺序遍历每一条记录，每当遍历一条记录时触发本事件。在此事件中，可以取记录的各个字段的值。报表开发者可以在此事件中对数据进行一些自定义的分析统计。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageProcessRecord 事件 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件 | IGRRecordset 接口 | IGridppReport.ProcessBegin 事件 | IGridppReport.ProcessEnd 事件


IGRDisplayViewer.Click 事件

当鼠标在查询显示器上进行了点击时触发。

void Click(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.DblClick 事件


IGRDisplayViewer.ColumnLayoutChange 事件

当列的显示宽度或顺序发生改变时触发。

void ColumnLayoutChange(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员


IGRDisplayViewer.ContentCellClick 事件

当鼠标点击在某个内容格上时触发。

void ContentCellClick(IGRColumnContentCell *pSender);

参数

IGRColumnContentCell *pSender

指示触发本事件的内容格对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnContentCell 接口 | IGRDisplayViewer.ContentCellDblClick 事件


IGRDisplayViewer.ContentCellDblClick 事件

当鼠标双击在某个内容格上时触发。

void ContentCellDblClick(IGRColumnContentCell *pSender);

参数

IGRColumnContentCell *pSender

指示触发本事件的内容格对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnContentCell 接口 | IGRDisplayViewer.ContentCellClick 事件


IGRDisplayViewer.ControlClick 事件

当鼠标点击在某个部件框上时触发。

void ControlClick(IGRControl *pSender);

参数

IGRControl *pSender

指示触发本事件的部件框对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRControl 接口 | IGRDisplayViewer.ControlDblClick 事件


IGRDisplayViewer.ControlDblClick 事件

当鼠标双击在某个部件框上时触发。

void ControlDblClick(IGRControl *pSender);

参数

IGRControl *pSender

指示触发本事件的部件框对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRControl 接口 | IGRDisplayViewer.ControlClick 事件


IGRDisplayViewer.DblClick 事件

当鼠标在查询显示器上进行了双击时触发。

void DblClick(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Click 事件


IGRDisplayViewer.KeyDown 事件

当查询显示器拥有输入焦点时，某个键盘健按下时触发。

void KeyDown(GRShiftStates Shift, SHORT Key);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT Key

指示按下健的虚键值。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRShiftStates 枚举 | IGRDisplayViewer.KeyPress 事件 | IGRDisplayViewer.KeyUp 事件


IGRDisplayViewer.KeyPress 事件

当查询显示器拥有输入焦点时，某个键盘健按下时触发。

void KeyPress(CHAR Key);

参数

CHAR Key

指示按下健的对应字符。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.KeyDown 事件 | IGRDisplayViewer.KeyUp 事件


IGRDisplayViewer.KeyUp 事件

当查询显示器拥有输入焦点时，某个键盘健按下之后再释放时触发。

void KeyUp(GRShiftStates Shift, SHORT Key);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT Key

指示按下键的虚键值。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRShiftStates 枚举 | IGRDisplayViewer.KeyDown 事件 | IGRDisplayViewer.KeyPress 事件


IGRDisplayViewer.MouseDown 事件

在查询显示器上鼠标按钮按下时触发。

void MouseDown(GRMouseButton Button, GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRMouseButton Button

指示操作的鼠标按钮。

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRMouseButton 枚举 | GRShiftStates 枚举 | IGRDisplayViewer.MouseUp 事件


IGRDisplayViewer.MouseMove 事件

在查询显示器上鼠标光标移动时触发。

void MouseMove(GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRShiftStates 枚举


IGRDisplayViewer.MouseUp 事件

在查询显示器上鼠标按钮按下再释放时触发。

void MouseUp(GRMouseButton Button, GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRMouseButton Button

指示操作的鼠标按钮。

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRMouseButton 枚举 | GRShiftStates 枚举 | IGRDisplayViewer.MouseDown 事件


IGRDisplayViewer.SectionClick 事件

当鼠标点击在某个节上时触发。

void SectionClick(IGRSection *pSender);

参数

IGRSection *pSender

指示触发本事件的节对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRSection 接口 | IGRDisplayViewer.SectionDblClick 事件


IGRDisplayViewer.SectionDblClick 事件

当鼠标双击在某个节上时触发。

void SectionDblClick(IGRSection *pSender);

参数

IGRSection *pSender

指示触发本事件的节对象接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRSection 接口 | IGRDisplayViewer.SectionClick 事件


IGRDisplayViewer.SelectionCellChange 事件

当前显示的单元格发生改变时触发。

void SelectionCellChange(LONG OldCol, LONG OldRow);

参数

LONG OldCol

指示原来选中列的序号。

LONG OldRow

指示原来选中行的序号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员


IGRDisplayViewer.TitleCellClick 事件

当鼠标点击在某个标题格上时触发。

void TitleCellClick(IGRColumnTitleCell *pSender);

参数

IGRColumnTitleCell *pSender

指示触发本事件的标题格对象的接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnTitleCell 接口 | IGRDisplayViewer.TitleCellDblClick 事件


IGRDisplayViewer.TitleCellDblClick 事件

当鼠标双击在某个标题格上时触发。

void TitleCellDblClick(IGRColumnTitleCell *pSender);

参数

IGRColumnTitleCell *pSender

指示触发本事件的标题格对象的接口引用。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnTitleCell 接口 | IGRDisplayViewer.TitleCellClick 事件


IGRPrintViewer.Click 事件

当鼠标在打印查看器上点击时触发。

void Click(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.DblClick 事件


IGRPrintViewer.DblClick 事件

当鼠标在打印查看器上双击时触发。

void DblClick(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.Click 事件


IGRPrintViewer.KeyDown 事件

当打印查看器拥有输入焦点时，某个键盘健按下时触发。

void KeyDown(GRShiftStates Shift, SHORT Key);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT Key

指示按下键的虚键值。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRShiftStates 枚举 | IGRPrintViewer.KeyPress 事件 | IGRPrintViewer.KeyUp 事件


IGRPrintViewer.KeyUp 事件

当打印查看器拥有输入焦点时，某个键盘健按下再释放时触发。

void KeyUp(GRShiftStates Shift, SHORT Key);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT Key

指示按下键的虚键值。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRShiftStates 枚举 | IGRPrintViewer.KeyDown 事件 | IGRPrintViewer.KeyPress 事件


IGRPrintViewer.KeyPress 事件

当打印查看器拥有输入焦点时，某个键盘健按下时触发。

void KeyPress(CHAR Key);

参数

CHAR Key

指示按下键的对应字母值。

说明

键事件按下列顺序发生：
KeyDown
KeyPress
KeyUp

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.KeyDown 事件 | IGRPrintViewer.KeyUp 事件


IGRPrintViewer.MouseDown 事件

在打印查看器上鼠标按钮按下时触发。

void MouseDown(GRMouseButton Butotn, GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRMouseButton Butotn

指示操作的鼠标按钮。

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRMouseButton 枚举 | GRShiftStates 枚举 | IGRPrintViewer.MouseUp 事件


IGRPrintViewer.MouseUp 事件

在打印查看器上鼠标按钮按下之后再释放时触发。

void MouseUp(GRMouseButton Button, GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRMouseButton Button

指示操作的鼠标按钮。

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRMouseButton 枚举 | GRShiftStates 枚举 | IGRPrintViewer.MouseDown 事件


IGRPrintViewer.MouseMove 事件

在打印查看器上鼠标移动时触发。

void MouseMove(GRShiftStates Shift, SHORT xPos, SHORT yPos);

参数

GRShiftStates Shift

指示切换键的状态。

SHORT xPos

鼠标光标的X位置，相对于查询显示器的客户区。

SHORT yPos

鼠标光标的Y位置，相对于查询显示器的客户区。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRShiftStates 枚举


IGRPrintViewer.PageClick 事件

当鼠标在页面的显示区域上点击时触发。

void PageClick(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PageDblClick 事件


IGRPrintViewer.PageDblClick 事件

当鼠标在页面的显示区域上双击时触发。

void PageDblClick(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PageClick 事件


IGRPrintViewer.RulerClick 事件

当鼠标在标尺上点击时触发。

void RulerClick(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.RulerDblClick 事件


IGRPrintViewer.RulerDblClick 事件

当鼠标在标尺上双击时触发。

void RulerDblClick(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.RulerClick 事件


IGRPrintViewer.StatusChange 事件

当打印查看器的状态信息改变时触发。

void StatusChange(void);

说明

当打印查看器的状态信息改变时触发。这里所指状态信息包括：
.当前显示页的页号
.页面查看模式
.多也查看模式下，行列显示页数
.显示比例
.标尺是否显示标志
.工具条是否显示标志

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.CurPageNo 属性 | IGRPrintViewer.PageCount 属性 | IGRPrintViewer.ZoomPercent 属性


IGRDesigner.Dirty 属性

指示设计器中的数据是否已修改并未保存的标志。

VARIANT_BOOL Dirty

特征

可读写

仅运行时可用

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.Post 方法 | IGRDesigner.IsBlank 属性 | 属性特征说明


IGRDesigner.OnlyLayout 属性

指示设计器只能进行改变位置大小的操作。

VARIANT_BOOL OnlyLayout

默认值

FALSE

特征

可读写

说明

当将OnlyLayout属性设为真时，属性编辑窗口只能查看数据，而不能修改数据；在报表布局窗口中只能改变节、部件框、单元格的位置与大小；整个设计器不能新增报表元素，不能删除报表元素。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.Options 属性 | 属性特征说明


IGRDesigner.Report 属性

关联报表主对象的接口引用。设计器将显示关联报表主对象的数据。

IDispatch *Report

特征

可读写

请参见

IGRDesigner 接口 | IGRDesigner 成员 | 属性特征说明


IGRDesigner.ShowExplorer 属性

是否显示对象浏览器窗口标志。

VARIANT_BOOL ShowExplorer

默认值

TRUE

特征

可读写

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.ShowInspector 属性 | 属性特征说明


IGRDesigner.ShowInspector 属性

是否显示属性编辑窗口标志。

VARIANT_BOOL ShowInspector

默认值

TRUE

特征

可读写

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.ShowExplorer 属性 | 属性特征说明


IGRDesigner.CancelInsertControl 方法

取消设计器插入部件框状态，使其回到平常操作状态。

void CancelInsertControl(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.PrepareInsertControl 方法


IGRDesigner.DoAction 方法

执行设计其的某个动作。

void DoAction(GRDesignerAction Action);

参数

GRDesignerAction Action

指定动作的类型。

说明

如果报表开发者要为用户提供运行时自定义的报表设计功能，使报表用户可以在运行时对报表进行修改设计。报表开发者需要使用一个报表设计器构件，然后提供一些外围操作界面，去通知报表设计器执行某些任务，此时就需要调用DoAction方法，去执行各种设计器动作。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerAction 枚举 | IGRDesigner.IsActionEnabled 方法 | IGRDesigner.BeforeDoAction 事件


IGRDesigner.IsActionEnabled 方法

判断某个动作在此时是否可以执行。

VARIANT_BOOL IsActionEnabled(GRDesignerAction Action);

返回值

VARIANT_BOOL

如果动作可以执行，则返回真，否则返回假。

参数

GRDesignerAction Action

指定某个动作。

说明

在实现自定义的报表设计器时，通过调用本方法去设定外围操作界面的使能状态。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerAction 枚举 | IGRDesigner.DoAction 方法


IGRDesigner.Post 方法

将设计器中的当前报表模板数据提交到关联的报表主对象中去。

void Post(void);

说明

设计器完成设计任务之后，需要将设计结果提交，调用Post方法将数据提交到报表主对象，如果还需要将数据永久保存起来，则调用报表主对象的SaveToFile方法将数据保存到报表模板文件。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.Dirty 属性 | IGRDesigner.Report 属性 | IGRDesigner.Reload 方法


IGRDesigner.PrepareInsertControl 方法

使设计器进入插入部件框状态，在参数中指定部件框的类型。

void PrepareInsertControl(GRControlType Type);

参数

GRControlType Type

指定准备插入部件框的类型。

说明

设计器进入部件框状态之后，当在设计器中某个部件框容器的区域上用鼠标进行点击或拖放，一个新的部件框将插入到鼠标操作的位置，部件框容器如不能接受要插入的部件框，操作将失败。在插入部件框状态，不论进行任何操作，都将使设计器回到平常操作状态。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRControlType 枚举 | IGRDesigner.CancelInsertControl 方法 | IGRDesigner.IsInsertingControl 属性 | IGRDesigner.IsInsertControlEnabled 方法


IGRDisplayViewer.BorderStyle 属性

指定查询显示器的边框样式。

GRViewerBorderStyle BorderStyle

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRViewerBorderStyle 枚举 | 属性特征说明


IGRDisplayViewer.HScrollPos 属性

在运行时，获取与设置水平滚动条的位置。

LONG HScrollPos

特征

可读写

仅运行时可用

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.VScrollPos 属性 | 属性特征说明


IGRDisplayViewer.Report 属性

关联报表主对象的接口引用。

IGridppReport *Report

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGridppReport 接口 | 属性特征说明


IGRDisplayViewer.RowCount 属性

运行时，当前查看报表的总行数。

LONG RowCount

特征

只读

仅运行时可用

说明

每个记录对应的显示行为一行，每个显示的分组头算一行，每个显示的分组尾算一行，总行数为以上三种数据的合计。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.SelColumnNo 属性

选中单元格的列序号。

LONG SelColumnNo

特征

可读写

仅运行时可用

说明

列序号从零开始计数。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelRowNo 属性 | IGRDisplayViewer.SelColumnName 属性 | IGRDisplayViewer.GetSelRowCellText 方法 | IGRDisplayViewer.AlwaysShowSelection 属性 | 属性特征说明


IGRDisplayViewer.SelRowNo 属性

选中单元格的行序号。

LONG SelRowNo

特征

可读写

仅运行时可用

说明

行序号从零开始计数。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelColumnNo 属性 | IGRDisplayViewer.GetSelRowCellText 方法 | IGRDisplayViewer.AlwaysShowSelection 属性 | 属性特征说明


IGRDisplayViewer.ShowFooter 属性

是否显示报表尾的标志。

VARIANT_BOOL ShowFooter

默认值

TRUE

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ShowHeader 属性 | 属性特征说明


IGRDisplayViewer.ShowHeader 属性

是否显示报表头的标志。

VARIANT_BOOL ShowHeader

默认值

TRUE

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ShowFooter 属性 | 属性特征说明


IGRDisplayViewer.VScrollPos 属性

在运行时，获取与设置垂直滚动条的位置。

LONG VScrollPos

特征

可读写

仅运行时可用

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.HScrollPos 属性 | 属性特征说明


IGRDisplayViewer.GetContentCellFromPos 方法

取得指定位置处的内容格对象的接口引用。

IGRColumnContentCell *GetContentCellFromPos(SHORT xPox, SHORT yPos);

返回值

IGRColumnContentCell *

如果在指定位置存在内容格，则返回此内容格的接口引用，否则返回NULL。

参数

SHORT xPox

水平方向的坐标位置。

SHORT yPos

垂直方向的坐标位置。

说明

传入位置参数是指查询显示器的客户区位置。此方法一般在查询显示器的鼠标事件中使用，用于判断用户鼠标操作的区域，执行相应的任务去响应用户的鼠标操作。例如要求在用户双击内容格式，打开此内容格对应的当前行记录的数据录入界面。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnContentCell 接口


IGRDisplayViewer.GetControlFromPos 方法

取得指定位置处的部件框对象的接口引用。

IGRControl *GetControlFromPos(SHORT xPos, SHORT yPos);

返回值

IGRControl *

如果在指定位置存在部件框，则返回此部件框的接口引用，否则返回NULL。

参数

SHORT xPos

水平方向的坐标位置。

SHORT yPos

垂直方向的坐标位置。

说明

传入位置参数是指查询显示器的客户区位置。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRControl 接口


IGRDisplayViewer.GetSectionFromPos 方法

取得指定位置处的报表节对象的接口引用。

IGRSection *GetSectionFromPos(SHORT xPos, SHORT yPos);

返回值

IGRSection *

如果在指定位置存在报表节，则返回此报表节的接口引用，否则返回NULL。

参数

SHORT xPos

水平方向的坐标位置。

SHORT yPos

垂直方向的坐标位置。

说明

传入位置参数是指查询显示器的客户区位置。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRSection 接口


IGRDisplayViewer.GetTitleCellFromPos 方法

取得指定位置处的标题格对象的接口引用。

IGRColumnTitleCell *GetTitleCellFromPos(SHORT xPos, SHORT yPos);

返回值

IGRColumnTitleCell *

如果在指定位置存在标题格，则返回此标题格的接口引用，否则返回NULL。

参数

SHORT xPos

水平方向的坐标位置。

SHORT yPos

垂直方向的坐标位置。

说明

传入位置参数是指查询显示器的客户区位置。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRColumnTitleCell 接口


IGRDisplayViewer.PostColumnLayout 方法

将报表列的当前显示顺序与宽度信息提交到关联报表主对象中去。

void PostColumnLayout(void);

说明

在报表查询显示时，通过鼠标拖放可以改变列的显示顺序与宽度，调用 PostColumnLayout 方法可以将列在查询显示器中的显示状态保存到报表主对象中。
例如：如果在查询显示之后进行打印，列在查询显示器已经改变顺序与宽度，要求打印要反映列显示的状态，调用此方法就可以达到此目的。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ToPostColumnLayout 属性


IGRDisplayViewer.Refresh 方法

刷新数据，报表重新生成。

void Refresh(void);

说明

调用此方法后，报表将重新生成，报表生成过程中触发的事件将再次触发。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Start 方法 | IGRDisplayViewer.Stop 方法 | IGRDisplayViewer.QuickRefresh 方法


IGRDisplayViewer.Start 方法

开始报表生成并按查询显示的方式展现出来。

void Start(void);

说明

执行此方法后，报表生成过程中的相关事件将被触发。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Stop 方法 | IGRDisplayViewer.Refresh 方法


IGRDisplayViewer.Stop 方法

停止报表的查询显示，并停止报表的运行。

void Stop(void);

说明

执行本方法后，查询显示输出所占用的资源将被释放掉。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Start 方法 | IGRDisplayViewer.Refresh 方法


IGRPrintViewer.ColPages 属性

多页查看模式下，每行显示的页数。

SHORT ColPages

默认值

3

特征

可读写

设计器中可见

说明

值范围为1到20。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.RowPages 属性 | IGRPrintViewer.ViewMode 属性 | 属性特征说明


IGRPrintViewer.CurPageNo 属性

当前显示页的页号。页号从一开始计数。

SHORT CurPageNo

特征

可读写

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PageCount 属性 | IGRPrintViewer.StatusChange 事件 | 属性特征说明


IGRPrintViewer.GenerateStyle 属性

指定打印数据的生成方式。

GRPrintGenerateStyle GenerateStyle

默认值

grpgsAll

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRPrintGenerateStyle 枚举 | 属性特征说明


IGRPrintViewer.PageCount 属性

报表的总页数。

SHORT PageCount

特征

只读

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.CurPageNo 属性 | IGRPrintViewer.StatusChange 事件 | 属性特征说明


IGRPrintViewer.Report 属性

获取或设置关联报表主对象的接口引用。

IGridppReport *Report

特征

可读写

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGridppReport 接口 | 属性特征说明


IGRPrintViewer.RowPages 属性

多页查看模式下，每列显示的页数。

SHORT RowPages

默认值

2

特征

可读写

设计器中可见

说明

值范围为1到16。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ColPages 属性 | IGRPrintViewer.ViewMode 属性 | 属性特征说明


IGRPrintViewer.ShowRuler 属性

是否显示标尺标志。

VARIANT_BOOL ShowRuler

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ShowToolbar 属性 | IGRPrintViewer.ShowBookmark 属性 | 属性特征说明


IGRPrintViewer.ShowToolbar 属性

是否显示工具条标志。

VARIANT_BOOL ShowToolbar

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ShowRuler 属性 | IGRPrintViewer.ShowBookmark 属性 | 属性特征说明


IGRPrintViewer.ViewMode 属性

打印页面的查看模式。

GRPrintViewMode ViewMode

默认值

grpvmSinglePage

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRPrintViewMode 枚举 | IGRPrintViewer.ColPages 属性 | IGRPrintViewer.RowPages 属性 | IGRPrintViewer.ZoomPercent 属性 | 属性特征说明


IGRPrintViewer.ZoomPercent 属性

打印页面的查看显示百分比例。

SHORT ZoomPercent

默认值

100

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ViewMode 属性 | IGRPrintViewer.StatusChange 事件 | IGRPrintViewer.ZoomToFit 方法 | IGRPrintViewer.ZoomIn 方法 | IGRPrintViewer.ZoomOut 方法 | IGRPrintViewer.ZoomToHeight 方法 | IGRPrintViewer.ZoomToWidth 方法 | 属性特征说明


IGRPrintViewer.NextPage 方法

显示下一页打印页面。

void NextPage(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PriorPage 方法 | IGRPrintViewer.FirstPage 方法 | IGRPrintViewer.LastPage 方法


IGRPrintViewer.Print 方法

打印出打印查看器生成的打印数据。

void Print(VARIANT_BOOL ShowPrintDialog);

参数

VARIANT_BOOL ShowPrintDialog

指示是否显示打印对话框。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员


IGRPrintViewer.PriorPage 方法

显示上一页打印页面。

void PriorPage(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.FirstPage 方法 | IGRPrintViewer.LastPage 方法 | IGRPrintViewer.NextPage 方法


IGRPrintViewer.Refresh 方法

重新生成打印数据，并更新显示。

void Refresh(void);

说明

调用此方法后，报表将重新生成，报表生成过程中触发的事件将再次触发，生成报表打印数据过程中触发的事件也将再次触发。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.Start 方法 | IGRPrintViewer.Stop 方法 | IGRPrintViewer.QuickRefresh 方法


IGRPrintViewer.Start 方法

开始获取报表数据，生成报表打印页面数据，并按打印预览的方式把报表展现出来。

void Start(void);

说明

执行此方法后，报表数据生成过程中的相关事件将被触发，打印数据生成过程中的相关事件将被触发。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.Stop 方法 | IGRPrintViewer.Refresh 方法


IGRPrintViewer.Stop 方法

停止报表运行，结束打印预览查看。

void Stop(void);

说明

执行本方法后，打印查看所占用的资源将被释放掉。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.Start 方法 | IGRPrintViewer.Refresh 方法


IGRPrintViewer.ZoomIn 方法

增大显示比例。

void ZoomIn(void);

说明

注意：此方法只在单页查看模式与连续查看模式下有效。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ZoomOut 方法 | IGRPrintViewer.ZoomToFit 方法 | IGRPrintViewer.ZoomToWidth 方法 | IGRPrintViewer.ZoomToHeight 方法 | IGRPrintViewer.ZoomPercent 属性


IGRPrintViewer.ZoomOut 方法

缩小显示比例。

void ZoomOut(void);

说明

注意：此方法只在单页查看模式与连续查看模式下有效。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ZoomIn 方法 | IGRPrintViewer.ZoomToFit 方法 | IGRPrintViewer.ZoomToHeight 方法 | IGRPrintViewer.ZoomToWidth 方法 | IGRPrintViewer.ZoomPercent 属性


IGRPrintViewer.ZoomToFit 方法

缩放页面显示比例到刚好在查看区域中完整显示出来。

void ZoomToFit(void);

说明

注意：此方法只在单页查看模式与连续查看模式下有效。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ZoomIn 方法 | IGRPrintViewer.ZoomOut 方法 | IGRPrintViewer.ZoomToHeight 方法 | IGRPrintViewer.ZoomToWidth 方法 | IGRPrintViewer.ZoomPercent 属性


IGRPrintViewer.ZoomToWidth 方法

缩放页面显示比例到刚好使其宽度在查看区域中完整显示出来。

void ZoomToWidth(void);

说明

注意：此方法只在单页查看模式与连续查看模式下有效。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ZoomIn 方法 | IGRPrintViewer.ZoomOut 方法 | IGRPrintViewer.ZoomToFit 方法 | IGRPrintViewer.ZoomToHeight 方法 | IGRPrintViewer.ZoomPercent 属性


IGRPrintViewer.ZoomToHeight 方法

缩放页面显示比例到刚好使其高度在查看区域中完整显示出来。

void ZoomToHeight(void);

说明

注意：此方法只在单页查看模式与连续查看模式下有效。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ZoomIn 方法 | IGRPrintViewer.ZoomOut 方法 | IGRPrintViewer.ZoomToFit 方法 | IGRPrintViewer.ZoomToWidth 方法 | IGRPrintViewer.ZoomPercent 属性


IGRRecordset.Post 方法

提交新增记录。

void Post(void);

说明

在调用Append方法之后，然后向各个字段赋值，最后调用Post方法将新记录提交。新记录只有提交之后才会存储打记录集中。此方法只能在 FetchData 事件响应函数中使用。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Append 方法 | IGridppReport.PrepareRecordset 方法


GRViewerBorderStyle 枚举

指定查询显示器与打印查看器的边框类型

成员名称 | 枚举值 | 说明
grbsFixed3D | 1 | 三维边框。
grbsFixedSingle | 2 | 单行边框。
grbsNone | 3 | 无边框。

请参见

IGRDisplayViewer.BorderStyle 属性 | IGRDisplayViewer 接口


IGridppReport.SectionFormat 事件

当报表节在输出之前触发。包括查询显示与打印生成显示。

void SectionFormat(IGRSection *pSender);

参数

IGRSection *pSender

指示触发本事件的节的接口引用。

说明

当报表节在输出显示之前触发。一般在 SectionFormat 事件中改变节及节中的部件框或单元格的显示外观属性，达到某些突出显示的效果。

当节在查询显示器中显示时，每当查询显示器窗口需要刷新显示时，都会触发节的 SectionFormat 事件，所以节的 SectionFormat 事件会频繁触发。当报表节打印生成时，当每个节在输出之前会触发 SectionFormat 事件。一个节每显示一次，就会触发一次 SectionFormat 事件，一个节如果多次显示，就会多次触发 SectionFormat 事件。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRSection 接口 | IGRControl 接口 | IGRColumnCell 接口 | IGridppReport.ForceNewPage 方法 | IGRSection 接口


IGRParameters._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRParameters 接口 | IGRParameters 成员 | 属性特征说明


IGRParameters.Count 属性

指示拥有参数的个数。

LONG Count

特征

只读

请参见

IGRParameters 接口 | IGRParameters 成员 | 属性特征说明


IGRParameters.Item 属性

根据参数的顺序号或名称得到参数的接口引用。

IGRParameter *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定参数的顺序号或名称，参数的顺序号从一开始。

请参见

IGRParameters 接口 | IGRParameters 成员 | IGRParameter 接口 | 属性特征说明


IGRParameters.Add 方法

增加一个参数并返回新增参数的接口引用。

IGRParameter *Add(void);

返回值

IGRParameter *

新增参数的接口引用。

请参见

IGRParameters 接口 | IGRParameters 成员 | IGRParameter 接口


IGRParameters.IndexByName 方法

根据参数的名称取得其顺序号，如果不存在与名称匹配的参数，则返回-1。参数的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的参数，返回其顺序号，否则返回-1。

参数

BSTR Name

指定参数的名称。

请参见

IGRParameters 接口 | IGRParameters 成员


IGRParameters.Remove 方法

根据参数的顺序号或名称将参数移除，在输入参数种指定要移除参数的顺序号或名称。

void Remove(VARIANT Index);

参数

VARIANT Index

指定参数的顺序号或名称。

请参见

IGRParameters 接口 | IGRParameters 成员


IGRParameters.RemoveAll 方法

清除全部参数。

void RemoveAll(void);

请参见

IGRParameters 接口 | IGRParameters 成员


IGRSections._NewEnum 属性

返回VB需要的枚举器，VB在执行For_Each语句时需要，非VB开发者不用关心此属性。

IUnknown *_NewEnum

特征

只读

请参见

IGRSections 接口 | IGRSections 成员 | 属性特征说明


IGRSections.Count 属性

指示拥有列的个数。

LONG Count

特征

只读

请参见

IGRSections 接口 | IGRSections 成员 | 属性特征说明


IGRSections.Item 属性

根据列的顺序号或名称得到列的接口引用。

IGRSection *Item

特征

只读

说明

在读取时要传入一个VARIANT类型的参数，指定子对象的顺序号或名称，子对象的顺序号从一开始。

请参见

IGRSections 接口 | IGRSections 成员 | IGRSection 接口 | 属性特征说明


IGRSections.Add 方法

增加一个子对象并返回新增子对象的接口引用，如果子对象具有具体类型，则此方法有一个类型参数，通过此参数指定子对象的类型。

IGRSection *Add(GRSectionType Type);

返回值

IGRSection *

新增报表节对象的接口引用。

参数

GRSectionType Type

指定报表节的类型。

请参见

IGRSections 接口 | IGRSections 成员 | IGRSection 接口 | GRSectionType 枚举


IGRSections.IndexByName 方法

根据子对象的名称取得其顺序号，如果不存在与名称匹配的子对象，则返回值为-1。子对象的名称不区分字母的大小写。

LONG IndexByName(BSTR Name);

返回值

LONG

如果有匹配的报表节，返回其顺序号，否则返回-1。

参数

BSTR Name

指定列的名称。

请参见

IGRSections 接口 | IGRSections 成员


IGRSections.Remove 方法

根据子对象的顺序号或名称将子对象移除掉，在输入参数种指定要移除子对象的顺序号或名称。

void Remove(LONG Index);

参数

LONG Index

指定报表节的顺序号或名称。

请参见

IGRSections 接口 | IGRSections 成员


IGRSections.RemoveAll 方法

清除全部子对象。

void RemoveAll(void);

请参见

IGRSections 接口 | IGRSections 成员


IGRPrinter.Collate 属性

指示打印文档是否逐份打印。

VARIANT_BOOL Collate

特征

可读写

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.Copies 属性 | 属性特征说明


IGRPrinter.Copies 属性

获取或设置要打印的文档份数。

SHORT Copies

特征

可读写

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.Collate 属性 | 属性特征说明


IGRPrinter.PageCount 属性

指示当前打印文档的总页数。

SHORT PageCount

特征

可读写

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRPrinter.PaperSize 属性

表示打印纸张的大小。

SHORT PaperSize

特征

可读写

仅用于打印

说明

参考Windows SDK中 DEVMODE 的成员 dmPaperSize 的说明。其中256代表自定义纸张，当定义为自定义纸张时，可以设置纸张宽度与长度属性指定打印纸张的大小。

下面是几种常见纸型的整数值：
LETTER - 1
A3 - 8
A4 - 9
A5 - 11
B4 - 12
B5 - 13

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PaperName 属性 | IGRPrinter.PaperLength 属性 | IGRPrinter.PaperWidth 属性 | IGRPrinter.SheetPaperSize 属性 | 属性特征说明


IGRParameter.AsBoolean 属性

获取或设置布尔值，只有当为布尔类型参数时才能成功使用此属性。

VARIANT_BOOL AsBoolean

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DataType 属性 | 属性特征说明


IGRParameter.AsDateTime 属性

获取或设置日期时间值，只有当为日期时间类型参数时才能成功使用此属性。

DATE AsDateTime

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DataType 属性 | 属性特征说明


IGRParameter.AsFloat 属性

获取或设置浮点数值，只有当为浮点数类型参数时才能成功使用此属性。

DOUBLE AsFloat

特征

可读写

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DataType 属性 | 属性特征说明


IGRParameter.AsInteger 属性

获取或设置整数值，只有当为整数类型参数时才能成功使用此属性。

LONG AsInteger

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DataType 属性 | 属性特征说明


IGRParameter.AsString 属性

获取或设置文本值，只有当为文本类型参数时才能成功使用此属性。

BSTR AsString

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DataType 属性 | 属性特征说明


IGRParameter.DisplayText 属性

参数的输出显示文本。

BSTR DisplayText

特征

只读

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.Format 属性 | IGRParameter.Value 属性 | IGRStaticBox 接口 | 属性特征说明


IGRParameter.Format 属性

IGRParameter.Format(格式) 属性

整数、浮点数、日期时间类型的参数生成输出显示文本的格式串。

BSTR Format

特征

可读写

设计器中可见

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.DisplayText 属性 | IGRParameter.Value 属性 | 属性特征说明


IGRParameter.IsNull 属性

参数的值是否为空标志。

VARIANT_BOOL IsNull

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.Value 属性 | 属性特征说明


IGRParameter.Name 属性

IGRParameter.Name(名称) 属性

参数的名称标识。

BSTR Name

特征

可读写

设计器中可见

请参见

IGRParameter 接口 | IGRParameter 成员 | 属性特征说明


IGRParameter.DataType 属性

IGRParameter.DataType(数据类型) 属性

指示参数的数据类型。

GRParameterDataType DataType

默认值

grptString

特征

可读写

设计器中可见

请参见

IGRParameter 接口 | IGRParameter 成员 | GRParameterDataType 枚举 | 属性特征说明


IGRParameter.Value 属性

IGRParameter.Value(值) 属性

参数的值。

VARIANT Value

特征

可读写

仅运行时可用

请参见

IGRParameter 接口 | IGRParameter 成员 | IGRParameter.IsNull 属性 | IGRParameter.DisplayText 属性 | 属性特征说明


GRReportDisplayMode 枚举

指定报表的输出显示模式。

成员名称 | 枚举值 | 说明
grrdmScreenView | 1 | 正在查询显示器中报表处于自画过程中。
grrdmPrintGenerate | 2 | 报表处于打印页面生成过程中。
grrdmIdle | 3 | 报表不处于任何生成显示过程中。

请参见

IGridppReport.DisplayMode 属性


IGridppReport.DisplayMode 属性

指示报表的输出显示状态。

GRReportDisplayMode DisplayMode

特征

只读

仅运行时可用

说明

指示报表的输出显示状态。在SectionFormat事件处理函数中，获取本属性的值以知道当前的显示输出过程，可以对查询显示器中报表的子画显示输出和打印页面生成显示输出采取不同的处理。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRReportDisplayMode 枚举 | IGRDisplayViewer 接口 | IGRPrintViewer 接口 | 属性特征说明


IGRFont 概述

IGRFont 接口

表示报表对象显示文字所使用字体的对象。

有关此接口所有成员的列表，请参阅 IGRFont 成员。

IDispatch
IGRFont

说明

表示报表对象显示文字所使用字体的对象。字体对象提供属性用来获取与设置字体定义，需要显示文本或需要为子对象提供缺省字体的报表对象拥有字体对象。当报表对象不使用其缺省字体时，它的字体对象拥有一个OLE字体对象，其字体定义由OLE字体对象表示，可以通过 OleFont 属性取得OLE字体对象的接口引用。当报表对象使用缺省字体时，其字体对象不拥有一个OLE字体对象，其字体定义来自其上级对象的字体定义，OleFont 属性为NULL。

报表开发者可以在 SectionFormat 事件响应函数中改变触发事件报表节本身或其拥有的单元格或部件框的字体定义，从而改变对应文本的显示。通过设定字体对象的属性来改变字体定义，如果将 OleFont 属性设为NULL，将导致使用缺省字体。

Grid++Report中拥有字体对象的报表对象有：
(1).报表主对象IGridppReport)。其字体对象定义整个报表的缺省字体。OleFont 属性永远不为NULL。
(3).明细网格(IGRDetailGrid),其字体对象定义其拥有的字节（标题行、内容行、分组头、分组尾）的缺省字体。其缺省字体来自报表主对象。
(2).报表节(IGRSection)。其字体对象定义其拥有全部部件框或单元格的缺省字体。如果报表节的类型为页眉、页脚、报表头、报表尾，其缺省字体来自报表主对象。如果报表节的类型为标题行、内容行、分组头、分组尾，其缺省字体来自明细网格。
(4).单元格(IGRColumnCell)。如果为非自由格，其字体对象定义单元格文本的显示字体；如果为非自由格，其字体对象定义单元格拥有全部部件框的缺省字体。标题格的缺省字体来自标题行，内容格的缺省字体来自内容行。
(5).部件框(IGRControl)。其字体对象定义部件框文本的显示字体。其缺省字体来自父容器。

请参见

IGRFont 成员 | IGridppReport 接口 | IGRDetailGrid 接口 | IGRSection 接口 | IGRColumnCell 接口 | IGRControl 接口 | IGridppReport.Font 属性 | IGRColumnCell.Font 属性 | IGRControl.Font 属性 | IGRSection.Font 属性 | IGRDetailGrid.Font 属性 | IGRChart.TitleFont 属性 | IGridppReport.CalcTextOut 方法


IGRFont成员

IGRFont 概述

公共属性

Bold | 该值指示此字体对象是否为粗体。
Charset | 该值指定此字体对象使用的 GDI 字符集。
Italic | 指示此字体对象是否为斜体。
Name | 此字体对象的字体名称。
OleFont | 指定字体对象拥有的OLE字体对象的接口引用。
Point | 指示此字体对象的字体大小尺寸，一般此值等同字体在字体对话框中显示的大小值。
Strikethrough | 该值指示此字体对象是否指定通过该字体的横线。
Underline | 该值指示此字体对象是否有下划线。
UsingOleFont | 指定拥有此字体的报表对象在显示文本时所应用的OLE字体的接口引用。
Weight | 该值用数字指示此字体对象的字体粗细，比 Bold 属性更具灵活性。

请参见

IGRFont 接口 | IGridppReport 接口 | IGRDetailGrid 接口 | IGRSection 接口 | IGRColumnCell 接口 | IGRControl 接口 | IGridppReport.Font 属性 | IGRColumnCell.Font 属性 | IGRControl.Font 属性 | IGRSection.Font 属性 | IGRDetailGrid.Font 属性 | IGRChart.TitleFont 属性 | IGridppReport.CalcTextOut 方法


IGRFont.OleFont 属性

指定字体对象拥有的OLE字体对象的接口引用。

IFont OleFont

特征

可读写

说明

指定字体对象拥有的OLE字体的接口引用。如果报表对象使用缺省字体，此属性为NULL，反之此属性为一个有效的OLE字体对象的接口引用。将此属性设为NULL使报表对象使用缺省字体。

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.UsingOleFont 属性

指定拥有此字体的报表对象在显示文本时所应用的OLE字体的接口引用。

IFont UsingOleFont

特征

只读

说明

当报表对象使用自己定义的字体时，此属性的值等于 OleFont 属性的值。当报表对象使用缺省字体时，此属性的值来自上级对象的 UsingOleFont 属性。

注意：如果使用本属性取得的OLE字体对象的接口引用进行改变字体的操作，有可能改变的是上级报表对象，或上级报表对象的上级报表对象的字体定义。

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Name 属性

此字体对象的字体名称。

BSTR Name

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Point 属性

指示此字体对象的字体大小尺寸，一般此值等同字体在字体对话框中显示的大小值。

FLOAT Point

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Charset 属性

该值指定此字体对象使用的 GDI 字符集。

SHORT Charset

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Weight 属性

该值用数字指示此字体对象的字体粗细，比 Bold 属性更具灵活性。

SHORT Weight

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | IGRFont.Bold 属性 | 属性特征说明


IGRFont.Bold 属性

该值指示此字体对象是否为粗体。

BOOL Bold

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | IGRFont.Weight 属性 | 属性特征说明


IGRFont.Italic 属性

指示此字体对象是否为斜体。

BOOL Italic

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Underline 属性

该值指示此字体对象是否有下划线。

BOOL Underline

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRFont.Strikethrough 属性

该值指示此字体对象是否指定通过该字体的横线。

BOOL Strikethrough

特征

可读写

设计器中可见

请参见

IGRFont 接口 | IGRFont 成员 | 属性特征说明


IGRRecordset.Empty 方法

请空记录集中的全部记录。

void Empty(void);

请参见

IGRRecordset 接口 | IGRRecordset 成员


IGRRecordset.RecordCount 属性

指示记录集中的记录条数。

LONG RecordCount

特征

只读

仅运行时可用

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.RecordNo 属性 | 属性特征说明


IGRRecordset.RecordNo 属性

指示当前记录的记录号，记录号从0开始。

LONG RecordNo

特征

只读

仅运行时可用

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.RecordCount 属性 | 属性特征说明


IGridppReport.ProcessBegin 事件

当报表准备对填入的数据进行分析处理之前触发本事件。

void ProcessBegin(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ProcessRecord 事件 | IGridppReport.ProcessEnd 事件


IGridppReport.ProcessEnd 事件

当报表对填入的数据进行分析处理完成之后触发本事件。

void ProcessEnd(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ProcessBegin 事件 | IGridppReport.ProcessRecord 事件


IGRPictureBox 概述

IGRPictureBox 接口

表示图像部件框。

有关此接口所有成员的列表，请参阅 IGRPictureBox 成员。

IDispatch
IGRControl
IGRPictureBox

说明

用来显示各种类型的图像数据的部件框，图像数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、WEB服务器上的图像URL、二进制字段和内存中载入。

图像框通过图像、数据字段、图像文件与图像序号等属性来关联图像数据，开发者应该选择其中之一方式。

请参见

IGRPictureBox 成员 | IGRImageList 接口 | GRSystemImage 枚举 | GRPictureAlignment 枚举 | GRPictureSizeMode 枚举 | IGRControl.AsPictureBox 属性


IGRPictureBox成员

IGRPictureBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Alignment | 指定图像在图像框中的显示对齐方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DataField | 关联字段对象的名称。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
ImageFile | 指定图像框关联的图像路径文件名，既可以使本地文件名，也可以WEB服务器上的URL。
ImageIndex | 指定图像框关联图像集合中某个图像的序号。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
Picture | 获取或设置图像数据的Ole接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
SizeMode | 指定图像在图像框中显示时的伸缩方式。
Tag(从 IGRControl 继承) | 部件框的标识值。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
TransparentMode | 指定图像的透明显示方式。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。

公共方法

AttachSystemImage | 关联一个系统图像到本图像框,从而在本图像框中显示一个系统图像。
BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadBmpPicture | 从BMP格式图像对象中载入图像数据。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
LoadFromFile | 运行时从磁盘文件或网络URL地址中载入图像文件。
LoadFromMemory | 运行时从内存中载入图像数据。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRPictureBox 接口 | IGRImageList 接口 | GRSystemImage 枚举 | GRPictureAlignment 枚举 | GRPictureSizeMode 枚举 | IGRControl.AsPictureBox 属性


IGRRichTextBox 概述

IGRRichTextBox 接口

表示RTF格式文本部件框。

有关此接口所有成员的列表，请参阅 IGRRichTextBox 成员。

IDispatch
IGRControl
IGRRichTextBox

说明

用来定义RTF格式文本部件框，RTF格式文本数据可以直接保存在报表模板文件中，也可以在运行时从磁盘文件、二进制字段和内存中载入。

请参见

IGRRichTextBox 成员 | IGRControl.AsRichTextBox 属性


IGRRichTextBox成员

IGRRichTextBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow | 指示部件框高度在运行时是否可以伸展标志。
CanShrink | 指示部件框的高度在运行时是否可以收缩标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DataField | 关联字段对象的名称。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
RTF | 表示显示的RTF文本数据。
Tag(从 IGRControl 继承) | 部件框的标识值。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
LoadFromFile | 运行时从磁盘文件中载入RTF格式文件。
LoadFromMemory | 运行时从内存中载入RTF格式文本数据。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRRichTextBox 接口 | IGRControl.AsRichTextBox 属性


IGRPictureBox.Alignment 属性

IGRPictureBox.Alignment(对齐方式) 属性

指定图像在图像框中的显示对齐方式。

GRPictureAlignment Alignment

默认值

grpaCenter

特征

可读写

设计器中可见

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | GRPictureAlignment 枚举 | GRPictureAlignment 枚举 | 属性特征说明


IGRPictureBox.DataField 属性

IGRPictureBox.DataField(数据字段) 属性

关联字段对象的名称。

BSTR DataField

特征

可读写

设计器中可见

说明

如果字段值存储的是二进制数据，图像框将把字段值作为图像数据进行加载。
如果字段值存储的是整数值，图像框将把字段值解析为图像序号，将从系统图像或图像集合中加载图像。
如果字段值存储的是字符串，图像框将把字段值解析为图像文件名称，将从对应文件中加载图像，文件既可以是本地文件路径名，也可以是网络URL。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRPictureBox.ImageFile 属性 | IGRPictureBox.ImageIndex 属性 | IGRPictureBox.Picture 属性 | 属性特征说明


IGRPictureBox.Picture 属性

IGRPictureBox.Picture(图像) 属性

获取或设置图像数据的Ole接口引用。

IPicture Picture

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRPictureBox.ImageFile 属性 | IGRPictureBox.ImageIndex 属性 | IGRPictureBox.DataField 属性 | 属性特征说明


IGRPictureBox.SizeMode 属性

IGRPictureBox.SizeMode(缩放方式) 属性

指定图像在图像框中显示时的伸缩方式。

GRPictureSizeMode SizeMode

默认值

grpsmZoom

特征

可读写

设计器中可见

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | GRPictureSizeMode 枚举 | GRPictureSizeMode 枚举 | 属性特征说明


IGRPictureBox.LoadFromFile 方法

运行时从磁盘文件或网络URL地址中载入图像文件。

void LoadFromFile(BSTR PathFile);

参数

BSTR PathFile

载入图像文件的路径与文件名，或URL。

说明

载入图像文件的时机:
1. 如果图像框位于报表头、报表尾、页眉与页脚中，应在报表主对象的 Initialize 事件响应函数中执行载入文件。
2. 如果图像框位于明细网格的内容格中，应在报表主对象的 ProcessRecord 事件响应函数中执行载入文件。
3. 如果图像框位于明细网格的分组头或分组尾中，应在报表主对象的 GroupBegin 或 GroupEnd 事件响应函数中执行载入文件。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRPictureBox.LoadFromMemory 方法


IGRRichTextBox.CanGrow 属性

IGRRichTextBox.CanGrow(可伸展) 属性

指示部件框高度在运行时是否可以伸展标志。

VARIANT_BOOL CanGrow

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性为真，报表运行时部件框的设计时高度不足以完整显示出拥有的RTF文本，则部件框的高足自动伸展到刚好能完整显示出拥有的RTF文本。

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | IGRRichTextBox.CanShrink 属性 | 属性特征说明


IGRRichTextBox.CanShrink 属性

IGRRichTextBox.CanShrink(可收缩) 属性

指示部件框的高度在运行时是否可以收缩标志。

VARIANT_BOOL CanShrink

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性为真，报表运行时部件框的设计时高度大于完整显示出拥有的RTF文本所需要的高度，则部件框的高度自动收缩到刚好能完整显示出拥有的RTF文本。

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | IGRRichTextBox.CanGrow 属性 | 属性特征说明


IGRRichTextBox.DataField 属性

IGRRichTextBox.DataField(数据字段) 属性

关联字段对象的名称。

BSTR DataField

特征

可读写

设计器中可见

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | 属性特征说明


IGRRichTextBox.RTF 属性

IGRRichTextBox.RTF(RTF文本) 属性

表示显示的RTF文本数据。

BSTR RTF

特征

可读写

设计器中可见

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | 属性特征说明


IGRRichTextBox.LoadFromFile 方法

运行时从磁盘文件中载入RTF格式文件。

void LoadFromFile(BSTR PathFile);

参数

BSTR PathFile

载入RTF文件的路径与文件名。

说明

载入RTF文件的时机:
1. 如果RTF文本框位于报表头、报表尾、页眉与页脚中，应在报表主对象的 Initialize 事件响应函数中执行载入文件。
2. 如果RTF文本框位于明细网格的内容格中，应在报表主对象的 ProcessRecord 事件响应函数中执行载入文件。
3. 如果RTF文本框位于明细网格的分组头或分组尾中，应在报表主对象的 GroupBegin 或 GroupEnd 事件响应函数中执行载入文件。

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | IGRRichTextBox.LoadFromMemory 方法


GRPictureAlignment 枚举

指定图像框中图像显示的对齐方式。

成员名称 | 枚举值 | 说明
grpaTopLeft | 1 | 图像的左上角紧靠图像框的左上角显示。
grpaTopRight | 2 | 图像的右上角紧靠图像框的右上角显示。
grpaCenter | 3 | 图像居中显示在图像框中。
grpaBottomLeft | 4 | 图像的左下角紧靠图像框的左下角显示。
grpaBottomRight | 5 | 图像的右下角紧靠图像框的右下角显示。

请参见

IGRPictureBox.Alignment 属性 | IGRPictureBox 接口 | IGridppReport.WatermarkAlignment 属性


GRPictureSizeMode 枚举

指定图像框中图像的显示缩放方式。

成员名称 | 枚举值 | 说明
grpsmClip | 1 | 图像不进行缩放，按原始尺寸显示。
grpsmStretch | 2 | 图像伸缩到完全显示到图像框中。
grpsmZoom | 3 | 根据图像框的大小图像保持宽高比例伸缩至某一方向完全铺满。
grpsmEnsureFullView | 4 | 如果图像不能在图像框中完全显示，根据图像框的大小图像保持宽高比例伸缩至某一方向完全铺满。反之图像保持原始尺寸显示。
grpsmTile | 5 | 平铺多次显示图像，铺满整个显示区域。

请参见

IGRPictureBox.SizeMode 属性 | IGRPictureBox 接口 | IGridppReport.WatermarkSizeMode 属性


IGridppReport.ColumnByName 方法

根据名称找到对应列对象的接口引用。

IGRColumn *ColumnByName(BSTR Name);

返回值

IGRColumn *

如果找到名称匹配的列，则返回该列对象的接口引用，否则返回NULL。

参数

BSTR Name

指定要查找列的名称。

说明

注意：匹配名称时不区分字母的大小写。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRColumn 接口 | IGridppReport.ControlByName 方法 | IGridppReport.FieldByName 方法 | IGridppReport.ParameterByName 方法


IGridppReport.Export 方法

执行数据导出。

VARIANT_BOOL Export(VARIANT_BOOL DoneOpen);

返回值

VARIANT_BOOL

指示数据导出是否成功执行。

参数

VARIANT_BOOL DoneOpen

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

说明

在调用Export方法之前一定要调用PrepareExport方法，在其后一定要调用UnprepareExport方法。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrepareExport 方法 | IGridppReport.UnprepareExport 方法 | IGridppReport.ExportDirect 方法


IGridppReport.LoadFromMemory 方法
[仅适用于C/S报表组件]

从内存中载入报表模板数据。

VARIANT_BOOL LoadFromMemory(CHAR *pData, ULONG ByteCount);

返回值

VARIANT_BOOL

指示载入报表模板数据是否成功。

参数

CHAR *pData

数据地址指针

ULONG ByteCount

数据字节大小

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SaveToMemory 方法 | IGridppReport.Clear 方法 | IGridppReport.LoadFromFile 方法 | IGridppReport.LoadFromStr 方法 | IGridppReport.LoadFromVariant 方法


IGridppReport.ParameterByName 方法

根据名称找到对应参数对象的接口引用。

IGRParameter *ParameterByName(BSTR Name);

返回值

IGRParameter *

如果找到名称匹配的参数，则返回该参数对象的接口引用，否则返回NULL。

参数

BSTR Name

指定要查找参数的名称。

说明

注意：匹配名称时不区分字母的大小写。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRParameter 接口 | IGridppReport.ColumnByName 方法 | IGridppReport.ControlByName 方法 | IGridppReport.FieldByName 方法 | IGridppReport.AddParameter 方法


IGridppReport.SaveToMemory 方法
[仅适用于C/S报表组件]

保存报表模板数据保存至内存缓冲区。以文本格式保存保存模板数据。

VARIANT_BOOL SaveToMemory(CHAR **ppData, ULONG *pByteCount);

返回值

VARIANT_BOOL

指示保存报表模板数据是否成功。

参数

CHAR **ppData

保存数据地址的参数指针。

ULONG *pByteCount

保存数据直接大小的参数指针。

说明

方法调用者在成功调用本方法之后，应调用 Windows API 函数 CoTaskMemFree 释放内存空间。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromMemory 方法 | IGridppReport.SaveToFile 方法 | IGridppReport.SaveToStr 方法 | IGridppReport.SaveToVariant 方法


IGRColumnContentCell.CanGrow 属性

IGRColumnContentCell.CanGrow(可伸展) 属性

指定内容格在运行时是否可以伸展高度。

VARIANT_BOOL CanGrow

默认值

FALSE

特征

可读写

设计器中可见

说明

如果文字要多行显示，应该将“文字自动绕行”属性设为“是”这样才会得到想要的伸展效果。

请参见

IGRColumnContentCell 接口 | IGRColumnContentCell 成员 | IGRColumnContentCell.CanShrink 属性 | IGRTextBox.CanGrow 属性 | IGRColumnCell.WordWrap 属性 | 属性特征说明


IGRColumnContentCell.CanShrink 属性

IGRColumnContentCell.CanShrink(可收缩) 属性

指定内容格在运行时是否可以收缩高度。

VARIANT_BOOL CanShrink

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRColumnContentCell 接口 | IGRColumnContentCell 成员 | IGRColumnContentCell.CanGrow 属性 | IGRTextBox.CanShrink 属性 | 属性特征说明


IGRControl.AsPictureBox 属性

将本部件框转换为图像框的接口引用。

IGRPictureBox *AsPictureBox

特征

只读

仅运行时可用

说明

只有当本部件框确实是图像框(PictureBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRPictureBox 接口 | 属性特征说明


IGRControl.AsRichTextBox 属性

将本部件框转换为RTF文本框的接口引用。

IGRRichTextBox *AsRichTextBox

特征

只读

仅运行时可用

说明

只有当本部件框确实是RTF文本框(RichTextBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRRichTextBox 接口 | 属性特征说明


IGRSection.CanGrow 属性

IGRSection.CanGrow(可伸展) 属性

指示节高度在运行时是否可以伸展的标志。

VARIANT_BOOL CanGrow

默认值

FALSE

特征

可读写

设计器中可见

说明

报表运行时，如果本属性为真且节拥有可伸展的部件框，节的高度伸展幅度为所有拥有部件框的伸展高度之和。

请参见

IGRSection 接口 | IGRSection 成员 | IGRSection.CanShrink 属性 | IGRColumnContent.GrowToNextRow 属性 | 属性特征说明


IGRSection.CanShrink 属性

IGRSection.CanShrink(可收缩) 属性

指示节高度在运行时是否可以收缩的标志。

VARIANT_BOOL CanShrink

默认值

FALSE

特征

可读写

设计器中可见

说明

报表运行时，如果本属性为真且节拥有可收缩的部件框，节的高度收缩幅度为所有拥有部件框的收缩高度之和。

请参见

IGRSection 接口 | IGRSection 成员 | IGRSection.CanGrow 属性 | 属性特征说明


IGRTextBox.CanGrow 属性

IGRTextBox.CanGrow(可伸展) 属性

指示部件框高度在运行时是否可以伸展的标志。

VARIANT_BOOL CanGrow

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性为真，报表运行时部件框的设计时高度不足以完整显示出拥有的文本，则部件框的高足自动伸展到刚好能完整显示出拥有的文本。

如果文字要多行显示，应该将“文字自动绕行”属性设为“是”这样才会得到想要的伸展效果。

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRMemoBox.FlowTo 属性 | IGRColumnContentCell.CanGrow 属性 | IGRTextBox.WordWrap 属性 | 属性特征说明


IGRTextBox.CanShrink 属性

IGRTextBox.CanShrink(可收缩) 属性

指示部件框高度在运行时是否可以收缩的标志。

VARIANT_BOOL CanShrink

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性为真，报表运行时部件框的设计时高度大于完整显示出拥有的文本所需要的高度，则部件框的高度自动收缩到刚好能完整显示出拥有的文本。

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRColumnContentCell.CanShrink 属性 | 属性特征说明


IGRTextBox.DisplayText 属性

运行时文字框的显示文本。

BSTR DisplayText

特征

只读

仅运行时可用

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRTextBox.GetDisplayTextScript 属性 | 属性特征说明


IGridppReport.LoadFromVariant 方法

从一个包含报表模板数据的 Variant 变量中载入报表。

VARIANT_BOOL LoadFromVariant(VARIANT Buf);

返回值

VARIANT_BOOL

指示载入报表模板数据是否成功。

参数

VARIANT Buf

数据包

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SaveToVariant 方法 | IGridppReport.Clear 方法 | IGridppReport.LoadFromFile 方法 | IGridppReport.LoadFromMemory 方法 | IGridppReport.LoadFromStr 方法


IGridppReport.SaveToVariant 方法

保存报表模板数据保存至内存缓冲区。以文本格式保存保存模板数据。

VARIANT SaveToVariant(void);

返回值

VARIANT

保存数据的内存缓冲区。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromVariant 方法 | IGridppReport.SaveToFile 方法 | IGridppReport.SaveToMemory 方法 | IGridppReport.SaveToStr 方法 | IGridppReport.SaveToFileEx 方法 | IGridppReport.SaveToStrEx 方法


IGRDesigner.AsNativeUI 属性

指示设计器是否显示为全中文界面

VARIANT_BOOL AsNativeUI

默认值

TRUE

特征

可读写

请参见

IGRDesigner 接口 | IGRDesigner 成员 | 属性特征说明


IGRDisplayViewer.LeftGap 属性

左边留出的空白间距，以像素为单位。

SHORT LeftGap

默认值

0

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.RightGap 属性

右边留出的空白间距，以像素为单位。

SHORT RightGap

默认值

0

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.TopGap 属性

上边留出的空白间距，以像素为单位。

SHORT TopGap

默认值

0

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.BottomGap 属性

下边留出的空白间距，以像素为单位。

SHORT BottomGap

默认值

0

特征

可读写

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGridppReport.DeleteDetailGrid 方法

删除整个明细网格的定义，报表主对象将不具有明细网格。

void DeleteDetailGrid(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DetailGrid 属性 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.DeletePageHeader 方法 | IGridppReport.DeleteReportFooter 方法 | IGridppReport.DeleteReportHeader 方法


IGridppReport.DeletePageHeader 方法

删除页眉的定义，报表主对象将不具有页眉。

void DeletePageHeader(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageHeader 属性 | IGridppReport.InsertPageHeader 方法 | IGridppReport.DeleteReportFooter 方法 | IGridppReport.DeleteReportHeader 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.DeleteDetailGrid 方法


IGridppReport.DeletePageFooter 方法

删除页脚的定义，报表主对象将不具有页脚。

void DeletePageFooter(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageFooter 属性 | IGridppReport.InsertPageFooter 方法 | IGridppReport.InsertPageHeader 方法 | IGridppReport.DeleteReportFooter 方法 | IGridppReport.DeleteReportHeader 方法 | IGridppReport.DeletePageHeader 方法 | IGridppReport.DeleteDetailGrid 方法


IGridppReport.DeleteReportHeader 方法

根据报表头的名称或序号删除一个报表头。

void DeleteReportHeader(VARIANT Index);

参数

VARIANT Index

指示报表头的名称或序号。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ReportHeader 属性 | IGridppReport.InsertReportHeader 方法 | IGridppReport.DeleteReportFooter 方法 | IGridppReport.DeletePageHeader 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.DeleteDetailGrid 方法


IGridppReport.DeleteReportFooter 方法

根据报表尾的名称或序号删除一个报表尾。

void DeleteReportFooter(VARIANT Index);

参数

VARIANT Index

指示报表尾的名称或序号。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ReportFooter 属性 | IGridppReport.InsertReportFooter 方法 | IGridppReport.DeleteReportHeader 方法 | IGridppReport.DeletePageHeader 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.DeleteDetailGrid 方法


IGridppReport.InsertPageHeader 方法

增加页眉定义。

IGRPageHeader *InsertPageHeader(void);

返回值

IGRPageHeader *

页眉接口引用。

说明

增加页眉定义，使报表主对象具有一个页眉。如果报表主对象已经定义了页眉，此方法直接返回页眉的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPageHeader 接口 | IGridppReport.PageHeader 属性 | IGridppReport.DeletePageHeader 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.InsertPageFooter 方法 | IGridppReport.InsertReportFooter 方法 | IGridppReport.InsertReportHeader 方法


IGridppReport.InsertPageFooter 方法

增加页脚定义。

IGRPageFooter *InsertPageFooter(void);

返回值

IGRPageFooter *

页脚接口引用。

说明

增加页脚定义，使报表主对象具有一个页脚。如果报表主对象已经定义了页脚，此方法直接返回页脚的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPageFooter 接口 | IGridppReport.PageFooter 属性 | IGridppReport.DeletePageFooter 方法 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.InsertPageHeader 方法 | IGridppReport.InsertReportFooter 方法 | IGridppReport.InsertReportHeader 方法


IGridppReport.InsertReportHeader 方法

增加一个报表头。

IGRReportHeader *InsertReportHeader(void);

返回值

IGRReportHeader *

新增报表头对象的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRReportHeader 接口 | IGridppReport.ReportHeader 属性 | IGridppReport.DeleteReportHeader 方法 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.InsertPageFooter 方法 | IGridppReport.InsertPageHeader 方法 | IGridppReport.InsertReportFooter 方法


IGridppReport.InsertReportFooter 方法

增加一个报表尾。

IGRReportFooter *InsertReportFooter(void);

返回值

IGRReportFooter *

新增报表尾对象的接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRReportFooter 接口 | IGridppReport.ReportFooter 属性 | IGridppReport.DeleteReportFooter 方法 | IGridppReport.InsertDetailGrid 方法 | IGridppReport.InsertPageFooter 方法 | IGridppReport.InsertPageHeader 方法 | IGridppReport.InsertReportHeader 方法


IGridppReport.PageHeader 属性

IGridppReport.PageHeader(页眉) 属性

获取页眉对象的接口引用。

IGRPageHeader *PageHeader

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPageHeader 接口 | IGridppReport.InsertPageHeader 方法 | IGridppReport.DeletePageHeader 方法 | IGridppReport.PageFooter 属性 | 属性特征说明


IGridppReport.PageFooter 属性

IGridppReport.PageFooter(页脚) 属性

获取页脚对象的接口引用。

IGRPageFooter *PageFooter

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPageFooter 接口 | IGridppReport.InsertPageFooter 方法 | IGridppReport.DeletePageFooter 方法 | IGridppReport.PageHeader 属性 | 属性特征说明


IGridppReport.ReportHeader 属性

根据名称或序号取得某个报表头对象的接口引用。

IGRReportHeader *ReportHeader

特征

只读

说明

在使用时应通过报表头的名称或序号(从1开始)来指定要获取的报表头对象应用。如果直接用 ReportHeader 在程序中编译不通过，可以改用 get_ReportHeader。

[javacript代码]
var ReportHeader = Report.ReportHeader(1); //根据序号获取，序号从1开始
var ReportHeader = Report.ReportHeader("ReportHeader1"); //根据名称获取

[VC代码]
IGRReportHeaderPtr ReportHeader = Report->ReportHeader[1]; //根据序号获取，序号从1开始
IGRReportHeaderPtr ReportHeader = Report->ReportHeader["ReportHeader1"]; //根据名称获取

[C#代码]
IGRReportHeader ReportHeader = Report.get_ReportHeader(1); //根据序号获取，序号从1开始
IGRReportHeader ReportHeader = Report.get_ReportHeader("ReportHeader1"); //根据名称获取

[VB.NET代码]
Dim ReportHeader As IGRReportHeader = Report.ReportHeader(1) '根据序号获取，序号从1开始
Dim ReportHeader As IGRReportHeader = Report.ReportHeader("ReportHeader1") '根据名称获取

[Delphi代码]
Reportheader: IGRReportHeader;
ReportHeader := Report.ReportHeader[1]; //根据序号获取，序号从1开始
ReportHeader := Report.ReportHeader['ReportHeader1']; //根据名称获取

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRReportHeader 接口 | IGridppReport.ReportHeaderCount 属性 | IGridppReport.ReportFooter 属性 | 属性特征说明


IGridppReport.ReportFooter 属性

根据名称或序号取得某个报表尾对象的接口引用。

IGRReportFooter *ReportFooter

特征

只读

说明

在使用时应通过报表尾的名称或序号(从1开始)来指定要获取的报表尾对象应用。如果直接用 ReportFooter 在程序中编译不通过，可以改用 get_ReportFooter。

[javacript代码]
var ReportFooter = Report.ReportFooter(1); //根据序号获取，序号从1开始
var ReportFooter = Report.ReportFooter("ReportFooter1"); //根据名称获取

[VC代码]
IGRReportFooterPtr ReportFooter = Report->ReportFooter[1]; //根据序号获取，序号从1开始
IGRReportFooterPtr ReportFooter = Report->ReportFooter["ReportFooter1"]; //根据名称获取

[C#代码]
IGRReportFooter ReportFooter = Report.get_ReportFooter(1); //根据序号获取，序号从1开始
IGRReportFooter ReportFooter = Report.get_ReportFooter("ReportFooter1"); //根据名称获取

[VB.NET代码]
Dim ReportFooter As IGRReportFooter = Report.ReportFooter(1) '根据序号获取，序号从1开始
Dim ReportFooter As IGRReportFooter = Report.ReportFooter("ReportFooter1") '根据名称获取

[Delphi代码]
Reportheader: IGRReportFooter;
ReportFooter := Report.ReportFooter[1]; //根据序号获取，序号从1开始
ReportFooter := Report.ReportFooter['ReportFooter1']; //根据名称获取

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRReportFooter 接口 | IGridppReport.ReportFooterCount 属性 | IGridppReport.ReportHeader 属性 | 属性特征说明


IGRPictureBox.LoadFromMemory 方法
[仅适用于C/S报表组件]

运行时从内存中载入图像数据。

void LoadFromMemory(BYTE *pBuffer, LONG BytesCount);

参数

BYTE *pBuffer

图像数据缓冲区内存地址。

LONG BytesCount

图像数据缓冲区的字节数。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRPictureBox.LoadFromFile 方法


IGRRichTextBox.LoadFromMemory 方法
[仅适用于C/S报表组件]

运行时从内存中载入RTF格式文本数据。

void LoadFromMemory(BYTE *pBuffer, ULONG BytesCount);

参数

BYTE *pBuffer

RTF数据缓冲区内存地址。

ULONG BytesCount

RTF数据缓冲区的字节数。

请参见

IGRRichTextBox 接口 | IGRRichTextBox 成员 | IGRRichTextBox.LoadFromFile 方法


IGRExportOption 概述

IGRExportOption 接口

数据导出选项的基类。

有关此接口所有成员的列表，请参阅 IGRExportOption 成员。

IDispatch
IGRExportOption

请参见

IGRExportOption 成员 | IGRE2CSVOption 接口 | IGRE2HTMOption 接口 | IGRE2TXTOption 接口 | IGRE2XLSOption 接口 | IGRE2IMGOption 接口 | IGRE2PDFOption 接口 | GRExportType 枚举 | IGridppReport.ExportBeginScript 属性 | IGridppReport.PrepareExport 方法 | IGridppReport.ExportBegin 事件 | IGridppReport.ExportEnd 事件 | IGRE2CellOption 接口


IGRExportOption成员

IGRExportOption 概述

公共属性

AbortOpenFile | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ExportType | 获取本导出文件选项对象的具体类型。
FileName | 指定导出文件的完整路径与文件名称。
MailExportFile | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject | 指定邮件的标题。
MailText | 指定邮件的正文。
MailTo | 指定邮件的收件人地址。

公共方法

ShowOptionDlg 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRExportOption 接口 | IGRE2CSVOption 接口 | IGRE2HTMOption 接口 | IGRE2TXTOption 接口 | IGRE2XLSOption 接口 | IGRE2IMGOption 接口 | IGRE2PDFOption 接口 | GRExportType 枚举 | IGridppReport.ExportBeginScript 属性 | IGridppReport.PrepareExport 方法 | IGridppReport.ExportBegin 事件 | IGridppReport.ExportEnd 事件


IGRExportOption.FileName 属性

指定导出文件的完整路径与文件名称。

BSTR FileName

特征

可读写

请参见

IGRExportOption 接口 | IGRExportOption 成员 | 属性特征说明


IGRExportOption.AsE2XLSOption 属性

获取将本对象转换为导出Excel文件选项对象的接口引用。

IGRE2XLSOption *AsE2XLSOption

特征

只读

说明

将本对象转换为导出Excel文件选项对象，只有当本对象确实是一个导出Excel文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2XLSOption 接口 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


IGRExportOption.AsE2TXTOption 属性

获取将本对象转换为导出文本文件选项对象的接口引用。

IGRE2TXTOption *AsE2TXTOption

特征

只读

说明

将本对象转换为导出文本文件选项对象，只有当本对象确实是一个导出文本文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2TXTOption 接口 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2XLSOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


IGRExportOption.AsE2HTMOption 属性

获取将本对象转换为导出Htm文件选项对象的接口引用。

IGRE2HTMOption *AsE2HTMOption

特征

只读

说明

将本对象转换为导出Htm文件选项对象，只有当本对象确实是一个导出Htm文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2HTMOption 接口 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.AsE2XLSOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


IGRExportOption.AsE2CSVOption 属性

获取将本对象转换为导出CSV文件选项对象的接口引用。

IGRE2CSVOption *AsE2CSVOption

特征

只读

说明

将本对象转换为导出CSV文件选项对象，只有当本对象确实是一个导出CSV文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2CSVOption 接口 | IGRExportOption.FileName 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.AsE2XLSOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


IGRExportOption.ExportType 属性

获取本导出文件选项对象的具体类型。

GRExportType ExportType

特征

只读

请参见

IGRExportOption 接口 | IGRExportOption 成员 | GRExportType 枚举 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.AsE2XLSOption 属性 | GRExportType 枚举 | 属性特征说明


IGRExportOption.ShowOptionDlg 方法

显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

VARIANT_BOOL ShowOptionDlg(void);

返回值

VARIANT_BOOL

如果在关闭对话框时选择了确定按钮，返回真值，反之则返回假值。

请参见

IGRExportOption 接口 | IGRExportOption 成员


GRExportType 枚举

指定数据导出的类型。

成员名称 | 枚举值 | 说明
gretXLS | 1 | 导出Excel文件。
gretTXT | 2 | 导出文本文件。
gretHTM | 3 | 导出Html超文本文件。
gretRTF | 4 | 导出RTF文件。
gretPDF | 5 | 导出PDF格式文件。
gretCSV | 6 | 导出CSV格式文件。
gretIMG | 7 | 导出图像文件，支持多种图像格式。

请参见

IGRExportOption.ExportType 属性 | IGRExportOption 接口 | IGridppReport.PrepareExport 方法 | IGridppReport.ExportDirect 方法


IGRE2XLSOption 概述

IGRE2XLSOption 接口

表示导出Excel文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2XLSOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption
IGRE2XLSOption

请参见

IGRE2XLSOption 成员 | IGRSubReport.ToNewExcelSheet 属性 | IGRExportOption.AsE2XLSOption 属性


IGRE2XLSOption成员

IGRE2XLSOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ColumnAsDetailGrid(从 IGRE2CellOption 继承) | 指示导出文件的列是否与报表明细网格的列保持一致。
ExpandRowHeight | 指示是否加大EXCEL的行高以便多行文字数据可以在格中完整显示出来。
ExportPageBreak(从 IGRE2CellOption 继承) | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter(从 IGRE2CellOption 继承) | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
MinColumnWidth | 指定导出产生的列的最小宽度，以字符为计量单位，用报表缺省字体的字符平均宽度进行转换。
MinRowHeight | 指定导出产生行的最小高度，以字符为计量单位，用报表缺省字体的字符平均宽度进行转换。
OnlyExportDetailGrid(从 IGRE2CellOption 继承) | 指定是否只导出明细网格中的数据。
OnlyExportPureText | 指示是否只导出纯文本数据。
SameAsPrint(从 IGRE2CellOption 继承) | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines(从 IGRE2CellOption 继承) | 指定是否压缩空白行，即不产生空白行。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2XLSOption 接口 | IGRSubReport.ToNewExcelSheet 属性 | IGRExportOption.AsE2XLSOption 属性


IGRE2HTMOption 概述

IGRE2HTMOption 接口

表示导出Html超文本文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2HTMOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption
IGRE2HTMOption

请参见

IGRE2HTMOption 成员 | IGRExportOption.AsE2HTMOption 属性


IGRE2HTMOption成员

IGRE2HTMOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ColumnAsDetailGrid(从 IGRE2CellOption 继承) | 指示导出文件的列是否与报表明细网格的列保持一致。
ExportPageBreak(从 IGRE2CellOption 继承) | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter(从 IGRE2CellOption 继承) | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
OnlyExportDetailGrid(从 IGRE2CellOption 继承) | 指定是否只导出明细网格中的数据。
PicturePath | 指定导出的图片文件存储的子目录名称。
SameAsPrint(从 IGRE2CellOption 继承) | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines(从 IGRE2CellOption 继承) | 指定是否压缩空白行，即不产生空白行。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2HTMOption 接口 | IGRExportOption.AsE2HTMOption 属性


IGRE2TXTOption 概述

IGRE2TXTOption 接口

表示导出文本文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2TXTOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption
IGRE2TXTOption

请参见

IGRE2TXTOption 成员 | IGRExportOption.AsE2TXTOption 属性


IGRE2TXTOption成员

IGRE2TXTOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ColumnAsDetailGrid(从 IGRE2CellOption 继承) | 指示导出文件的列是否与报表明细网格的列保持一致。
ExportPageBreak(从 IGRE2CellOption 继承) | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter(从 IGRE2CellOption 继承) | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
OnlyExportDetailGrid(从 IGRE2CellOption 继承) | 指定是否只导出明细网格中的数据。
SameAsPrint(从 IGRE2CellOption 继承) | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines(从 IGRE2CellOption 继承) | 指定是否压缩空白行，即不产生空白行。
TextEncode | 指定文字的编码类型。
UsingCNGraphChar | 指定是否用中文制表符代替明细网格的行列线。
UsingTabChar | 指定是否用tab符号进行对齐处理。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2TXTOption 接口 | IGRExportOption.AsE2TXTOption 属性


IGRE2CSVOption 概述

IGRE2CSVOption 接口

表示导出CSV格式文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2CSVOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption
IGRE2CSVOption

请参见

IGRE2CSVOption 成员 | IGRExportOption.AsE2CSVOption 属性


IGRE2CSVOption成员

IGRE2CSVOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ColumnAsDetailGrid(从 IGRE2CellOption 继承) | 指示导出文件的列是否与报表明细网格的列保持一致。
DelimiterChar | 指定CSV分隔字符。
ExportPageBreak(从 IGRE2CellOption 继承) | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter(从 IGRE2CellOption 继承) | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
OnlyExportDetailGrid(从 IGRE2CellOption 继承) | 指定是否只导出明细网格中的数据。
QuoteText | 指定括定内容的符号文字，可以为空。
SameAsPrint(从 IGRE2CellOption 继承) | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines(从 IGRE2CellOption 继承) | 指定是否压缩空白行，即不产生空白行。
TextEncode | 指定文字的编码类型。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2CSVOption 接口 | IGRExportOption.AsE2CSVOption 属性


IGRE2CSVOption.DelimiterChar 属性

指定CSV分隔字符。

CHAR DelimiterChar

默认值

,

特征

可读写

请参见

IGRE2CSVOption 接口 | IGRE2CSVOption 成员 | 属性特征说明


IGRE2TXTOption.WriteDetailGridLine 属性

指定是否输出明细网格的行列线，行列线用文字字符代替。

VARIANT_BOOL WriteDetailGridLine

默认值

FALSE

特征

可读写

请参见

IGRE2TXTOption 接口 | IGRE2TXTOption 成员 | IGRE2TXTOption.UsingCNGraphChar 属性 | 属性特征说明


IGRE2TXTOption.UsingCNGraphChar 属性

指定是否用中文制表符代替明细网格的行列线。

VARIANT_BOOL UsingCNGraphChar

默认值

FALSE

特征

可读写

请参见

IGRE2TXTOption 接口 | IGRE2TXTOption 成员 | IGRE2TXTOption.WriteDetailGridLine 属性 | 属性特征说明


IGRE2TXTOption.UsingTabChar 属性

指定是否用tab符号进行对齐处理。

VARIANT_BOOL UsingTabChar

默认值

TRUE

特征

可读写

说明

一个tab符号相当于8个空格字符占据的位置，用tab符号进行对齐处理可以减少导出文件的大小。

请参见

IGRE2TXTOption 接口 | IGRE2TXTOption 成员 | 属性特征说明


IGRE2XLSOption.MinColumnWidth 属性

指定导出产生的列的最小宽度，以字符为计量单位，用报表缺省字体的字符平均宽度进行转换。

SHORT MinColumnWidth

默认值

2

特征

可读写

请参见

IGRE2XLSOption 接口 | IGRE2XLSOption 成员 | 属性特征说明


IGRE2XLSOption.MinRowHeight 属性

指定导出产生行的最小高度，以字符为计量单位，用报表缺省字体的字符平均宽度进行转换。

SHORT MinRowHeight

默认值

2

特征

可读写

请参见

IGRE2XLSOption 接口 | IGRE2XLSOption 成员 | 属性特征说明


IGridppReport.PrepareExport 方法

准备进行数据导出，指定要导出的文件类型。

IGRExportOption *PrepareExport(GRExportType ExportType);

返回值

IGRExportOption *

返回导出选项对象的接口引用。

参数

GRExportType ExportType

指定导出的文件类型。

说明

在调用Export方法之前一定要调用本方法，在其后一定要调用UnprepareExport方法。本方法返回的选项对象的接口引用可以用来设定选项值。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRExportOption 接口 | GRExportType 枚举 | IGridppReport.Export 方法 | IGridppReport.UnprepareExport 方法


IGridppReport.UnprepareExport 方法

数据导出完成之后，进行一些内部释放任务。

void UnprepareExport(void);

说明

在调用Export方法之前一定要调用PrepareExport方法，在其后一定要调用UnprepareExport方法。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.Export 方法 | IGridppReport.PrepareExport 方法


IGridppReport.ExportDirect 方法

直接进行数据导出。

VARIANT_BOOL ExportDirect(GRExportType ExportType, BSTR FileName, VARIANT_BOOL ShowOptionDlg, VARIANT_BOOL DoneOpen);

返回值

VARIANT_BOOL

指示是否成功进行了数据导出。

参数

GRExportType ExportType

指定导出的文件类型。

BSTR FileName

指定导出的完整文件路径与文件名称。

VARIANT_BOOL ShowOptionDlg

指定是否在导出之前显示选项设置对话框。

VARIANT_BOOL DoneOpen

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

请参见

IGridppReport 接口 | IGridppReport 成员 | GRExportType 枚举 | IGridppReport.Export 方法


GRPrintPageType 枚举

指定打印时输出页的类型。

成员名称 | 枚举值 | 说明
grpptAllSelectionPages | 1 | 输出选定页范围内的所有页。
grpptOddSelectionPages | 2 | 输出选定页范围内的奇数页。
grpptEvenSelectionPages | 3 | 输出选定页范围内的偶数页。

请参见

IGRPrinter.PrintRangeType 属性 | IGRPrinter 接口 | IGRPrinter.PrintPageType 属性


GRPrintRangeType 枚举

指定打印时选定页范围的类型。

成员名称 | 枚举值 | 说明
grprtAllPages | 1 | 选定全部页。
grprtCurrentPage | 2 | 选定当前页，只有在从打印御览状态中执行打印任务时才有效。
grprtSelectionPages | 3 | 指定的页范围。

请参见

IGRPrinter.PrintRangeType 属性 | IGRPrinter 接口


IGRPrinter.PrintRangeType 属性

指定打印输出选定的页范围。

GRPrintRangeType PrintRangeType

默认值

grprtAllPages

特征

可读写

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRPrintRangeType 枚举 | GRPrintPageType 枚举 | GRPrintRangeType 枚举 | 属性特征说明


IGRPrinter.PrintPageType 属性

指定从选定的页范围中输出的页类型。

GRPrintPageType PrintPageType

默认值

grpptAllSelectionPages

特征

可读写

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRPrintPageType 枚举 | 属性特征说明


IGRPrinter.SelectionPrintPages 属性

用文本指定的页范围，仅当PrintRangeType为grprtSelectionPages时才有效。

BSTR SelectionPrintPages

特征

可读写

说明

范围文本为单页页号文本，如1、3、8；或有效的页区间文本，如1-5、6-10。可以指定多个页或页区间，中间用AssII字符‘,’隔开。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRColumnContent.AdjustRowHeight 属性

IGRColumnContent.AdjustRowHeight (调整行高) 属性

指定在每页输出固定行数时，是否自动调整行的高度。

VARIANT_BOOL AdjustRowHeight

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

说明

本属性只有当‘每页行数(RowsPerPage)’属性的值大于 0 时才有效。如果本属性为真，在生成打印页面时，自动调整每行的高度，使页面的输出区域刚好被行充满。反之则按设计的高度输出。

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | IGRColumnContent.RowsPerPage 属性 | 属性特征说明


IGridppReport.BeforePostRecord 事件

在向报表中填入记录数据的过程中，每当提交一条记录之前触发本事件。

void BeforePostRecord(void);

说明

在此事件中，我们可以对当前记录的各个字段值进行重新设置，记录提交之后就不能修改其字段值。譬如可以在此事件中设置需要由其它字段通过计算得来的字段值。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRField 接口 | IGridppReport.FetchRecord 事件


IGridppReport.PrintAsDesignPaper 属性

IGridppReport.PrintAsDesignPaper(按设计页面打印) 属性

指定是否按设计时的页面设置生成打印页面。

VARIANT_BOOL PrintAsDesignPaper

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

如果此属性为真，则打印页面按设计时的页面设置进行生成，反之则按系统中打印机的当前页面设置进行生成。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintToStretch 属性 | 属性特征说明


IGRDesigner.LayoutPanelContextMenu 事件

当在报表布局窗口中执行打开关联弹出式菜单时触发本事件。

void LayoutPanelContextMenu(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.InspectorContextMenu 事件

当在属性编辑窗口中执行打开关联弹出式菜单时触发本事件。

void InspectorContextMenu(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.ExplorerContextMenu 事件

当在对象浏览窗口中执行打开关联弹出式菜单时触发本事件。

void ExplorerContextMenu(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRField.Value 属性

获取或设置字段在运行时的值。

VARIANT Value

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | IGRField.Clear 方法 | 属性特征说明


IGRField.Format 属性

IGRField.Format(格式) 属性

获取或设置将字段值转换为显示文本时所应用的格式文字串。

BSTR Format

特征

可读写

设计器中可见

说明

本属性只对布尔、整数、浮点数、货币及日期时间类型的字段有效。

请参见

IGRField 接口 | IGRField 成员 | IGRField.FieldType 属性 | IGRField.DisplayText 属性 | 属性特征说明


IGRField.AsBoolean 属性

获取或设置字段的用布尔类型表示的值。

VARIANT_BOOL AsBoolean

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.AsCurrency 属性

获取或设置字段的用货币类型表示的值。

CURRENCY AsCurrency

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.AsDateTime 属性

获取或设置字段的用日期时间类型表示的值。

DATE AsDateTime

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.AsFloat 属性

获取或设置字段的用浮点数类型表示的值。

DOUBLE AsFloat

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.AsInteger 属性

获取或设置字段的用整数类型表示的值。

LONG AsInteger

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.AsString 属性

获取或设置字段的用字符串类型表示的值。

BSTR AsString

特征

可读写

仅运行时可用

请参见

IGRField 接口 | IGRField 成员 | 属性特征说明


IGRField.DataSize 属性

获取存储二进制字段值的数据缓冲区的大小，以字节为计量单位。

ULONG DataSize

特征

只读

仅运行时可用

说明

本属性只对二进制类型的字段有效，存储字段值的数据缓冲区的字节大小。用 DataBuffer 属性可以得到数据缓冲区的内存指针。

请参见

IGRField 接口 | IGRField 成员 | IGRField.FieldType 属性 | GRFieldType 枚举 | IGRField.DataBuffer 属性 | 属性特征说明


IGRField.DataBuffer 属性

获取存储二进制字段值的数据缓冲区内存地址指针。

LONG_PTR DataBuffer

特征

只读

仅运行时可用

说明

本属性只对二进制类型的字段有效，存储字段值的数据缓冲区内存地址指针。用 DataSize 属性可以得到数据缓冲区的大小。

请参见

IGRField 接口 | IGRField 成员 | IGRField.FieldType 属性 | GRFieldType 枚举 | IGRField.DataSize 属性 | 属性特征说明


IGRField.LoadFromFile 方法

运行时从文件中载入二进制字段的值。

void LoadFromFile(BSTR PathFile);

参数

BSTR PathFile

指定载入文件的完整路径名称。

说明

注意：本方法只对二进制类型的字段有效。

请参见

IGRField 接口 | IGRField 成员 | IGRField.LoadFromMemory 方法 | IGRField.FieldType 属性


IGRField.LoadFromMemory 方法
[仅适用于C/S报表组件]

运行时从内存数据缓冲区中载入二进制字段的值。

void LoadFromMemory(LONG_PTR pBuffer, ULONG ByteCount);

参数

LONG_PTR pBuffer

指定内存数据缓冲区的地址指针。

ULONG ByteCount

指定内存数据缓冲区的字节大小。

说明

注意：本方法只对二进制类型的字段有效。

请参见

IGRField 接口 | IGRField 成员 | IGRField.LoadFromFile 方法 | IGRField.FieldType 属性


GRToolControlType 枚举

指定打印显示器控件中工具栏上的按钮、编辑框与组合框的类型。

成员名称 | 枚举值 | 说明
grtctSep | 1 | 指定分隔空隙
grtctPrint | 2 | 指定打印按钮
grtctPageSetup | 3 | 指定页面设置按钮
grtctPrinterSetup | 4 | 指定打印机设置按钮
grtctExport | 5 | 指定数据导出按钮
grtctMail | 6 | 指定发送邮件按钮
grtctSaveDocument | 7 | 指定保存为 Grid++Report 文档文件按钮
grtctContinuousPage | 8 | 指定连续页查看模式按钮
grtctSinglePage | 9 | 指定单页查看模式按钮
grtctMultiPage | 10 | 指定多页查看模式按钮
grtctZoomIn | 11 | 指定放大显示比例按钮
grtctZoomOut | 12 | 指定缩小显示比例按钮
grtctZoomPercent | 13 | 指定显示百分比下拉列表组合框
grtctPriorPage | 14 | 指定前一页按钮
grtctNextPage | 15 | 指定后一页按钮
grtctFirstPage | 16 | 指定首页按钮
grtctLastPage | 17 | 指定尾页按钮
grtctCurPageNo | 18 | 指定当前显示页编辑框
grtctClose | 19 | 指定关闭按钮
grtctClip | 20 | 指定内容复制粘贴按钮
grtctRefresh | 21 | 指定刷新按钮
grtctBookmark | 22 | 指定书签按钮
grtctFindTextBox | 30 | 指定查找文字筐，尚未实现
grtctFind | 31 | 指定查找按钮，尚未实现
grtctFindAgain | 32 | 指定继续查找按钮，尚未实现
grtctFindDlg | 33 | 指定查找对话框按钮，尚未实现
grtctExportXLS | 50 | 指定导出 Excel 菜单项
grtctExportTXT | 51 | 指定导出 Text 菜单项
grtctExportHTM | 52 | 指定导出 html 菜单项
grtctExportRTF | 53 | 指定导出 RTF 菜单项
grtctExportPDF | 54 | 指定导出 PDF 菜单项
grtctExportCSV | 55 | 指定导出 CSV 菜单项
grtctExportIMG | 56 | 指定导出图像菜单项
grtctExportXLSBtn | 60 | 指定导出 Excel 按钮
grtctExportPDFBtn | 61 | 指定导出 PDF 按钮

请参见

IGRPrintViewer.AddToolbarControl 方法 | IGRPrintViewer.RemoveToolbarControl 方法


IGRPrintViewer.AddToolbarControl 方法

向工具栏中增加一个指定的操作界面元素。

void AddToolbarControl(GRToolControlType ControlType);

参数

GRToolControlType ControlType

指定操作界面元素的类型

说明

在对工具栏中的操作界面元素调整完之后，应调用 UpdateToolbar 方法更新界面显示。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRToolControlType 枚举 | IGRPrintViewer.ResetToolbarContent 方法 | IGRPrintViewer.UpdateToolbar 方法 | IGRPrintViewer.AddToolbarCustomButton 方法 | IGRPrintViewer.RemoveToolbarControl 方法


IGRPrintViewer.ResetToolbarContent 方法

清除工具栏中的全部操作界面元素。

void ResetToolbarContent(void);

说明

在对工具栏中的操作界面元素调整完之后，应调用 UpdateToolbar 方法更新界面显示。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.AddToolbarControl 方法 | IGRPrintViewer.UpdateToolbar 方法 | IGRPrintViewer.RemoveToolbarControl 方法


IGRPrintViewer.UpdateToolbar 方法

更新工具栏的显示。

void UpdateToolbar(void);

说明

在对工具栏中的操作界面元素调整完之后，应调用本方法更新界面显示。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.AddToolbarControl 方法 | IGRPrintViewer.ResetToolbarContent 方法 | IGRPrintViewer.AddToolbarCustomButton 方法


IGRDisplayViewer.GetColumnVisible 方法

取得指定列在查询显示器中的显示或隐藏状态。

VARIANT_BOOL GetColumnVisible(BSTR ColumnName);

返回值

VARIANT_BOOL

表示列是否显示，为真表示列在查询显示器中显示。

参数

BSTR ColumnName

表示操作列的名称

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SetColumnVisible 方法


IGRDisplayViewer.SetColumnVisible 方法

设置指定列在查询显示器中的显示或隐藏状态。

void SetColumnVisible(BSTR ColumnName, VARIANT_BOOL Visible);

参数

BSTR ColumnName

指定操作列的名称。

VARIANT_BOOL Visible

指定是否显示列。

说明

在改变列的显示状态全部完成之后，应调用 UpdateColumnView 方法更新显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.GetColumnVisible 方法 | IGRDisplayViewer.UpdateColumnView 方法 | IGRDisplayViewer.ShowColumnVisibleDlg 方法


IGRDisplayViewer.UpdateColumnView 方法

当改变列的显示状态之后，调用本方法更新列的显示。

void UpdateColumnView(void);

说明

本方法不会使报表重新生成，只是根据列的显示状态更新明细网格的显示。在调用 SetColumnVisible 方法之后应调用本方法更新显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SetColumnVisible 方法


IGridppReport.LoadFromStr 方法

从字符串中载入报表模板数据。

VARIANT_BOOL LoadFromStr(BSTR Data);

返回值

VARIANT_BOOL

指示载入报表模板数据是否成功。

参数

BSTR Data

指定报表模板数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SaveToStr 方法 | IGridppReport.Clear 方法 | IGridppReport.LoadFromFile 方法 | IGridppReport.LoadFromMemory 方法 | IGridppReport.LoadFromVariant 方法


IGridppReport.SaveToStr 方法

保存报表模板数据保存至字符串。以文本格式保存保存模板数据。

BSTR SaveToStr(void);

返回值

BSTR

保存的报表模板数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromStr 方法 | IGridppReport.SaveToFile 方法 | IGridppReport.SaveToMemory 方法 | IGridppReport.SaveToVariant 方法 | IGridppReport.SaveToStrEx 方法 | IGridppReport.SaveToFileEx 方法


IGRPrinter.PrinterName 属性

在运行时，获取或设置使用打印机的名称。

BSTR PrinterName

特征

可读写

仅运行时可用

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGridppReport.Register 方法
[仅适用于C/S报表组件]

用Grid++Report的产品序列号进行注册。

VARIANT_BOOL Register(BSTR SerialNo);

返回值

VARIANT_BOOL

指示注册是否成功。

参数

BSTR SerialNo

产品序列号

说明

当你用Grid++Report开发一个应用程序时，如果没有对其进行注册，Grid++Report将运行在试用版状态下。你必须在应用程序启动之后，对Grid++Report进行注册。具体办法是创建一个临时的报表主对象，并调用其Register方法。

WEB报表插件的Register方法需要两个参数，第一个为注册用户名，第二个参数为注册号，请搜索例子中Register方法进行参考。

请参见

IGridppReport 接口 | IGridppReport 成员


IGRSubReport 概述

IGRSubReport 接口

表示子报表部件框。

有关此接口所有成员的列表，请参阅 IGRSubReport 成员。

IDispatch
IGRControl
IGRSubReport

说明

通过关联另一个报表对象，在此报表中显示另外一个报表。子报表受以下规则限制：
1。子报表只能应用在报表头与报表尾中应用。
2。子报表所在的节不允许重复打印。
3。子报表在数据导出时被忽略掉。
4。子报表本身的页眉与页脚在生成时被忽略掉。

请参见

IGRSubReport 成员 | IGridppReport.ParentReport 属性 | IGRControl.AsSubReport 属性


IGRSubReport成员

IGRSubReport 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CanGrow | 指示子报表的高度在运行时是否可以伸展的标志。
CanShrink | 指示子报表的高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
ParentPageSettings | 指定子报表是否应用主表的页面设置参数。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
Report | 关联的报表对象。
ReportFile | 指定关联的报表模板文件名称。
ResetPageNumber | 指定子报表产生时是否重新开始计数页号与页数。
Tag(从 IGRControl 继承) | 部件框的标识值。
ToNewExcelSheet | 在报表导出Excel时，是否将此子报表导出到一个新的工作表。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRSubReport 接口 | IGridppReport.ParentReport 属性 | IGRControl.AsSubReport 属性


IGRSubReport.Report 属性

关联的报表对象。

IGridppReport *Report

特征

可读写

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGridppReport 接口 | IGRSubReport.ReportFile 属性 | 属性特征说明


IGRSubReport.CanGrow 属性

IGRSubReport.CanGrow(可伸展) 属性

指示子报表的高度在运行时是否可以伸展的标志。

VARIANT_BOOL CanGrow

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.CanShrink 属性 | 属性特征说明


IGRSubReport.CanShrink 属性

IGRSubReport.CanShrink(可收缩) 属性

指示子报表的高度在运行时是否可以收缩的标志。

VARIANT_BOOL CanShrink

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.CanGrow 属性 | 属性特征说明


IGRLine 概述

IGRLine 接口

表示直线段。

有关此接口所有成员的列表，请参阅 IGRLine 成员。

IDispatch
IGRControl
IGRLine

说明

用来显示两点之间的直线段的部件框。

请参见

IGRLine 成员 | IGRControl.AsLine 属性


IGRLine成员

IGRLine 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PenColor | 画线段的颜色
PenStyle | 指定画线条的画笔类型
PenWidth | 指定画线条的画笔的宽度。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
Tag(从 IGRControl 继承) | 部件框的标识值。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
X1 | 线段的起点X坐标位置。
X2 | 线段的终点X坐标位置。
Y1 | 线段的起点Y坐标位置。
Y2 | 线段的终点Y坐标位置。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRLine 接口 | IGRControl.AsLine 属性


IGRLine.X1 属性

线段的起点X坐标位置。

DOUBLE X1

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的线段的起点X坐标位置，相对于父容器。

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.Y1 属性

线段的起点Y坐标位置。

DOUBLE Y1

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的线段的起点Y坐标位置，相对于父容器。

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.X2 属性

线段的终点X坐标位置。

DOUBLE X2

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的线段的终点X坐标位置，相对于父容器。

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.Y2 属性

线段的终点Y坐标位置。

DOUBLE Y2

特征

可读写

设计器中可见

说明

以报表使用的计量单位表示的线段的终点Y坐标位置，相对于父容器。

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.PenColor 属性

IGRLine.PenColor(画笔颜色) 属性

画线段的颜色

OLE_COLOR PenColor

默认值

grclBlack

特征

可读写

设计器中可见

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.PenWidth 属性

IGRLine.PenWidth(画笔宽度) 属性

指定画线条的画笔的宽度。

FLOAT PenWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素表示属性值。

请参见

IGRLine 接口 | IGRLine 成员 | 属性特征说明


IGRLine.PenStyle 属性

IGRLine.PenStyle(画笔样式) 属性

指定画线条的画笔类型

GRPenStyle PenStyle

默认值

grpsSolid

特征

可读写

设计器中可见

请参见

IGRLine 接口 | IGRLine 成员 | GRPenStyle 枚举 | 属性特征说明


IGRMemoBox 概述

IGRMemoBox 接口

最常用的文字部件框。可以在文字中包含数据域，数据域在运行时被替换为对应的对象或函数的值。另域可以进行算术四则运算。

有关此接口所有成员的列表，请参阅 IGRMemoBox 成员。

IDispatch
IGRControl
IGRTextBox
IGRMemoBox

说明

可以用来显示静态文本的部件框，一般在设计时设定要显示的文本，在输出显示时依原样输出。除了显示静态框文字之外，MemoBox 更可以显示多种多样的同态内容，通过在文字中定义数据域，数据域在运行时被替换为对应的对象或函数的值。MemoBox 的数据域可以关联字段、参数、文字类型部件框、统计函数与系统变量。多个值为数字类型的数据域可以进行数字四则运算。数据域可以设定其显示的格式化字符串，以便得到想要的显示文字。

请参见

IGRMemoBox 成员 | GRTextOrientation 枚举 | IGRControl.AsMemoBox 属性


IGRMemoBox成员

IGRMemoBox 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
BottomIndent | TBD
CanGrow(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以伸展的标志。
CanShrink(从 IGRTextBox 继承) | 指示部件框高度在运行时是否可以收缩的标志。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
CharacterSpacing | 获取或设置输出文字的字间距，以1/100像素点为计量单位。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DisplayText(从 IGRTextBox 继承) | 运行时文字框的显示文本。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
EndEllipsis(从 IGRTextBox 继承) | 是否用省略号(...)表示超出显示区域的文本。只有当文本不是多行显示时此属性才有意义。
FirstCharIndent | TBD
FlowTo | 指定超出本部件框区域的文字要跟随显示的综合文本框的名称。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
GetDisplayTextScript(从 IGRTextBox 继承) | 表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。
Height(从 IGRControl 继承) | 部件框的显示高度。
HtmlTags | 指定是否支持解析显示文字中的HTML标签。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
LeftIndent | TBD
LineSpacing | 获取或设置输出文字的行间距，以1/100像素点为计量单位。
Name(从 IGRControl 继承) | 部件框的名称标识。
ParagraphSpacing | TBD
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
ShowMoneyLabel(从 IGRTextBox 继承) | 指定是否在此文字框中显示金额标签。
ShowMoneyLine(从 IGRTextBox 继承) | 指定是否显示成金额线格式。
ShrinkFontToFit(从 IGRTextBox 继承) | 在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。
Tag(从 IGRControl 继承) | 部件框的标识值。
Text | 显示文本，文本中可以包含多种数据域，如字段、参数、统计函数、表达式等。
TextAlign(从 IGRTextBox 继承) | 文字的输出对齐方式。
TextAngle | 获取或设置文字的显示角度，以1/10度为计量单位。
TextOrientation | 获取或设置文字的显示方向。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
TopIndent | TBD
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
WordWrap(从 IGRTextBox 继承) | 是否多行显示文本标志。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRMemoBox 接口 | GRTextOrientation 枚举 | IGRControl.AsMemoBox 属性


IGRMemoBox.Text 属性

IGRMemoBox.Text(文本) 属性

显示文本，文本中可以包含多种数据域，如字段、参数、统计函数、表达式等。

BSTR Text

特征

可读写

设计器中可见

说明

数据域定义在文本中，数据域通过“[#”与“#]”扩起来，中间包含的文字可以成功解析为数据域或表达式，数据域的定义文本在运行时将被数据域的值替换，反之文字将以原样输出。

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | 属性特征说明


IGridppReport.PageStart 事件

在开始生成一个打印页面时触发本事件。

void PageStart(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageEnd 事件 | IGridppReport.PageProcessRecord 事件


IGridppReport.PageEnd 事件

在完成一个打印页面生成时触发本事件。

void PageEnd(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageStart 事件 | IGridppReport.PageProcessRecord 事件 | IGridppReport.ProcessBegin 事件


IGridppReport.ForceNewPage 方法

在报表生成过程中，结束当前页，开始一个新页面。

void ForceNewPage(void);

说明

在报表生成过程中，可以调用此方法强制进行分页。只能在PageProcessRecord 与 SectionFormat 事件中调用，在 SectionFormat 中调用时必须保证是在打印生成状态中。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageBlankHeight 属性 | IGridppReport.PageProcessRecord 事件 | IGridppReport.SectionFormat 事件


IGRDetailGrid.ColLineWidth 属性

IGRDetailGrid.ColLineWidth(列线宽度) 属性

网格列线的宽度，以屏幕像素为计量单位。

FLOAT ColLineWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素作为计量单位，默认是 1。本属性值可以为小数，可以更精细控制线条在打印输出时的粗细。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.RowLineWidth 属性 | 属性特征说明


IGRDetailGrid.RowLineWidth 属性

IGRDetailGrid.RowLineWidth(行线宽度) 属性

网格行线的宽度，以屏幕像素为计量单位。

FLOAT RowLineWidth

默认值

1

特征

可读写

设计器中可见

说明

以屏幕像素作为计量单位，默认是 1。本属性值可以为小数，可以更精细控制线条在打印输出时的粗细。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.RowLineColor 属性 | IGRDetailGrid.ColLineWidth 属性 | 属性特征说明


IGRRecordset.ConnectionString 属性

IGRRecordset.ConnectionString(数据库连接) 属性

与数据源连接的参数文字串

BSTR ConnectionString

特征

可读写

设计器中可见

说明

如果明细记录集的“数据库连接”属性不指定，明细记录集的查询SQL将自动应用报表主对象上的数据库连接设置。如果本报表是子报表，还将自动应用其父报表的数据库连接设置。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.QuerySQL 属性 | IGRRecordset.SkipQuery 属性 | IGridppReport.ConnectionString 属性 | 属性特征说明


IGRRecordset.QuerySQL 属性

IGRRecordset.QuerySQL(查询SQL) 属性

从数据源中取数的SQL语句。

BSTR QuerySQL

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.ConnectionString 属性 | IGRRecordset.SkipQuery 属性 | 属性特征说明


IGRRecordset.SkipQuery 属性

IGRRecordset.SkipQuery(忽略数据查询) 属性

指示在生成报表时，是否忽略从数据源取数的属性设置。

VARIANT_BOOL SkipQuery

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.ConnectionString 属性 | IGRRecordset.QuerySQL 属性 | 属性特征说明


IGRDetailGrid.PrintAdaptRepeat 属性

IGRDetailGrid.PrintAdaptRepeat(重复打印) 属性

当打印策略为‘另起新页’或‘另起新页并重复固定列’时，报表头与报表尾是否在新页中再次输出。

VARIANT_BOOL PrintAdaptRepeat

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.PrintAdaptMethod 属性 | 属性特征说明


IGRSharePrintSetupObject 概述

IGRSharePrintSetupObject 接口

表示共享的打印机与纸张设置参数。

有关此接口所有成员的列表，请参阅 IGRSharePrintSetupObject 成员。

IDispatch
IGRSharePrintSetupObject

说明

在一个应用程序中存在且仅存在一个本类对象，所有应用共享答应设置的报表都从此对象存取共享的答应参数。

请参见

IGRSharePrintSetupObject 成员 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法


IGRSharePrintSetupObject成员

IGRSharePrintSetupObject 概述

公共属性

BottomMargin | 页面的下边距。
LeftMargin | 页面的左边距。
PaperLength | 获取或设置打印纸张的长度。
PaperName | 打印纸张的名称。
PaperOrientation | 打印纸张的方向。
PaperSize | 表示打印纸张的类型。
PaperSource | 获取或设置打印机的纸张来源。
PaperWidth | 获取或设置打印纸张的宽度。
PrinterName | 获取或设置工作打印机的名称。
RightMargin | 页面的右边距。
TopMargin | 页面的上边距。
Unit | 获取或设置表示本对象计量类型属性的计量单位。

公共方法

PageSetupDialog | 显示页面设置对话框。
PrintDialog | 显示打印对话框。
PrinterSetupDialog | 显示打印机设置对话框

请参见

IGRSharePrintSetupObject 接口 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法


IGRSharePrintSetupObject.BottomMargin 属性

页面的下边距。

DOUBLE BottomMargin

特征

可读写

说明

以本对象定义的计量单位表示属性值。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.LeftMargin 属性

页面的左边距。

DOUBLE LeftMargin

特征

可读写

说明

以本对象定义的计量单位表示属性值。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.RightMargin 属性

页面的右边距。

DOUBLE RightMargin

特征

可读写

说明

以本对象定义的计量单位表示属性值。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.TopMargin 属性

页面的上边距。

DOUBLE TopMargin

特征

可读写

说明

以本对象定义的计量单位表示属性值。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PaperWidth 属性

获取或设置打印纸张的宽度。

DOUBLE PaperWidth

特征

可读写

说明

以本对象定义的计量单位表示属性值。只有当设置纸张类型为自定义纸张时，设置本属性才生效。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PaperLength 属性

获取或设置打印纸张的长度。

DOUBLE PaperLength

特征

可读写

说明

以本对象定义的计量单位表示属性值。只有当设置纸张类型为自定义纸张时，设置本属性才生效。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PaperOrientation 属性

打印纸张的方向。

GRPaperOrientation PaperOrientation

特征

可读写

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | GRPaperOrientation 枚举 | 属性特征说明


IGRSharePrintSetupObject.PaperSize 属性

表示打印纸张的类型。

SHORT PaperSize

特征

可读写

说明

参考Windows SDK中DEVMODE的成员dmPaperSize的说明。其中256代表自定义纸张，但定义为自定义纸张时，可以设置纸张宽度与长度属性指定打印纸张的大小。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PaperName 属性

打印纸张的名称。

BSTR PaperName

特征

可读写

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PrinterName 属性

获取或设置工作打印机的名称。

BSTR PrinterName

特征

可读写

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | 属性特征说明


IGRSharePrintSetupObject.PaperSource 属性

获取或设置打印机的纸张来源。

GRPaperSourceKind PaperSource

特征

可读写

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | GRPaperSourceKind 枚举 | 属性特征说明


IGRSharePrintSetupObject.Unit 属性

获取或设置表示本对象计量类型属性的计量单位。

GRUnit Unit

特征

可读写

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员 | GRUnit 枚举 | 属性特征说明


IGRSharePrintSetupObject.PageSetupDialog 方法

显示页面设置对话框。

VARIANT_BOOL PageSetupDialog(void);

返回值

VARIANT_BOOL

指示是否成功进行了设置任务。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员


IGRSharePrintSetupObject.PrintDialog 方法

显示打印对话框。

VARIANT_BOOL PrintDialog(void);

返回值

VARIANT_BOOL

指示是否成功进行了设置任务。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员


IGRSharePrintSetupObject.PrinterSetupDialog 方法

显示打印机设置对话框

VARIANT_BOOL PrinterSetupDialog(void);

返回值

VARIANT_BOOL

指示是否成功进行了设置任务。

请参见

IGRSharePrintSetupObject 接口 | IGRSharePrintSetupObject 成员


GRPaperSourceKind 枚举

指定打印机的各种纸张来源方式。

成员名称 | 枚举值 | 说明
grpskDefault | 0 | 打印机默认。
grpskUpper | 1 | 打印机的上层纸盒（如果打印机只有一个纸盒，那么这个纸盒就是上层纸盒）。
grpskLower | 2 | 打印机的下层纸盒。
grpskMiddle | 3 | 打印机的中层纸盒。
grpskManual | 4 | 以手动方式送入的纸张。
grpskEnvelope | 5 | 信封。
grpskManualFeed | 6 | 以手动方式送入的信封。
grpskAutomaticFeed | 7 | 自动送入的纸张。
grpskTractorFeed | 8 | 牵引器送纸。
grpskSmallFormat | 9 | 小纸。
grpskLargeFormat | 10 | 大纸。
grpskLargeCapacity | 11 | 打印机的大容量纸盒。
grpskCassette | 14 | 卡式纸盒。
grpskFormSource | 15 | 打印机的默认送纸盒。
grpskCustom | 256 | 打印机特定的纸张来源。

请参见

IGRPrinter.PaperSource 属性 | IGRPrinter 接口 | IGRSharePrintSetupObject.PaperSource 属性


IGRGroupSection.PrintGridBorder 属性

IGRGroupSection.PrintGridBorder(打印输出边框) 属性

获取或设置是否打印本分组节对应位置的明细网格边框。

VARIANT_BOOL PrintGridBorder

默认值

TRUE

特征

可读写

设计器中可见

仅用于打印

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | 属性特征说明


IGridppReport.SharePrintSetupOptions 属性

IGridppReport.SharePrintSetupOptions(共享打印设置) 属性
[仅适用于C/S报表组件]

指定共享全局打印设置参数的选项。

LONG SharePrintSetupOptions

默认值

0

特征

可读写

设计器中可见

说明

用二进制Bit位表示相应的共享全局打印设置参数是否被当前报表使用。如果使用某个或某类全局打印设置参数，这对当前报表应用或设置打印设置参数都是对共享全局打印设置参数进行操作。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法 | 属性特征说明


IGridppReport.SharePrintSetupObject 属性
[仅适用于C/S报表组件]

获取当前应用程序的共享全局打印设置对象的接口引用。

IGRSharePrintSetupObject *SharePrintSetupObject

特征

只读

说明

通过此属性取得当前应用程序的共享全局打印设置对象的接口引用，从而可以对共享全局打印设置参数进行操作。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRSharePrintSetupObject 接口 | IGridppReport.SharePrintSetupOptions 属性 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法 | 属性特征说明


IGridppReport.SharePrintSetupSetOptionEnabled 方法
[仅适用于C/S报表组件]

设定是否应用某个共享全局打印参数项的标志。

void SharePrintSetupSetOptionEnabled(GRSharePrintSetupOption Option, VARIANT_BOOL Enabled);

参数

GRSharePrintSetupOption Option

指定进行设置的共享全局打印参数项。

VARIANT_BOOL Enabled

指定共享全局打印参数项的使能状态。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRSharePrintSetupOption 枚举 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性


GRSharePrintSetupOption 枚举

指定各个共享全局打印参数的项目。

成员名称 | 枚举值 | 说明
grspsoPaperMargin | 1 | 页边距项目，对应上、下、左，右页边距属性。
grspsoPaperKind | 2 | 纸张类型项目，对应纸张类型与大小属性。
grspsoPaperOrientation | 4 | 纸张的打印方向项目。
grspsoPaperSource | 8 | 纸张的进纸来源项目。
grspsoSelectedPrinter | 16 | 当前选定的打印机项目，对应打印机名称属性。

请参见

IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法


IGridppReport.SharePrintSetupEnableAllOptions 方法
[仅适用于C/S报表组件]

指定应用全部的共享打印设置参数。

void SharePrintSetupEnableAllOptions(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性


IGridppReport.SharePrintSetupDisableAllOptions 方法
[仅适用于C/S报表组件]

指定禁用全部的共享打印设置参数。

void SharePrintSetupDisableAllOptions(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupGetOptionEnabled 方法 | IGridppReport.SharePrintSetupSetOptionEnabled 方法 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性


IGridppReport.SharePrintSetupGetOptionEnabled 方法
[仅适用于C/S报表组件]

获取是否应用某个共享全局打印参数项的使能状态。

VARIANT_BOOL SharePrintSetupGetOptionEnabled(GRSharePrintSetupOption Option);

返回值

VARIANT_BOOL

指定共享全局打印参数项的使能状态。

参数

GRSharePrintSetupOption Option

指定一个共享全局打印参数项目。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRSharePrintSetupOption 枚举 | IGridppReport.SharePrintSetupSetOptionEnabled 方法 | IGridppReport.SharePrintSetupDisableAllOptions 方法 | IGridppReport.SharePrintSetupEnableAllOptions 方法 | IGridppReport.SharePrintSetupObject 属性 | IGridppReport.SharePrintSetupOptions 属性


IGridppReport.SystemVarValue 方法

在报表运行时，取得本报表某个指定系统参数的当前值。

LONG SystemVarValue(GRSystemVarType SystemVar);

返回值

LONG

指定系统参数的当前值。

参数

GRSystemVarType SystemVar

指定某个系统参数。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRSystemVarType 枚举 | GRSystemVarType 枚举


IGridppReport.DesignBottomMargin 属性

IGridppReport.DesignBottomMargin(设计页面下边距) 属性

指定设计报表时所定义的页面下边距。

DOUBLE DesignBottomMargin

默认值

2.5cm

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignLeftMargin 属性 | IGridppReport.DesignRightMargin 属性 | IGridppReport.DesignTopMargin 属性 | 属性特征说明


IGridppReport.DesignLeftMargin 属性

IGridppReport.DesignLeftMargin(设计页面左边距) 属性

指定设计报表时所定义的页面左边距。

DOUBLE DesignLeftMargin

默认值

2.5cm

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignBottomMargin 属性 | IGridppReport.DesignRightMargin 属性 | IGridppReport.DesignTopMargin 属性 | 属性特征说明


IGridppReport.DesignRightMargin 属性

IGridppReport.DesignRightMargin(设计页面右边距) 属性

指定设计报表时所定义的页面右边距。

DOUBLE DesignRightMargin

默认值

2.5cm

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignBottomMargin 属性 | IGridppReport.DesignLeftMargin 属性 | IGridppReport.DesignTopMargin 属性 | 属性特征说明


IGridppReport.DesignTopMargin 属性

IGridppReport.DesignTopMargin(设计页面上边距) 属性

指定设计报表时所定义的页面上边距。

DOUBLE DesignTopMargin

默认值

2.5cm

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignBottomMargin 属性 | IGridppReport.DesignLeftMargin 属性 | IGridppReport.DesignRightMargin 属性 | 属性特征说明


IGridppReport.DesignPaperLength 属性

IGridppReport.DesignPaperLength(设计页面长度) 属性

指定设计报表时所定义的页面长度，仅自定义纸张设置此属性有效。

DOUBLE DesignPaperLength

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignPaperWidth 属性 | IGridppReport.DesignPaperName 属性 | IGridppReport.DesignPaperSize 属性 | 属性特征说明


IGridppReport.DesignPaperWidth 属性

IGridppReport.DesignPaperWidth(设计纸张宽度) 属性

指定设计报表时所定义的页面宽度，仅自定义纸张设置此属性有效。

DOUBLE DesignPaperWidth

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignPaperLength 属性 | IGridppReport.DesignPaperName 属性 | IGridppReport.DesignPaperSize 属性 | 属性特征说明


IGridppReport.DesignPaperName 属性

IGridppReport.DesignPaperName(设计纸张名称) 属性

指定设计报表时所定义的纸张名称。

BSTR DesignPaperName

默认值

A4

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignPaperSize 属性 | 属性特征说明


IGridppReport.DesignPaperOrientation 属性

IGridppReport.DesignPaperOrientation(设计纸张方向) 属性

指定设计报表时所定义的纸张打印方向。

GRPaperOrientation DesignPaperOrientation

默认值

grpoPortrait

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPaperOrientation 枚举 | 属性特征说明


IGridppReport.DesignPaperSize 属性

IGridppReport.DesignPaperSize(设计纸张规格) 属性

指定设计报表时所定义的纸张大小代号。

SHORT DesignPaperSize

默认值

A4

特征

可读写

设计器中可见

说明

参考Windows SDK中DEVMODE的成员dmPaperSize的说明。其中256代表自定义纸张，当定义为自定义纸张时，可以设置纸张宽度与长度属性指定打印纸张的大小。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.DesignPaperWidth 属性 | IGridppReport.DesignPaperLength 属性 | IGridppReport.DesignPaperName 属性 | 属性特征说明


IGRControl.AsLine 属性

将本部件框转换为线段的接口引用。

IGRLine *AsLine

特征

只读

说明

只有当本部件框确实是线段(Line)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRLine 接口 | 属性特征说明


IGRControl.AsMemoBox 属性

转换本部件框为综合文本框的接口引用。

IGRMemoBox *AsMemoBox

特征

只读

说明

只有当本部件框确实是综合文本框(MemoBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRMemoBox 接口 | 属性特征说明


IGRControl.AsSubReport 属性

转换本部件框为子报表的接口引用。

IGRSubReport *AsSubReport

特征

只读

说明

只有当本部件框确实是子报表(MemoBox)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRSubReport 接口 | 属性特征说明


IGRControl.AsTextBox 属性

转换本部件框为文字框基类的接口引用。

IGRTextBox *AsTextBox

特征

只读

说明

只有当本部件框确实是文字基类框(TextBox)派生类的对象时，才能成功读取本属性值。文字基类派生的类包括：静态文本框、综合文本框、字段框、统计框、系统变量框。

请参见

IGRControl 接口 | IGRControl 成员 | IGRTextBox 接口 | 属性特征说明


IGRPrinter.PaperSource 属性

指定打印机的纸张来源。

GRPaperSourceKind PaperSource

特征

可读写

设计器中可见

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRPaperSourceKind 枚举 | GRPaperSourceKind 枚举 | 属性特征说明


IGRDesigner.Reload 方法

从关联的报表主对象中重新载入模板数据。

void Reload(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.Report 属性 | IGRDesigner.Post 方法


IGridppReport.BackImage 属性

IGridppReport.BackImage(背景图) 属性

指定报表在设计器中进入页面视图时显示的背景图。

IPicture *BackImage

特征

可读写

设计器中可见

仅用于设计

说明

背景图仅在报表设计时使用，只有当报表进入页面视图中才会显示背景图。如果同时设定了 BackImage 与 BackImageFile 属性，此时只有 BackImage 属性指定的图像被显示。使用背景图可以根据背景图精确定位报表布局，快速实现套打定位。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BackImageFile 属性 | IGridppReport.LoadBackImageFromFile 方法 | IGridppReport.LoadBackImageFromMemory 方法 | IGridppReport.BackImagePreview 属性 | IGridppReport.FloatControls 属性 | IGridppReport.BackImagePrint 属性 | 属性特征说明


IGridppReport.BackImageFile 属性

IGridppReport.BackImageFile(背景图文件) 属性

指定报表在设计器中进入页面视图时显示的背景图文件的路径与名称。

BSTR BackImageFile

特征

可读写

设计器中可见

仅用于设计

说明

背景图仅在报表设计时使用，只有当报表进入页面视图中才会显示背景图。如果同时设定了 BackImage 与 BackImageFile 属性，此时只有 BackImage 属性指定的图像被显示。使用背景图可以根据背景图精确定位报表布局，快速实现套打定位。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BackImage 属性 | IGridppReport.LoadBackImageFromFile 方法 | IGridppReport.LoadBackImageFromMemory 方法 | IGridppReport.BackImagePreview 属性 | 属性特征说明


IGridppReport.LoadBackImageFromFile 方法

从指定的图像文件中载入报表设计页面背景图。

void LoadBackImageFromFile(BSTR PathFile);

参数

BSTR PathFile

指定图像文件的路径与名称。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadBackImageFromMemory 方法 | IGridppReport.BackImage 属性 | IGridppReport.BackImageFile 属性


IGridppReport.LoadBackImageFromMemory 方法
[仅适用于C/S报表组件]

从内存数据中载入报表设计页面背景图。

void LoadBackImageFromMemory(BYTE *pBuffer, ULONG BytesCount);

参数

BYTE *pBuffer

指定图像数据的内存地址。

ULONG BytesCount

指定图像数据的内存字节数。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadWatermarkFromFile 方法 | IGridppReport.BackImage 属性 | IGridppReport.BackImageFile 属性


IGridppReport.Watermark 属性

IGridppReport.Watermark(水印图) 属性

指定报表在生成打印页面时在每页中显示的水印背景图像。

IPicture *Watermark

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.WatermarkAlignment 属性 | IGridppReport.WatermarkSizeMode 属性 | IGridppReport.LoadWatermarkFromFile 方法 | IGridppReport.LoadBackImageFromMemory 方法 | IGridppReport.FloatControls 属性 | 属性特征说明


IGridppReport.WatermarkAlignment 属性

IGridppReport.WatermarkAlignment(水印图对齐方式) 属性

指定水印图在页面中显示时的位置对齐方式。

GRPictureAlignment WatermarkAlignment

默认值

grpaCenter

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPictureAlignment 枚举 | IGridppReport.Watermark 属性 | IGridppReport.WatermarkSizeMode 属性 | IGridppReport.LoadWatermarkFromFile 方法 | IGridppReport.LoadWatermarkFromMemory 方法 | 属性特征说明


IGridppReport.WatermarkSizeMode 属性

IGridppReport.WatermarkSizeMode(水印图缩放方式) 属性

指定水印图在页面中显示时使用的缩放方式。

GRPictureSizeMode WatermarkSizeMode

默认值

grpsmClip

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | GRPictureSizeMode 枚举 | IGridppReport.Watermark 属性 | IGridppReport.WatermarkAlignment 属性 | IGridppReport.LoadWatermarkFromFile 方法 | IGridppReport.LoadWatermarkFromMemory 方法 | 属性特征说明


IGridppReport.LoadWatermarkFromFile 方法

从指定的图像文件中载入水印背景图。

void LoadWatermarkFromFile(BSTR PathFile);

参数

BSTR PathFile

指定图像文件的路径与文件名。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadWatermarkFromMemory 方法 | IGridppReport.Watermark 属性


IGridppReport.LoadWatermarkFromMemory 方法
[仅适用于C/S报表组件]

从内存数据中载入报表水印背景图。

void LoadWatermarkFromMemory(BYTE *pBuffer, ULONG BytesCount);

参数

BYTE *pBuffer

指定图像数据的内存地址。

ULONG BytesCount

指定图像数据的内存字节数。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadWatermarkFromFile 方法 | IGridppReport.Watermark 属性


GRDesignerOption 枚举

表示定制报表设计器行为的选项。

成员名称 | 枚举值 | 说明
grdoShowRuler | 1 | 指定是否显示标尺。
grdoCanPopupMenu | 2 | 指定是否允许打开右键关联菜单。
grdoShowInspector | 4 | 指定是否显示属性编辑窗口。
grdoShowInspectorObjectPicker | 8 | 指定是否显示属性编辑窗口的对象下拉选取框。
grdoShowExplorer | 16 | 指定是否显示对象浏览窗口。
grdoShowToolbar | 32 | 指定是否显示工具栏。
grdoShowSectionLine | 256 | 在报表进入页面视图时，指定是否显示节分隔线。
grdoShowMarginLine | 512 | 在报表进入页面视图时，指定是否显示边距分隔线。
grdoCanResizeSection | 1024 | 指定是否可以调整节的高度。
grdoCanChangeMargin | 2048 | 指定是否可以调整页面边距。
grdoCanDeleteObject | 4096 | 指定是否可以删除对象。
grdoEnableQuickEdit | 8192 | 指定是否开启即时编辑功能。
grdoShowDTCollectionBtns | 1048576 | 指定是否显示明细网格的工具条上的几个打开集合对话框的按钮(值为：1048576)。
grdoCanAutoGenFields | 2097152 | 指定是否允许根据明细查询SQL自动产生字段定义(值为：2097152)。
grdoCanAutoGenColumns | 4194304 | 指定是否允许根据字段定义自动产生列定义(值为：4194304)。
grdoCanAutoGenParameters | 8388608 | 指定是否允许根据报表主对象的查询SQL自动产生参数定义(值为：8388608)。
grdoShowDetailGridToolbar | 16777216 | 指定是否显示明细网格的工具条(值为：16777216)。
grdoShowDetailGridColumnRuler | 33554432 | 指定是否显示明细网格的列标尺(值为：33554432)。
grdoCanModifyDBSettings | 67108864 | 指定是否可以设置记录集的数据源连接串与查询SQL(值为：67108864)。

请参见

IGRDesigner.GetOptionValue 方法 | IGRDesigner.SetOptionValue 方法 | IGRDesigner 接口


GRPropertyCategory 枚举

表示属性的类别。

成员名称 | 枚举值 | 说明
grpcDesign | 1 | 设计
grpcLayout | 2 | 布局
grpcAppearance | 4 | 外观
grpcData | 8 | 数据
grpcAction | 16 | 行为
grpcEvent | 32 | 事件脚本
grpcMisc | 512 | 杂项

请参见

IGRDesigner.Published 属性 | IGRDesigner.GetPublishedValue 方法 | IGRDesigner.SetPublishedValue 方法 | IGRDesigner 接口


IGRDesigner.Options 属性

指定定制报表设计器的选项值。

ULONG Options

特征

可读写

设计器中可见

说明

选项值由选定控制项所对应的 GRDesignerOption 枚举项目的值按位组合。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetOptionValue 方法 | IGRDesigner.SetOptionValue 方法 | IGRDesigner.EnableAllOptions 方法 | IGRDesigner.DisableAllOptions 方法 | IGRDesigner.OnlyLayout 属性 | 属性特征说明


IGRDesigner.Published 属性

指定要公开的属性类别组合值。

ULONG Published

特征

可读写

设计器中可见

说明

本属性值由选定属性类别项所对应的 GRDesignerOption 枚举项目的值按位组合。只有属于公开的属性类别的属性才会在属性编辑窗口中显示。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetPublishedValue 方法 | IGRDesigner.SetPublishedValue 方法 | IGRDesigner.DisableAllPublished 方法 | IGRDesigner.EnableAllPublished 方法 | IGRDesigner.ShowClassProperty 方法 | IGRDesigner.ShowOneProperty 方法 | GRPropertyCategory 枚举 | 属性特征说明


IGRDesigner.GetOptionValue 方法

获取指定的控制选项是否开启。

VARIANT_BOOL GetOptionValue(GRDesignerOption Option);

返回值

VARIANT_BOOL

TRUE 表示获控制选项是开启的，FALSE 表示获控制选项是关闭的。

参数

GRDesignerOption Option

指定控制选项项目。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerOption 枚举 | IGRDesigner.SetOptionValue 方法 | IGRDesigner.Options 属性


IGRDesigner.SetOptionValue 方法

设置开启或关闭指定的控制选项。

void SetOptionValue(GRDesignerOption Option, VARIANT_BOOL newVal);

参数

GRDesignerOption Option

指定控制选项。

VARIANT_BOOL newVal

指定开启或关闭的标志。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerOption 枚举 | IGRDesigner.GetOptionValue 方法 | IGRDesigner.DisableAllOptions 方法 | IGRDesigner.EnableAllOptions 方法 | IGRDesigner.Options 属性


IGRDesigner.EnableAllOptions 方法

开启所有的控制选项。

void EnableAllOptions(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DisableAllOptions 方法 | IGRDesigner.SetOptionValue 方法 | IGRDesigner.Options 属性


IGRDesigner.DisableAllOptions 方法

关闭所有的控制选项。

void DisableAllOptions(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.EnableAllOptions 方法 | IGRDesigner.SetOptionValue 方法 | IGRDesigner.Options 属性


IGRDesigner.GetPublishedValue 方法

获取指定的属性类别是否为公开状态。

VARIANT_BOOL GetPublishedValue(GRPropertyCategory PropertyCategory);

返回值

VARIANT_BOOL

TRUE 表示公开，FALSE 表示不公开。

参数

GRPropertyCategory PropertyCategory

指定属性类别。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRPropertyCategory 枚举 | IGRDesigner.Published 属性 | IGRDesigner.SetPublishedValue 方法


IGRDesigner.SetPublishedValue 方法

设置公开或隐藏指定的属性类别。

void SetPublishedValue(GRPropertyCategory PropertyCategory, VARIANT_BOOL newVal);

参数

GRPropertyCategory PropertyCategory

指定属性类别。

VARIANT_BOOL newVal

是否公开标志。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRPropertyCategory 枚举 | IGRDesigner.GetPublishedValue 方法 | IGRDesigner.DisableAllPublished 方法 | IGRDesigner.EnableAllPublished 方法 | IGRDesigner.Published 属性


IGRDesigner.EnableAllPublished 方法

公开所有的属性类别。

void EnableAllPublished(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DisableAllOptions 方法 | IGRDesigner.GetPublishedValue 方法 | IGRDesigner.SetPublishedValue 方法 | IGRDesigner.Published 属性


IGRDesigner.DisableAllPublished 方法

隐藏所有的属性类别。

void DisableAllPublished(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.EnableAllPublished 方法 | IGRDesigner.GetPublishedValue 方法 | IGRDesigner.SetPublishedValue 方法 | IGRDesigner.Published 属性


IGridppReport.ContinuePrint 属性

IGridppReport.ContinuePrint(即打即停) 属性

指定是否采用连续打印，即打即停的方式打印输出报表。

VARIANT_BOOL ContinuePrint

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGRGroupHeader.RepeatOnPage 属性

IGRGroupHeader.RepeatOnPage(每页重复打印) 属性

指定是否在新页中重复显示当前分组项的分组头。

VARIANT_BOOL RepeatOnPage

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

当本属性值为真时，如果一个分组项的所有行在分组开始页没有全部显示完，则在输出本分组项的后续页面的开始位置再次显示分组头。

请参见

IGRGroupHeader 接口 | IGRGroupHeader 成员 | IGRColumnTitle.RepeatStyle 属性 | 属性特征说明


IGridppReport.GenerateDocumentFile 方法

生成报表的 Grid++Report 文档文件到指定的文件。

void GenerateDocumentFile(BSTR PathFile);

参数

BSTR PathFile

保存数据的文件的路径与名称。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPrintViewer.LoadFromDocumentFile 方法


IGRPrintViewer.LoadFromDocumentFile 方法

载入指定的 Grid++Report 文档文件并在打印查看器中显示。

void LoadFromDocumentFile(BSTR PathFile);

参数

BSTR PathFile

指定文件的路径与名称。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGridppReport.GenerateDocumentFile 方法


IGRE2PDFOption 概述

IGRE2PDFOption 接口

表示导出 PDF 文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2PDFOption 成员。

IDispatch
IGRExportOption
IGRE2PDFOption

说明

PDF导出乱码原因与解决办法:
1、一般是因为报表中的“字体“属性中的“字符集”没有设为对应的语言。
2、报表主对象的字体属性中的“字符集”要设对，不应该是“西方”
3、检查对应部件框或单元格的字体属性中的“字符集”要设对，不应该是“西方”
4、如果是简体中文，字符集应该是GB2312，如果是繁体，字符集应该是CHINESE_BIG5
5、尝试将PDF导出对话框的“ANSI文字编码”项不勾选，以新的方式进行PDF导出。

请参见

IGRE2PDFOption 成员 | IGRExportOption.AsE2PDFOption 属性


IGRE2PDFOption成员

IGRE2PDFOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AnsiTextMode | 指定是否将文本数据编码为ANSI字符方式。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
Author | 指定 PDF 文件的 Author 属性。
Creator | 指定 PDF 文件的 Creator 属性。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
Subject | 指定 PDF 文件的 Subject 属性。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2PDFOption 接口 | IGRExportOption.AsE2PDFOption 属性


IGRExportOption.AsE2PDFOption 属性

获取将本对象转换为导出PDF文件选项对象的接口引用。

IGRE2PDFOption *AsE2PDFOption

特征

只读

说明

将本对象转换为导出PDF文件选项对象，只有当本对象确实是一个导出PDF文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2PDFOption 接口 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2IMGOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.AsE2XLSOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


GRChartType 枚举

表示图表的类型。

成员名称 | 枚举值 | 说明
grctBarChart | 1 | 柱图。
grctPieChart | 2 | 饼图。
grctLineChart | 3 | 折线图。
grctStepBarChart | 4 | 叠加柱图
grctXYScatterChart | 5 | 散列点图
grctXYLineChart | 6 | 散列点连线图
grctCurveLineChart | 7 | 连曲线图
grctXYCurveLineChart | 8 | 散列点连曲线图
grctBubble | 9 | 气泡图

请参见

IGRChart.ChartType 属性 | IGRChart 接口


IGRChart 概述

IGRChart 接口

表示图表的接口。

有关此接口所有成员的列表，请参阅 IGRChart 成员。

IDispatch
IGRControl
IGRChart

请参见

IGRChart 成员 | GRBarcodeCaptionPosition 枚举 | GRChartType 枚举 | IGRDisplayViewer.ChartClickLegend 事件 | IGRControl.AsChart 属性 | IGRDisplayViewer.ChartClickSeries 事件 | IGRDisplayViewer.ChartDblClickSeries 事件 | IGRDisplayViewer.ChartDblClickLegend 事件


IGRChart成员

IGRChart 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BarSingleSeriesColor | 当只有一个序列时，是否用不同的颜色显示柱图。
BarWidthPercent | 指定柱图显示的总宽度占据整个宽度的百分比。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
BubbleScalePerCm | 气泡图比例，指定一个厘米表示的Z值，对应到气泡图的直径。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
Chart3D | 指定是否以三维图形方式显示，此属性仅对柱图与饼图有效。
ChartType | 指定图表的类型。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
CoordLineColor | 指定坐标线的颜色。
CoordLineVisible | 自定是否显示坐标线。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
FillColor | 获取指定序号处的自定义图形填充颜色。
FillColorCount | 获取自定义图形填充颜色的个数。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
GroupCount | 图表的数据组数。
GroupLabel | 根据顺序号获取或设置组标签文字。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
LegendCursor | 指定在查询显示报表时，当鼠标光标位于图例项上时要显示的鼠标光标类型。
LegendShowSum | 指定是否在图例中显示合计数据
LegendValueVisible | 指定是否在图例中显示数据值。
LegendVisible | 指定是否显示图例。
LineWeight | 指定折线图的粗细度。
MarginGap | 指定在图表的边框四周留出空白边距，以屏幕像素为计量单位。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PointWeight | 指定连线图的数据点的粗细度。以像素点为计量单位。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
SeriesCount | 图表的数据序列数。
SeriesCursor | 指定在查询显示报表时，当鼠标光标位于序列项图形上时要显示的鼠标光标类型。
SeriesLabel | 根据顺序号获取或设置序列标签文字。
Tag(从 IGRControl 继承) | 部件框的标识值。
Title | 指定图表的标题显示文字。
TitleFont | 指定图表的标题文字的显示字体。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Value | 根据序列顺序号与组顺序号获取或设置图表数据值。
ValueAsPercent | 指定是否将图表的值统计并显示为加权百分比。
ValueFormat | 指定显示图表值的数字格式串。
ValueVisible | 指定是否显示图表的值。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。
XAxisLabel | 在X轴下面显示的标签文字。
XAxisMaximum | 指定X轴表示的最大值
XAxisMinimum | 指定X轴表示的最小值
XAxisSpace | 指定X轴每个刻度的步进量
XAxisText | 获取指定序号处显式设定的X轴刻度显示文字。
XAxisTextAngle | 指定X轴的文字显示角度。
XAxisTextCount | 获取显式设定的X轴刻度显示文字的个数。
XAxisTextFormat | 指定用来自动产生X轴刻度显示文字的数字格式化串。
XAxisTextVisible | 指定是否显示X轴的文字。
XAxisVisible | 指定是否显示X坐标轴。
XYValueCount | 获取指定序列的XY坐标值个数。
XYZValueCount | 获取指定序列的XYZ坐标值个数。
YAxisLabel | 指定在Y坐标轴的左边显示的标签文字。
YAxisMaximum | 指定Y坐标轴表示的最大值。
YAxisMinimum | 指定Y坐标轴表示的最小值。
YAxisSpace | 表示Y坐标轴的每刻度的步进值。
YAxisText | 获取指定序号处显式设定的Y轴刻度显示文字。
YAxisTextCount | 获取显式设定的Y轴刻度显示文字。
YAxisTextFormat | 指定生成Y坐标轴的刻度文字的数字格式串。
YAxisTextVisible | 指定是否显示Y坐标轴的文字。
YAxisVisible | 指定是否显示Y坐标轴。
ZValueFormat | 气泡图Z值格式串

公共方法

AddFillColor | 增加一个自定义图形填充颜色。
AddXAxisText | 添加一个X轴刻度显示文字。
AddXYValue | 在指定序列上增加坐标点值。
AddXYZValue | 在指定序列上增加坐标点值与Z值。
AddYAxisText | 添加一个Y轴刻度显示文字。
BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
EmptyFillColors | 清空全部自定义图形填充颜色。
EmptyXAxisText | 清空显式设定的全部X轴刻度文字。
EmptyXYValue | 清空全部坐标点值。
EmptyXYZValue | 清空全部XYZ值。
EmptyYAxisText | 清空显式设定的全部Y轴刻度文字。
GetXYValue | 或取指定坐标点的XY值
GetXYZValue | 或取指定序列指定序号的XYZ值
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
LoadDataFromXML | 从XML文本数据中获取图表数据。
LoadLegendCursor | 从光标文件中载入要在图表图例项上显示的鼠标光标。
LoadSeriesCursor | 从光标文件中载入要在图表序列项上显示的鼠标光标。
LoadXYDataFromXML | 从XML文本数据中载入XY类型的图表数据
LoadXYZDataFromXML | 从XML文本数据中载入XYZ类型的图表数据
PrepareSnapShot | 准备为明细网格中的内容行，分组头或分组尾中的图表提供数据。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。
SnapShot | 保存为明细网格中的内容行，分组头或分组尾中的图表提供数据。

请参见

IGRChart 接口 | GRBarcodeCaptionPosition 枚举 | GRChartType 枚举 | IGRDisplayViewer.ChartClickLegend 事件 | IGRControl.AsChart 属性 | IGRDisplayViewer.ChartClickSeries 事件 | IGRDisplayViewer.ChartDblClickSeries 事件 | IGRDisplayViewer.ChartDblClickLegend 事件


IGRChart.ChartType 属性

IGRChart.ChartType(图表类型) 属性

指定图表的类型。

GRChartType ChartType

默认值

grctBarChart

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | GRChartType 枚举 | GRChartType 枚举 | IGRChart.BubbleScalePerCm 属性 | 属性特征说明


IGRChart.Title 属性

IGRChart.Title(标题) 属性

指定图表的标题显示文字。

BSTR Title

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.TitleFont 属性 | 属性特征说明


IGRChart.TitleFont 属性

IGRChart.TitleFont(标题字体) 属性

指定图表的标题文字的显示字体。

IGRFont *TitleFont

特征

只读

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRFont 接口 | IGRChart.Title 属性 | 属性特征说明


IGRChart.MarginGap 属性

IGRChart.MarginGap(边距) 属性

指定在图表的边框四周留出空白边距，以屏幕像素为计量单位。

SHORT MarginGap

默认值

0

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | 属性特征说明


IGRChart.XAxisVisible 属性

IGRChart.XAxisVisible(X轴可见性) 属性

指定是否显示X坐标轴。

VARIANT_BOOL XAxisVisible

默认值

TRUE

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisTextVisible 属性 | 属性特征说明


IGRChart.XAxisLabel 属性

IGRChart.XAxisLabel(X轴标签) 属性

在X轴下面显示的标签文字。

BSTR XAxisLabel

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisLabel 属性 | 属性特征说明


IGRChart.XAxisTextAngle 属性

IGRChart.XAxisTextAngle(X轴刻度角度) 属性

指定X轴的文字显示角度。

SHORT XAxisTextAngle

默认值

0

特征

可读写

设计器中可见

说明

属性值的范围从0-360。此属性只对柱图与折线图有效。

如果文字垂直显示时，不希望文字卧倒显示，请将此属性值设为-270。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisTextVisible 属性 | IGRChart.XAxisVisible 属性 | 属性特征说明


IGRChart.XAxisTextVisible 属性

IGRChart.XAxisTextVisible(X轴刻度可见性) 属性

指定是否显示X轴的文字。

VARIANT_BOOL XAxisTextVisible

默认值

TRUE

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisTextAngle 属性 | IGRChart.XAxisVisible 属性 | IGRChart.XAxisMaximum 属性 | IGRChart.XAxisMinimum 属性 | 属性特征说明


IGRChart.YAxisVisible 属性

IGRChart.YAxisVisible(Y轴可见性) 属性

指定是否显示Y坐标轴。

VARIANT_BOOL YAxisVisible

默认值

TRUE

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisVisible 属性 | IGRChart.YAxisTextFormat 属性 | IGRChart.YAxisTextVisible 属性 | 属性特征说明


IGRChart.YAxisLabel 属性

IGRChart.YAxisLabel(Y轴标签) 属性

指定在Y坐标轴的左边显示的标签文字。

BSTR YAxisLabel

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisLabel 属性 | 属性特征说明


IGRChart.YAxisMaximum 属性

IGRChart.YAxisMaximum(Y轴最大值) 属性

指定Y坐标轴表示的最大值。

DOUBLE YAxisMaximum

默认值

0

特征

可读写

设计器中可见

说明

如果本属性值为零，则图表在运行时将自动生成最大值。此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisMinimum 属性 | IGRChart.YAxisSpace 属性 | 属性特征说明


IGRChart.YAxisMinimum 属性

IGRChart.YAxisMinimum(Y轴最小值) 属性

指定Y坐标轴表示的最小值。

DOUBLE YAxisMinimum

默认值

0

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisMaximum 属性 | IGRChart.YAxisSpace 属性 | 属性特征说明


IGRChart.YAxisSpace 属性

IGRChart.YAxisSpace(Y轴刻度间隔) 属性

表示Y坐标轴的每刻度的步进值。

DOUBLE YAxisSpace

默认值

0

特征

可读写

设计器中可见

说明

如果本属性值为零，则图表在运行时将自动生成一个刻度布进值。此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisMaximum 属性 | IGRChart.YAxisMinimum 属性 | 属性特征说明


IGRChart.YAxisTextFormat 属性

IGRChart.YAxisTextFormat(Y轴刻度格式) 属性

指定生成Y坐标轴的刻度文字的数字格式串。

BSTR YAxisTextFormat

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisTextVisible 属性 | IGRChart.YAxisVisible 属性 | 属性特征说明


IGRChart.YAxisTextVisible 属性

IGRChart.YAxisTextVisible(Y轴刻度可见性) 属性

指定是否显示Y坐标轴的文字。

VARIANT_BOOL YAxisTextVisible

默认值

TRUE

特征

可读写

设计器中可见

说明

此属性只对柱图与折线图有效。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisTextFormat 属性 | IGRChart.YAxisVisible 属性 | 属性特征说明


IGRChart.LegendVisible 属性

IGRChart.LegendVisible(图例可见性) 属性

指定是否显示图例。

VARIANT_BOOL LegendVisible

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LegendValueVisible 属性 | 属性特征说明


IGRChart.LegendValueVisible 属性

IGRChart.LegendValueVisible(图例中值可见性) 属性

指定是否在图例中显示数据值。

VARIANT_BOOL LegendValueVisible

默认值

FALSE

特征

可读写

设计器中可见

说明

只有当图表的组数与序列数之一为1且本属性值为真时，才会将数据值显示在图例中。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LegendVisible 属性 | IGRChart.ValueFormat 属性 | 属性特征说明


IGRChart.GroupCount 属性

IGRChart.GroupCount(数据组数) 属性

图表的数据组数。

SHORT GroupCount

默认值

5

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.GroupLabel 属性 | IGRChart.SeriesCount 属性 | IGRChart.Get_GroupLabel 方法 | IGRChart.Set_GroupLabel 方法 | 属性特征说明


IGRChart.SeriesCount 属性

IGRChart.SeriesCount(数据序列数) 属性

图表的数据序列数。

SHORT SeriesCount

默认值

1

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.SeriesLabel 属性 | IGRChart.GroupCount 属性 | IGRChart.Get_SeriesLabel 方法 | IGRChart.Set_SeriesLabel 方法 | 属性特征说明


IGRChart.GroupLabel 属性

根据顺序号获取或设置组标签文字。

BSTR GroupLabel

特征

可读写

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
Chart.GroupLabel(0) = x;
x = Chart.GroupLabel(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.SeriesLabel 属性 | IGRChart.Get_GroupLabel 方法 | IGRChart.Set_GroupLabel 方法 | 属性特征说明


IGRChart.SeriesLabel 属性

根据顺序号获取或设置序列标签文字。

BSTR SeriesLabel

特征

可读写

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
Chart.SeriesLabel(0) = x;
x = Chart.SeriesLabel(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.GroupLabel 属性 | IGRChart.Get_SeriesLabel 方法 | IGRChart.Set_SeriesLabel 方法 | 属性特征说明


IGRChart.Value 属性

根据序列顺序号与组顺序号获取或设置图表数据值。

DOUBLE Value

特征

可读写

设计器中可见

说明

属性采用二维整数下标序号，序号从 0 开始。序列顺序号在前，组顺序号在后。

脚本代码形如：
Chart.Value(0, 0) = x;
x = Chart.Value(0, 0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.ValueAsPercent 属性 | IGRChart.ValueFormat 属性 | IGRChart.ValueVisible 属性 | IGRChart.LoadDataFromXML 方法 | IGRChart.Get_Value 方法 | IGRChart.Set_Value 方法 | 属性特征说明


IGRChart.ValueFormat 属性

IGRChart.ValueFormat(数据格式) 属性

指定显示图表值的数字格式串。

BSTR ValueFormat

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Value 属性 | IGRChart.ValueAsPercent 属性 | IGRChart.ValueVisible 属性 | 属性特征说明


IGRChart.ValueVisible 属性

IGRChart.ValueVisible(数据值可见性) 属性

指定是否显示图表的值。

VARIANT_BOOL ValueVisible

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Value 属性 | IGRChart.ValueAsPercent 属性 | IGRChart.ValueFormat 属性 | 属性特征说明


IGRChart.ValueAsPercent 属性

IGRChart.ValueAsPercent(按百分比显示数据) 属性

指定是否将图表的值统计并显示为加权百分比。

VARIANT_BOOL ValueAsPercent

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Value 属性 | IGRChart.ValueFormat 属性 | IGRChart.ValueVisible 属性 | 属性特征说明


IGRChart.BarWidthPercent 属性

IGRChart.BarWidthPercent(柱图宽度百分比) 属性

指定柱图显示的总宽度占据整个宽度的百分比。

SHORT BarWidthPercent

默认值

70

特征

可读写

设计器中可见

说明

此属性仅对柱图有效

请参见

IGRChart 接口 | IGRChart 成员 | 属性特征说明


IGRChart.BarSingleSeriesColor 属性

IGRChart.BarSingleSeriesColor(单序列多色显示) 属性

当只有一个序列时，是否用不同的颜色显示柱图。

VARIANT_BOOL BarSingleSeriesColor

默认值

TRUE

特征

可读写

设计器中可见

说明

此属性仅对柱图、连线图与曲线图有效

请参见

IGRChart 接口 | IGRChart 成员 | 属性特征说明


IGRChart.LineWeight 属性

IGRChart.LineWeight(连线粗细) 属性

指定折线图的粗细度。

SHORT LineWeight

默认值

2

特征

可读写

设计器中可见

说明

此属性仅对折线图有效

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.PointWeight 属性 | 属性特征说明


IGRChart.PrepareSnapShot 方法

准备为明细网格中的内容行，分组头或分组尾中的图表提供数据。

void PrepareSnapShot(void);

说明

明细网格中的内容行，分组头或分组尾中的图表在报表运行时会多次显示，每次显示时其数据会不同，在设定图表的数据之前，必须调用PrepareSnapShot方法，并在设定完成之后凋用SnapShot方法。PrepareSnapShot 与 SnapShot 只能在GroupBegin、GroupEnd 与 ProcessRecord 事件响应函数中调用。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.SnapShot 方法 | IGRChart.Value 属性 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件 | IGridppReport.ProcessRecord 事件


IGRChart.SnapShot 方法

保存为明细网格中的内容行，分组头或分组尾中的图表提供数据。

void SnapShot(void);

说明

明细网格中的内容行，分组头或分组尾中的图表在报表运行时会多次显示，每次显示时其数据会不同，在设定图表的数据之前，必须调用PrepareSnapShot方法，并在设定完成之后凋用SnapShot方法。PrepareSnapShot 与 SnapShot 只能在GroupBegin、GroupEnd 与 ProcessRecord 事件响应函数中调用。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.PrepareSnapShot 方法 | IGRChart.Value 属性 | IGridppReport.GroupBegin 事件 | IGridppReport.GroupEnd 事件 | IGridppReport.ProcessRecord 事件


IGridppReport.ShowMoneyDigit 属性

IGridppReport.ShowMoneyDigit(显示金额位数) 属性

指定在报表中显示金额线或金额位标签时显示的位数。

SHORT ShowMoneyDigit

默认值

9

特征

可读写

设计器中可见

说明

位数不包括角与分位。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | IGRTextBox.ShowMoneyLabel 属性 | IGRTextBox.ShowMoneyLine 属性 | IGRColumnCell.ShowMoneyLabel 属性 | IGRColumnCell.ShowMoneyLine 属性 | 属性特征说明


IGridppReport.ShowMoneyWidth 属性

IGridppReport.ShowMoneyWidth(显示金额宽度) 属性

指定在报表中显示金额线或金额位标签时显示全部位的宽度。

DOUBLE ShowMoneyWidth

默认值

0

特征

可读写

设计器中可见

说明

以报表的计量单位表示属性值。当属性值为零时，报表在运行时将自动确定金额显示宽度。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGRTextBox.ShowMoneyLabel 属性 | IGRTextBox.ShowMoneyLine 属性 | IGRColumnCell.ShowMoneyLabel 属性 | IGRColumnCell.ShowMoneyLine 属性 | 属性特征说明


IGridppReport.ShowMoneyLineColor 属性

IGridppReport.ShowMoneyLineColor(显示金额线颜色) 属性

指定金额位分隔线的颜色。

OLE_COLOR ShowMoneyLineColor

默认值

grclTeal

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | IGRTextBox.ShowMoneyLabel 属性 | IGRTextBox.ShowMoneyLine 属性 | IGRColumnCell.ShowMoneyLabel 属性 | IGRColumnCell.ShowMoneyLine 属性 | 属性特征说明


IGridppReport.ShowMoneySepLineColor 属性

IGridppReport.ShowMoneySepLineColor(显示金额分隔线颜色) 属性

指定元与角位之间的分隔线的颜色。

VARIANT_BOOL ShowMoneySepLineColor

默认值

grclPurple

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | IGRTextBox.ShowMoneyLabel 属性 | IGRTextBox.ShowMoneyLine 属性 | IGRColumnCell.ShowMoneyLabel 属性 | IGRColumnCell.ShowMoneyLine 属性 | 属性特征说明


IGRTextBox.ShowMoneyLabel 属性

IGRTextBox.ShowMoneyLabel(显示金额标签) 属性

指定是否在此文字框中显示金额标签。

VARIANT_BOOL ShowMoneyLabel

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRTextBox.ShowMoneyLine 属性 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | 属性特征说明


IGRTextBox.ShowMoneyLine 属性

IGRTextBox.ShowMoneyLine(显示金额线) 属性

指定是否显示成金额线格式。

VARIANT_BOOL ShowMoneyLine

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRTextBox.ShowMoneyLabel 属性 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | 属性特征说明


IGRColumnCell.ShowMoneyLabel 属性

IGRColumnCell.ShowMoneyLabel(显示金额标签) 属性

指定是否在此单元格中显示金额标签。

VARIANT_BOOL ShowMoneyLabel

默认值

FALSE

特征

可读写

设计器中可见

说明

注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumnCell.ShowMoneyLine 属性 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | 属性特征说明


IGRColumnCell.ShowMoneyLine 属性

IGRColumnCell.ShowMoneyLine(显示金额线) 属性

指定是否在此单元格中将值显示成金额线格式。

VARIANT_BOOL ShowMoneyLine

默认值

FALSE

特征

可读写

设计器中可见

说明

注意：只有在格不是自由格时，才允许使用本属性。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | IGRColumnCell.ShowMoneyLabel 属性 | IGridppReport.ShowMoneyDigit 属性 | IGridppReport.ShowMoneyLineColor 属性 | IGridppReport.ShowMoneySepLineColor 属性 | IGridppReport.ShowMoneyWidth 属性 | 属性特征说明


IGRDesigner.AsFormUI 属性

指示是否按页面模式显示报表布局窗口。

VARIANT_BOOL AsFormUI

默认值

FALSE

特征

可读写

设计器中可见

说明

当本属性值为TRUE时，按页面模式显示报表布局窗口；当本属性值为FALSE时，按普通分节模式显示报表布局窗口。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | 属性特征说明


GRDesignerWindowLayout 枚举

表示报表设计器的报表布局窗口在整个控件中的布局位置。

成员名称 | 枚举值 | 说明
grdwlLayoutAtLeft | 1 | 停靠在左边。
grdwlLayoutAtRight | 2 | 停靠在右边。

请参见

IGRDesigner.WindowLayout 属性 | IGRDesigner 接口


IGRDesigner.WindowLayout 属性

指示报表布局窗口在整个控件中的停靠位置。

GRDesignerWindowLayout WindowLayout

默认值

grdwlLayoutAtLeft

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerWindowLayout 枚举 | GRDesignerWindowLayout 枚举 | 属性特征说明


IGridppReport.BeforeSort 事件

当要对记录集中的记录进行重新排序之前触发本事件。

void BeforeSort(BSTR SortFields);

参数

BSTR SortFields

指定进行排序的字段，当按多个字段进行排序时，字段名称之间用‘;’隔开。

说明

如果设置了记录集的排序字段(SortFields)属性，在每次生成报表时，在BeginPeocessRecord事件之前会触发BeforeSort事件。另当查询显示器设定为可排序时，点击明细网格的列标题会按点击的列对记录进行重新排序，此时也会触发BeforeSort事件。

在此事件中可以重新设置明细记录集的 SortFields 属性，随后排序将按新设定的字段进行。如下代码：
Report.DetailGrid.Recordset.SortFields = "Field1 DESC;Field2";

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRRecordset.SortFields 属性 | IGRRecordset.Resort 方法


IGRRecordset.SortFields 属性

IGRRecordset.SortFields(排序字段) 属性

指定在报表生成时对记录进行排序的依据字段。

BSTR SortFields

特征

可读写

设计器中可见

说明

如果设置了本属性，在记录集记录填充完成之后和对记录进行处理之前，报表引擎会根据排序字段对记录进行排序。如果要按多个字段进行排序，字段名称之间用‘;’隔开。也可以在字段后面加上激昂叙标志，指示对应字段按降序排序。

例子1:按Fld1 与 Fld2 进行排序，两个字段都为升序
Fld1;Fld2

例子2:按Fld1 与 Fld2 进行排序， Fld1为降序，Fld2为升序
Fld1 DESC;Fld2

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.SortAsc 属性 | IGRRecordset.SortCaseSensitive 属性 | 属性特征说明


IGRRecordset.SortAsc 属性

IGRRecordset.SortAsc(排序按升序) 属性

指定是否按升序排列记录。

VARIANT_BOOL SortAsc

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.SortFields 属性 | IGRRecordset.SortCaseSensitive 属性 | 属性特征说明


IGRRecordset.SortCaseSensitive 属性

IGRRecordset.SortCaseSensitive(排序大小写敏感) 属性

当排序字段为字符型时，指定排序比较是否为大小写字符敏感。

VARIANT_BOOL SortCaseSensitive

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.SortAsc 属性 | IGRRecordset.SortFields 属性 | 属性特征说明


IGRRecordset.Resort 方法

对记录集中的记录进行重新排序。

void Resort(BSTR Fields, VARIANT_BOOL Ascending, VARIANT_BOOL CaseSensitive);

参数

BSTR Fields

指定排序字段，如果要按多个字段进行排序，字段名称之间用‘;’隔开。

VARIANT_BOOL Ascending

指定是否按升序进行排序。

VARIANT_BOOL CaseSensitive

指定字符进行排序比较时是否大小写敏感。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.SortFields 属性 | IGridppReport.BeforeSort 事件


IGRDisplayViewer.Resortable 属性

指定是否可以通过点击明细网格的列标题对明细记录进行重新排序。

VARIANT_BOOL Resortable

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ResortCaseSensitive 属性 | IGRDisplayViewer.ResortDefaultAsc 属性 | IGRDisplayViewer.SortColumns 属性 | 属性特征说明


IGRDisplayViewer.ResortCaseSensitive 属性

指定点击列标题进行排序时，对字符进行排序比较是否大小写敏感。

VARIANT_BOOL ResortCaseSensitive

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Resortable 属性 | IGRDisplayViewer.ResortDefaultAsc 属性 | 属性特征说明


IGRDisplayViewer.ResortDefaultAsc 属性

当点击列标题进行排序时，首先是否按升序进行排序。

VARIANT_BOOL ResortDefaultAsc

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Resortable 属性 | IGRDisplayViewer.ResortCaseSensitive 属性 | 属性特征说明


IGRDisplayViewer.GridTitle3D 属性

指定是否将明细网格的列标题显示为3D形状。

VARIANT_BOOL GridTitle3D

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.GridCenterView 属性 | IGRDisplayViewer.BackgroundColor 属性 | 属性特征说明


IGRDisplayViewer.SortColumns 属性

指定当前进行排序的列名称，如果有多个列，中间用“;”隔开

BSTR SortColumns

特征

可读写

说明

本属性值也会包含排序顺序，如果某列是按降序排列，则会加上“DESC”标志。如本属性值为“Column1 DESC;Column2”，指定按Column1与Column2进行排序，其中Column1按降序排列，Column2按升序排列。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Resortable 属性 | 属性特征说明


IGRImageList 概述

IGRImageList 接口

管理在整个报表对象中共享使用的图像数据集合。

有关此接口所有成员的列表，请参阅 IGRImageList 成员。

IDispatch
IGRImageList

说明

图像框通过指定引用的图像序号来显示某个共享的图像，图像序号从1开始。

请参见

IGRImageList 成员 | IGridppReport 接口 | IGRPictureBox 接口 | IGridppReport.ImageList 属性


IGRImageList成员

IGRImageList 概述

公共属性

Count | 获取当前图像集合中图像个数。
Item | 通过图像序号获取共享图像的引用。

公共方法

Add | 根据图像对象引用增加该图像到图像集合中。
AddFromFile | 根据图像文件路径名将该图像添加到图像集合中。
AddFromMemory | 将内存缓冲区中的图像添加到图像集合中。

请参见

IGRImageList 接口 | IGridppReport 接口 | IGRPictureBox 接口 | IGridppReport.ImageList 属性


IGRImageList.Item 属性

通过图像序号获取共享图像的引用。

IPicture *Item

特征

只读

说明

图像序号从1开始。

请参见

IGRImageList 接口 | IGRImageList 成员 | IGRImageList.Count 属性 | 属性特征说明


IGRImageList.Count 属性

获取当前图像集合中图像个数。

SHORT Count

特征

只读

请参见

IGRImageList 接口 | IGRImageList 成员 | IGRImageList.Item 属性 | 属性特征说明


IGRImageList.Add 方法

根据图像对象引用增加该图像到图像集合中。

SHORT Add(IPicture *Picture);

返回值

SHORT

指定新增图像的序号。

参数

IPicture *Picture

准备添加的图像对象引用。

请参见

IGRImageList 接口 | IGRImageList 成员 | IGRImageList.AddFromFile 方法 | IGRImageList.AddFromMemory 方法


IGRImageList.AddFromFile 方法

根据图像文件路径名将该图像添加到图像集合中。

SHORT AddFromFile(BSTR PathFile);

返回值

SHORT

指定新增图像的序号。

参数

BSTR PathFile

指定添加图像的文件路径名。

请参见

IGRImageList 接口 | IGRImageList 成员 | IGRImageList.Add 方法 | IGRImageList.AddFromMemory 方法


IGRImageList.AddFromMemory 方法
[仅适用于C/S报表组件]

将内存缓冲区中的图像添加到图像集合中。

SHORT AddFromMemory(BYTE *pData, ULONG ByteCount);

返回值

SHORT

指定新增图像的序号。

参数

BYTE *pData

指定添加图像数据的内存地址。

ULONG ByteCount

指定添加图像数据的字节数。

请参见

IGRImageList 接口 | IGRImageList 成员 | IGRImageList.Add 方法 | IGRImageList.AddFromFile 方法


IGridppReport.ImageList 属性

IGridppReport.ImageList(图像集合) 属性

获取报表对象中图像集合对象的接口引用。

IGRImageList *ImageList

特征

只读

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRImageList 接口 | IGRPictureBox.ImageIndex 属性 | 属性特征说明


IGRPictureBox.ImageIndex 属性

IGRPictureBox.ImageIndex(图像序号) 属性

指定图像框关联图像集合中某个图像的序号。

SHORT ImageIndex

默认值

0

特征

可读写

设计器中可见

说明

图像的序号从1开始，0表示不关联。Grid++Report在报表引擎中定义了一些系统内建图像，其图像序号通过枚举GRSystemImage的枚举项来指定，也可以通过设定本属性为某个枚举项的值来关联一个系统图像。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRImageList 接口 | GRSystemImage 枚举 | IGRPictureBox.ImageFile 属性 | IGRPictureBox.Picture 属性 | IGRPictureBox.DataField 属性 | 属性特征说明


GRSystemImage 枚举

指定报表引擎中的系统内建图像。

成员名称 | 枚举值 | 说明
grsiArrowUp | -8 | 值为-8，朝上箭头标志。
grsiArrowDown | -7 | 值为-7，朝下箭头标志。
grsiNegative | -6 | 值为-6，否定标志。
grsiAffirm | -5 | 值为-5，肯定标志。
grsi3DUnchecked | -4 | 值为-4，3D形式的非选中标志。
grsi3DChecked | -3 | 值为-3，3D形式的选中标志。
grsiUnchecked | -2 | 值为-2，非选中标志。
grsiChecked | -1 | 值为-1，选中标志。

说明

Grid++Report 在报表引擎中定义了一些系统内建图像。图片框可以将其图像序号指定为某个枚举项的值来关联某个系统图像，从而在图像框中显示系统图像。另也可以调用 IGRPictureBox 接口的 AttachSystemImage 方法来关联系统图像。

请参见

IGRPictureBox.ImageIndex 属性 | IGRPictureBox.AttachSystemImage 方法 | IGRPictureBox 接口


IGRPictureBox.AttachSystemImage 方法

关联一个系统图像到本图像框,从而在本图像框中显示一个系统图像。

void AttachSystemImage(GRSystemImage SystemImage);

参数

GRSystemImage SystemImage

指定系统图像。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | GRSystemImage 枚举 | IGRPictureBox.ImageIndex 属性


IGRRecordset.Editable 属性

IGRRecordset.Editable(可编辑) 属性

指定记录集在报表运行时是否为可编辑。

VARIANT_BOOL Editable

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Edit 方法 | 属性特征说明


IGRRecordset.Edit 方法

使当前记录进入可编辑状态，从而可以改变字段的值。

void Edit(void);

说明

只有当报表处于运行时且记录集是可以编辑的，才能成功使当前记录进入可编辑状态。在记录进入可编辑状态之后，可以给各个字段赋值，最后调用 Post 方法将编辑后的记录保存到记录集中；也可以调用 Cancel
方法取消编辑改变，将当前记录还原为原来的数据。

注意：不能在记录编辑状态中改变不定长字符字段与二进制字段的值。

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Editable 属性 | IGRRecordset.Post 方法 | IGRRecordset.Cancel 方法


IGRRecordset.Cancel 方法

取消当前记录的可编辑状态，并还原记录的原来数据。

void Cancel(void);

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGRRecordset.Append 方法 | IGRRecordset.Edit 方法


IGRField.Length 属性

IGRField.Length(长度) 属性

获取或设置字符类型字段的字符长度，为 0 表示不定长类型字符类型字段。

ULONG Length

默认值

0

特征

可读写

设计器中可见

说明

不定长字符类型字段可以保存任意长度的字符数据，但在编辑记录时，不定长字符类型字段的值不允许改变。

请参见

IGRField 接口 | IGRField 成员 | IGRField.FieldType 属性 | 属性特征说明


IGRDisplayViewer.UpdateSelCell 方法

更新显示当前选中内容格。

void UpdateSelCell(void);

说明

在查询显示报表时，如果改变了当前选中内容格的数据，调用本方法反映最新的数据的显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.UpdateViewer 方法 | IGRDisplayViewer.UpdateControl 方法 | IGRDisplayViewer.UpdateSelRow 方法


IGRDisplayViewer.UpdateSelRow 方法

更新显示当前选中内容行。

void UpdateSelRow(void);

说明

在查询显示报表时，如果改变了当前选中内容行的数据，调用本方法反映最新的数据的显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.UpdateViewer 方法 | IGRDisplayViewer.UpdateControl 方法 | IGRDisplayViewer.UpdateSelCell 方法


IGRDisplayViewer.UpdateControl 方法

更新显示指定的部件框。

void UpdateControl(IGRControl *pControl);

参数

IGRControl *pControl

指定要更新显示的部件框对象的接口引用。

说明

只有当部件框在报表头与报表尾中时，才能调用本方法进行显示更新。在查询显示报表时，如果改变了部件框的数据，调用本方法反映最新的数据的显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRControl 接口 | IGRDisplayViewer.UpdateViewer 方法 | IGRDisplayViewer.UpdateSelCell 方法 | IGRDisplayViewer.UpdateSelRow 方法


IGRDisplayViewer.UpdateViewer 方法

更形显示整个查询显示器。

void UpdateViewer(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.UpdateControl 方法 | IGRDisplayViewer.UpdateSelCell 方法 | IGRDisplayViewer.UpdateSelRow 方法


GRDisplayCursor 枚举

指定查询显示报表时，可供使用的鼠标光标类型。

成员名称 | 枚举值 | 说明
grdcDefault | 0 | 默认光标。
grdcArrow | 1 | 普通箭头光标。
grdcMagnify | 2 | 方大镜光标。
grdcFinger | 3 | 手指光标。
grdcAffirm | 4 | 肯定光标。
grdcNegative | 5 | 否定光标。

请参见

IGRControl.Cursor 属性 | IGRColumnContent.Cursor 属性 | IGRColumnContentCell.Cursor 属性 | IGRChart.LegendCursor 属性 | IGRChart.SeriesCursor 属性


IGRControl.Cursor 属性

IGRControl.Cursor(光标) 属性

指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。

GRDisplayCursor Cursor

默认值

grdcDefault

特征

可读写

设计器中可见

请参见

IGRControl 接口 | IGRControl 成员 | GRDisplayCursor 枚举 | 属性特征说明


IGRControl.LoadCursor 方法

从光标文件中载入光标作为该部件框要显示的鼠标光标。

void LoadCursor(BSTR PathFile);

参数

BSTR PathFile

指定光标文件的文件路径名。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.Cursor 属性


IGRChart.SeriesCursor 属性

IGRChart.SeriesCursor(序列光标) 属性

指定在查询显示报表时，当鼠标光标位于序列项图形上时要显示的鼠标光标类型。

GRDisplayCursor SeriesCursor

默认值

grdcDefault

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | GRDisplayCursor 枚举 | IGRChart.LegendCursor 属性 | IGRControl.Cursor 属性 | 属性特征说明


IGRChart.LegendCursor 属性

IGRChart.LegendCursor(图例光标) 属性

指定在查询显示报表时，当鼠标光标位于图例项上时要显示的鼠标光标类型。

GRDisplayCursor LegendCursor

默认值

grdcDefault

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | GRDisplayCursor 枚举 | IGRChart.SeriesCursor 属性 | IGRControl.Cursor 属性 | 属性特征说明


IGRChart.LoadSeriesCursor 方法

从光标文件中载入要在图表序列项上显示的鼠标光标。

void LoadSeriesCursor(BSTR PathFile);

参数

BSTR PathFile

指定光标文件的文件路径名。

说明

暂未实现

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.SeriesCursor 属性 | IGRChart.LoadLegendCursor 方法


IGRColumnContentCell.Cursor 属性

IGRColumnContentCell.Cursor(光标) 属性

指定在查询显示报表时，在本内容格上显示的鼠标光标。

GRDisplayCursor Cursor

默认值

grdcDefault

特征

可读写

设计器中可见

说明

如果本属性为 grdcDefault，内容格将把内容行的光标作为默认光标。

请参见

IGRColumnContentCell 接口 | IGRColumnContentCell 成员 | GRDisplayCursor 枚举 | IGRColumnContentCell.LoadCursor 方法 | IGRColumnContent.Cursor 属性 | 属性特征说明


IGRColumnContent.Cursor 属性

IGRColumnContent.Cursor(光标) 属性

指定在查询显示报表时，在本内容行上显示的鼠标光标。

GRDisplayCursor Cursor

默认值

grdcDefault

特征

可读写

设计器中可见

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | GRDisplayCursor 枚举 | IGRColumnContent.LoadCursor 方法 | IGRColumnContentCell.Cursor 属性 | 属性特征说明


IGRControl.AsChart 属性

将本部件框转换为图表部件框的接口引用。

IGRChart *AsChart

特征

只读

说明

只有当本部件框确实是图表(Chart)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRChart 接口 | 属性特征说明


GRTextOrientation 枚举

指定综合文字框的各种文字行向。

成员名称 | 枚举值 | 说明
grtoDefault | 0 | 默认方式，按从左到右，从上到下方式显示文字。
grtoU2DL2R0 | 5 | 按从上到下，从左到右方式显示文字，文字不旋转。
grtoU2DR2L0 | 9 | 按从上到下，从右到左方式显示文字，文字不旋转。
grtoD2UL2R1 | 22 | 按从下到上，从左到右方式显示文字，文字旋转。
grtoU2DR2L1 | 25 | 按从上到下，从右到左方式显示文字，文字旋转。
grtoL2RD2U0 | 38 | 按从左到右，从下到上方式显示文字，适合用来进行脊背打印，字体应该选择旋转的，即字体名称前带“@”符号。
grtoL2RD2U1 | 54 | 按从左到右，从下到上方式显示文字，文字旋转，适合用来进行脊背打印。
grtoInvert | 58 | 倒影方式。

请参见

IGRMemoBox.TextOrientation 属性 | IGRMemoBox 接口 | IGRGraphics.DrawOrientationString 方法


IGRMemoBox.TextOrientation 属性

IGRMemoBox.TextOrientation(文字方向) 属性

获取或设置文字的显示方向。

GRTextOrientation TextOrientation

默认值

grtoDefault

特征

可读写

设计器中可见

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | GRTextOrientation 枚举 | GRTextOrientation 枚举 | 属性特征说明


IGRMemoBox.TextAngle 属性

IGRMemoBox.TextAngle(文字角度) 属性

获取或设置文字的显示角度，以1/10度为计量单位。

SHORT TextAngle

默认值

0

特征

可读写

设计器中可见

说明

综合文字框的文字角度大于0时，只有当文字方向为默认值时才会生效，此时文字只能单行显示，文字对齐方式设定也不起作用，否则将按特定的文字方向显示文字。

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | 属性特征说明


IGRMemoBox.CharacterSpacing 属性

IGRMemoBox.CharacterSpacing(字间距) 属性

获取或设置输出文字的字间距，以1/100像素点为计量单位。

SHORT CharacterSpacing

默认值

0

特征

可读写

设计器中可见

说明

当文字按任意角度显示时，字间距与行间距设置不会起作用。

如果用综合文字框显示长篇文字(文字内容超过一页，如合同与公文等)时，为了防止文字换页时出现从中间截断的情况，应该将“行间距”或“字间距”属性的值设为大于0，如“5”或“50”。

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | IGRMemoBox.LineSpacing 属性 | 属性特征说明


IGRMemoBox.LineSpacing 属性

IGRMemoBox.LineSpacing(行间距) 属性

获取或设置输出文字的行间距，以1/100像素点为计量单位。

SHORT LineSpacing

默认值

0

特征

可读写

设计器中可见

说明

当文字按任意角度显示时，字间距与行间距设置不会起作用。

如果用综合文字框显示长篇文字(文字内容超过一页，如合同与公文等)时，为了防止文字换页时出现从中间截断的情况，应该将“行间距”或“字间距”属性的值设为大于0，如“5”或“50”。

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | IGRMemoBox.CharacterSpacing 属性 | 属性特征说明


IGRE2IMGOption 概述

IGRE2IMGOption 接口

表示导出图像文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2IMGOption 成员。

IDispatch
IGRExportOption
IGRE2IMGOption

请参见

IGRE2IMGOption 成员 | IGRExportOption.AsE2IMGOption 属性


IGRE2IMGOption成员

IGRE2IMGOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
DPI | 指定导出图像的分辨率DPI。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
ImageType | 指定导出的图像格式。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2IMGOption 接口 | IGRExportOption.AsE2IMGOption 属性


GRExportImageType 枚举

指定在导出图像文件时可用的各种图像格式。

成员名称 | 枚举值 | 说明
greitBMP | 1 | Bitmap 位图图像格式。
greitPNG | 2 | PNG 图像格式。
greitJPEG | 3 | JPEG 图像格式。
greitTIFF | 5 | TIFF 图像格式。

请参见

IGRE2IMGOption 接口 | IGRE2IMGOption.ImageType 属性


IGRE2IMGOption.ImageType 属性

指定导出的图像格式。

GRExportImageType ImageType

特征

可读写

设计器中可见

请参见

IGRE2IMGOption 接口 | IGRE2IMGOption 成员 | GRExportImageType 枚举 | GRExportImageType 枚举 | 属性特征说明


GRScriptType 枚举

表示在报表中内置的脚本语言类型。

成员名称 | 枚举值 | 说明
grstJScript | 1 | JScript 脚本语言。
grstVBScript | 2 | VBScript 脚本语言。

请参见

IGridppReport.ScriptType 属性 | IGridppReport 接口


IGridppReport.ScriptType 属性

IGridppReport.ScriptType(脚本类别) 属性

指定在本报表中使用的脚本语言类型。

GRScriptType ScriptType

默认值

grstJScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | GRScriptType 枚举 | 属性特征说明


IGridppReport.InitializeScript 属性

IGridppReport.InitializeScript(初始化脚本) 属性

表示报表 Initialize 事件对应的脚本语言代码。

BSTR InitializeScript

特征

可读写

设计器中可见

说明

可以在本脚本中修改定义报表模板、为报表参数赋值及其它任务等。本脚本对应的 Sender 对象为 IGridppReport 接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.Initialize 事件 | 属性特征说明


IGridppReport.ProcessBeginScript 属性

IGridppReport.ProcessBeginScript(开始处理脚本) 属性

表示报表 ProcessBegin 事件对应的脚本语言代码。

BSTR ProcessBeginScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ProcessBegin 事件 | IGRRecordset.ProcessRecordScript 属性 | 属性特征说明


IGridppReport.PageStartScript 属性

IGridppReport.PageStartScript(页开始脚本) 属性

表示报表 PageStart 事件对应的脚本语言代码。

BSTR PageStartScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageStart 事件 | IGridppReport.PageEndScript 属性 | 属性特征说明


IGridppReport.PageEndScript 属性

IGridppReport.PageEndScript(页结束脚本) 属性

表示报表 PageEnd 事件对应的脚本语言代码。

BSTR PageEndScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageEnd 事件 | IGridppReport.PageStartScript 属性 | 属性特征说明


IGridppReport.BeforeSortScript 属性

IGridppReport.BeforeSortScript(排序前脚本) 属性

表示报表 BeforeSort 事件对应的脚本语言代码。

BSTR BeforeSortScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BeforeSort 事件 | 属性特征说明


IGRTextBox.GetDisplayTextScript 属性

IGRTextBox.GetDisplayTextScript(取显示文字脚本) 属性

表示报表 TextBoxGetDisplayText 事件对应的脚本语言代码。

BSTR GetDisplayTextScript

特征

可读写

设计器中可见

说明

在此脚本中改变文字部件框的显示文字，通过设置 DisplayText 属性的值实现改变文字部件框的显示文字。

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGridppReport.TextBoxGetDisplayText 事件 | IGRTextBox.DisplayText 属性 | 属性特征说明


IGRField.GetDisplayTextScript 属性

IGRField.GetDisplayTextScript(取显示文字脚本) 属性

表示报表 FieldGetDisplayText 事件对应的脚本语言代码。

BSTR GetDisplayTextScript

特征

可读写

设计器中可见

说明

在此脚本中可以改写子段的显示文字，通过设置子段的 DisplayText 属性改变其显示文字。

请参见

IGRField 接口 | IGRField 成员 | IGridppReport.FieldGetDisplayText 事件 | IGRField.DisplayText 属性 | 属性特征说明


IGRField.RTrimBlankChars 属性

IGRField.RTrimBlankChars(截除右端空格字符) 属性

指定是否自动截除字符型字段右边的空格字符。

VARIANT_BOOL RTrimBlankChars

默认值

FALSE

特征

可读写

设计器中可见

说明

此属性仅对字符型字段有效。数据库中定长类型的字符字段会用空格补足字符位数，这样的文字在进行水平居中显示时就得不到想要的居中效果，如果将此属性置为真，就可以自动截除右边的空格文字，也就可以得到很好的居中效果。

请参见

IGRField 接口 | IGRField 成员 | IGRField.FieldType 属性 | GRTextAlign 枚举 | 属性特征说明


IGRRecordset.FetchRecordScript 属性

IGRRecordset.FetchRecordScript(取记录脚本) 属性

表示报表 FetchRecord 事件对应的脚本语言代码。

BSTR FetchRecordScript

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGridppReport.FetchRecord 事件 | 属性特征说明


IGRRecordset.BeforePostRecordScript 属性

IGRRecordset.BeforePostRecordScript(提交记录前脚本) 属性

表示报表 BeforePostRecord 事件对应的脚本语言代码。

VARIANT_BOOL BeforePostRecordScript

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGridppReport.BeforePostRecord 事件 | 属性特征说明


IGRRecordset.ProcessRecordScript 属性

IGRRecordset.ProcessRecordScript(处理记录脚本) 属性

表示报表 ProcessRecord 事件对应的脚本语言代码。

VARIANT_BOOL ProcessRecordScript

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGridppReport.ProcessRecord 事件 | IGridppReport.ProcessBeginScript 属性 | IGridppReport.ProcessEndScript 属性 | 属性特征说明


IGRRecordset.PageProcessRecordScript 属性

IGRRecordset.PageProcessRecordScript(页处理记录脚本) 属性

表示报表 PageProcessRecord 事件对应的脚本语言代码。

BSTR PageProcessRecordScript

特征

可读写

设计器中可见

请参见

IGRRecordset 接口 | IGRRecordset 成员 | IGridppReport.PageProcessRecord 事件 | 属性特征说明


IGRGroup.GroupBeginScript 属性

IGRGroup.GroupBeginScript(分组开始脚本) 属性

表示报表 GroupBegin 事件对应的脚本语言代码。

BSTR GroupBeginScript

特征

可读写

设计器中可见

请参见

IGRGroup 接口 | IGRGroup 成员 | IGridppReport.GroupBegin 事件 | IGRGroup.GroupEndScript 属性 | 属性特征说明


IGRGroup.GroupEndScript 属性

IGRGroup.GroupEndScript(分组结束脚本) 属性

表示报表 GroupEnd 事件对应的脚本语言代码。

BSTR GroupEndScript

特征

可读写

设计器中可见

请参见

IGRGroup 接口 | IGRGroup 成员 | IGridppReport.GroupEnd 事件 | IGRGroup.GroupBeginScript 属性 | 属性特征说明


IGRSection.FormatScript 属性

IGRSection.FormatScript(格式化脚本) 属性

表示报表 SectionFormat 事件对应的脚本语言代码。

BSTR FormatScript

特征

可读写

设计器中可见

说明

在此脚本中可以改变节的 Visible 属性从而控制节的显示与隐藏，达到根据条件显示报表节。可以在此脚本中改变部件框的 Visible 属性从而控制部件框的显示与隐藏，达到根据条件显示部件框。可以在此脚本中改节与部件框的外观属性从而改变数据显式，让数据根据不同的条件显示出不同的样式。

请参见

IGRSection 接口 | IGRSection 成员 | IGridppReport.SectionFormat 事件 | IGRSection.Visible 属性 | 属性特征说明


IGridppReport.TextBoxGetDisplayText 事件

当文字类型的部件框准备生成其显示文本时触发。

void TextBoxGetDisplayText(IGRTextBox *Sender);

参数

IGRTextBox *Sender

指定触发本事件的文本部件框对象的接口引用。

说明

当文字类型的部件框准备生成其显示文本时触发。如果其显示文本不是内部生成的文本，就需要在此事件中为其设定显示文本，通过给其 DisplayText 属性赋值改变字段的显示文本。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRTextBox 接口 | IGridppReport.FieldGetDisplayText 事件 | IGRTextBox.DisplayText 属性 | IGRTextBox 接口


IGridppReport.ProcessEndScript 属性

IGridppReport.ProcessEndScript(结束处理脚本) 属性

表示报表 ProcessEnd 事件对应的脚本语言代码。

BSTR ProcessEndScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ProcessEnd 事件 | IGRRecordset.ProcessRecordScript 属性 | 属性特征说明


GRStorageFormat 枚举

表示报表模板数据的存储格式。

成员名称 | 枚举值 | 说明
grsfText | 1 | 文本格式。
grsfBinary | 2 | 二进制格式。
grsfBinBase64 | 3 | Base64编码格式，Base64编码是用可见的ASCII字符表示二进制数据。

请参见

IGridppReport.StorageFormat 属性 | IGridppReport 接口 | IGridppReport.SaveToFileEx 方法 | IGridppReport.SaveToStrEx 方法


IGridppReport.SaveToFileEx 方法

将报表模板数据保存到报表模板文件，并可以指定数据的存储格式。

VARIANT_BOOL SaveToFileEx(BSTR FileName, GRStorageFormat StorageFormat);

返回值

VARIANT_BOOL

指示保存报表模板数据是否成功。

参数

BSTR FileName

指定模板文件的完全路径名称。

GRStorageFormat StorageFormat

指定模板数据的存储格式。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRStorageFormat 枚举 | IGridppReport.SaveToFile 方法 | IGridppReport.SaveToStr 方法 | IGridppReport.SaveToStrEx 方法 | IGridppReport.SaveToVariant 方法 | IGridppReport.LoadFromFile 方法


IGridppReport.SaveToStrEx 方法

保存报表模板数据保存至字符串。可以指定模板数据的存储格式。

BSTR SaveToStrEx(GRStorageFormat StorageFormat);

返回值

BSTR

返回存储的模板数据格式串。

参数

GRStorageFormat StorageFormat

指定模板数据的存储格式。

请参见

IGridppReport 接口 | IGridppReport 成员 | GRStorageFormat 枚举 | IGridppReport.SaveToFile 方法 | IGridppReport.SaveToFileEx 方法 | IGridppReport.SaveToStr 方法 | IGridppReport.SaveToVariant 方法 | IGridppReport.LoadFromStr 方法


IGRControl.AlignColumnEx 属性

IGRControl.AlignColumnEx(对齐列扩展) 属性

指定部件框水平位置对齐到明细网格另一个列的名称。

BSTR AlignColumnEx

特征

可读写

设计器中可见

说明

如果本属性值不为空时，配合 AlignColumnSide 属性一起指定部件框与列的对齐方式，部件框的水平位置将跟随列位置的改变而改变。

AlignColumnEx 与 AlignColumn 可以指定到不同的列，这样部件框就可以跨列对齐到不同的列。如果 AlignColumnEx 与 AlignColumn 只设定了其中之一的，则部件框只对齐到一个列。如果两者都没有设定，则部件框不会对齐到任何列。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.AlignColumn 属性 | IGRControl.AlignColumnSide 属性 | 属性特征说明


IGRDetailGrid.ColLineColor 属性

IGRDetailGrid.ColLineColor(列线颜色) 属性

指定列分隔线的颜色。

OLE_COLOR ColLineColor

默认值

grclBlack

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.RowLineColor 属性 | IGRDetailGrid.BorderColor 属性 | IGRDetailGrid.ShowColLine 属性 | 属性特征说明


IGRTextBox.ShrinkFontToFit 属性

IGRTextBox.ShrinkFontToFit(按需缩小字体) 属性

在文字框的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。

VARIANT_BOOL ShrinkFontToFit

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

注意：缩小字体功能只有在打印与打印预览时才有效果。

请参见

IGRTextBox 接口 | IGRTextBox 成员 | IGRMemoBox.FlowTo 属性 | 属性特征说明


IGRPrintViewer.ShowMarginCorner 属性

指示是否显示页边距的拐角指示线。

VARIANT_BOOL ShowMarginCorner

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | 属性特征说明


IGRDetailGrid.GrowToBottom 属性

IGRDetailGrid.GrowToBottom(伸展到页底) 属性

指示是否将明细网格的下边框延伸到页的底部。

VARIANT_BOOL GrowToBottom

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | 属性特征说明


GRDuplexKind 枚举

表示报表对双面打印的应用方式。

成员名称 | 枚举值 | 说明
grdkDefault | 0 | 打印机默认的双面打印设置。
grdkSimplex | 1 | 单面打印。
grdkHorizontal | 2 | 双面水平打印。
grdkVertical | 3 | 双面垂直打印。

请参见

IGRPrinter.Duplex 属性 | IGridppReport.DesignPrintDuplex 属性


IGRPrinter.Duplex 属性

指示报表打印输出应用的双面打印模式。

GRDuplexKind Duplex

特征

可读写

设计器中可见

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRDuplexKind 枚举 | IGridppReport.DesignPrintDuplex 属性 | 属性特征说明


IGridppReport.DesignPrintDuplex 属性

IGridppReport.DesignPrintDuplex(设计页面双面打印) 属性

指示报表在设计时指定的双面打印模式。

GRDuplexKind DesignPrintDuplex

默认值

grdkDefault

特征

可读写

设计器中可见

仅用于打印

请参见

IGridppReport 接口 | IGridppReport 成员 | GRDuplexKind 枚举 | IGRPrinter.Duplex 属性 | 属性特征说明


IGridppReport.PrintBegin 事件

在开始打印报表之前，触发本事件。

void PrintBegin(void);

说明

在开始打印报表之前，触发本事件。在此事件中可以调用 AbortPrint 方法取消打印过程，这样就可以根据一定的条件控制是否可以打印输出。另也可以在此事件中设置打印设置参数。

一次打印任务成功完成过程，开始时会触发 PrintBegin 事件，在打印数据全部传输给打印机之后触发 PrintEnd 事件；如果中途取消打印或发生了各种异常导致打印任务没有完成，PrintAborted 事件会触发，而PrintEnd 事件就不会执行到。

JS代码：通过事件改变打印参数

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AbortPrint 方法 | IGridppReport.Printer 属性 | IGridppReport.PrintAborted 事件 | IGridppReport.PrintEnd 事件 | IGridppReport.Print 方法 | IGRPrinter.SheetPages 属性 | IGRPrinter.SheetPaperSize 属性


IGridppReport.PrintEnd 事件

在结束打印报表之后，触发本事件。

void PrintEnd(void);

说明

一次打印任务成功完成过程，开始时会触发 PrintBegin 事件，在打印数据全部传输给打印机之后触发 PrintEnd 事件；如果中途取消打印或发生了各种异常导致打印任务没有完成，PrintAborted 事件会触发，而PrintEnd 事件就不会执行到。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintAborted 事件 | IGridppReport.PrintBegin 事件 | IGridppReport.Print 方法


IGridppReport.PrintPage 事件

在打印每一页报表页面时触发本事件。

void PrintPage(LONG PageNo);

参数

LONG PageNo

指定当前打印页的页号。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AbortPrint 方法 | IGridppReport.Print 方法


IGRPrinter.PrintOffsetX 属性

指示报表的输出位置在水平方向上的偏移量，以报表的计量单位表示，向右为正，向左为负。

DOUBLE PrintOffsetX

默认值

0

特征

可读写

设计器中可见

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PrintOffsetY 属性 | IGridppReport.Unit 属性 | IGRPrinter.PrintOffsetSaveToLocal 属性 | 属性特征说明


IGRPrinter.PrintOffsetY 属性

指示报表的输出位置在垂直方向上的偏移量，以报表的计量单位表示，向下为正，向上为负。

DOUBLE PrintOffsetY

默认值

0

特征

可读写

设计器中可见

仅用于打印

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PrintOffsetX 属性 | IGridppReport.Unit 属性 | IGRPrinter.PrintOffsetSaveToLocal 属性 | 属性特征说明


IGridppReport.BackImagePreview 属性

IGridppReport.BackImagePreview(背景图预览) 属性

指示在报表预览时，是否显示设计背景图。

VARIANT_BOOL BackImagePreview

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BackImage 属性 | IGridppReport.BackImageFile 属性 | IGridppReport.BackImagePrint 属性 | 属性特征说明


IGRDisplayViewer.Searchable 属性

指示是否提供默认的文字查找功能。

VARIANT_BOOL Searchable

默认值

TRUE

特征

可读写

设计器中可见

说明

如果本属性置为真，当查询显示器控件获得键盘输入焦点时，按下 Ctrl+F 键会弹出文字查找对话框，按下 F3 键会进行继续查找。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.Search 方法

执行查找报表文字任务，被匹配的文字将被高亮显示。

VARIANT_BOOL Search(BSTR Text, VARIANT_BOOL CaseSensitive, VARIANT_BOOL WholeWord, VARIANT_BOOL ToUp, VARIANT_BOOL FromSelection, VARIANT_BOOL ShowDlg, VARIANT_BOOL ShowMsg);

返回值

VARIANT_BOOL

指示查找是否成功匹配。

参数

BSTR Text

指定要查找的文字。

VARIANT_BOOL CaseSensitive

指定文字匹配时是否区分大小写。

VARIANT_BOOL WholeWord

指定是否要求全字匹配。

VARIANT_BOOL ToUp

指定是否按向上的方向进行查找。

VARIANT_BOOL FromSelection

指定是否从当前选中位置进行查找，如果不是：向下查找从首行开始，向上查找从最后一行开始。

VARIANT_BOOL ShowDlg

指定在执行查找任务之前，是否显示查找对话框。

VARIANT_BOOL ShowMsg

指定在执行查找任务时，是否弹出搜索完成消息。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Searchable 属性 | IGRDisplayViewer.SearchAgain 方法


IGRDisplayViewer.SearchAgain 方法

根据前面的查找条件进行继续查找，被匹配的文字将被高亮显示。

VARIANT_BOOL SearchAgain(VARIANT_BOOL ShowMsg);

返回值

VARIANT_BOOL

指示查找是否成功匹配。

参数

VARIANT_BOOL ShowMsg

指示是否显示提示消息框。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Searchable 属性 | IGRDisplayViewer.Search 方法


IGRDisplayViewer.AlwaysShowHScrollBar 属性

是否始终显示明细表格的水平滚动条的标志。

VARIANT_BOOL AlwaysShowHScrollBar

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AlwaysShowVScrollBar 属性 | 属性特征说明


IGRDisplayViewer.AlwaysShowVScrollBar 属性

是否始终显示明细网格的垂直滚动条。

VARIANT_BOOL AlwaysShowVScrollBar

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AlwaysShowHScrollBar 属性 | 属性特征说明


IGRDisplayViewer.BackgroundColor 属性

当明细网格不能完整充满查询显示器的显示区域时，指定明细网格外围的空白区域的背景填充色。

OLE_COLOR BackgroundColor

默认值

grclWindow

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.GridCenterView 属性 | IGRDisplayViewer.GridTitle3D 属性 | 属性特征说明


IGRDisplayViewer.ColumnMove 属性

指定是否可以用鼠标拖放改变明细网格列的显示顺序。

VARIANT_BOOL ColumnMove

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ColumnResize 属性 | 属性特征说明


IGRDisplayViewer.ColumnResize 属性

指定是否可以通过鼠标拖放改变明细网格列的显示宽度。

VARIANT_BOOL ColumnResize

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ColumnMove 属性 | 属性特征说明


IGRDisplayViewer.RowSelection 属性

指定在查询显示报表时是否整行选中内容行。如果不是，选中仅为一个格。

VARIANT_BOOL RowSelection

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelectionBackColor 属性 | IGRDisplayViewer.SelectionForeColor 属性 | IGRDisplayViewer.SelectionFollowScroll 属性 | IGRDisplayViewer.AlwaysShowSelection 属性 | 属性特征说明


IGRDisplayViewer.SelectionBackColor 属性

查询显示时，选中格或行的背景填充色。

OLE_COLOR SelectionBackColor

默认值

grclHighlight

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelectionForeColor 属性 | IGRDisplayViewer.SelectionFollowScroll 属性 | IGRDisplayViewer.RowSelection 属性 | 属性特征说明


IGRDisplayViewer.SelectionForeColor 属性

查询显示时，选中格或行的前景色。

OLE_COLOR SelectionForeColor

默认值

grclHighlightText

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelectionBackColor 属性 | IGRDisplayViewer.SelectionFollowScroll 属性 | IGRDisplayViewer.RowSelection 属性 | 属性特征说明


IGRDisplayViewer.SelectionFollowScroll 属性

指示选中格或行是否跟随表格的垂直滚动而滚动。

VARIANT_BOOL SelectionFollowScroll

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelectionBackColor 属性 | IGRDisplayViewer.SelectionForeColor 属性 | IGRDisplayViewer.RowSelection 属性 | 属性特征说明


IGRDisplayViewer.ShowPreviewLine 属性

指示是否显示报表打印页面的垂直区域分隔线。

VARIANT_BOOL ShowPreviewLine

默认值

FALSE

特征

可读写

说明

在报表查询显示中显示出页面分隔线，这样可以进行明确的列宽调整，以便得到适合的打印输出。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ResizeColumnToFitPage 方法 | 属性特征说明


IGRDisplayViewer.Running 属性

指示查询显示器是否正在运行显示报表中。

VARIANT_BOOL Running

特征

只读

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.LockUpdate 方法

锁定控件的显示更新。

void LockUpdate (void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.UnlockUpdate 方法 | IGRDisplayViewer.UpdateViewer 方法


IGRDisplayViewer.UnlockUpdate 方法

解锁控件的显示更新。

void UnlockUpdate(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.LockUpdate 方法 | IGRDisplayViewer.UpdateViewer 方法


IGridppReport.Running 属性

指示报表是否处于运行状态中。

VARIANT_BOOL Running

特征

只读

仅运行时可用

说明

处于运行状态中的报表不允许重新栽入或重新定义模板数据。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.RunningDetailGrid 属性 | 属性特征说明


IGridppReport.FirstPass 属性

指示报表是否在第一遍报表运行过程中。

VARIANT_BOOL FirstPass

特征

只读

仅运行时可用

说明

Grid++Report 在生成打印页面数据时，需要两次遍历处理报表数据，通过此属性可以侦测报表是处于第一遍生成过程中，还是处于第二遍生成过程中。

此属性必须用在于打印相关的报表事件中。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PageStart 事件 | IGridppReport.PageEnd 事件 | IGridppReport.PageProcessRecord 事件 | 属性特征说明


IGRPrinter.CanCollate 属性

指示当前打印机是否支持逐份打印。

VARIANT_BOOL CanCollate

特征

只读

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRPrinter.CanDuplex 属性

指示当前打印机是否支持双面打印。

VARIANT_BOOL CanDuplex

特征

只读

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRPrinter.Online 属性

指示当前打印机是否处于开机在线状态。

VARIANT_BOOL Online

特征

只读

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRPrinter.SupportCustomPaper 属性

指示当前打印机是否支持自定义纸张打印。

VARIANT_BOOL SupportCustomPaper

特征

只读

请参见

IGRPrinter 接口 | IGRPrinter 成员 | 属性特征说明


IGRColumnTitleCell.Height 属性

IGRColumnTitleCell.Height(高度) 属性

指定组标题格的高度。

DOUBLE Height

默认值

0

特征

可读写

设计器中可见

说明

在定义多层表头时，使用本属性指定组标题格的高度，指定不同的属性值可以得到层高不等的多层表头表格。如果为默认值 0，则使用根据多层表头的层数求得的每层平均高度。

本属性仅对组标题格有效。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | 属性特征说明


IGridppReport.ReportHeaderCount 属性

获取报表中定义的报表头个数。

LONG ReportHeaderCount

特征

只读

仅运行时可用

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ReportHeader 属性 | 属性特征说明


IGridppReport.ReportFooterCount 属性

获取报表中定义的报表尾个数。

LONG ReportFooterCount

特征

只读

仅运行时可用

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ReportFooter 属性 | 属性特征说明


IGRChart.XAxisTextCount 属性

获取显式设定的X轴刻度显示文字的个数。

SHORT XAxisTextCount

特征

只读

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisText 属性 | IGRChart.AddXAxisText 方法 | IGRChart.EmptyXAxisText 方法 | IGRChart.Get_XAxisText 方法 | 属性特征说明


IGRChart.XAxisText 属性

获取指定序号处显式设定的X轴刻度显示文字。

BSTR XAxisText

特征

只读

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
x = Chart.XAxisText(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisTextCount 属性 | IGRChart.AddXAxisText 方法 | IGRChart.EmptyXAxisText 方法 | 属性特征说明


IGRChart.XAxisTextFormat 属性

IGRChart.XAxisTextFormat(X轴刻度格式) 属性

指定用来自动产生X轴刻度显示文字的数字格式化串。

BSTR XAxisTextFormat

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisMaximum 属性 | IGRChart.XAxisMinimum 属性 | 属性特征说明


IGRChart.YAxisTextCount 属性

获取显式设定的Y轴刻度显示文字。

SHORT YAxisTextCount

特征

只读

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisText 属性 | IGRChart.AddYAxisText 方法 | IGRChart.EmptyYAxisText 方法 | IGRChart.Get_YAxisText 方法 | 属性特征说明


IGRChart.YAxisText 属性

获取指定序号处显式设定的Y轴刻度显示文字。

BSTR YAxisText

特征

只读

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
x = Chart.YAxisText(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.YAxisTextCount 属性 | IGRChart.AddYAxisText 方法 | IGRChart.EmptyYAxisText 方法 | IGRChart.Get_YAxisText 方法 | 属性特征说明


IGRChart.AddXAxisText 方法

添加一个X轴刻度显示文字。

void AddXAxisText(DOUBLE PosVal, BSTR Text);

参数

DOUBLE PosVal

指定刻度位置值

BSTR Text

指定显示文字

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.EmptyXAxisText 方法 | IGRChart.XAxisText 属性 | IGRChart.XAxisTextCount 属性 | IGRChart.Get_XAxisText 方法


IGRChart.AddYAxisText 方法

添加一个Y轴刻度显示文字。

void AddYAxisText(DOUBLE PosVal, BSTR Text);

参数

DOUBLE PosVal

指定刻度位置值

BSTR Text

指定刻度显示文字

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.EmptyYAxisText 方法 | IGRChart.YAxisText 属性 | IGRChart.YAxisTextCount 属性 | IGRChart.Get_YAxisText 方法


IGRChart.EmptyXAxisText 方法

清空显式设定的全部X轴刻度文字。

void EmptyXAxisText(void);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddXAxisText 方法 | IGRChart.XAxisText 属性 | IGRChart.XAxisTextCount 属性 | IGRChart.EmptyXAxisText 方法


IGRChart.EmptyYAxisText 方法

清空显式设定的全部Y轴刻度文字。

void EmptyYAxisText(void);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddYAxisText 方法 | IGRChart.YAxisText 属性 | IGRChart.YAxisTextCount 属性


IGRChart.XYValueCount 属性

获取指定序列的XY坐标值个数。

LONG XYValueCount

特征

只读

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
x = Chart.XYValueCount(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueOfX 属性 | IGRChart.XYValueOfY 属性 | IGRChart.AddXYValue 方法 | IGRChart.EmptyXYValue 方法 | IGRChart.GetXYValue 方法 | IGRChart.Get_XYValueCount 方法 | 属性特征说明


IGRChart.XYValueOfX 属性

获取指定序列的指定顺序号的坐标X值

DOUBLE XYValueOfX

特征

只读

说明

属性采用二维整数下标序号，序号从 0 开始。序列号在前，顺序号在后。

此属性仅适用于报表组件，WEB报表插件应使用 Get_XYValueOfX 方法。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueCount 属性 | IGRChart.XYValueOfY 属性 | IGRChart.AddXYValue 方法 | IGRChart.GetXYValue 方法 | IGRChart.EmptyXYValue 方法 | 属性特征说明


IGRChart.XYValueOfY 属性

获取指定序列的指定顺序号的坐标Y值

DOUBLE XYValueOfY

特征

可读写

设计器中可见

说明

属性采用二维整数下标序号，序号从 0 开始。序列号在前，顺序号在后。

此属性仅适用于报表组件，WEB报表插件应使用 Get_XYValueOfY 方法。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueCount 属性 | IGRChart.XYValueOfX 属性 | IGRChart.AddXYValue 方法 | IGRChart.GetXYValue 方法 | IGRChart.EmptyXYValue 方法 | 属性特征说明


IGRChart.AddXYValue 方法

在指定序列上增加坐标点值。

void AddXYValue(SHORT SeriesIndex, DOUBLE XVal, DOUBLE YVal);

参数

SHORT SeriesIndex

指定序列。

DOUBLE XVal

指定坐标X值。

DOUBLE YVal

指定坐标Y值。

说明

在用这个方法加入数据之前，一般需要调用 EmptyXYValue 方法清空已经存在的数据。如刷新生成报表时，上次生成加入的数据不会自动清理掉，如果不进行清理，再次加入的数据还是继续在原有数据的基础上继续增加，这样肯定不是我们期望的。演示代码如下：

Chart.EmptyXYValue(); //清空原来的数据
for (SeriesIndex=0; SeriesIndex{
int DataCount = ...; //获取序列 SeriesIndex 的数据个数
for (DataIndex=0; DataIndex {
X = ...//取得X元素值
Y = ...//取得Y元素值
Chart.AddXYValue(SeriesIndex, X, Y);
}
}

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueCount 属性 | IGRChart.XYValueOfX 属性 | IGRChart.XYValueOfY 属性 | IGRChart.EmptyXYValue 方法 | IGRChart.GetXYValue 方法


IGRChart.EmptyXYValue 方法

清空全部坐标点值。

void EmptyXYValue(void);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueCount 属性 | IGRChart.XYValueOfX 属性 | IGRChart.XYValueOfY 属性 | IGRChart.AddXYValue 方法 | IGRChart.GetXYValue 方法


IGRChart.GetXYValue 方法

或取指定坐标点的XY值

void GetXYValue(SHORT SeriesIndex, LONG Index, DOUBLE pXVal, DOUBLE pYVal);

参数

SHORT SeriesIndex

指定序列。

LONG Index

指定序列中的数据序号。

DOUBLE pXVal

存储返回坐标点X值。

DOUBLE pYVal

存储返回坐标点Y值。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYValueCount 属性 | IGRChart.XYValueOfX 属性 | IGRChart.XYValueOfY 属性 | IGRChart.AddXYValue 方法 | IGRChart.EmptyXYValue 方法 | IGRChart.LoadXYDataFromXML 方法 | IGRChart.Get_XYValueCount 方法


IGRChart.FillColor 属性

IGRChart.FillColor(填充颜色) 属性

获取指定序号处的自定义图形填充颜色。

OLE_COLOR FillColor

特征

只读

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
x = Chart.FillColor(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddFillColor 方法 | IGRChart.EmptyFillColors 方法 | IGRChart.FillColorCount 属性 | IGRChart.Get_FillColor 方法 | 属性特征说明


IGRChart.FillColorCount 属性

获取自定义图形填充颜色的个数。

SHORT FillColorCount

特征

只读

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddFillColor 方法 | IGRChart.EmptyFillColors 方法 | IGRChart.FillColor 属性 | IGRChart.Get_FillColor 方法 | 属性特征说明


IGRChart.AddFillColor 方法

增加一个自定义图形填充颜色。

void AddFillColor(OLE_COLOR FillColor);

参数

OLE_COLOR FillColor

颜色值。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.FillColor 属性 | IGRChart.FillColorCount 属性 | IGRChart.EmptyFillColors 方法


IGRChart.EmptyFillColors 方法

清空全部自定义图形填充颜色。

void EmptyFillColors(void);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddFillColor 方法 | IGRChart.FillColor 属性 | IGRChart.FillColorCount 属性


IGridppReport.FindFirstControl 方法

找出报表中的第一个部件框。

IGRControl *FindFirstControl(void);

返回值

IGRControl *

报表中的第一个部件框的引用

说明

如果报表中不存在部件框，则返回值为空值引用。

通过 FindFirstControl 与 FindNextControl 可以遍历出报表中的全部部件框，如下。
C++语言代码：
{
ListBox1->Clear();
IGRControlPtr pControl = GridppReport1->FindFirstControl();
while (pControl)
{
ListBox1->Items->Add(pControl->Name);

pControl = GridppReport1->FindNextControl();
}
}

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRControl 接口 | IGridppReport.FindNextControl 方法 | IGridppReport.ControlByName 方法


IGridppReport.FindNextControl 方法

找出报表中的下一个部件框的引用。

IGRControl *FindNextControl(void);

返回值

IGRControl *

找到的部件框对象的引用。

说明

如果报表中不存在后续的部件框，则返回值为空值引用。在调用 FindNextControl 之前必须调用 FindFirstControl 。

通过 FindFirstControl 与 FindNextControl 可以遍历出报表中的全部部件框，如下C++语言代码：
{
ListBox1->Clear();
IGRControlPtr pControl = GridppReport1->FindFirstControl();
while (pControl)
{
ListBox1->Items->Add(pControl->Name);

pControl = GridppReport1->FindNextControl();
}
}

JavaScript代码：
var Control= Report.FindFirstControl();
while (Control != null)
{
//if (Control.ControlType == 9)
//{
//}
... ...

Control= Report.FindNextControl();
}

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRControl 接口 | IGridppReport.FindFirstControl 方法 | IGridppReport.ControlByName 方法


IGridppReport.PageBlankHeight 属性

报表在生成打印页面数据的过程中，当前页面剩余的空白区域高度

DOUBLE PageBlankHeight

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ForceNewPage 方法 | 属性特征说明


IGridppReport.PrintToStretch 属性

IGridppReport.PrintToStretch(按纸张缩放打印) 属性

在按设计页面打印报表，且打印机的当前页面设置与报表设计页面不匹配，指定打印输出是否进行缩放适应。

VARIANT_BOOL PrintToStretch

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintAsDesignPaper 属性 | 属性特征说明


IGridppReport.StorageFormat 属性

IGridppReport.StorageFormat(存储格式) 属性

指定报表模板数据的保存格式

GRStorageFormat StorageFormat

默认值

grsfText

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | GRStorageFormat 枚举 | IGridppReport.TextEncode 属性 | 属性特征说明


IGridppReport.FieldByDBName 方法

根据字段的字段名称得到匹配字段对象的接口引用。

IGRField *FieldByDBName(void);

返回值

IGRField *

说明

如果找到匹配的字段，则返回该字段对象的接口引用，否则返回NULL。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRField 接口 | IGRField.Name 属性 | IGRField.DBFieldName 属性 | IGridppReport.FieldByName 方法


IGRField.DBFieldName 属性

IGRField.DBFieldName(数据字段名) 属性

指定字段对应的数据源字段名称。

BSTR DBFieldName

特征

可读写

设计器中可见

说明

当以拉模式从数据源提取报表数据时，将按此属性值进行报表字段与数据源字段进行匹配。如果此属性没有定义，则默认与名称保持一致。

请参见

IGRField 接口 | IGRField 成员 | IGridppReport.FieldByDBName 方法 | IGRField.RunningDBField 属性 | IGRField.Name 属性 | 属性特征说明


IGridppReport.PrintAborted 事件

当打印任务中途取消时触发本事件。

void PrintAborted(void);

说明

一次打印任务成功完成过程，开始时会触发 PrintBegin 事件，在打印数据全部传输给打印机之后触发 PrintEnd 事件；如果中途取消打印或发生了各种异常导致打印任务没有完成，PrintAborted 事件会触发，而PrintEnd 事件就不会执行到。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.AbortPrint 方法 | IGridppReport.PrintBegin 事件 | IGridppReport.PrintEnd 事件 | IGridppReport.Print 方法


IGridppReport.AbortPrint 方法

中断打印任务的执行。

void AbortPrint(void);

说明

此方法只能在 PrintBegin 与 PrintPage 事件中执行。

JS代码：中止打印

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrintPage 事件 | IGridppReport.PrintAborted 事件 | IGridppReport.PrintBegin 事件


IGridppReport.ExportBegin 事件

在报表导出任务执行之前触发本事件。

void ExportBegin(IGRExportOption *pOptionObject);

参数

IGRExportOption *pOptionObject

导出选项对象接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRExportOption 接口 | IGridppReport.ExportEnd 事件 | IGridppReport.ExportBeginScript 属性


IGridppReport.ExportEnd 事件

在报表导出任务完成时触发本事件。

void ExportEnd(IGRExportOption *OptionObject);

参数

IGRExportOption *OptionObject

导出选项对象接口引用。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRExportOption 接口 | IGridppReport.ExportBegin 事件


IGRBarCode 概述

IGRBarCode 接口

条形码部件框接口

有关此接口所有成员的列表，请参阅 IGRBarCode 成员。

IDispatch
IGRControl
IGRBarCode

请参见

IGRBarCode 成员 | GRBarcodeDirection 枚举 | GRBarcodeType 枚举 | GRStringAlignment 枚举 | IGRControl.AsBarcode 属性


IGRBarCode成员

IGRBarCode 概述

公共属性

AlignColumn(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格列的名称。
AlignColumnEx(从 IGRControl 继承) | 指定部件框水平位置对齐到明细网格另一个列的名称。
AlignColumnSide(从 IGRControl 继承) | 部件框对齐到明细网格列的方式。
Alignment | 指定条形码文字输出时的对齐方式。
Anchor(从 IGRControl 继承) | 指定部件框的哪些边缘锚定到其容器边缘。
AsBarcode(从 IGRControl 继承) | 将本部件框转换为条形码部件框的接口引用。
AsChart(从 IGRControl 继承) | 将本部件框转换为图表部件框的接口引用。
AsFieldBox(从 IGRControl 继承) | 将本部件框转换为字段框的接口引用。
AsLine(从 IGRControl 继承) | 将本部件框转换为线段的接口引用。
AsMemoBox(从 IGRControl 继承) | 转换本部件框为综合文本框的接口引用。
AsPictureBox(从 IGRControl 继承) | 将本部件框转换为图像框的接口引用。
AsRichTextBox(从 IGRControl 继承) | 将本部件框转换为RTF文本框的接口引用。
AsShapeBox(从 IGRControl 继承) | 将本部件框转换为图形框的接口引用。
AsStaticBox(从 IGRControl 继承) | 将本部件框转换为静态框的接口引用。
AsSubReport(从 IGRControl 继承) | 转换本部件框为子报表的接口引用。
AsSummaryBox(从 IGRControl 继承) | 将本部件框转换为统计框的接口引用。
AsSystemVarBox(从 IGRControl 继承) | 将本部件框转换为系统变量框的接口引用。
AsTextBox(从 IGRControl 继承) | 转换本部件框为文字框基类的接口引用。
BackColor(从 IGRControl 继承) | 部件框的背景色。
BackStyle(从 IGRControl 继承) | 部件框显示时背景的填充方式。
BarcodeType | 指定条形码的类型。
BarRatio | 指定宽条与窄条之间的宽度比例。
BarWidth | 指定一个窄条的宽度，以报表的计量单位表示。
BorderColor(从 IGRControl 继承) | 边框线的显示颜色。
BorderStyles(从 IGRControl 继承) | 边框线的显示方式。
BorderWidth(从 IGRControl 继承) | 边框线的宽度。
CaptionPosition | 指定条形码数据文字的输出位置，或不输出数据文字。
Center(从 IGRControl 继承) | 指定水平与垂直方向的居中对齐方式。
CheckSum | 指定条形码是否进行数据校验，进行数据校验会增加额外的校验数据位。
ControlType(从 IGRControl 继承) | 获取本部件框的具体类型。
Cursor(从 IGRControl 继承) | 指定在查询显示报表时，当鼠标光标位于该部件框上时要显示的鼠标光标类型。
CustomDraw(从 IGRControl 继承) | 指定部件框是否为自绘部件框。
CustomDrawScript(从 IGRControl 继承) | 指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。
DataField | 指定条形码关联的数据字段名称，在运行时从关联字段获得条码数据。
Direction | 指定条形码图形的输出方向。
Dock(从 IGRControl 继承) | 指定部件框停靠到父容器的哪一个边缘。
Font(从 IGRControl 继承) | 输出文字时使用的字体。
ForeColor(从 IGRControl 继承) | 部件框输出内容的前景色。
Height(从 IGRControl 继承) | 部件框的显示高度。
Left(从 IGRControl 继承) | 部件框的左端显示位置。
Name(从 IGRControl 继承) | 部件框的名称标识。
Parent(从 IGRControl 继承) | 父容器对象的 IUnknown 接口引用。
PDF417Columns | 专用于PDF417，指定条码每行的编码字节个数，0为自动计算确定。
PDF417ErrorLevel | 专用于PDF417，指定条码的纠错等级，值范围0-8，0为自动计算确定。
PDF417Rows | 专用于PDF417，指定条码的行数，值范围0-90，0为自动计算确定。
PDF417Simple | 专用于PDF417，指定是否进行截短简化，简化的PDF417图形将省略右边的标识符并将终止符缩减为一个模块。
PrintType(从 IGRControl 继承) | 部件框的打印输出方式。
QRCodeErrorLevel | 专用于QRCode条码，指定纠错等级，取值范围1-4，对应L,M,Q,H纠错等级。
QRCodeMask | 专用于QRCode条码，指定掩码模式，取值范围0-8，0为自动确定。
QRCodeVersion | 专用于QRCode条码，指定版本号，取值范围0-40，0为自动确定。
Tag(从 IGRControl 继承) | 部件框的标识值。
Text | 指定条形码的数据文字。
Top(从 IGRControl 继承) | 部件框的顶端显示位置。
Visible(从 IGRControl 继承) | 是否显示部件框的标志。
Width(从 IGRControl 继承) | 部件框的显示宽度。

公共方法

BringToFront(从 IGRControl 继承) | 将部件框带到 Z 顺序的前面。
DrawDefault(从 IGRControl 继承) | 按部件框本身行为输出显示内容。
LoadCursor(从 IGRControl 继承) | 从光标文件中载入光标作为该部件框要显示的鼠标光标。
SendToBack(从 IGRControl 继承) | 将部件框发送到 Z 顺序的后面。
SetBounds(从 IGRControl 继承) | 设置部件框在其父容器中的边界位置。

请参见

IGRBarCode 接口 | GRBarcodeDirection 枚举 | GRBarcodeType 枚举 | GRStringAlignment 枚举 | IGRControl.AsBarcode 属性


GRStringAlignment 枚举

指定文本字符串相对于其布局矩形的对齐方式。

成员名称 | 枚举值 | 说明
grsaNear | 1 | 指定文本靠近布局对齐。在左到右布局中，近端位置是左。在右到左布局中，近端位置是右。
grsaCenter | 2 | 指定文本在布局矩形中居中对齐。
grsaFar | 3 | 指定文本远离布局矩形的原点位置对齐。在左到右布局中，远端位置是右。在右到左布局中，远端位置是左。

请参见

IGRBarCode.Alignment 属性 | IGRBarCode 接口


IGRBarCode.Alignment 属性

IGRBarCode.Alignment(对齐方式) 属性

指定条形码文字输出时的对齐方式。

GRStringAlignment Alignment

默认值

grsaCenter

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | GRStringAlignment 枚举 | GRBarcodeDirection 枚举 | GRStringAlignment 枚举 | 属性特征说明


GRBarcodeType 枚举

指定条形码的各种类型。

成员名称 | 枚举值 | 说明
grbtCode25Intlv | 1 | Code25 Interleaved
grbtCode25Ind | 2 | Code25 Industrial,
grbtCode25Matrix | 3 | Code25 Matrix,
grbtCode39 | 4 | Code39
grbtCode39X | 5 | Code39X
grbtCode128A | 6 | Code128A
grbtCode128B | 7 | Code128B
grbtCode128C | 8 | Code128C
grbtCode93 | 9 | Code93
grbtCode93X | 10 | Code93 Extended
grbtCodeMSI | 11 | CodeMSI
grbtCodePostNet | 12 | CodePostNet
grbtCodeCodabar | 13 | CodeCodabar
grbtCodeEAN8 | 14 | CodeEAN8，商品码，数据只能为数字
grbtCodeEAN13 | 15 | CodeEAN13，，商品码，数据只能为数字。如果进行数据校验，提供12位数字数据，否则13位数字数据
grbtCodeUPC_A | 16 | CodeUPC_A，商品码，数据只能为数字
grbtCodeUPC_E0 | 17 | CodeUPC_E0，商品码，数据只能为数字
grbtCodeUPC_E1 | 18 | CodeUPC_E1，商品码，数据只能为数字
grbtCodeUPC_Supp2 | 19 | CodeUPC_Supp2
grbtCodeUPC_Supp5 | 20 | CodeUPC_Supp5
grbtCodeEAN128A | 21 | CodeEAN128A
grbtCodeEAN128B | 22 | CodeEAN128B
grbtCodeEAN128C | 23 | CodeEAN128C
grbtCode128Auto | 25 | Code128Auto Code128自动编码
grbtPDF417 | 50 | 二维码PDF417
grbtQRCode | 51 | 二维码QRCode

请参见

IGRBarCode.BarcodeType 属性 | IGRBarCode 接口


IGRBarCode.BarcodeType 属性

IGRBarCode.BarcodeType(条码类型) 属性

指定条形码的类型。

GRBarcodeType BarcodeType

默认值

grbtCode39

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | GRBarcodeType 枚举 | GRBarcodeType 枚举 | 属性特征说明


IGRBarCode.BarRatio 属性

IGRBarCode.BarRatio(宽窄条比例) 属性

指定宽条与窄条之间的宽度比例。

DOUBLE BarRatio

默认值

2.0

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.BarWidth 属性 | 属性特征说明


IGRBarCode.BarWidth 属性

IGRBarCode.BarWidth(条宽度) 属性

指定一个窄条的宽度，以报表的计量单位表示。

DOUBLE BarWidth

默认值

0.0

特征

可读写

设计器中可见

说明

如果本属性值为0，条的宽度根据整个条码显示矩形的宽度自动计算得来，让条码图形在整个显示区域中刚好完整显示出来。

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.BarRatio 属性 | 属性特征说明


GRBarcodeCaptionPosition 枚举

表示条形码文字的输出位置。

成员名称 | 枚举值 | 说明
grbcpNone | 1 | 条形码的文字不显示。
grbcpAbove | 2 | 条形码的文字显示在上端。
grbcpBelow | 3 | 条形码的文字显示在下端。

请参见

IGRBarCode.CaptionPosition 属性 | IGRChart 接口


IGRBarCode.CaptionPosition 属性

IGRBarCode.CaptionPosition(文字位置) 属性

指定条形码数据文字的输出位置，或不输出数据文字。

GRBarcodeCaptionPosition CaptionPosition

默认值

grbcpNone

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | GRBarcodeCaptionPosition 枚举 | GRBarcodeCaptionPosition 枚举 | 属性特征说明


IGRBarCode.CheckSum 属性

IGRBarCode.CheckSum(数据校验) 属性

指定条形码是否进行数据校验，进行数据校验会增加额外的校验数据位。

VARIANT_BOOL CheckSum

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | 属性特征说明


IGRBarCode.DataField 属性

IGRBarCode.DataField(数据字段) 属性

指定条形码关联的数据字段名称，在运行时从关联字段获得条码数据。

BSTR DataField

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.Text 属性 | 属性特征说明


GRBarcodeDirection 枚举

表示条形码图形的输出方向。

成员名称 | 枚举值 | 说明
LeftToRight | 1 | 从左到右。
RightToLeft | 2 | 从右到左。
TopToBottom | 3 | 从上到下。
BottomToTop | 4 | 从下到上。

请参见

IGRBarCode.Direction 属性 | IGRBarCode 接口


IGRBarCode.Direction 属性

IGRBarCode.Direction(输出方向) 属性

指定条形码图形的输出方向。

GRBarcodeDirection Direction

默认值

grbdLeftToRight

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | GRBarcodeDirection 枚举 | GRBarcodeDirection 枚举 | 属性特征说明


IGRBarCode.Text 属性

IGRBarCode.Text(文本) 属性

指定条形码的数据文字。

BSTR Text

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.DataField 属性 | 属性特征说明


IGRChart.PointWeight 属性

IGRChart.PointWeight(数据点粗细) 属性

指定连线图的数据点的粗细度。以像素点为计量单位。

SHORT PointWeight

默认值

4

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LineWeight 属性 | 属性特征说明


IGRColumnCell.ShrinkFontToFit 属性

IGRColumnCell.ShrinkFontToFit(按需缩小字体) 属性

在格的显示区域不能完整显示出文字内容时，指定是否自动缩小文字大小让文字完整显示出来。

VARIANT_BOOL ShrinkFontToFit

默认值

FALSE

特征

可读写

设计器中可见

说明

在格为自由格时，此属性无效。

注意：缩小字体功能只有在打印与打印预览时才有效果。

请参见

IGRColumnCell 接口 | IGRColumnCell 成员 | 属性特征说明


IGRControl.AsBarcode 属性

将本部件框转换为条形码部件框的接口引用。

IGRBarCode *AsBarcode

特征

只读

说明

只有当本部件框确实是条形码(Barcode)时，才能成功读取本属性值。

请参见

IGRControl 接口 | IGRControl 成员 | IGRBarCode 接口 | 属性特征说明


IGRCrossTab 概述

IGRCrossTab 接口

表示交叉表的定义接口。

有关此接口所有成员的列表，请参阅 IGRCrossTab 成员。

IDispatch
IGRCrossTab

请参见

IGRCrossTab 成员 | IGRDetailGrid 接口 | IGRRecordset 接口 | IGRDetailGrid.IsCrossTab 属性 | GRPeriodType 枚举 | IGRDetailGrid.CrossTab 属性


IGRCrossTab成员

IGRCrossTab 概述

公共属性

BeginDateParameter | 指定交叉期间的开始日期对应的参数对象名称。
EndDateParameter | 指定交叉期间的结束日期对应的参数对象名称。
GroupAutoSum | 指定是否进行分组求和统计。
HCrossFields | 指定横向交叉的数据字段名称，多个字段之间用';'号隔开。
HCrossPeriodType | 横向交叉的按期间交叉的期间类型。
HPercentColumns | 指定按横向计算比重百分比的列名称，多个列名称以‘;’隔开。
HResort | 指示横向交叉数据是否按横向交叉字段重新排序
HSortAsc | 指示横向交叉字段是否按升序排列。
HTotalAtFirst | 指定是否将横向合计栏显示在前面。
ListCols | 指定明细网格中显示纵向交叉数据位于前面的列数。
PercentFormat | 指定比重百分比数据的格式化文字。
Recordset | 获取用于存储交叉表运行结果的记录集对象引用，此记录集不同于明细网格的记录集。
TotalCols | 指定明细网格中定义横向合计的列数，明细网格最后几列属于横向合计列。
TotalHPercentColumns | 指定横向合计比重百分比的列名称，多个列名称以‘;’隔开。
TotalVPercentColumns | 指定纵向合计比重百分比的列名称，多个列名称以‘;’隔开。
VCrossFields | 指定纵向交叉的数据字段名称，多个字段之间用';'号隔开。
VPercentColumns | 指定按纵向计算比重百分比的列名称，多个列名称以‘;’隔开。
VResort | 指示纵向交叉数据是否按纵向交叉字段重新排序。
VSortAsc | 指示纵向交叉字段是否按升序排列。

公共方法

GetCurPeriodBeginDate | 当交叉表为按期间交叉时，在报表生成过程中获取当前期间的开始日期。
GetCurPeriodEndDate | 当交叉表为按期间交叉时，在报表生成过程中获取当前期间的结束日期。
HBeginAddItem | 准备提供横向交叉项目数据。
HEndAddItem | 完成提供横向交叉项目数据。
VBeginAddItem | 准备提供纵向交叉项目数据。
VEndAddItem | 完成提供纵向交叉项目数据。

请参见

IGRCrossTab 接口 | IGRDetailGrid 接口 | IGRRecordset 接口 | IGRDetailGrid.IsCrossTab 属性 | GRPeriodType 枚举 | IGRDetailGrid.CrossTab 属性


IGRCrossTab.BeginDateParameter 属性

IGRCrossTab.BeginDateParameter(开始日期参数) 属性

指定交叉期间的开始日期对应的参数对象名称。

BSTR BeginDateParameter

特征

可读写

设计器中可见

说明

本属性仅对按期间交叉的报表有效。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.EndDateParameter 属性 | IGRParameter 接口 | IGRCrossTab.HCrossPeriodType 属性 | GRPeriodType 枚举 | 属性特征说明


IGRCrossTab.EndDateParameter 属性

IGRCrossTab.EndDateParameter(结束日期参数) 属性

指定交叉期间的结束日期对应的参数对象名称。

BSTR EndDateParameter

特征

可读写

设计器中可见

说明

本属性仅对按期间交叉的报表有效。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.BeginDateParameter 属性 | IGRParameter 接口 | IGRCrossTab.HCrossPeriodType 属性 | GRPeriodType 枚举 | 属性特征说明


IGRCrossTab.HCrossFields 属性

IGRCrossTab.HCrossFields(横向交叉字段) 属性

指定横向交叉的数据字段名称，多个字段之间用';'号隔开。

BSTR HCrossFields

特征

可读写

设计器中可见

说明

该属性对交叉表定义是必须的，只有定义了该属性交叉表才能成功生成。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.VCrossFields 属性 | IGRCrossTab.HCrossPeriodType 属性 | IGRCrossTab.HSortAsc 属性 | 属性特征说明


IGRCrossTab.VCrossFields 属性

IGRCrossTab.VCrossFields(纵向交叉字段) 属性

指定纵向交叉的数据字段名称，多个字段之间用';'号隔开。

BSTR VCrossFields

特征

可读写

设计器中可见

说明

如果本属性未定义，交叉表纵向只会产生一项，通常该属性都要定义。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HCrossFields 属性 | IGRCrossTab.ListCols 属性 | IGRCrossTab.VSortAsc 属性 | IGRCrossTab.VResort 属性 | 属性特征说明


GRPeriodType 枚举

表示日期期间的类型。

成员名称 | 枚举值 | 说明
grptNone | 0 | 不确定期间。
grptDay | 1 | 日
grptWeek | 2 | 周
grptThirdMonth | 3 | 旬
grptHalfMonth | 4 | 半月
grptMonth | 5 | 月
grptQuarter | 6 | 季
grptHalfYear | 7 | 半年
grptYear | 8 | 年

请参见

IGRCrossTab.HCrossPeriodType 属性 | IGRCrossTab.BeginDateParameter 属性 | IGRCrossTab.EndDateParameter 属性 | IGRCrossTab 接口


IGRCrossTab.HCrossPeriodType 属性

IGRCrossTab.HCrossPeriodType(横向交叉期间类型) 属性

横向交叉的按期间交叉的期间类型。

GRPeriodType HCrossPeriodType

默认值

grptNone

特征

可读写

设计器中可见

说明

本属性的默认值为 grptNone，表示交叉表不是按日期期间交叉的。如果本属性设定了非 grptNone 值，则 HCrossFields 必须是一个日期类型字段的名称。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | GRPeriodType 枚举 | IGRCrossTab.HCrossFields 属性 | IGRCrossTab.BeginDateParameter 属性 | IGRCrossTab.EndDateParameter 属性 | GRPeriodType 枚举 | 属性特征说明


IGRCrossTab.HPercentColumns 属性

IGRCrossTab.HPercentColumns(横向求比率列) 属性

指定按横向计算比重百分比的列名称，多个列名称以‘;’隔开。

BSTR HPercentColumns

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.PercentFormat 属性 | IGRCrossTab.VPercentColumns 属性 | 属性特征说明


IGRCrossTab.VPercentColumns 属性

IGRCrossTab.VPercentColumns(纵向求比率列) 属性

指定按纵向计算比重百分比的列名称，多个列名称以‘;’隔开。

BSTR VPercentColumns

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.PercentFormat 属性 | IGRCrossTab.HPercentColumns 属性 | 属性特征说明


IGRCrossTab.HTotalAtFirst 属性

IGRCrossTab.HTotalAtFirst(横向合计在前) 属性

指定是否将横向合计栏显示在前面。

VARIANT_BOOL HTotalAtFirst

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.TotalCols 属性 | 属性特征说明


IGRCrossTab.ListCols 属性

IGRCrossTab.ListCols(项目列数) 属性

指定明细网格中显示纵向交叉数据位于前面的列数。

SHORT ListCols

默认值

1

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.TotalCols 属性 | IGRCrossTab.VCrossFields 属性 | 属性特征说明


IGRCrossTab.PercentFormat 属性

IGRCrossTab.PercentFormat(百分比格式) 属性

指定比重百分比数据的格式化文字。

BSTR PercentFormat

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HPercentColumns 属性 | IGRCrossTab.VPercentColumns 属性 | IGRCrossTab.TotalHPercentColumns 属性 | IGRCrossTab.TotalVPercentColumns 属性 | 属性特征说明


IGRCrossTab.Recordset 属性

获取用于存储交叉表运行结果的记录集对象引用，此记录集不同于明细网格的记录集。

IGRRecordset *Recordset

特征

只读

仅运行时可用

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRRecordset 接口 | 属性特征说明


IGRCrossTab.TotalCols 属性

IGRCrossTab.TotalCols(合计列数) 属性

指定明细网格中定义横向合计的列数，明细网格最后几列属于横向合计列。

SHORT TotalCols

默认值

0

特征

可读写

设计器中可见

说明

注意：横向求和关联的字段必须为数字类型的字段，不然就不会求出横向合计数。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HTotalAtFirst 属性 | IGRCrossTab.ListCols 属性 | 属性特征说明


IGRCrossTab.TotalHPercentColumns 属性

IGRCrossTab.TotalHPercentColumns(合计横向求比率列) 属性

指定横向合计比重百分比的列名称，多个列名称以‘;’隔开。

BSTR TotalHPercentColumns

特征

可读写

设计器中可见

说明

横向合计比重百分比的数据固定为“100%”。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.PercentFormat 属性 | 属性特征说明


IGRCrossTab.TotalVPercentColumns 属性

IGRCrossTab.TotalVPercentColumns(合计纵向求比率列) 属性

指定纵向合计比重百分比的列名称，多个列名称以‘;’隔开。

BSTR TotalVPercentColumns

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.PercentFormat 属性 | 属性特征说明


IGRCrossTab.GetCurPeriodBeginDate 方法

当交叉表为按期间交叉时，在报表生成过程中获取当前期间的开始日期。

DATE GetCurPeriodBeginDate(void);

返回值

DATE

请参见

IGRCrossTab 接口 | IGRCrossTab 成员


IGRCrossTab.GetCurPeriodEndDate 方法

当交叉表为按期间交叉时，在报表生成过程中获取当前期间的结束日期。

DATE GetCurPeriodEndDate(void);

返回值

DATE

请参见

IGRCrossTab 接口 | IGRCrossTab 成员


IGRCrossTab.HBeginAddItem 方法

准备提供横向交叉项目数据。

void HBeginAddItem(void);

说明

首先调用 HBeginAddItem 开始添加横向交叉项目数据；然后向明细网格的记录集添加记录数据，只用向横向交叉字段提供数据；最后调用 HEndAddItem 方法结束添加横向交叉项目数据。

通过以上任务可以将不存在于数据中的横向交叉项目添加进来。以上任务必须在报表的 ProcessBegin 事件中执行。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HEndAddItem 方法


IGRCrossTab.HEndAddItem 方法

完成提供横向交叉项目数据。

void HEndAddItem(void);

说明

首先调用 HBeginAddItem 开始添加横向交叉项目数据；然后向明细网格的记录集添加记录数据，只用向横向交叉字段提供数据；最后调用 HEndAddItem 方法结束添加横向交叉项目数据。

通过以上任务可以将不存在于数据中的横向交叉项目添加进来。以上任务必须在报表的 ProcessBegin 事件中执行。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HBeginAddItem 方法


IGRCrossTab.VBeginAddItem 方法

准备提供纵向交叉项目数据。

void VBeginAddItem(void);

说明

首先调用 VBeginAddItem 开始添加纵向交叉项目数据；然后向明细网格的记录集添加记录数据，只用向纵向交叉字段提供数据；最后调用 VEndAddItem 方法结束添加纵向交叉项目数据。

通过以上任务可以将不存在于数据中的纵向交叉项目添加进来。以上任务必须在报表的 ProcessBegin 事件中执行。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.VEndAddItem 方法


IGRCrossTab.VEndAddItem 方法

完成提供纵向交叉项目数据。

void VEndAddItem(void);

说明

首先调用 VBeginAddItem 开始添加纵向交叉项目数据；然后向明细网格的记录集添加记录数据，只用向纵向交叉字段提供数据；最后调用 VEndAddItem 方法结束添加纵向交叉项目数据。

通过以上任务可以将不存在于数据中的纵向交叉项目添加进来。以上任务必须在报表的 ProcessBegin 事件中执行。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.VBeginAddItem 方法


IGRDetailGrid.IsCrossTab 属性

IGRDetailGrid.IsCrossTab(交叉表方式) 属性

指定明细网格是否按交叉表方式去生成。

VARIANT_BOOL IsCrossTab

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRCrossTab 接口 | IGRDetailGrid.CrossTab 属性 | 属性特征说明


IGRDetailGrid.CrossTab 属性

获取交叉表定义对象的接口引用。

IGRCrossTab *CrossTab

特征

只读

设计器中可见

说明

只有当 IsCrossTab 属性为真时，明细网格才会拥有交叉表定义对象，本属性才会取到不为空的值。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRCrossTab 接口 | IGRDetailGrid.IsCrossTab 属性 | IGridppReport.RunningDetailGrid 属性 | 属性特征说明


IGRDisplayViewer.ResizeColumnToFitPage 方法

自动调整所有列的宽度，让整个网格可以在当前页面设置纸张中完整输出。

void ResizeColumnToFitPage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ResizeColumnToFit 方法 | IGRDisplayViewer.ResizeColumnToFitText 方法 | IGRDisplayViewer.ShowPreviewLine 属性


IGRExportOption.AbortOpenFile 属性

指定报表在导出为文档之后是否用关联程序打开该导出文档。

VARIANT_BOOL AbortOpenFile

默认值

FALSE

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | 属性特征说明


IGRExportOption.AbortShowOptionDlg 属性

指定报表在导出之前是否显示导出选项设置对话框。

VARIANT_BOOL AbortShowOptionDlg

默认值

FALSE

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | 属性特征说明


IGRExportOption.MailExportFile 属性

指定在导出之后是否启动邮件发送程序发送该导出文档。

VARIANT_BOOL MailExportFile

默认值

FALSE

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRExportOption.MailSubject 属性 | IGRExportOption.MailText 属性 | IGRExportOption.MailTo 属性 | 属性特征说明


IGRExportOption.MailSubject 属性

指定邮件的标题。

BSTR MailSubject

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRExportOption.MailExportFile 属性 | IGRExportOption.MailText 属性 | IGRExportOption.MailTo 属性 | 属性特征说明


IGRExportOption.MailText 属性

指定邮件的正文。

BSTR MailText

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRExportOption.MailExportFile 属性 | IGRExportOption.MailSubject 属性 | IGRExportOption.MailTo 属性 | 属性特征说明


IGRExportOption.MailTo 属性

指定邮件的收件人地址。

BSTR MailTo

特征

可读写

仅运行时可用

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRExportOption.MailExportFile 属性 | IGRExportOption.MailSubject 属性 | IGRExportOption.MailText 属性 | 属性特征说明


IGRField.RunningDBField 属性

获取在报表运行时与数据源字段进行匹配的字段名称。

BSTR RunningDBField

特征

只读

说明

当定义了 DBFieldName 的属性值，这取得值为 DBFieldName 属性的值，否则为 Name 属性的值。

请参见

IGRField 接口 | IGRField 成员 | IGRField.Name 属性 | IGRField.DBFieldName 属性 | 属性特征说明


IGRPrintViewer.Running 属性

获取本控件是否在运行状态中。

VARIANT_BOOL Running

特征

只读

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | 属性特征说明


IGRPrintViewer.LastPage 方法

移动至最后一页。

void LastPage(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PriorPage 方法 | IGRPrintViewer.NextPage 方法 | IGRPrintViewer.FirstPage 方法


IGRPrintViewer.FirstPage 方法

移动至首页。

void FirstPage(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.PriorPage 方法 | IGRPrintViewer.NextPage 方法 | IGRPrintViewer.LastPage 方法


IGRPrintViewer.QuickRefresh 方法

快速刷新显示报表。

void QuickRefresh(void);

说明

不重新获取报表记录集数据而重新生成报表。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.Refresh 方法


IGRDisplayViewer.QuickRefresh 方法

快速刷新显示报表。

void QuickRefresh(void);

说明

重新生成报表而不重新获取报表记录数据。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.Refresh 方法


IGRSubReport.ReportFile 属性

IGRSubReport.ReportFile(报表模板文件) 属性

指定关联的报表模板文件名称。

BSTR ReportFile

特征

可读写

设计器中可见

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.Report 属性 | 属性特征说明


IGRDesigner.DefaultAction 属性

指定是否按默认方式执行控件工具栏对应的动作。

VARIANT_BOOL DefaultAction

特征

只写

仅运行时可用

说明

此属性只能进行赋值操作(只读)，在控件的事件响应函数上使用，事件触发时属性值始终为TRUE，如果将属性值改为FALSE，可以屏蔽控件本身的默认行为，开发者可以在事件中实现自己的任务。对应的事件有：OpenReport、SaveReport、BeforeDoAction。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.OpenReport 事件 | IGRDesigner.SaveReport 事件 | IGRDesigner.BeforeDoAction 事件 | 属性特征说明


IGRDesigner.DesignEdgeColor 属性

指定表示部件框设计边界的框线颜色。

OLE_COLOR DesignEdgeColor

默认值

grclBtnFace

特征

可读写

设计器中可见

说明

当一个部件框的边框不显示时，用此属性指定的颜色来显示其边界。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DesignGridColor 属性 | 属性特征说明


IGRDesigner.DesignGridColor 属性

指定设计器的设计删格点颜色。

OLE_COLOR DesignGridColor

默认值

grclBtnShadow

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DesignEdgeColor 属性 | 属性特征说明


IGRDesigner.EnableQuickEdit 属性

指定是否允许即时编辑。

VARIANT_BOOL EnableQuickEdit

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | 属性特征说明


IGRDesigner.ShowToolbar 属性

指定是否显示控件内建的工具栏。

VARIANT_BOOL ShowToolbar

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | 属性特征说明


IGRDesigner.GetObjectFontBold 方法

获取选中对象其字体属性是否为粗体。

VARIANT_BOOL GetObjectFontBold(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.GetObjectFontItalic 方法

获取选中对象其字体属性是否为斜体。

VARIANT_BOOL GetObjectFontItalic(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.GetObjectFontName 方法

获取选中对象其字体属性的名称。

BSTR GetObjectFontName(void);

返回值

BSTR

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.SetObjectFontName 方法


IGRDesigner.GetObjectFontPoint 方法

获取选中对象其字体属性的大小点数。

SHORT GetObjectFontPoint(void);

返回值

SHORT

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.SetObjectFontPoint 方法


IGRDesigner.GetObjectFontStrikethrough 方法

获取选中对象其字体属性是否画删除线。

VARIANT_BOOL GetObjectFontStrikethrough(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.GetObjectFontUnderline 方法

获取选中对象其字体属性是否画下画线。

VARIANT_BOOL GetObjectFontUnderline(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.GetObjectTextAlign 方法

获取选中对象的文字输出对齐方式。

LONG GetObjectTextAlign(void);

返回值

LONG

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRTextAlign 枚举


IGRDesigner.GetObjectTextOrientation 方法

获取选中对象的文字输出方向。

LONG GetObjectTextOrientation(void);

返回值

LONG

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.IsInsertControlEnabled 方法

获取控件当前状态是否允许插入部件框。

VARIANT_BOOL IsInsertControlEnabled(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.PrepareInsertControl 方法


IGRDesigner.IsSetObjectBackColorEnabled 方法

获取当前选中对象是否允许设置背景色属性。

VARIANT_BOOL IsSetObjectBackColorEnabled(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.IsSetObjectFontEnabled 方法

获取当前选中对象是否允许设置字体属性。

VARIANT_BOOL IsSetObjectFontEnabled(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.IsSetObjectForeColorEnabled 方法

获取当前选中对象是否允许设置前景色属性。

VARIANT_BOOL IsSetObjectForeColorEnabled(void);

返回值

VARIANT_BOOL

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.SetObjectBackColor 方法

设置选中对象的背景色属性值。

void SetObjectBackColor(OLE_COLOR newVal);

参数

OLE_COLOR newVal

新属性值。

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.SetObjectFontName 方法

设置选中对象的字体名称属性值。

void SetObjectFontName(BSTR newVal);

参数

BSTR newVal

新属性值。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetObjectFontName 方法


IGRDesigner.SetObjectFontPoint 方法

设置选中对象的字体点数大小属性值。

void SetObjectFontPoint(SHORT newVal);

参数

SHORT newVal

新属性值。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetObjectFontPoint 方法


IGRDesigner.SetObjectForeColor 方法

设置选中对象的前景色属性值。

void SetObjectForeColor(OLE_COLOR newVal);

参数

OLE_COLOR newVal

新属性值。

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRPrintViewer.CloseButtonClick 事件

当工具栏上的关闭按钮被点击时触发本事件。

void CloseButtonClick(void);

说明

通过响应本事件，执行关闭预览窗口的动作。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员


IGRExportOption.AsE2IMGOption 属性

获取将本对象转换为导出图像文件选项对象的接口引用。

IGRE2IMGOption *AsE2IMGOption

特征

只读

仅运行时可用

说明

将本对象转换为导出图像文件选项对象，只有当本对象确实是一个导出图像文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2IMGOption 接口 | IGRExportOption.AsE2CSVOption 属性 | IGRExportOption.AsE2HTMOption 属性 | IGRExportOption.AsE2PDFOption 属性 | IGRExportOption.AsE2TXTOption 属性 | IGRExportOption.AsE2XLSOption 属性 | IGRExportOption.ExportType 属性 | 属性特征说明


IGRE2XLSOption.OnlyExportPureText 属性

指示是否只导出纯文本数据。

VARIANT_BOOL OnlyExportPureText

默认值

FALSE

特征

可读写

说明

当本属性为真时，图像、图形、RTF文字等非纯文本数据将不会被导出到EXCEL文件。

请参见

IGRE2XLSOption 接口 | IGRE2XLSOption 成员 | 属性特征说明


IGRE2XLSOption.ExpandRowHeight 属性

指示是否加大EXCEL的行高以便多行文字数据可以在格中完整显示出来。

VARIANT_BOOL ExpandRowHeight

默认值

FALSE

特征

可读写

说明

EXCEL中多行文字的行间距大于 Grid++Report 中文字的行间距，如果导出的EXCEL行高与报表保持一致，则多行文字在EXCEL中可能不能完整地显示出来。设置本选项值为真，可以保证多行文字在导出后也可以完整显示。

请参见

IGRE2XLSOption 接口 | IGRE2XLSOption 成员 | 属性特征说明


IGRDesigner.DataChange 事件

当修改了报表定义时触发本事件

void DataChange(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.InspectorChange 事件

当属性侦测窗口的数据发生变化时触发本事件。

void InspectorChange(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员


IGRDesigner.OpenReport 事件

当执行设计器工具栏中的打开按钮时触发本事件。

void OpenReport(void);

说明

如果要忽略掉控件本身的打开行为，在此事件的响应函数中设置设计器控件的 DefaultAction 属性为假。

对于C/S报表组件，打开按钮的默认行为：显示文件打开对话框进行模板文件选择，并载入选择的文件到设计器中。

对于B/S报表插件，打开按钮的默认行为：从 LoadReportURL 属性所指定的URL处重新载入模板到设计器中。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.SaveReport 事件 | IGRDesigner.DefaultAction 属性


IGRDesigner.SaveReport 事件

当执行设计器工具栏中的保存按钮时触发本事件。

void SaveReport(void);

说明

如果要忽略掉控件本身的打开行为，在此事件的响应函数中设置设计器控件的 DefaultAction 属性为假。

对于C/S报表组件，保存按钮的默认行为：将设计结果保存到打开的模板文件；如果是新建模板，则显示文件另存为对话框进行模板文件输入，然后将设计结果保存到新建的模板文件。

对于B/S报表插件，保存按钮的默认行为：将设计结果保存到 SaveReportURL 属性所指定的URL处。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.OpenReport 事件 | IGRDesigner.DefaultAction 属性


IGRCrossTab.HSortAsc 属性

IGRCrossTab.HSortAsc(横向升序) 属性

指示横向交叉字段是否按升序排列。

VARIANT_BOOL HSortAsc

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HCrossFields 属性 | IGRCrossTab.VSortAsc 属性 | IGRCrossTab.HResort 属性 | 属性特征说明


IGRCrossTab.VSortAsc 属性

IGRCrossTab.VSortAsc(纵向升序) 属性

指示纵向交叉字段是否按升序排列。

VARIANT_BOOL VSortAsc

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HSortAsc 属性 | IGRCrossTab.VCrossFields 属性 | IGRCrossTab.VResort 属性 | 属性特征说明


IGRMemoBox.FlowTo 属性

IGRMemoBox.FlowTo(超出显示至) 属性

指定超出本部件框区域的文字要跟随显示的综合文本框的名称。

BSTR FlowTo

特征

可读写

设计器中可见

说明

如果设定了本属性，当本综合文本框不能完整显示出内容文字时，没有显示的文字将显示到本属性指定的综合文本框中。

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | IGRTextBox.CanGrow 属性 | IGRTextBox.ShrinkFontToFit 属性 | 属性特征说明


IGRDisplayViewer.AlwaysShowSelection 属性

指定是否始终显示选中的内容格或内容行。

VARIANT_BOOL AlwaysShowSelection

默认值

TRUE

特征

可读写

说明

当本属性值为真时，即使控件没有键盘输入焦点，选中的内容还是以选中色突出显示。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.RowSelection 属性 | IGRDisplayViewer.SelColumnNo 属性 | IGRDisplayViewer.SelRowNo 属性 | 属性特征说明


IGRDisplayViewer.ResizeColumnToFit 方法

自动调整所有列的宽度，让所有列可以在网格的显示区域完整的显示出来并刚好完整显示。

void ResizeColumnToFit(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ResizeColumnToFitPage 方法 | IGRDisplayViewer.ResizeColumnToFitText 方法


IGridppReport.UnitToPixels 方法

将报表当前使用的计量单位值转换为屏幕像素值。

LONG UnitToPixels(DOUBLE UnitValue);

返回值

LONG

转换得到的屏幕像素值。

参数

DOUBLE UnitValue

指定要转换的报表计量单位值。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PixelsToUnit 方法 | IGridppReport.Unit 属性


IGRControl.CustomDraw 属性

IGRControl.CustomDraw(自绘) 属性

指定部件框是否为自绘部件框。

VARIANT_BOOL CustomDraw

默认值

FALSE

特征

可读写

设计器中可见

说明

指定部件框是否为自绘部件框，自绘部件框不会自动输出显示内容，而是会触发 ControlCustomDraw 报表事件；如本部件框果存在自绘脚本(CustomDrawScript)，则会执行该脚本。由报表开发者在事件中或事件脚本中实现部件框显示输出。

请参见

IGRControl 接口 | IGRControl 成员 | IGridppReport.ControlCustomDraw 事件 | IGRControl.CustomDrawScript 属性 | IGRControl.DrawDefault 方法 | IGRGraphics 接口 | IGridppReport.Graphics 属性 | 属性特征说明


IGRControl.CustomDrawScript 属性

IGRControl.CustomDrawScript(自绘脚本) 属性

指定部件框的自绘脚本代码，只有当部件框为自绘部件框时，此属性定义的脚本代码才会执行到。

BSTR CustomDrawScript

特征

可读写

设计器中可见

说明

参考例子模板“5j.部件框自定义绘制.grf”中部件框“sbScriptDraw”与“sbScriptDefaultDraw”中自绘脚本属性的定义。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.CustomDraw 属性 | IGRGraphics 接口 | IGridppReport.ControlCustomDraw 事件 | IGRControl.DrawDefault 方法 | 属性特征说明


IGRControl.DrawDefault 方法

按部件框本身行为输出显示内容。

void DrawDefault(void);

说明

按部件框本身行为输出显示内容，此方法只能在报表的 ControlCustomDraw 事件或部件框本身的自绘脚本(CustomDrawScript)中调用。例如：首先调用本方法输出部件框固有的显示内容，然后再输出一些额外的自定义内容。

请参见

IGRControl 接口 | IGRControl 成员 | IGRControl.CustomDraw 属性 | IGRControl.CustomDrawScript 属性 | IGridppReport.ControlCustomDraw 事件


IGridppReport.ControlCustomDraw 事件

报表部件框自绘事件。

void ControlCustomDraw(IGRControl *Sender, IGRGraphics *Graphics, LONG x, LONG y, LONG width, LONG height);

参数

IGRControl *Sender

指定了触发本事件的部件框。

IGRGraphics *Graphics

提供了在部件框中实现显示输出功能的接口引用。

LONG x

指定部件框的输出区域的左上角X位置。

LONG y

指定部件框的输出区域的左上角Y位置。

LONG width

指定部件框的输出区域的宽度。

LONG height

指定部件框的输出区域的高度。

说明

当部件框为自绘部件框时(部件框的自绘属性设置为是)，部件框在输出显示时会触发本事件,报表开发者应该在本事件中实现部件框的显示输出。
事件参数 Sender 指定了触发本事件的部件框引用；事件参数 Graphics 提供了在部件框中实现显示输出功能的接口引用，调用其方法在部件框中实现输出；事件参数 x, y, width, height 指定部件框的输出区域。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRControl 接口 | IGRGraphics 接口 | IGRControl 接口 | IGRGraphics 接口 | IGRControl.CustomDraw 属性 | IGRControl.CustomDrawScript 属性 | IGRControl.DrawDefault 方法 | IGridppReport.Graphics 属性


IGRGraphics 概述

IGRGraphics 接口

实现在部件框中自绘输出显示的功能接口。

有关此接口所有成员的列表，请参阅 IGRGraphics 成员。

IDispatch
IGRGraphics

说明

当部件框为自绘部件框时，调用本接口的方法在部件框中实现输出显示。

请参见

IGRGraphics 成员 | IGridppReport.ControlCustomDraw 事件 | IGRControl.CustomDraw 属性 | IGRControl.CustomDrawScript 属性 | IGridppReport.Graphics 属性


IGRGraphics成员

IGRGraphics 概述

公共属性

Height | 获取输出区域的高度。
Left | 获取输出的左端位置。
Top | 获取输出的上端位置。
Width | 获取输出区域的宽度。

公共方法

Arc | 按照指定的园根据起止角度画出弧线。
DrawOrientationString | 在矩形区域内画出指定输出方向的文字。
DrawRotationString | 在矩形区域内画出指定输出角度的文字。
DrawSpacedString | 在矩形区域内画出可以指定字间距与行间距的文字。
DrawString | 在矩形区域内画出文字。
Ellipse | 按照指定的矩形区域画出椭圆。
EllipseArc | 在指定的矩形区域中根据起止角度画出椭圆弧线。
EllipsePie | 在指定的矩形区域中根据起止角度画出椭圆扇形。
FillRect | 用指定的颜色填充矩形区域。
FontClone | 根据当前字体设置复制创建一个新的字体对象。
FontPointChangeTo | 将当前的字体点数重新设置为指定值。
FontPointRestore | 恢复用 FontPointChangeTo 方法修改后的字体设置。
LineTo | 从当前起点位置画直线到指定的位置。
MoveTo | 设定画笔的起点位置。
OutRotateString | 在指定位置按指定角度输出文字。
OutString | 在指定位置输出文字。
OutStringCalcHeight | 计算用当前字体设置输出指定文字的高度。
OutStringCalcWidth | 计算用当前字体设置输出指定文字的宽度。
Pie | 按照指定的园根据起止角度画出扇形。
PopClipRect | 恢复绘出剪裁区域。
PushClipRect | 设置绘出剪裁区域。
Rectangle | 按照指定的矩形区域画出矩形。
RestoreFillColor | 恢复填充背景色设置。
RestoreFont | 恢复选择字体操作。
RestorePen | 恢复画笔设置。
RestoreTextColor | 恢复文字颜色设置。
RoundRect | 在指定区域上绘出圆角矩形。
SelectFillColor | 设置填充背景色。
SelectFont | 选择用来输出文字的字体对象。
SelectPen | 设置绘出画笔参数。
SelectTextColor | 设置文字绘出颜色。

请参见

IGRGraphics 接口 | IGridppReport.ControlCustomDraw 事件 | IGRControl.CustomDraw 属性 | IGRControl.CustomDrawScript 属性 | IGridppReport.Graphics 属性


IGRCrossTab.GroupAutoSum 属性

IGRCrossTab.GroupAutoSum(分组自动求和) 属性

指定是否进行分组求和统计。

VARIANT_BOOL GroupAutoSum

默认值

TRUE

特征

可读写

设计器中可见

说明

交叉表中的分组头尾中，如果某列存在对齐的部件框，则此列不会自动产生求和统计框。如果希望某列不求和，或按非求和的方式进行统计，就可以加入与此列对齐的相应部件框。如果不合计其中一列，可以分组尾放置一个与此列对齐的静态框，其“文本”属性为空白。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | 属性特征说明


IGRDetailGrid.PrintAdaptFitText 属性

IGRDetailGrid.PrintAdaptFitText(打印列宽适应内容) 属性

指定是否在打印输出时自动调整列的宽度，以便列中的显示文字都能完整的显示出来。

VARIANT_BOOL PrintAdaptFitText

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.PrintAdaptMethod 属性 | 属性特征说明


IGRDetailGrid.ColumnMoveTo 方法

移动指定列到新的显示位置。

void ColumnMoveTo(BSTR ColumnName, BSTR NewGroupTitleCellName, SHORT NewShowOrderNo);

参数

BSTR ColumnName

指定要移动列的名称。

BSTR NewGroupTitleCellName

指定新位置所在的组标题格名称，如果不是多层表头或不在上层表头之下，参数应为空串。

SHORT NewShowOrderNo

指定新的显示顺序号。

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.ColumnMoveToEnd 方法


IGRDisplayViewer.AutoRun 属性
[仅适用于WEB报表插件]

指示本控件在显示之后是否自动启动运行报表。

VARIANT_BOOL AutoRun

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.DataURL 属性 | IGRDisplayViewer.ReportURL 属性 | 属性特征说明


IGRDisplayViewer.DataURL 属性
[仅适用于WEB报表插件]

指定插件要展现的报表数据来源 URL 值，在运行时从此 URL 载入XML格式的报表明细记录集数据。

BSTR DataURL

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AutoRun 属性 | IGRDisplayViewer.ReportURL 属性 | IGRDisplayViewer.DataParam 属性 | 属性特征说明


IGRDisplayViewer.GridCenterView 属性

当报表明细网格所有列的总宽度小于本控件的宽度时，指定明细网格是否水平居中显示在本控件中。

VARIANT_BOOL GridCenterView

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.GridTitle3D 属性 | IGRDisplayViewer.BackgroundColor 属性 | 属性特征说明


IGRDisplayViewer.ReportURL 属性
[仅适用于WEB报表插件]

指定插件要展现报表的报表模板文件或数据的 URL 值，在运行时从此 URL 载入报表模板数据。

BSTR ReportURL

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AutoRun 属性 | IGRDisplayViewer.DataURL 属性 | 属性特征说明


IGRDisplayViewer.SelColumnName 属性

获取或设置明细网格中当前选中列的名称。

BSTR SelColumnName

特征

可读写

仅运行时可用

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelColumnNo 属性 | IGRDisplayViewer.GetSelRowCellText 方法 | 属性特征说明


IGRDisplayViewer.SerialNo 属性
[仅适用于WEB报表插件]

指定报表插件的注册序列号。

BSTR SerialNo

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.UserName 属性 | 属性特征说明


IGRDisplayViewer.ShowToolbar 属性

指定是否显示本控件的工具栏。

VARIANT_BOOL ShowToolbar

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.ResetToolbarContent 方法 | IGRDisplayViewer.RemoveToolbarControl 方法 | IGRDisplayViewer.UpdateToolbar 方法 | 属性特征说明


IGRDisplayViewer.UserName 属性
[仅适用于WEB报表插件]

指定报表插件的注册用户名。

BSTR UserName

特征

可读写

设计器中可见

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SerialNo 属性 | 属性特征说明


GRToolControlType2 枚举

指定报表查询显示器控件的工具栏中的各个按钮。

成员名称 | 枚举值 | 说明
grdtctSep | 1 | 指定分隔按钮。
grdtctPrint | 2 | 指定打印按钮。
grdtctPageSetup | 3 | 指定打印页面设置按钮。
grdtctPrinterSetup | 4 | 指定打印机设置按钮。
grdtctExport | 5 | 指定导出按钮。
grdtctMail | 6 | 指定邮件发送按钮。
grdtctSaveDocument | 7 | 指定保存打印文档按钮。
grdtctPriorPage | 14 | 指定上一页按钮。
grdtctNextPage | 15 | 指定下一页按钮。
grdtctFirstPage | 16 | 指定首页按钮。
grdtctLastPage | 17 | 指定最后页按钮。
grdtctCurPageNo | 18 | 指定页号编辑框。
grdtctClose | 19 | 指定关闭按钮。
grdtctClip | 20 | 指定按钮，尚未实现。
grdtctRefresh | 21 | 指定刷新按钮。
grdtctDividePage | 25 | 指定明细网格数据分页方式组合框与每页行数编辑框。
grdtctFindTextBox | 30 | 指定查找编辑框。
grdtctFind | 31 | 指定查找按钮。
grdtctFindAgain | 32 | 指定继续查找按钮。
grdtctFindDlg | 33 | 指定查找对话框按钮。
grdtctPrintPreview | 40 | 指定打印预览按钮。
grdtctPostLayout | 41 | 指定打印提交布局选取框。
grdtctExportXLS | 50 | 指定导出 Excel 菜单项。
grdtctExportTXT | 51 | 指定导出文本菜单项。
grdtctExportHTM | 52 | 指定导出 HTML 菜单项。
grdtctExportRTF | 53 | 指定导出 RTF 菜单项。
grdtctExportPDF | 54 | 指定导出 PDF 菜单项。
grdtctExportCSV | 55 | 指定导出 CSV 菜单项。
grdtctExportIMG | 56 | 指定导出图像菜单项。
grdtctExportXLSBtn | 60 | 指定导出 Excel 按钮。
grdtctExportPDFBtn | 61 | 指定导出 PDF 按钮。
grdtctColumnVisible | 70 | 指定打开列可见性设置对话框按钮。

请参见

IGRDisplayViewer.CloseButtonClick 事件 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.RemoveToolbarControl 方法


IGRDisplayViewer.AddToolbarControl 方法

在工具栏中增加显示指定的按钮。

void AddToolbarControl(GRToolControlType2 ControlType);

参数

GRToolControlType2 ControlType

指定要增加显示的按钮。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRToolControlType2 枚举 | IGRDisplayViewer.ShowToolbar 属性 | IGRDisplayViewer.RemoveToolbarControl 方法 | IGRDisplayViewer.ResetToolbarContent 方法 | IGRDisplayViewer.UpdateToolbar 方法 | IGRDisplayViewer.AddToolbarCustomButton 方法


IGRDisplayViewer.RemoveToolbarControl 方法

从工具栏中删除显示指定的按钮。

void RemoveToolbarControl(GRToolControlType2 ControlType);

参数

GRToolControlType2 ControlType

指定要删除显示的按钮。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRToolControlType2 枚举 | IGRDisplayViewer.ShowToolbar 属性 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.ResetToolbarContent 方法 | IGRDisplayViewer.UpdateToolbar 方法


IGRDisplayViewer.ResetToolbarContent 方法

清除工具栏中所有显示的按钮，以便重新进行加入定义。

void ResetToolbarContent(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ShowToolbar 属性 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.RemoveToolbarControl 方法 | IGRDisplayViewer.UpdateToolbar 方法


IGRDisplayViewer.ResizeColumnToFitText 方法

按内容格中文字内容多少伸展列的显示宽度，以便文字完整显示出来，文字少不缩小。

void ResizeColumnToFitText(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ResizeColumnToFit 方法 | IGRDisplayViewer.ResizeColumnToFitPage 方法


IGRDisplayViewer.UpdateToolbar 方法

在改变按钮定义之后，调用本方法重新显示工具栏，以便新定义生效。

void UpdateToolbar(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.ShowToolbar 属性 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.RemoveToolbarControl 方法 | IGRDisplayViewer.ResetToolbarContent 方法 | IGRDisplayViewer.AddToolbarCustomButton 方法


IGRE2CSVOption.QuoteText 属性

指定括定内容的符号文字，可以为空。

BSTR QuoteText

特征

可读写

设计器中可见

请参见

IGRE2CSVOption 接口 | IGRE2CSVOption 成员 | 属性特征说明


IGRE2IMGOption.DPI 属性

指定导出图像的分辨率DPI。

SHORT DPI

默认值

100

特征

可读写

设计器中可见

说明

DPI越高，导出图像文件大小更大。

请参见

IGRE2IMGOption 接口 | IGRE2IMGOption 成员 | 属性特征说明


IGRPictureBox.LoadBmpPicture 方法
[仅适用于C/S报表组件]

从BMP格式图像对象中载入图像数据。

void LoadBmpPicture(IPicture bmp);

参数

IPicture bmp

图像对象。

说明

VC资源中的BMP图像应该调用本方法载入到报表中。

请参见

IGRPictureBox 接口 | IGRPictureBox 成员


IGRPrintViewer.AutoRun 属性
[仅适用于WEB报表插件]

指示本控件在显示之后是否自动启动运行报表。

VARIANT_BOOL AutoRun

默认值

TRUE

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.DataURL 属性 | IGRPrintViewer.ReportURL 属性 | 属性特征说明


IGRPrintViewer.DataURL 属性
[仅适用于WEB报表插件]

指定插件要展现的报表数据来源 URL 值，在运行时从此 URL 载入XML格式的报表明细记录集数据。

BSTR DataURL

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.AutoRun 属性 | IGRPrintViewer.ReportURL 属性 | 属性特征说明


IGRPrintViewer.ReportURL 属性
[仅适用于WEB报表插件]

指定插件要展现报表的报表模板文件或数据的 URL 值，在运行时从此 URL 载入报表模板数据。

BSTR ReportURL

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.AutoRun 属性 | IGRPrintViewer.DataURL 属性 | IGRPrintViewer.DataParam 属性 | 属性特征说明


IGRPrintViewer.SerialNo 属性
[仅适用于WEB报表插件]

指定报表插件的注册序列号。

BSTR SerialNo

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.UserName 属性 | 属性特征说明


IGRPrintViewer.UserName 属性
[仅适用于WEB报表插件]

指定报表插件的注册用户名。

BSTR UserName

特征

可读写

设计器中可见

仅运行时可用

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.SerialNo 属性 | 属性特征说明


IGridppReport.Graphics 属性

自绘部件框的自绘对象引用。

IGRGraphics *Graphics

特征

可读写

仅运行时可用

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRGraphics 接口 | IGridppReport.ControlCustomDraw 事件 | IGRControl.CustomDraw 属性 | 属性特征说明


IGridppReport.IsBlank 属性

指示报表模板是否为空白未定义状态。

VARIANT_BOOL IsBlank

特征

只读

仅运行时可用

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.Clear 方法 | 属性特征说明


IGridppReport.MyInterface 属性
[仅适用于WEB报表插件]

获取本对象自身的接口引用。

IGridppReport *MyInterface

特征

只读

仅运行时可用

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport 接口 | 属性特征说明


IGridppReport.ExtractXMLFromURL 方法

从指定的 URL 获取XML数据包。

BSTR ExtractXMLFromURL(BSTR URL);

返回值

BSTR

获得的 XML 数据文本。

参数

BSTR URL

获取数据的 URL。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadDataFromXML 方法 | IGridppReport.ExtractXMLFromURLEx 方法


IGridppReport.GetSkin 方法

获取控件界面风格的参数。

void GetSkin(SHORT *BackColorRed, SHORT *BackColorGreen, SHORT *BackColorBlue, SHORT *Style);

参数

SHORT *BackColorRed

获取背景色的三原色的红色值，0-255之间。

SHORT *BackColorGreen

获取背景色的三原色的绿色值，0-255之间。

SHORT *BackColorBlue

获取背景色的三原色的蓝色值，0-255之间。

SHORT *Style

获取界面风格类型。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.SetSkin 方法


IGridppReport.SetSkin 方法

设置控件界面风格的参数。

void SetSkin(SHORT BackColorRed, SHORT BackColorGreen, SHORT BackColorBlue, SHORT Style);

参数

SHORT BackColorRed

设置背景色的三原色的红色值，0-255之间。

SHORT BackColorGreen

设置背景色的三原色的绿色值，0-255之间。

SHORT BackColorBlue

设置背景色的三原色的蓝色值，0-255之间。

SHORT Style

设置界面的风格类型。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.GetSkin 方法


IGridppReport.LoadDataFromURL 方法

从指定的 URL 地址载入报表明细记录集数据，数据必须为XML格式并符合约定的形式。

BOOL LoadDataFromURL(BSTR URL);

返回值

BOOL

指定载入是否成功。

参数

BSTR URL

载入数据的URL。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromURL 方法 | IGridppReport.LoadDataFromXML 方法 | IGridppReport.LoadDataFromURLEx 方法


IGridppReport.LoadDataFromXML 方法

从XML文字串中载入报表明细记录集数据，数据应符合约定的形式。

BOOL LoadDataFromXML(BSTR XMLData);

返回值

BOOL

指示载入是否成功。

参数

BSTR XMLData

XML数据文本。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadDataFromURL 方法 | IGridppReport.ExtractXMLFromURL 方法


IGridppReport.LoadFromURL 方法

从指定的 URL 地址载入报表模板数据。

BOOL LoadFromURL(BSTR URL);

返回值

BOOL

指示载入是否成功。

参数

BSTR URL

载入的URL地址。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadDataFromURL 方法 | IGridppReport.SaveToURL 方法


IGridppReport.PrepareRecordset 方法

准备向报表中加入明细记录数据。调用此方法后，就可以向报表的记录集中加入数据。

BSTR PrepareRecordset(void);

返回值

BSTR

指示调用是否成功

说明

当采用推模式提供报表数据时，通常是在报表主对象的 FetchRecord 事件中填入记录集数据。如果要在此事件之外的地方填入记录集数据，在进行填入数据之前应该首先本方法。

一般是在报表模板载入之后调用本方法。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.CancelRecordset 方法 | IGridppReport.FetchRecord 事件 | IGRRecordset 接口 | IGRRecordset.Append 方法 | IGRRecordset.Post 方法


IGridppReport.CancelRecordset 方法

取消向报表加入明细记录数据进行的准备。

void CancelRecordset(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.PrepareRecordset 方法


IGridppReport.SaveToURL 方法
[仅适用于WEB报表插件]

将报表模板数据提交给指定的 URL 地址，由此 URL 网页服务完成报表模板的保存。

BOOL SaveToURL(BSTR URL);

返回值

BOOL

指示保存是否成功。

参数

BSTR URL

要保存的 URL 地址。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadFromURL 方法


IGRDesigner.DataURL 属性
[仅适用于WEB报表插件]

指定插件要展现的报表数据来源 URL 值，当进入预览视图与查询视图时从此 URL 载入XML格式的报表数据。

BSTR DataURL

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.LoadReportURL 属性 | IGRDesigner.SaveReportURL 属性 | 属性特征说明


IGRDesigner.IsBlank 属性

指示当前设计的报表是否进行了定义。

VARIANT_BOOL IsBlank

特征

只读

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.Dirty 属性 | 属性特征说明


IGRDesigner.LoadReportURL 属性
[仅适用于WEB报表插件]

指定插件要设计报表的报表模板所处的 URL 值，在运行时从此 URL 载入报表模板数据。

BSTR LoadReportURL

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DataURL 属性 | IGRDesigner.SaveReportURL 属性 | 属性特征说明


IGRDesigner.SaveReportURL 属性
[仅适用于WEB报表插件]

指定插件设计的报表模板数据提交保存的 URL 地址，由此 URL 网页服务完成报表模板的保存。

BSTR SaveReportURL

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.DataURL 属性 | IGRDesigner.LoadReportURL 属性 | 属性特征说明


IGRDesigner.SerialNo 属性
[仅适用于WEB报表插件]

指定报表插件的注册序列号。

BSTR SerialNo

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.UserName 属性 | 属性特征说明


IGRDesigner.UserName 属性
[仅适用于WEB报表插件]

指定报表插件的注册用户名。

BSTR UserName

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.SerialNo 属性 | 属性特征说明


GRDesignerViewMode 枚举

指示设计器的各种运行视图。

成员名称 | 枚举值 | 说明
grvmInNormalDesign | 1 | 普通视图。
grvmInPageDesign | 2 | 页面视图。
grvmInPrint | 4 | 预览视图。
grvmInDisplay | 8 | 查询视图。

请参见

IGRDesigner.ViewMode 属性


GRDesignerViewStyle 枚举

指示设计器组合显示的视图模式。

成员名称 | 枚举值 | 说明
grvsOnlyNormal | 1 | 仅显示普通视图。
grvsOnlyPage | 2 | 仅显示页面视图。
grvsNormalPage | 3 | 显示普通视图与页面视图。
grvsNomalPrint | 5 | 显示普通视图与预览视图。
grvsPagePrint | 6 | 显示页面视图与预览视图。
grvsNomalPagePrint | 8 | 显示普通视图与预览视图。
grvsNomalPrintDisplay | 13 | 显示普通视图、预览视图与查询视图。
grvsPagePrintDisplay | 14 | 显示页面视图、预览视图与查询视图。
grvsNomalPagePrintDisplay | 15 | 显示全部视图。

请参见

IGRDesigner.ViewStyle 属性


IGRDesigner.ViewMode 属性

获取或设置设计器运行的视图模式。

GRDesignerViewMode ViewMode

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerViewMode 枚举 | IGRDesigner.ViewStyle 属性 | IGRDesigner.ViewFloatSection 属性 | 属性特征说明


IGRDesigner.ViewStyle 属性

获取或设置设计器显示的视图组合模式。

GRDesignerViewStyle ViewStyle

特征

可读写

设计器中可见

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerViewStyle 枚举 | IGRDesigner.ViewMode 属性 | 属性特征说明


IGridppReport.CalcTextOut 方法

根据区域大小、字体等信息计算出一段文字不能输出剩余部分的文字

BSTR CalcTextOut(DOUBLE Width, DOUBLE Height, BSTR Text, IGRFont *Font, VARIANT_BOOL WordWrap);

返回值

BSTR

剩余不能输出的文字

参数

DOUBLE Width

指定输出区域的宽度，以报表计量单位表示

DOUBLE Height

指定输出区域的高度，以报表计量单位表示

BSTR Text

指定要输出的文字

IGRFont *Font

指定用来输出文字的字体

VARIANT_BOOL WordWrap

指定输出文字是否自动绕行

说明

本方法用于将文字分成多段，以便在不同的区域中完整显示出来。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRFont 接口


IGridppReport.ExportBeginScript 属性

IGridppReport.ExportBeginScript(导出前脚本) 属性

表示报表 ExportBegin 事件对应的脚本代码。

BSTR ExportBeginScript

特征

可读写

设计器中可见

说明

可以在本脚本中改写导出选项，改变报表的默认导出行为。本脚本对应的 Sender 对象为 IGRExportOption 接口引用，根据导出数据类型，可以把 Sender 对象转换为具体的导出类型对象，具体请参考 IGRExportOption 接口的编程参考帮助。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRExportOption 接口 | IGridppReport.ExportBegin 事件 | 属性特征说明


IGridppReport.FloatControls 属性

IGridppReport.FloatControls(浮动部件框) 属性

指定报表中的浮动部件框集合

IGRControls *FloatControls

特征

只读

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRControls 接口 | IGridppReport.BackImage 属性 | IGridppReport.Watermark 属性 | IGridppReport.HasFloatControl 属性 | 属性特征说明


IGridppReport.HasFloatControl 属性

指定报表中是否包含有浮动部件框

VARIANT_BOOL HasFloatControl

特征

只读

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.FloatControls 属性 | 属性特征说明


IGridppReport.Language 属性

指定当前应用的界面语言。

LONG Language

特征

可读写

说明

各种语言对应的标识常数，扩号中的为十六进制表示：
简体中文: 2052(0x0804)
繁体中文: 1028(0x0404)
英语: 1033(0x0409)
俄语: 1049(0x0419)
日语: 1041(0x0411)
朝鲜语: 1042(0x0412)
德语: 1031(0x00407)
法语: 1036(0x040c)
意大利语: 1040(0x0410)

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPrintViewer.UpdateLanguage 方法 | IGRDesigner.UpdateLanguage 方法 | IGRDisplayViewer.UpdateLanguage 方法 | 属性特征说明


IGridppReport.MonoPrint 属性

IGridppReport.MonoPrint(单色打印) 属性

指定是否按黑白色打印输出。

VARIANT_BOOL MonoPrint

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性值为真，报表在打印输出时将把其中的彩色转换为黑白灰度色。

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGridppReport.RunningDetailGrid 属性

获取报表运行时展现出来的明细网格对象接口。

IGRDetailGrid *RunningDetailGrid

特征

只读

说明

除了交叉表，其它类型的报表本属性与DetailGrid是一样的。交叉表在运行时，会重新创建一个明细网格对象用来展现报表交叉运行的结果；通过本属性可以获得此明细网格的引用，从而可以进一步获取交叉表在运行时的信息。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRDetailGrid 接口 | IGRDetailGrid.CrossTab 属性 | IGridppReport.DetailGrid 属性 | IGridppReport.Running 属性 | 属性特征说明


IGridppReport.ShowPreviewWndScript 属性

IGridppReport.ShowPreviewWndScript(预览前脚本) 属性

表示报表 ShowPreviewWnd 事件对应的脚本代码。

BSTR ShowPreviewWndScript

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGridppReport.ShowProgressUI 属性

指定报表在运行时是否显示进度指示。

VARIANT_BOOL ShowProgressUI

默认值

FALSE

特征

可读写

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


GRTextEncodeMode 枚举

指定文字的编码类型

成员名称 | 枚举值 | 说明
grtemAnsi | 1 | ANSI编码
grtemUTF8 | 2 | UTF-8编码
grtemUnicode | 3 | Unicode编码

请参见

IGridppReport.TextEncode 属性 | IGRE2TXTOption.TextEncode 属性 | IGRE2CSVOption.TextEncode 属性


IGridppReport.TextEncode 属性

IGridppReport.TextEncode(文字编码) 属性

指定报表模板保存时所用的文字编码方式

GRTextEncodeMode TextEncode

默认值

grtemUTF8

特征

可读写

设计器中可见

请参见

IGridppReport 接口 | IGridppReport 成员 | GRTextEncodeMode 枚举 | IGridppReport.StorageFormat 属性 | 属性特征说明


IGridppReport.ShowPreviewWnd 事件

在显示默认打印预览窗口时触发本事件。

void ShowPreviewWnd(IGRPrintViewer *PrintViewer);

参数

IGRPrintViewer *PrintViewer

GRPrintViewer控件的接口引用

说明

可以在本事件响应中通过 IGRPrintViewer 控件接口对默认预览窗口进行自定义。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGRPrintViewer 接口 | IGRPrintViewer 接口 | IGridppReport.PrintPreview 方法 | IGridppReport.PrintPreviewEx 方法


IGRChart.AddXYZValue 方法

在指定序列上增加坐标点值与Z值。

void AddXYZValue(SHORT SeriesIndex, DOUBLE XVal, DOUBLE YVal, DOUBLE ZVal);

参数

SHORT SeriesIndex

指定序列。

DOUBLE XVal

指定坐标X值。

DOUBLE YVal

指定坐标Y值。

DOUBLE ZVal

指定坐标Z值。

说明

XYZ类型的数据用于气泡图。

在用这个方法加入数据之前，一般需要调用 EmptyXYZValue 方法清空已经存在的数据。如刷新生成报表时，上次生成加入的数据不会自动清理掉，如果不进行清理，再次加入的数据还是继续在原有数据的基础上继续增加，这样肯定不是我们期望的。演示代码如下：

Chart.EmptyXYZValue(); //清空原来的数据
for (SeriesIndex=0; SeriesIndex{
int DataCount = ...; //获取序列 SeriesIndex 的数据个数
for (DataIndex=0; DataIndex {
X = ...//取得X元素值
Y = ...//取得Y元素值
Z = ...//取得Z元素值
Chart.AddXYZValue(SeriesIndex, X, Y, Z);
}
}

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYZValueCount 属性 | IGRChart.ZValueFormat 属性 | IGRChart.EmptyXYZValue 方法 | IGRChart.GetXYZValue 方法 | IGRChart.Get_XYZValueCount 方法


IGRChart.GetXYZValue 方法

或取指定序列指定序号的XYZ值

void GetXYZValue(SHORT SeriesIndex, LONG Index, DOUBLE *XVal, DOUBLE *YVal, DOUBLE *ZVal);

参数

SHORT SeriesIndex

指定序列

LONG Index

指定数据在序列中的序号

DOUBLE *XVal

存储获取的X值。

DOUBLE *YVal

存储获取的Y值。

DOUBLE *ZVal

存储获取的Z值。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYZValueCount 属性 | IGRChart.ZValueFormat 属性 | IGRChart.AddXYZValue 方法 | IGRChart.EmptyXYZValue 方法 | IGRChart.LoadXYZDataFromXML 方法 | IGRChart.Get_XYZValueCount 方法


IGRChart.LoadDataFromXML 方法

从XML文本数据中获取图表数据。

VARIANT_BOOL LoadDataFromXML(BSTR XML, VARIANT_BOOL FirstSeries, VARIANT_BOOL AutoSeries, VARIANT_BOOL AutoGroup);

返回值

VARIANT_BOOL

指定载入数据是否成功

参数

BSTR XML

指定要载入的XML数据包。

VARIANT_BOOL FirstSeries

指定第一列是否为序列标识数据。

VARIANT_BOOL AutoSeries

指定是否从数据中自动获取序列标签文字，只有当FirstSeries=true时才会自动获取序列标签文字。

VARIANT_BOOL AutoGroup

指定是否从数据中自动获取组标签文字。

说明

载入二维数组类型的图表数据，柱图、饼图、折线图、叠加柱状图与曲线图等需要这种类型的数据。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LoadXYDataFromXML 方法 | IGRChart.LoadXYZDataFromXML 方法 | IGRChart.Value 属性


IGRChart.LoadXYDataFromXML 方法

从XML文本数据中载入XY类型的图表数据

VARIANT_BOOL LoadXYDataFromXML(BSTR XML, VARIANT_BOOL AutoSeries);

返回值

VARIANT_BOOL

指定载入是否成功。

参数

BSTR XML

指定XML数据包。

VARIANT_BOOL AutoSeries

指定是否从数据中自动获取序列标签文字。

说明

载入坐标点(X,Y)类型的图表数据，散列点图、散列连线图、散列曲线图等需要这种类型的数据。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LoadDataFromXML 方法 | IGRChart.LoadXYZDataFromXML 方法 | IGRChart.GetXYValue 方法


IGRChart.LoadXYZDataFromXML 方法

从XML文本数据中载入XYZ类型的图表数据

VARIANT_BOOL LoadXYZDataFromXML(BSTR XML, VARIANT_BOOL AutoSeries);

返回值

VARIANT_BOOL

指定载入是否成功。

参数

BSTR XML

指定XML数据。

VARIANT_BOOL AutoSeries

指定是否从数据中自动获取序列标签文字。

说明

载入三维类型的图表数据，气泡图需要这种类型的数据。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.LoadDataFromXML 方法 | IGRChart.LoadXYDataFromXML 方法 | IGRChart.GetXYZValue 方法


IGRChart.BubbleScalePerCm 属性

IGRChart.BubbleScalePerCm(气泡图比例) 属性

气泡图比例，指定一个厘米表示的Z值，对应到气泡图的直径。

DOUBLE BubbleScalePerCm

默认值

0

特征

可读写

设计器中可见

说明

默认值为0，由Grid++Report自动确定气泡的大小比例。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.ChartType 属性 | 属性特征说明


IGRChart.CoordLineColor 属性

IGRChart.CoordLineColor(坐标线颜色) 属性

指定坐标线的颜色。

OLE_COLOR CoordLineColor

默认值

RGB(196, 196, 255)

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.CoordLineVisible 属性 | 属性特征说明


IGRChart.CoordLineVisible 属性

IGRChart.CoordLineVisible(坐标线可见性) 属性

自定是否显示坐标线。

VARIANT_BOOL CoordLineVisible

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.CoordLineColor 属性 | 属性特征说明


IGRChart.EmptyXYZValue 方法

清空全部XYZ值。

void EmptyXYZValue(void);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYZValueCount 属性 | IGRChart.ZValueFormat 属性 | IGRChart.AddXYZValue 方法 | IGRChart.GetXYZValue 方法


IGRChart.XAxisMaximum 属性

IGRChart.XAxisMaximum(X轴最大值) 属性

指定X轴表示的最大值

DOUBLE XAxisMaximum

默认值

0

特征

可读写

设计器中可见

说明

默认值为0，在运行时根据数据自动确定。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisMinimum 属性 | IGRChart.XAxisTextFormat 属性 | IGRChart.XAxisTextVisible 属性 | IGRChart.XAxisSpace 属性 | 属性特征说明


IGRChart.XAxisMinimum 属性

IGRChart.XAxisMinimum(X轴最小值) 属性

指定X轴表示的最小值

DOUBLE XAxisMinimum

默认值

0

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisMaximum 属性 | IGRChart.XAxisTextFormat 属性 | IGRChart.XAxisTextVisible 属性 | IGRChart.XAxisSpace 属性 | 属性特征说明


IGRChart.XAxisSpace 属性

IGRChart.XAxisSpace(X轴刻度间隔) 属性

指定X轴每个刻度的步进量

VARIANT_BOOL XAxisSpace

默认值

0

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XAxisMaximum 属性 | IGRChart.XAxisMinimum 属性 | 属性特征说明


IGRChart.XYZValueCount 属性

获取指定序列的XYZ坐标值个数。

LONG XYZValueCount

特征

只读

说明

属性采用整数下标序号，序号从 0 开始。

脚本代码形如：
x = Chart.XYZValueCount(0);

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddXYZValue 方法 | IGRChart.EmptyXYZValue 方法 | IGRChart.GetXYZValue 方法 | IGRChart.ZValueFormat 属性 | IGRChart.Get_XYZValueCount 方法 | 属性特征说明


IGRChart.ZValueFormat 属性

IGRChart.ZValueFormat(Z数据格式) 属性

气泡图Z值格式串

BSTR ZValueFormat

特征

可读写

设计器中可见

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.XYZValueCount 属性 | IGRChart.AddXYZValue 方法 | IGRChart.EmptyXYZValue 方法 | IGRChart.GetXYZValue 方法 | 属性特征说明


IGRColumnContent.GrowToNextRow 属性

IGRColumnContent.GrowToNextRow(伸展到下行) 属性

指定当列中的文字内容不能完全显示出来时，是否在下一行中继续显示。

VARIANT_BOOL GrowToNextRow

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRColumnContent 接口 | IGRColumnContent 成员 | IGRSection.CanGrow 属性 | 属性特征说明


IGRColumnSection.SetCellsBackColor 方法

改变节中全部格的背景色。

void SetCellsBackColor(OLE_COLOR BackColor);

参数

OLE_COLOR BackColor

指定新的背景颜色

请参见

IGRColumnSection 接口 | IGRColumnSection 成员 | IGRColumnSection.SetCellsForeColor 方法 | IGRSection.BackColor 属性 | IGRColumnCell.BackColor 属性


IGRColumnSection.SetCellsForeColor 方法

改变节中全部格的前景色。

void SetCellsForeColor(OLE_COLOR ForeColor);

参数

OLE_COLOR ForeColor

指定新的文字颜色

请参见

IGRColumnSection 接口 | IGRColumnSection 成员 | IGRColumnSection.SetCellsBackColor 方法


IGRColumnTitleCell.SupCell 属性

获取本标题格的上级组标题格。

IGRColumnTitleCell *SupCell

特征

只读

说明

如果本标题格是组标题格下面的，本属性获得其上级组标题格的接口引用。否则本属性为空值。

请参见

IGRColumnTitleCell 接口 | IGRColumnTitleCell 成员 | IGRColumnTitleCell 接口 | IGRColumnTitleCell.SubTitles 属性 | IGRColumnTitleCell.GroupTitle 属性 | 属性特征说明


IGRCrossTab.HResort 属性

IGRCrossTab.HResort(横向重排序) 属性

指示横向交叉数据是否按横向交叉字段重新排序

VARIANT_BOOL HResort

默认值

TRUE

特征

可读写

设计器中可见

说明

特别提示：如果将此属性设置为“否(false)”，则交叉报表的原始记录数据顺序必须按横向交叉字段的值归类在一起，即同一横向交叉项的记录数据连片在一起，通常如按横向交叉字段在查询SQL中进行排序就能满足这样的要求。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.HSortAsc 属性 | IGRCrossTab.VResort 属性 | 属性特征说明


IGRDetailGrid.AppendBlankCol 属性

IGRDetailGrid.AppendBlankCol(追加空白列) 属性

打印输出时，是否补充空白列把纸张右边的空白填满。

VARIANT_BOOL AppendBlankCol

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AppendBlankColWidth 属性 | IGRDetailGrid.AppendBlankRow 属性 | 属性特征说明


IGRDetailGrid.AppendBlankColWidth 属性

IGRDetailGrid.AppendBlankColWidth(追加空白列宽度) 属性

当补充空白列打印时，指定空白列的宽度，为0则与最后列同宽

DOUBLE AppendBlankColWidth

默认值

0

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AppendBlankCol 属性 | 属性特征说明


IGRDetailGrid.AppendBlankRowAtLast 属性

IGRDetailGrid.AppendBlankRowAtLast(追加空白行在后) 属性

打印输出时如果追加空白行,是否在分组尾之后输出空白行

VARIANT_BOOL AppendBlankRowAtLast

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.AppendBlankRow 属性 | 属性特征说明


IGRDetailGrid.PrintAdaptRFCStep 属性

IGRDetailGrid.PrintAdaptRFCStep(打印锁定列重复间隔) 属性

当横向分页打印时，锁定列重复打印的间隔页数

SHORT PrintAdaptRFCStep

默认值

1

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | IGRDetailGrid.PrintAdaptMethod 属性 | 属性特征说明


IGRDisplayViewer.AddToolbarCustomButton 方法

在工具栏上增加一个自定义按钮。

void AddToolbarCustomButton(LONG BtnID, BSTR BtnFileName, BSTR TooltipText);

参数

LONG BtnID

指定按钮的标识值，有效值从1到1000。

BSTR BtnFileName

指定按钮的图像文件名，或网络URL。

BSTR TooltipText

指定按钮的提示文字。

说明

增加的自定义按钮要完成的任务由开发者在 CustomButtonClick 事件上实现。

可以增加多个自定义按钮，通过标识号区分出不同的自定义按钮。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CustomButtonClick 事件 | IGRDisplayViewer.AddToolbarControl 方法 | IGRDisplayViewer.UpdateToolbar 方法


IGRDisplayViewer.CurPageNo 属性

当分页显示报表时，指定对当前页号。

SHORT CurPageNo

特征

可读写

仅运行时可用

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.PageCount 属性 | IGRDisplayViewer.FirstPage 方法 | IGRDisplayViewer.LastPage 方法 | IGRDisplayViewer.PriorPage 方法 | IGRDisplayViewer.NextPage 方法 | IGRDisplayViewer.RowsPerPage 属性 | IGRDisplayViewer.StatusChange 事件 | 属性特征说明


IGRDisplayViewer.RowsPerPage 属性

指定浏览数据时的分页方式

SHORT RowsPerPage

默认值

1

特征

可读写

设计器中可见

说明

当本属性为以下几种情况时，查询显示器以不同的方式对数据进行分页处理：
=0：不进行分页，所有数据以不间断的表格显示。
<0：按控件的大小自动进行分页。
>0：由本属性指定每页数据的行数。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.PageCount 属性 | 属性特征说明


IGRDisplayViewer.ToPostColumnLayout 属性

指定是否将本控件上的列布局状态应用到打印输出上。

VARIANT_BOOL ToPostColumnLayout

默认值

FALSE

特征

可读写

说明

当从本控件的工具栏执行打印任务时，且本属性为真，在本查询显示控件上所进行的列布局调整将引用到应用到打印上。

列布局调整自改变列的顺序，调整列的宽度。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.PostColumnLayout 方法 | 属性特征说明


IGRE2CellOption.ColumnAsDetailGrid 属性

指示导出文件的列是否与报表明细网格的列保持一致。

VARIANT_BOOL ColumnAsDetailGrid

默认值

FALSE

特征

可读写

说明

当本属性为TRUE时，如导出的EXCEL，RTF等文件时会产生较少的列。

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2CellOption.ExportPageBreak 属性

指定在导出数据时是否产生页之间的分隔。

VARIANT_BOOL ExportPageBreak

默认值

TRUE

特征

可读写

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2CellOption.OnlyExportDetailGrid 属性

指定是否只导出明细网格中的数据。

VARIANT_BOOL OnlyExportDetailGrid

默认值

FALSE

特征

可读写

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2CellOption.SameAsPrint 属性

指定是否按打印输出方式产生导出数据。

VARIANT_BOOL SameAsPrint

默认值

FALSE

特征

可读写

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2CellOption.SupressEmptyLines 属性

指定是否压缩空白行，即不产生空白行。

VARIANT_BOOL SupressEmptyLines

默认值

FALSE

特征

可读写

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2CellOption 概述

IGRE2CellOption 接口

导出格子类型数据的导出选项基类。

有关此接口所有成员的列表，请参阅 IGRE2CellOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption

请参见

IGRE2CellOption 成员 | IGRE2XLSOption 接口 | IGRE2HTMOption 接口 | IGRE2TXTOption 接口 | IGRE2CSVOption 接口 | IGRE2RTFOption 接口


IGRE2CellOption成员

IGRE2CellOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
ColumnAsDetailGrid | 指示导出文件的列是否与报表明细网格的列保持一致。
ExportPageBreak | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
OnlyExportDetailGrid | 指定是否只导出明细网格中的数据。
SameAsPrint | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines | 指定是否压缩空白行，即不产生空白行。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2CellOption 接口


IGRE2RTFOption 概述

IGRE2RTFOption 接口

表示导出 RTF 文件的选项。

有关此接口所有成员的列表，请参阅 IGRE2RTFOption 成员。

IDispatch
IGRExportOption
IGRE2CellOption
IGRE2RTFOption

请参见

IGRE2RTFOption 成员 | IGRExportOption.AsE2RTFOption 属性


IGRE2RTFOption成员

IGRE2RTFOption 概述

公共属性

AbortOpenFile(从 IGRExportOption 继承) | 指定报表在导出为文档之后是否用关联程序打开该导出文档。
AbortShowOptionDlg(从 IGRExportOption 继承) | 指定报表在导出之前是否显示导出选项设置对话框。
AsE2CSVOption(从 IGRExportOption 继承) | 获取将本对象转换为导出CSV文件选项对象的接口引用。
AsE2HTMOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Htm文件选项对象的接口引用。
AsE2IMGOption(从 IGRExportOption 继承) | 获取将本对象转换为导出图像文件选项对象的接口引用。
AsE2PDFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出PDF文件选项对象的接口引用。
AsE2RTFOption(从 IGRExportOption 继承) | 获取将本对象转换为导出 RTF 文件选项对象的接口引用。
AsE2TXTOption(从 IGRExportOption 继承) | 获取将本对象转换为导出文本文件选项对象的接口引用。
AsE2XLSOption(从 IGRExportOption 继承) | 获取将本对象转换为导出Excel文件选项对象的接口引用。
Author | 指定导出的 RTF 文件的作者。
ColumnAsDetailGrid(从 IGRE2CellOption 继承) | 指示导出文件的列是否与报表明细网格的列保持一致。
Creator | 指定导出的 RTF 文件的创建程序。
ExportPageBreak(从 IGRE2CellOption 继承) | 指定在导出数据时是否产生页之间的分隔。
ExportPageHeaderFooter(从 IGRE2CellOption 继承) | 指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。
ExportType(从 IGRExportOption 继承) | 获取本导出文件选项对象的具体类型。
FileName(从 IGRExportOption 继承) | 指定导出文件的完整路径与文件名称。
MailExportFile(从 IGRExportOption 继承) | 指定在导出之后是否启动邮件发送程序发送该导出文档。
MailSubject(从 IGRExportOption 继承) | 指定邮件的标题。
MailText(从 IGRExportOption 继承) | 指定邮件的正文。
MailTo(从 IGRExportOption 继承) | 指定邮件的收件人地址。
OnlyExportDetailGrid(从 IGRE2CellOption 继承) | 指定是否只导出明细网格中的数据。
OnlyExportPureText | 指示是否只导出纯文本数据。
SameAsPrint(从 IGRE2CellOption 继承) | 指定是否按打印输出方式产生导出数据。
SupressEmptyLines(从 IGRE2CellOption 继承) | 指定是否压缩空白行，即不产生空白行。

公共方法

ShowOptionDlg(从 IGRExportOption 继承) 显示导出选项设置对话框，可以在打开的对话框中设定各个选项值。

请参见

IGRE2RTFOption 接口 | IGRExportOption.AsE2RTFOption 属性


IGRE2RTFOption.Author 属性

指定导出的 RTF 文件的作者。

BSTR Author

特征

可读写

请参见

IGRE2RTFOption 接口 | IGRE2RTFOption 成员 | 属性特征说明


IGRE2RTFOption.Creator 属性

指定导出的 RTF 文件的创建程序。

BSTR Creator

特征

可读写

请参见

IGRE2RTFOption 接口 | IGRE2RTFOption 成员 | 属性特征说明


IGRExportOption.AsE2RTFOption 属性

获取将本对象转换为导出 RTF 文件选项对象的接口引用。

IGRE2RTFOption *AsE2RTFOption

特征

只读

说明

将本对象转换为导出 RTF 文件选项对象，只有当本对象确实是一个导出 RTF 文件选项对象时,才能成功取得对象的接口引用。

请参见

IGRExportOption 接口 | IGRExportOption 成员 | IGRE2RTFOption 接口 | 属性特征说明


IGRE2CellOption.ExportPageHeaderFooter 属性

指定是否导出页眉与页脚，只有在产生页间分隔时此属性才有效。

VARIANT_BOOL ExportPageHeaderFooter

默认值

TRUE

特征

可读写

请参见

IGRE2CellOption 接口 | IGRE2CellOption 成员 | 属性特征说明


IGRE2HTMOption.PicturePath 属性

指定导出的图片文件存储的子目录名称。

BSTR PicturePath

特征

可读写

请参见

IGRE2HTMOption 接口 | IGRE2HTMOption 成员 | 属性特征说明


IGRE2PDFOption.Author 属性

指定 PDF 文件的 Author 属性。

BSTR Author

特征

可读写

设计器中可见

请参见

IGRE2PDFOption 接口 | IGRE2PDFOption 成员 | 属性特征说明


IGRE2PDFOption.Creator 属性

指定 PDF 文件的 Creator 属性。

BSTR Creator

特征

可读写

设计器中可见

请参见

IGRE2PDFOption 接口 | IGRE2PDFOption 成员 | 属性特征说明


IGRE2PDFOption.Subject 属性

指定 PDF 文件的 Subject 属性。

BSTR Subject

特征

可读写

设计器中可见

请参见

IGRE2PDFOption 接口 | IGRE2PDFOption 成员 | 属性特征说明


IGRE2RTFOption.OnlyExportPureText 属性

指示是否只导出纯文本数据。

VARIANT_BOOL OnlyExportPureText

默认值

FALSE

特征

可读写

请参见

IGRE2RTFOption 接口 | IGRE2RTFOption 成员 | 属性特征说明


IGRE2TXTOption.TextEncode 属性

指定文字的编码类型。

GRTextEncodeMode TextEncode

特征

可读写

请参见

IGRE2TXTOption 接口 | IGRE2TXTOption 成员 | GRTextEncodeMode 枚举 | 属性特征说明


IGRGraphics.DrawOrientationString 方法

在矩形区域内画出指定输出方向的文字。

void DrawOrientationString(BSTR String, LONG x, LONG y, LONG width, LONG height, GRTextOrientation TextOrientation, VARIANT_BOOL WordWrap, SHORT CharacterSpacing, SHORT LineSpacing);

参数

BSTR String

指定要输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

GRTextOrientation TextOrientation

指定文字的输出方向。

VARIANT_BOOL WordWrap

指定文字是否自动绕行显示。

SHORT CharacterSpacing

指定文字的字间距。

SHORT LineSpacing

指定文字的行间距。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | GRTextOrientation 枚举 | IGRGraphics.DrawRotationString 方法 | IGRGraphics.DrawSpacedString 方法 | IGRGraphics.DrawString 方法


IGRGraphics.OutString 方法

在指定位置输出文字。

void OutString(BSTR String, LONG x, LONG y);

参数

BSTR String

指定输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.OutRotateString 方法 | IGRGraphics.OutStringCalcHeight 方法 | IGRGraphics.OutStringCalcWidth 方法 | IGRGraphics.FontPointChangeTo 方法 | IGRGraphics.FontClone 方法


IGRGraphics.OutRotateString 方法

在指定位置按指定角度输出文字。

void OutRotateString(BSTR String, LONG x, LONG y, DOUBLE RotateDegree);

参数

BSTR String

指定输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

DOUBLE RotateDegree

指定文字的输出角度，以度为计量单位。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.OutString 方法


IGRGraphics.DrawString 方法

在矩形区域内画出文字。

void DrawString(BSTR String, LONG x, LONG y, LONG width, LONG height, GRTextAlign TextAlign, VARIANT_BOOL WordWrap, VARIANT_BOOL EndEllipsis, VARIANT_BOOL UnderLine);

参数

BSTR String

指定要输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

GRTextAlign TextAlign

指定文字的对齐方式。

VARIANT_BOOL WordWrap

指定文字是否自动绕行显示。

VARIANT_BOOL EndEllipsis

指定是否用省略号(...)表示超出显示区域的文本。

VARIANT_BOOL UnderLine

指定是否输出下划线。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | GRTextAlign 枚举 | IGRGraphics.DrawOrientationString 方法 | IGRGraphics.DrawRotationString 方法 | IGRGraphics.DrawSpacedString 方法


IGRGraphics.DrawSpacedString 方法

在矩形区域内画出可以指定字间距与行间距的文字。

void DrawSpacedString(BSTR String, LONG x, LONG y, LONG width, LONG height, GRTextAlign TextAlign, VARIANT_BOOL WordWrap, SHORT CharacterSpacing, SHORT LineSpacing);

参数

BSTR String

指定要输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

GRTextAlign TextAlign

指定文字的对齐方式。

VARIANT_BOOL WordWrap

指定文字是否自动绕行显示。

SHORT CharacterSpacing

指定文字的字间距。

SHORT LineSpacing

指定文字的行间距。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | GRTextAlign 枚举 | IGRGraphics.DrawOrientationString 方法 | IGRGraphics.DrawRotationString 方法 | IGRGraphics.DrawString 方法


IGRGraphics.DrawRotationString 方法

在矩形区域内画出指定输出角度的文字。

void DrawRotationString(BSTR String, LONG x, LONG y, LONG width, LONG height, DOUBLE TextAngle);

参数

BSTR String

指定要输出的文字。

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

DOUBLE TextAngle

指定文字的输出角度，以1/10度为计量单位。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.DrawOrientationString 方法 | IGRGraphics.DrawSpacedString 方法 | IGRGraphics.DrawString 方法


IGRGraphics.Rectangle 方法

按照指定的矩形区域画出矩形。

void Rectangle(LONG x, LONG y, LONG width, LONG height, VARIANT_BOOL ToFill);

参数

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

VARIANT_BOOL ToFill

指定是否进行背景填充。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Ellipse 方法 | IGRGraphics.FillRect 方法 | IGRGraphics.RoundRect 方法


IGRGraphics.RoundRect 方法

在指定区域上绘出圆角矩形。

void RoundRect(LONG x, LONG y, LONG width, LONG height, LONG cornerx, LONG cornery, VARIANT_BOOL ToFill);

参数

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

LONG cornerx

圆角矩形框的圆角椭圆宽度。

LONG cornery

圆角矩形框的圆角椭圆高度。

VARIANT_BOOL ToFill

指定是否进行背景填充。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Rectangle 方法


IGRGraphics.Ellipse 方法

按照指定的矩形区域画出椭圆。

void Ellipse(LONG x, LONG y, LONG width, LONG height, VARIANT_BOOL ToFill);

参数

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

VARIANT_BOOL ToFill

指定是否进行背景填充。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Pie 方法 | IGRGraphics.Rectangle 方法 | IGRGraphics.EllipseArc 方法 | IGRGraphics.EllipsePie 方法


IGRGraphics.Pie 方法

按照指定的园根据起止角度画出扇形。

void Pie(LONG x, LONG y, LONG r, DOUBLE BeginAngleDegree, DOUBLE EndAngleDegree, VARIANT_BOOL ToFill);

参数

LONG x

指定圆心的位置X。

LONG y

指定圆心的位置Y。

LONG r

指定园的半径。

DOUBLE BeginAngleDegree

指定开始角度，以度为单位。

DOUBLE EndAngleDegree

指定结束角度，以度为单位。

VARIANT_BOOL ToFill

指定是否进行背景填充。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Ellipse 方法 | IGRGraphics.Arc 方法 | IGRGraphics.EllipseArc 方法 | IGRGraphics.EllipsePie 方法


IGRGraphics.MoveTo 方法

设定画笔的起点位置。

void MoveTo(LONG x, LONG y);

参数

LONG x

指定位置X。

LONG y

指定位置Y。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.LineTo 方法 | IGRGraphics.SelectPen 方法


IGRGraphics.LineTo 方法

从当前起点位置画直线到指定的位置。

void LineTo(LONG x, LONG y);

参数

LONG x

指定位置X。

LONG y

指定输出右上角的位置Y。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.MoveTo 方法 | IGRGraphics.SelectPen 方法


IGRGraphics.FillRect 方法

用指定的颜色填充矩形区域。

void FillRect(LONG x, LONG y, LONG width, LONG height, OLE_COLOR FillColor);

参数

LONG x

指定输出右上角的位置X。

LONG y

指定输出右上角的位置Y。

LONG width

指定输出区域的宽度。

LONG height

指定输出区域的高度。

OLE_COLOR FillColor

指定填充颜色。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Rectangle 方法


IGRGraphics.SelectFont 方法

选择用来输出文字的字体对象。

void SelectFont(IFont *Font);

参数

IFont *Font

指定字体对象

说明

SelectFont 与 RestoreFont 必须成对调用，在调用 SelectFont 方法后,在输出文字任务完成后,必须调用 RestoreFont 方法进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.RestoreFont 方法 | IGRGraphics.FontClone 方法


IGRGraphics.RestoreFont 方法

恢复选择字体操作。

void RestoreFont(void);

说明

SelectFont 与 RestoreFont 必须成对调用，在调用 SelectFont 方法后,在输出文字任务完成后,必须调用 RestoreFont 方法进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.SelectFont 方法


IGRGraphics.SelectTextColor 方法

设置文字绘出颜色。

void SelectTextColor(OLE_COLOR TextColor);

参数

OLE_COLOR TextColor

指定新的文字颜色

说明

SelectTextColor 与 RestoreTextColor 必须成对调用，在调用 SelectTextColor 后并完成相关绘出任务，应该调用 RestoreTextColor 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.RestoreTextColor 方法


IGRGraphics.RestoreTextColor 方法

恢复文字颜色设置。

void RestoreTextColor(void);

说明

SelectTextColor 与 RestoreTextColor 必须成对调用，在调用 SelectTextColor 后并完成相关绘出任务，应该调用 RestoreTextColor 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.SelectTextColor 方法


IGRGraphics.SelectPen 方法

设置绘出画笔参数。

void SelectPen(FLOAT PenWidth, OLE_COLOR PenColor, GRPenStyle PenStyle);

参数

FLOAT PenWidth

指定画笔的宽度。

OLE_COLOR PenColor

指定画笔的颜色。

GRPenStyle PenStyle

指定画笔的线型。

说明

SelectPen 与 RestorePen 必须成对调用，在调用 SelectPen 后并完成相关绘出任务，应该调用 RestorePen 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | GRPenStyle 枚举 | IGRGraphics.MoveTo 方法 | IGRGraphics.LineTo 方法 | IGRGraphics.RestorePen 方法


IGRGraphics.RestorePen 方法

恢复画笔设置。

void RestorePen(void);

说明

SelectPen 与 RestorePen 必须成对调用，在调用 SelectPen 后并完成相关绘出任务，应该调用 RestorePen 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.SelectPen 方法


IGRGraphics.SelectFillColor 方法

设置填充背景色。

void SelectFillColor(OLE_COLOR BrushColor);

参数

OLE_COLOR BrushColor

指定新的填充色

说明

SelectFillColor 与 RestoreFillColor 必须成对调用，在调用 SelectFillColor 后并完成相关绘出任务，应该调用 RestoreFillColor 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.RestoreFillColor 方法


IGRGraphics.RestoreFillColor 方法

恢复填充背景色设置。

void RestoreFillColor(void);

说明

SelectFillColor 与 RestoreFillColor 必须成对调用，在调用 SelectFillColor 后并完成相关绘出任务，应该调用 RestoreFillColor 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.SelectFillColor 方法


IGRGraphics.PushClipRect 方法

设置绘出剪裁区域。

void PushClipRect(LONG x, LONG y, LONG width, LONG height);

参数

LONG x

指定区域右上角的位置X。

LONG y

指定区域右上角的位置Y。

LONG width

指定区域的宽度。

LONG height

指定区域的高度。

说明

PushClipRect 与 PopClipRect 必须成对调用，在调用 PushClipRect 后并完成相关绘出任务，应该调用 PopClipRect 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.PopClipRect 方法


IGRGraphics.PopClipRect 方法

恢复绘出剪裁区域。

void PopClipRect(void);

说明

PushClipRect 与 PopClipRect 必须成对调用，在调用 PushClipRect 后并完成相关绘出任务，应该调用 PopClipRect 进行恢复操作。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.PushClipRect 方法


IGRGraphics.Left 属性

获取输出的左端位置。

LONG Left

特征

只读

仅运行时可用

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Height 属性 | IGRGraphics.Top 属性 | IGRGraphics.Width 属性 | 属性特征说明


IGRGraphics.Top 属性

获取输出的上端位置。

LONG Top

特征

只读

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Height 属性 | IGRGraphics.Left 属性 | IGRGraphics.Width 属性 | 属性特征说明


IGRGraphics.Width 属性

获取输出区域的宽度。

LONG Width

特征

只读

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Height 属性 | IGRGraphics.Left 属性 | IGRGraphics.Top 属性 | 属性特征说明


IGRGraphics.Height 属性

获取输出区域的高度。

LONG Height

特征

只读

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Width 属性 | IGRGraphics.Left 属性 | IGRGraphics.Top 属性 | 属性特征说明


IGRPrintViewer.AddToolbarCustomButton 方法

在工具栏上增加一个自定义按钮。

void AddToolbarCustomButton(LONG BtnID BtnID, BSTR BtnFileName, BSTR TooltipText);

参数

LONG BtnID BtnID

指定按钮的标识值，有效值从1到1000。

BSTR BtnFileName

指定按钮的图像文件名，或网络URL。

BSTR TooltipText

指定按钮的提示文字。

说明

增加的自定义按钮要完成的任务由开发者在 CustomButtonClick 事件上实现。

可以增加多个自定义按钮，通过标识号区分出不同的自定义按钮。

自定义按钮图像要求为16*16，256色的 bmp 图。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.CustomButtonClick 事件 | IGRPrintViewer.AddToolbarControl 方法 | IGRPrintViewer.UpdateToolbar 方法


IGRPrintViewer.UpdateLanguage 方法

在重新设置报表界面语言后，调用本方法更新界面显示。

void UpdateLanguage(void);

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGridppReport.Language 属性 | IGRDisplayViewer.UpdateLanguage 方法 | IGRDesigner.UpdateLanguage 方法


IGRPrintViewer.ShowBookmark 属性

指定是否显示书签导航窗口。

VARIANT_BOOL ShowBookmark

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ShowToolbar 属性 | IGRPrintViewer.ShowRuler 属性 | IGRSection.BookmarkText 属性 | 属性特征说明


IGRDisplayViewer.NextPage 方法

显示下一页。

void NextPage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.FirstPage 方法 | IGRDisplayViewer.LastPage 方法 | IGRDisplayViewer.PriorPage 方法


IGRDisplayViewer.PriorPage 方法

显示上一页。

void PriorPage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.FirstPage 方法 | IGRDisplayViewer.LastPage 方法 | IGRDisplayViewer.NextPage 方法


IGRDisplayViewer.FirstPage 方法

移动至首页。

void FirstPage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.LastPage 方法 | IGRDisplayViewer.PriorPage 方法 | IGRDisplayViewer.NextPage 方法


IGRDisplayViewer.LastPage 方法

移动至最后一页。

void LastPage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.FirstPage 方法 | IGRDisplayViewer.PriorPage 方法 | IGRDisplayViewer.NextPage 方法


IGRDisplayViewer.GetSelRowCellText 方法

获取当前选中行的指定单元格的显示文字。

BSTR GetSelRowCellText(SHORT ColumnIndex);

返回值

BSTR

单元格的显示文字

参数

SHORT ColumnIndex

大

说明

获取当前选中行的指定单元格的显示文字，列序号参数按列的显示顺序指定，第一个显示列的序号为0。

使用本方法可以获取当前行的显示文字，以便进行报表穿透处理。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SelRowNo 属性 | IGRDisplayViewer.SelColumnNo 属性 | IGRDisplayViewer.SelColumnName 属性


IGRDisplayViewer.UpdateLanguage 方法

在重新设置报表界面语言后，调用本方法更新控件界面显示。

void UpdateLanguage(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGridppReport.Language 属性 | IGRPrintViewer.UpdateLanguage 方法 | IGRDesigner.UpdateLanguage 方法


IGRSection.BookmarkText 属性

IGRSection.BookmarkText(书签文本) 属性

指定节的书签文本，文本中可以包含多种数据域。

VARIANT_BOOL BookmarkText

特征

可读写

设计器中可见

说明

数据域定义在文本中，数据域通过“[#”与“#]”扩起来，中间包含的文字可以成功解析为数据域或表达式，数据域的定义文本在运行时将被数据域的值替换，反之文字将以原样输出。

本属性的行为与综合文本框的“Text(文本)”属性是类似的。

请参见

IGRSection 接口 | IGRSection 成员 | IGRPrintViewer.ShowBookmark 属性 | 属性特征说明


IGRSummaryBox.RankNo 属性

IGRSummaryBox.RankNo(第几名) 属性

指定取统计数据中的第几名数据。

SHORT RankNo

默认值

1

特征

可读写

设计器中可见

说明

本属性仅用于 MinN 与 MaxN 这两个统计函数。

请参见

IGRSummaryBox 接口 | IGRSummaryBox 成员 | 属性特征说明


IGRDesigner.GetObjectCount 方法

获取设计器中当前选中对象的个数。

LONG GetObjectCount(void);

返回值

LONG

指示当前选中了几个对象。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetObjectName 方法 | IGRDesigner.GetObjectType 方法


IGRDesigner.GetObjectName 方法

获取某个选中对象的名称，由选中序号指定某个对象。

BSTR GetObjectName(LONG Index);

返回值

BSTR

对应对象的名称。

参数

LONG Index

指定对象的选中序号。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.GetObjectCount 方法 | IGRDesigner.GetObjectType 方法


IGRDesigner.GetObjectType 方法

获取当前选中对象的类型。

GRSelectionObjectType GetObjectType(void);

返回值

GRSelectionObjectType

指示选中对象的类型。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRSelectionObjectType 枚举 | IGRDesigner.GetObjectCount 方法 | IGRDesigner.GetObjectName 方法


IGRDesigner.ShowClassProperty 方法

指定是否在属性侦测窗口上显示某类的属性。

void ShowClassProperty(BSTR ClassName, VARIANT_BOOL IsShow);

参数

BSTR ClassName

指定类的名称。

VARIANT_BOOL IsShow

指定是否显示。

说明

在帮助的《编程参考》部分中可以看到各个类(接口)的名称，去掉前面的 IGR 前缀，如 IGRParameter 的类名称为 Parameter。

Designer1.ShowClassProperty("Parameter", false);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.ShowOneProperty 方法 | IGRDesigner.Published 属性


IGRDesigner.ShowOneProperty 方法

设置是否在属性窗口中显示某个类的某个属性。

void ShowOneProperty(BSTR ClassName, BSTR PropertyName, VARIANT_BOOL IsShow);

参数

BSTR ClassName

指定类的名称。

BSTR PropertyName

指定属性的名称。

VARIANT_BOOL IsShow

指定是否显示对应属性。

说明

在帮助的《编程参考》部分中可以看到各个类(接口)的名称，及各个属性的名称。

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.ShowClassProperty 方法 | IGRDesigner.Published 属性


IGRDesigner.IsInsertingControl 属性

指示设计器是否正在插入部件框状态下。

VARIANT_BOOL IsInsertingControl

特征

只读

仅运行时可用

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.PrepareInsertControl 方法 | 属性特征说明


IGRDesigner.ViewFloatSection 属性

指示当前是否在设计浮动节状态下。

VARIANT_BOOL ViewFloatSection

默认值

FALSE

特征

可读写

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGRDesigner.ViewMode 属性 | 属性特征说明


IGRDesigner.UpdateLanguage 方法

在重新设置报表界面语言后，调用本方法更新控件界面显示。

void UpdateLanguage(void);

请参见

IGRDesigner 接口 | IGRDesigner 成员 | IGridppReport.Language 属性 | IGRDisplayViewer.UpdateLanguage 方法 | IGRPrintViewer.UpdateLanguage 方法


IGRDisplayViewer.ChartClickLegend 事件

当点击图表的图例时触发本事件。

void ChartClickLegend(IGRChart *pSender, SHORT SeriesIndex, SHORT GroupIndex);

参数

IGRChart *pSender

指定是哪个图表对象。

SHORT SeriesIndex

指定点击位置的对应序列号。

SHORT GroupIndex

指定点击位置的对应组号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRChart 接口 | IGRChart 接口 | IGRDisplayViewer.ChartClickSeries 事件 | IGRDisplayViewer.ChartDblClickLegend 事件 | IGRDisplayViewer.ChartDblClickSeries 事件


IGRDisplayViewer.ChartClickSeries 事件

当点击图表的图形时触发本事件。

void ChartClickSeries(IGRChart *pSender, SHORT SeriesIndex, SHORT GroupIndex);

参数

IGRChart *pSender

指定是哪个图表对象。

SHORT SeriesIndex

指定点击位置的对应序列号。

SHORT GroupIndex

指定点击位置的对应组号，如果是XY或XYZ类型图表，表示数据序号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRChart 接口 | IGRDisplayViewer.ChartClickLegend 事件 | IGRDisplayViewer.ChartDblClickLegend 事件 | IGRDisplayViewer.ChartDblClickSeries 事件


IGRDisplayViewer.ChartDblClickSeries 事件

当双击图表的图形时触发本事件。

void ChartDblClickSeries(IGRChart *pSender, SHORT SeriesIndex, SHORT GroupIndex);

参数

IGRChart *pSender

指定是哪个图表对象。

SHORT SeriesIndex

指定点击位置的对应序列号。

SHORT GroupIndex

指定点击位置的对应组号，如果是XY或XYZ类型图表，表示数据序号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRChart 接口 | IGRDisplayViewer.ChartClickLegend 事件 | IGRDisplayViewer.ChartClickSeries 事件 | IGRDisplayViewer.ChartDblClickLegend 事件


IGRDisplayViewer.ChartDblClickLegend 事件

当双击图表的图例时触发本事件。

void ChartDblClickLegend(IGRChart *pSender, SHORT SeriesIndex, SHORT GroupIndex);

参数

IGRChart *pSender

指定是哪个图表对象。

SHORT SeriesIndex

指定点击位置的对应序列号。

SHORT GroupIndex

指定点击位置的对应组号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRChart 接口 | IGRDisplayViewer.ChartClickLegend 事件 | IGRDisplayViewer.ChartClickSeries 事件 | IGRDisplayViewer.ChartDblClickSeries 事件


IGRDisplayViewer.CloseButtonClick 事件

当点击工具栏上的关闭按钮时触发本事件。

void CloseButtonClick(void);

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | GRToolControlType2 枚举


IGRDisplayViewer.CustomButtonClick 事件

当点击工具栏上的自定义按钮时触发本事件。

void CustomButtonClick(LONG BtnID);

参数

LONG BtnID

指定自定义按钮的标识号。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.AddToolbarCustomButton 方法


IGRDisplayViewer.StatusChange 事件

当控件的查看状态发生改变时触发本事件。

void StatusChange(void);

说明

当改变分页查看方式，以及改变当前浏览页时都会触发本事件。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.PageCount 属性


IGRPrintViewer.CustomButtonClick 事件

当点击工具栏上的自定义按钮时触发本事件。

void CustomButtonClick(LONG BtnID);

参数

LONG BtnID

指定自定义按钮的标识号。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.AddToolbarCustomButton 方法


IGRDisplayViewer.PageCount 属性

获取当前数据的页数。

LONG PageCount

特征

只读

仅运行时可用

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.CurPageNo 属性 | IGRDisplayViewer.RowsPerPage 属性 | IGRDisplayViewer.StatusChange 事件 | 属性特征说明


IGRChart.Get_GroupLabel 方法
[仅适用于WEB报表插件]

根据顺序号获取组标签文字。

BSTR Get_GroupLabel(SHORT GroupIndex);

返回值

BSTR

获取的组标签文字

参数

SHORT GroupIndex

指定组顺序号

说明

属性采用整数下标序号，序号从 0 开始。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Set_GroupLabel 方法 | IGRChart.GroupLabel 属性 | IGRChart.GroupCount 属性


IGRChart.Set_GroupLabel 方法
[仅适用于WEB报表插件]

根据顺序号设置组标签文字。

void Set_GroupLabel(SHORT GroupIndex, BSTR Str);

参数

SHORT GroupIndex

指定组序号。

BSTR Str

指定要设置的标签文字。

说明

序号从 0 开始。

此方法仅适用于WEB报表插件，C/S报表组件应使用 GroupLabel 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Get_GroupLabel 方法 | IGRChart.GroupCount 属性 | IGRChart.GroupLabel 属性


IGRChart.Get_SeriesLabel 方法
[仅适用于WEB报表插件]

根据顺序号获取序列标签文字。

BSTR Get_SeriesLabel(SHORT SeriesIndex);

返回值

BSTR

获取的序列标签文字

参数

SHORT SeriesIndex

指定序列号。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Set_SeriesLabel 方法 | IGRChart.SeriesLabel 属性 | IGRChart.SeriesCount 属性


IGRChart.Set_SeriesLabel 方法
[仅适用于WEB报表插件]

根据顺序号设置序列标签文字。

void Set_SeriesLabel(SHORT SeriesIndex, BSTR Str);

参数

SHORT SeriesIndex

指定序列号。

BSTR Str

指定要设置的标签文字。

说明

序号从 0 开始。

此方法仅适用于WEB报表插件，C/S报表组件应使用 SeriesLabel 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Get_SeriesLabel 方法 | IGRChart.SeriesCount 属性 | IGRChart.SeriesLabel 属性


IGRChart.Get_Value 方法
[仅适用于WEB报表插件]

根据序列顺序号与组顺序号获取图表数据值。

DOUBLE Get_Value(SHORT SeriesIndex, SHORT GroupIndex);

返回值

DOUBLE

获取的图表数据值

参数

SHORT SeriesIndex

指定序列号。

SHORT GroupIndex

指定组号。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 Value 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Set_Value 方法 | IGRChart.Value 属性


IGRChart.Set_Value 方法
[仅适用于WEB报表插件]

根据序列顺序号与组顺序号设置图表数据值。

void Set_Value(SHORT SeriesIndex, SHORT GroupIndex, DOUBLE Val);

参数

SHORT SeriesIndex

指定序列号。

SHORT GroupIndex

指定组号。

DOUBLE Val

指定要设置的值。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 Value 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.Get_Value 方法 | IGRChart.Value 属性


IGRChart.Get_XYValueCount 方法
[仅适用于WEB报表插件]

获取指定序列的XY坐标值个数。

LONG Get_XYValueCount(SHORT SeriesIndex);

返回值

LONG

获取的值个数。

参数

SHORT SeriesIndex

指定序列号。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 XYValueCount 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddXYValue 方法 | IGRChart.XYValueCount 属性 | IGRChart.GetXYValue 方法


IGRChart.Get_XYZValueCount 方法
[仅适用于WEB报表插件]

获取指定序列的XYZ坐标值个数。

LONG Get_XYZValueCount(SHORT SeriesIndex);

返回值

LONG

获取的值个数。

参数

SHORT SeriesIndex

指定序列号。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 XYZValueCount 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddXYZValue 方法 | IGRChart.GetXYZValue 方法 | IGRChart.XYZValueCount 属性


IGRChart.Get_FillColor 方法
[仅适用于WEB报表插件]

获取指定序号处的自定义图形填充颜色。

OLE_COLOR Get_FillColor(SHORT Index);

返回值

OLE_COLOR

获取的自定义图形填充颜色。

参数

SHORT Index

指定序号。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.FillColor 属性 | IGRChart.FillColorCount 属性


IGRChart.Get_XAxisText 方法
[仅适用于WEB报表插件]

获取指定序号处显式设定的X轴刻度显示文字。

BSTR Get_XAxisText(SHORT Index);

返回值

BSTR

获取的X轴刻度显示文字。

参数

SHORT Index

指定序号。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 XAxisText 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddXAxisText 方法 | IGRChart.XAxisTextCount 属性


IGRChart.Get_YAxisText 方法
[仅适用于WEB报表插件]

获取指定序号处显式设定的Y轴刻度显示文字。

BSTR Get_YAxisText(SHORT Index);

返回值

BSTR

获取的Y轴刻度显示文字。

参数

SHORT Index

指定序号。

说明

此方法仅适用于WEB报表插件，C/S报表组件应使用 YAxisText 属性。

请参见

IGRChart 接口 | IGRChart 成员 | IGRChart.AddYAxisText 方法 | IGRChart.YAxisTextCount 属性 | IGRChart.YAxisText 属性


IGRPrintViewer.RemoveToolbarControl 方法

从工具栏中移除一个指定的操作按钮或其它功能项界面元素。

void RemoveToolbarControl(GRToolControlType ControlType);

参数

GRToolControlType ControlType

指定操作界面元素的类型 指定操作界面元素的类型

说明

在对工具栏中的操作界面元素调整完之后，应调用 UpdateToolbar 方法更新界面显示。

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRToolControlType 枚举 | IGRPrintViewer.ResetToolbarContent 方法 | IGRPrintViewer.AddToolbarControl 方法


IGridppReport.LoadDataFromURLEx 方法
[仅适用于WEB报表插件]

从指定的 URL 地址载入报表数据，返回数据必须为XML格式并符合约定的形式。

BOOL LoadDataFromURLEx(BSTR DataURL, BSTR DataParam);

返回值

BOOL

指定载入是否成功。

参数

BSTR DataURL

载入数据的URL。

BSTR DataParam

向服务器提供的额外参数。

说明

本方法会附加一个参数变量。当需要向服务器发送大数据参数时，即如果用 URL 包含参数超过了 URL 的长度限制，就应该用本方法访问服务器，参数单独组织为文字进行发送。

服务器应该取 Request 中的二进制数据包并解析出参数。下面是asp.net c#解析参数的代码：
protected void Page_Load(object sender, EventArgs e)
{
int FromBytes = Request.TotalBytes;
byte[] FormData = Request.BinaryRead(Request.TotalBytes);

UTF8Encoding Unicode = new UTF8Encoding();
int charCount = Unicode.GetCharCount(FormData, 0, FromBytes);
char[] chars = new Char[charCount];
int charsDecodedCount = Unicode.GetChars(FormData, 0, FromBytes, chars, 0);
String QuerySQL = new String(chars);

SqlReportData.GenNodeXmlData(this, QuerySQL, false);
}

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.LoadDataFromURL 方法 | IGridppReport.ExtractXMLFromURLEx 方法 | IGRPrintViewer.DataParam 属性 | IGRDisplayViewer.DataParam 属性


IGridppReport.ExtractXMLFromURLEx 方法
[仅适用于WEB报表插件]

从指定的 URL 获取XML数据包。

BSTR ExtractXMLFromURLEx(BSTR DataURL, BSTR DataParam);

返回值

BSTR

获得的 XML 数据文本。

参数

BSTR DataURL

获取数据的 URL。

BSTR DataParam

向服务器提供的参数。

说明

本方法会附加一个参数变量。当需要向服务器发送大数据参数时，即如果用 URL 包含参数超过了 URL 的长度限制，就应该用本方法访问服务器，参数单独组织为文字进行发送。

服务器应该取 Request 中的二进制数据包并解析出参数。下面是asp.net c#解析参数的代码：
protected void Page_Load(object sender, EventArgs e)
{
int FromBytes = Request.TotalBytes;
byte[] FormData = Request.BinaryRead(Request.TotalBytes);

UTF8Encoding Unicode = new UTF8Encoding();
int charCount = Unicode.GetCharCount(FormData, 0, FromBytes);
char[] chars = new Char[charCount];
int charsDecodedCount = Unicode.GetChars(FormData, 0, FromBytes, chars, 0);
String QuerySQL = new String(chars);

SqlReportData.GenNodeXmlData(this, QuerySQL, false);
}

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ExtractXMLFromURL 方法 | IGridppReport.LoadDataFromURLEx 方法


IGRDisplayViewer.DataParam 属性
[仅适用于WEB报表插件]

指定向服务器提供的参数。

BSTR DataParam

特征

可读写

设计器中可见

说明

当需要向服务器发送大数据参数时，即如果用 URL 包含参数超过了 URL 的长度限制，就应该用本方法访问服务器，参数单独组织为文字进行发送。

服务器应该取 Request 中的二进制数据包并解析出参数。下面是asp.net c#解析参数的代码：
protected void Page_Load(object sender, EventArgs e)
{
int FromBytes = Request.TotalBytes;
byte[] FormData = Request.BinaryRead(Request.TotalBytes);

UTF8Encoding Unicode = new UTF8Encoding();
int charCount = Unicode.GetCharCount(FormData, 0, FromBytes);
char[] chars = new Char[charCount];
int charsDecodedCount = Unicode.GetChars(FormData, 0, FromBytes, chars, 0);
String QuerySQL = new String(chars);

SqlReportData.GenNodeXmlData(this, QuerySQL, false);
}

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.DataURL 属性 | IGridppReport.LoadDataFromURLEx 方法 | 属性特征说明


IGRPrintViewer.DataParam 属性
[仅适用于WEB报表插件]

指定向服务器提供的参数。

VARIANT_BOOL DataParam

特征

可读写

设计器中可见

说明

当需要向服务器发送大数据参数时，即如果用 URL 包含参数超过了 URL 的长度限制，就应该用本方法访问服务器，参数单独组织为文字进行发送。

服务器应该取 Request 中的二进制数据包并解析出参数。下面是asp.net c#解析参数的代码：
protected void Page_Load(object sender, EventArgs e)
{
int FromBytes = Request.TotalBytes;
byte[] FormData = Request.BinaryRead(Request.TotalBytes);

UTF8Encoding Unicode = new UTF8Encoding();
int charCount = Unicode.GetCharCount(FormData, 0, FromBytes);
char[] chars = new Char[charCount];
int charsDecodedCount = Unicode.GetChars(FormData, 0, FromBytes, chars, 0);
String QuerySQL = new String(chars);

SqlReportData.GenNodeXmlData(this, QuerySQL, false);
}

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | IGRPrintViewer.ReportURL 属性 | IGridppReport.LoadDataFromURLEx 方法 | 属性特征说明


IGridppReport.ParentReport 属性

指定子报表对象的主报表引用

IGridppReport *ParentReport

特征

只读

说明

指定子报表对象的主报表引用，如果是非子报表对象，本属性值为空(NULL)。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport 接口 | IGRSubReport 接口 | 属性特征说明


IGridppReport.GeneratePagesBegin 事件

在产生打印页面数据之前触发本事件。

void GeneratePagesBegin(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.GeneratePagesEnd 事件 | IGridppReport.PageProcessRecord 事件


IGridppReport.GeneratePagesEnd 事件

在产生打印页面数据完成后触发本事件。

void GeneratePagesEnd(void);

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.GeneratePagesBegin 事件 | IGridppReport.PageProcessRecord 事件


IGRGraphics.Arc 方法

按照指定的园根据起止角度画出弧线。

void Arc(LONG x, LONG y, LONG r, DOUBLE BeginAngleDegree, DOUBLE EndAngleDegree);

参数

LONG x

指定圆心的位置X。

LONG y

指定圆心的位置Y。

LONG r

指定园的半径。

DOUBLE BeginAngleDegree

指定开始角度，以度为单位。

DOUBLE EndAngleDegree

指定结束角度，以度为单位。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.EllipseArc 方法 | IGRGraphics.Pie 方法 | IGRGraphics.EllipsePie 方法


IGRGraphics.EllipseArc 方法

在指定的矩形区域中根据起止角度画出椭圆弧线。

void EllipseArc(LONG left, LONG top, LONG width, LONG height, DOUBLE BeginAngleDegree, DOUBLE EndAngleDegree);

参数

LONG left

指定矩形的左端位置。

LONG top

指定矩形的上端位置。

LONG width

指定矩形的宽度。

LONG height

指定矩形的高度。

DOUBLE BeginAngleDegree

指定开始角度，以度为单位。

DOUBLE EndAngleDegree

指定结束角度，以度为单位。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Arc 方法 | IGRGraphics.Ellipse 方法 | IGRGraphics.EllipsePie 方法 | IGRGraphics.Pie 方法


IGRGraphics.EllipsePie 方法

在指定的矩形区域中根据起止角度画出椭圆扇形。

void EllipsePie(LONG left, LONG top, LONG width, LONG height, LONG BeginAngleDegree, LONG EndAngleDegree, VARIANT_BOOL ToFill);

参数

LONG left

指定矩形的左端位置。

LONG top

指定矩形的上端位置。

LONG width

指定矩形的宽度。

LONG height

指定矩形的高度。

LONG BeginAngleDegree

指定开始角度，以度为单位。

LONG EndAngleDegree

指定结束角度，以度为单位。

VARIANT_BOOL ToFill

指定是否进行背景填充。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.Arc 方法 | IGRGraphics.Ellipse 方法 | IGRGraphics.EllipseArc 方法 | IGRGraphics.Pie 方法


IGRGraphics.OutStringCalcWidth 方法

计算用当前字体设置输出指定文字的宽度。

LONG OutStringCalcWidth(BSTR String);

返回值

LONG

指定文字的输出宽度。

参数

BSTR String

进行计算的文字串。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.OutStringCalcHeight 方法 | IGRGraphics.OutString 方法


IGRGraphics.OutStringCalcHeight 方法

计算用当前字体设置输出指定文字的高度。

LONG OutStringCalcHeight(BSTR String);

返回值

LONG

指定文字的输出高度。

参数

BSTR String

进行计算的文字串。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.OutStringCalcWidth 方法 | IGRGraphics.OutString 方法


IGRGraphics.FontPointChangeTo 方法

将当前的字体点数重新设置为指定值。

void FontPointChangeTo(FLOAT Point);

参数

FLOAT Point

要设置的字体点数，可以带小数位。

说明

将当前的字体点数重新设置为指定值，后面输出的文字将按新的字体大小输出。本方法必须与 FontPointRestore 方法成对调用，开始应用 FontPointChangeTo 方法设置字体大小，当应用字体大小设置输出任务完成后，必须调用 FontPointRestore 方法恢复字体设置。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.FontPointRestore 方法 | IGRGraphics.OutString 方法 | IGRGraphics.FontClone 方法


IGRGraphics.FontPointRestore 方法

恢复用 FontPointChangeTo 方法修改后的字体设置。

void FontPointRestore(void);

说明

本方法必须与 FontPointChangeTo 方法成对调用，开始应用 FontPointChangeTo 方法设置字体大小，当应用字体大小设置输出任务完成后，必须调用 FontPointRestore 方法恢复字体设置。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.FontPointChangeTo 方法


IGRGraphics.FontClone 方法

根据当前字体设置复制创建一个新的字体对象。

IFont *FontClone(void);

返回值

IFont *

新创建的字体对象引用。

说明

使用本对象创建一个新的字体对象，然后对此新字体对象的属性进行修改，然后用 SelectFont 方法应用新字体设置，然后进行文字输出。

请参见

IGRGraphics 接口 | IGRGraphics 成员 | IGRGraphics.SelectFont 方法 | IGRGraphics.OutString 方法 | IGRGraphics.FontPointChangeTo 方法


IGridppReport.BackImagePrint 属性

IGridppReport.BackImagePrint(背景图打印) 属性

指定在打印输出、导出PDF、导出图像时是否输出背景图。

VARIANT_BOOL BackImagePrint

默认值

FALSE

特征

可读写

设计器中可见

说明

指定在打印输出、导出PDF、导出图像时是否输出背景图。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.BackImage 属性 | IGridppReport.BackImagePreview 属性 | 属性特征说明


IGRCrossTab.VResort 属性

IGRCrossTab.VResort(纵向重排序) 属性

指示纵向交叉数据是否按纵向交叉字段重新排序。

VARIANT_BOOL VResort

默认值

TRUE

特征

可读写

设计器中可见

说明

特别提示：如果将此属性设置为“否(false)”，交叉表在生成时将不会根据纵向交叉字段对数据重新进行排序，则交叉报表的原始记录数据顺序必须按纵向交叉字段的值聚集在一起，即同一纵向交叉项的记录数据连片在一起，通常如按纵向交叉字段在查询SQL中进行排序就能满足这样的要求。

请参见

IGRCrossTab 接口 | IGRCrossTab 成员 | IGRCrossTab.VSortAsc 属性 | IGRCrossTab.VCrossFields 属性 | IGRCrossTab.HResort 属性 | 属性特征说明


IGRGroupFooter.AppendBlankRowExclude 属性

IGRGroupFooter.AppendBlankRowExclude(追加空白行排除) 属性

是否将分组尾行从空白行的计数中排除。

VARIANT_BOOL AppendBlankRowExclude

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

当明细网格设定追加空白行且指定了每页行数，本属性指定是否将本行作为本页中的一行对待。假设每页指定输出10行，数据行已输出6行，如果本属性为FALSE，则补充3行空白行，反之补充4行空白行。

请参见

IGRGroupFooter 接口 | IGRGroupFooter 成员 | IGRDetailGrid.AppendBlankRow 属性 | IGRColumnContent.RowsPerPage 属性 | IGRReportFooter.AppendBlankRowExclude 属性 | 属性特征说明


IGRReportFooter.AppendBlankRowExclude 属性

IGRReportFooter.AppendBlankRowExclude(追加空白行排除) 属性

是否将报表尾行从明细网格的空白行计数中排除。

VARIANT_BOOL AppendBlankRowExclude

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

当明细网格设定追加空白行且指定了每页行数，本属性指定是否将本报表尾行作为本页中的一行对待。假设每页指定输出10行，数据行已输出6行，如果本属性为FALSE，则补充3行空白行，反之补充4行空白行。

请参见

IGRReportFooter 接口 | IGRReportFooter 成员 | IGRGroupFooter.AppendBlankRowExclude 属性 | IGRDetailGrid.AppendBlankRow 属性 | IGRColumnContent.RowsPerPage 属性 | 属性特征说明


IGRChart.Chart3D 属性

IGRChart.Chart3D(图表三维) 属性

指定是否以三维图形方式显示，此属性仅对柱图与饼图有效。

VARIANT_BOOL Chart3D

默认值

FALSE

特征

可读写

设计器中可见

说明

目前仅柱图与饼图支持三维图形显示。

请参见

IGRChart 接口 | IGRChart 成员 | 属性特征说明


IGRPictureBox.ImageFile 属性

IGRPictureBox.ImageFile(图像文件) 属性

指定图像框关联的图像路径文件名，既可以使本地文件名，也可以WEB服务器上的URL。

BSTR ImageFile

特征

可读写

设计器中可见

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | IGRPictureBox.Picture 属性 | IGRPictureBox.ImageIndex 属性 | IGRPictureBox.DataField 属性 | 属性特征说明


IGRMemoBox.HtmlTags 属性

IGRMemoBox.HtmlTags(支持HTML标签) 属性

指定是否支持解析显示文字中的HTML标签。

VARIANT_BOOL HtmlTags

默认值

FALSE

特征

可读写

设计器中可见

说明

综合文字框只支持部分HTML标签，目前支持的标签类型有：

  1. <b>...</b> 文字粗体

  2. <i>...</i> 文字斜体

  3. <u>...</u> 文字下划线

  4. <strike>...</strike> 文字删除线

  5. <p>...</p> 文字段落换行

  6. <sub>...</sub> 下标

  7. <sup>...</sup> 上标

  8. <font color=...>...</font> 文字颜色，颜色值支持两种表示方式：rgb与16进制，如:<font color=#FFAA88>，<font color=#RGB(255,128,64)>

  9. <font size=n>..........</font> 文字大小，参数n为字体的点数，可以带小数点

  10. <font face="字体名称">..........</font> 字体名称，参数为有效的字体名称

请参见

IGRMemoBox 接口 | IGRMemoBox 成员 | 属性特征说明


IGRDesigner.BeforeDoAction 事件

在报表执行每个任务动作前触发本事件，任务动作对应DoAction方法所能执行的任务。

void BeforeDoAction(GRDesignerAction Action);

参数

GRDesignerAction Action

指定触发事件的任务动作。

说明

如果将DefaultAction属性值改为FALSE，可以屏蔽控件本身的动作行为，开发者可以在事件中实现自己的任务。如在“grdaSetupDBQuery”动作中可以实现自己的数据源与查询SQL设置界面。模拟代码如下：

if (Action == grdaSetupDBQuery)
{
Designer.DefaultAction = false; //屏蔽控件本身的行为

//显示自己的数据源与查询SQL设置界面
... ...
var Done = ...;

if ( Done )
{
Designer.Post(); //提交当前编辑的数据
Report.ConnectionString = ...;
Report.QuerySQL = ...;
Designer.Reload(); //重新载入报表数据
}
}

请参见

IGRDesigner 接口 | IGRDesigner 成员 | GRDesignerAction 枚举 | IGRDesigner.DoAction 方法 | IGRDesigner.DefaultAction 属性 | GRDesignerAction 枚举


GRPreviewEditMode 枚举

指定报表预览时文字的即时编辑模式。

成员名称 | 枚举值 | 说明
grpemDisable | 1 | 不开启文字编辑功能。
grpemClickToEdit | 2 | 单击文字进行即时编辑。
grpemDblClickToEdit | 3 | 双击文字进行即时编辑。

请参见

IGRPrintViewer.EditMode 属性


IGRBarCode.PDF417Rows 属性

IGRBarCode.PDF417Rows(PDF417行数) 属性

专用于PDF417，指定条码的行数，值范围0-90，0为自动计算确定。

SHORT PDF417Rows

默认值

0

特征

可读写

设计器中可见

说明

专用于PDF417，指定条码的纠错等级，值范围0-8，0为自动计算确定。

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.PDF417Columns 属性 | IGRBarCode.PDF417ErrorLevel 属性 | IGRBarCode.PDF417Simple 属性 | 属性特征说明


IGRBarCode.PDF417Columns 属性

IGRBarCode.PDF417Columns(PDF417列数) 属性

专用于PDF417，指定条码每行的编码字节个数，0为自动计算确定。

SHORT PDF417Columns

默认值

0

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.PDF417Rows 属性 | IGRBarCode.PDF417ErrorLevel 属性 | IGRBarCode.PDF417Simple 属性 | 属性特征说明


IGRBarCode.PDF417ErrorLevel 属性

IGRBarCode.PDF417ErrorLevel(PDF417纠错等级) 属性

专用于PDF417，指定条码的纠错等级，值范围0-8，0为自动计算确定。

SHORT PDF417ErrorLevel

默认值

0

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.PDF417Columns 属性 | IGRBarCode.PDF417Rows 属性 | IGRBarCode.PDF417Simple 属性 | 属性特征说明


IGRBarCode.PDF417Simple 属性

IGRBarCode.PDF417Simple(PDF417截短) 属性

专用于PDF417，指定是否进行截短简化，简化的PDF417图形将省略右边的标识符并将终止符缩减为一个模块。

VARIANT_BOOL PDF417Simple

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.PDF417Columns 属性 | IGRBarCode.PDF417ErrorLevel 属性 | IGRBarCode.PDF417Rows 属性 | 属性特征说明


IGRBarCode.QRCodeErrorLevel 属性

IGRBarCode.QRCodeErrorLevel(QRCode纠错等级) 属性

专用于QRCode条码，指定纠错等级，取值范围1-4，对应L,M,Q,H纠错等级。

SHORT QRCodeErrorLevel

默认值

1

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.QRCodeMask 属性 | IGRBarCode.QRCodeVersion 属性 | 属性特征说明


IGRBarCode.QRCodeVersion 属性

IGRBarCode.QRCodeVersion(QRCode版本) 属性

专用于QRCode条码，指定版本号，取值范围0-40，0为自动确定。

SHORT QRCodeVersion

默认值

0

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.QRCodeErrorLevel 属性 | IGRBarCode.QRCodeMask 属性 | 属性特征说明


IGRBarCode.QRCodeMask 属性

IGRBarCode.QRCodeMask(QRCode掩模) 属性

专用于QRCode条码，指定掩码模式，取值范围0-8，0为自动确定。

SHORT QRCodeMask

默认值

0

特征

可读写

设计器中可见

请参见

IGRBarCode 接口 | IGRBarCode 成员 | IGRBarCode.QRCodeErrorLevel 属性 | IGRBarCode.QRCodeVersion 属性 | 属性特征说明


IGRPrintViewer.EditMode 属性

指定报表文字在预览时的即时编辑模式，默认为不可编辑。

GRPreviewEditMode EditMode

默认值

grpemDisable

特征

可读写

设计器中可见

请参见

IGRPrintViewer 接口 | IGRPrintViewer 成员 | GRPreviewEditMode 枚举 | 属性特征说明


GRSheetPages 枚举

指定打印输出时每页输出版数

成员名称 | 枚举值 | 说明
grsp1Pages | 1 | 指定版面数为1，也就是最常规的单版面输出方式
grsp2Pages | 2 | 指定版面数为2
grsp4Pages | 3 | 指定版面数为4
grsp6Pages | 4 | 指定版面数为6
grsp8Pages | 5 | 指定版面数为8
grsp16Pages | 6 | 指定版面数为16

说明

报表页输出时可以指定每页输出的版面数量，可以分别指定1、2、4、6、8、16等数量，这个枚举指定可用的各种版数。

请参见

IGRPrinter.SheetPages 属性


IGRSubReport.ParentPageSettings 属性

IGRSubReport.ParentPageSettings(主表页面设置) 属性

指定子报表是否应用主表的页面设置参数。

VARIANT_BOOL ParentPageSettings

默认值

TRUE

特征

可读写

设计器中可见

说明

当此属性为FALSE，且子报表是独立产生的子报表时，子报表将应用其自身的页面设置参数。其它情况下子报表将应用主表的页面设置参数，自己的页面设置参数将不会被使用。页面设置参数包括纸张的类型、方向与页边距。

当子报表是报表头或报表尾中的唯一部件框，且子报表的本属性值为“FALSE”，这样的子报表就是独立产生的子报表。

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.ResetPageNumber 属性 | IGRSubReport.ToNewExcelSheet 属性 | 属性特征说明


IGRSubReport.ResetPageNumber 属性

IGRSubReport.ResetPageNumber(重置页号) 属性

指定子报表产生时是否重新开始计数页号与页数。

VARIANT_BOOL ResetPageNumber

默认值

FALSE

特征

可读写

设计器中可见

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.ParentPageSettings 属性 | 属性特征说明


IGRPrinter.SheetPages 属性

IGRPrinter.SheetPages(每页版数) 属性

指定在打印输出纸张上每页输出的页面版数

GRSheetPages SheetPages

默认值

grsp1Pages

特征

可读写

设计器中可见

说明

通常在报表的 PrintBegin 事件中用代码设置与多版面打印相关的属性，下面代码就是用 JavaScript 响应 PrintBegin 事件的示例：

<SCRIPT LANGUAGE="JavaScript" FOR="Report" EVENT="PrintBegin()">

<!--

Report.Printer.PrintRangeType = 3; //grprtSelectionPages 指定的页范围

Report.Printer.SelectionPrintPages = "1,8,2,4,3,6,4,5"; //指定要打印的页，及输出顺序

Report.Printer.SheetPages = 2; //每页版面数为2

Report.Printer.SheetPaperSize = 8; //指定版面的实际输出为A3纸张

-->

</SCRIPT>

请参见

IGRPrinter 接口 | IGRPrinter 成员 | GRSheetPages 枚举 | IGRPrinter.SheetPaperSize 属性 | IGridppReport.PrintBegin 事件 | 属性特征说明


IGRPrinter.SheetPaperSize 属性

IGRPrinter.SheetPaperSize(缩放纸张纸型) 属性

指定实际输出纸张的类型，如果为0，则按报表生成的纸张类型进行打印，这种方式也是默认的方式。

SHORT SheetPaperSize

默认值

0

特征

可读写

设计器中可见

说明

通常在报表的 PrintBegin 事件中用代码设置与多版面打印相关的属性，下面代码就是用 JavaScript 响应 PrintBegin 事件的示例：

<SCRIPT LANGUAGE="JavaScript" FOR="Report" EVENT="PrintBegin()">

<!--

Report.Printer.PrintRangeType = 3; //grprtSelectionPages 指定的页范围

Report.Printer.SelectionPrintPages = "1,8,2,4,3,6,4,5"; //指定要打印的页，及输出顺序

Report.Printer.SheetPages = 2; //每页版面数为2

Report.Printer.SheetPaperSize = 8; //指定版面的实际输出为A3纸张

-->

</SCRIPT>

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.SheetPages 属性 | IGRPrinter.PaperSize 属性 | IGridppReport.PrintBegin 事件 | 属性特征说明


IGridppReport.MirrorMargins 属性

IGridppReport.MirrorMargins(镜像左右页边距) 属性

指定是否镜像左右页边距打印输出报表。

VARIANT_BOOL MirrorMargins

默认值

FALSE

特征

可读写

设计器中可见

说明

当双面打印报表时，设定本属性为“是”，让左右页边距按镜像方式产生，这样方便报表的装订。

请参见

IGridppReport 接口 | IGridppReport 成员 | 属性特征说明


IGRSubReport.ToNewExcelSheet 属性

IGRSubReport.ToNewExcelSheet(导出到新工作表) 属性

在报表导出Excel时，是否将此子报表导出到一个新的工作表。

VARIANT_BOOL ToNewExcelSheet

特征

可读写

设计器中可见

说明

此属性仅当子报表为独立子报表时才有效，即子报表为报表头尾中的唯一部件框，且其“主表页面设置”属性为“否”。

请参见

IGRSubReport 接口 | IGRSubReport 成员 | IGRSubReport.ParentPageSettings 属性 | IGRE2XLSOption 接口 | 属性特征说明


IGRGroupSection.NewPageColumn 属性

IGRGroupSection.NewPageColumn(换新页栏) 属性

指定强制换新页栏的方式。

GRNewPageColumnStyle NewPageColumn

默认值

drncsNone

特征

可读写

设计器中可见

仅用于打印

说明

指定分组头尾在输出前与输出后产生新页栏的方式，此属性常用于多栏报表在分组开始或结束时产生新页栏。

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | GRNewPageColumnStyle 枚举 | IGRGroupSection.NewPage 属性 | IGRDetailGrid.PageColumnCount 属性 | 属性特征说明


IGridppReport.ConnectionString 属性

IGridppReport.ConnectionString(数据库连接) 属性

指定连接到数据源的连接串。

BSTR ConnectionString

特征

可读写

设计器中可见

说明

如果报表主对象的“数据库连接”属性不指定，报表主对象的查询SQL将自动应用明细记录集上的数据库连接设置。如果报表是子报表，还将自动应用其父报表的数据库连接设置。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.QuerySQL 属性 | IGridppReport.SkipQuery 属性 | IGRRecordset.ConnectionString 属性 | 属性特征说明


IGridppReport.QuerySQL 属性

IGridppReport.QuerySQL(查询SQL) 属性

从数据源中取数的SQL语句。

BSTR QuerySQL

特征

可读写

设计器中可见

说明

报表参数查询SQL通常只返回一条记录，即使返回多条记录，Grid++Report也只应用第一条记录，将各个子段值自动传递给同名的参数与部件框。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.ConnectionString 属性 | IGridppReport.SkipQuery 属性 | 属性特征说明


IGridppReport.SkipQuery 属性

IGridppReport.SkipQuery(忽略数据查询) 属性

指示在生成报表时，是否忽略从数据源取数的属性设置。

VARIANT_BOOL SkipQuery

默认值

FALSE

特征

可读写

设计器中可见

说明

如果本属性为TRUE，报表生成时将不会应用查询SQL取数。

请参见

IGridppReport 接口 | IGridppReport 成员 | IGridppReport.QuerySQL 属性 | IGridppReport.ConnectionString 属性 | 属性特征说明


IGRDisplayViewer.ResizeToFit 属性

指定是否对报表节的大小进行缩放，以适应本控件窗口的大小，以便所有报表节都完整显示出来。

VARIANT_BOOL ResizeToFit

默认值

FALSE

特征

可读写

设计器中可见

说明

此属性仅当控件中显示的报表没有明细网格时有效。如果本属性值为真，报表中的所有报表头尾节的高度将按加权比例进行伸缩，高度之和与本控件的高度保持一样，所有报表头尾节的宽度也将伸缩与本控件的宽度一样。如果本属性值为假，则所有报表头尾节的大小保持不变，如果超出范围，本控件将自动产生滚动条，通过滚动可以完整查看整个报表的内容。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | 属性特征说明


IGRDisplayViewer.BatchGetRecord 属性

指定是否为分批获取报表明细记录数据。

VARIANT_BOOL BatchGetRecord

默认值

FALSE

特征

可读写

设计器中可见

说明

当报表的明细数据量比较大时，可以将此属性设置为TRUE，指示报表的明细数据将分批获取。分批获取报表数据时，WEB报表插件在请求数据时将触发本控件的 BatchFetchRecord 事件，C/S报表组件在请求数据时将触发报表主对象的 FetchRecord 事件，在事件中将一个批次的数据填入到报表中。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.TotalRecord 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.BatchWantRecords 属性

指定一个批次希望获取的记录数量，如果为0，将由数据提供者自己确定一个批次获取的记录数量。

LONG BatchWantRecords

默认值

0

特征

可读写

设计器中可见

说明

如果本属性值大于0，当某批次取得的记录数小于本属性值，报表将认为数据已经全部取完。反之只有当某批次取得的记录数为0，报表认为数据已经全部取完。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.TotalRecord 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.TotalRecord 属性

在分批次获取报表明细数据，且当获取第一批次的数据时，指定全部记录总数。

LONG TotalRecord

默认值

-1

特征

可读写

说明

此属性只能在 BatchFetchRecrod 事件上设置，本属性值自动设置为-1，表示记录总数是未知的。

在分批次获取报表明细数据时，指定本属性的值并不是必须的。如果能在取第一批次的数据时指定全部记录总数，有助于报表查询显示器产生更准确的分页信息或滚动条信息，如果报表没有分组，将能产生精确无误的分页信息或滚动条信息。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.BatchFinished 属性

指示在分批次获取报表明细记录时，所有数据已经全部获取完备。

VARIANT_BOOL BatchFinished

特征

可读写

说明

此属性只能在 BatchFetchRecrod 事件上设置。

Grid++Report 会根据返回的记录数自动确定数据是否全部取完。报表开发者也可以在在 BatchFetchRecrod 事件上设置 BatchFinished 属性值为 TRUE 指示数据已经取完，这样报表将不会再请求批次数据，BatchFetchRecrod 事件也不会再被触发。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.TotalRecord 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.BatchNo 属性

指示在分批次获取报表明细记录时，指示当前请求数据的批次序号，序号从1开始。

LONG BatchNo

特征

只读

说明

此属性只有在 BatchFetchRecrod 事件上读取才有意义，报表开发者根据其值获取对应批次的数据。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.TotalRecord 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.BatchStartRecNo 属性

指示在分批次获取报表明细记录时，指示当前请求数据的开始记录序号，记录序号从0开始。

LONG BatchStartRecNo

特征

只读

说明

此属性只有在 BatchFetchRecrod 事件上读取才有意义，报表开发者根据其值获取对应批次的数据。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.TotalRecord 属性 | IGRDisplayViewer.BatchFetchRecord 事件 | 属性特征说明


IGRDisplayViewer.ShowColumnVisibleDlg 方法

打开报表列可见性设置对话框，在此对话框中可以设置列是否显示。

void ShowColumnVisibleDlg(void);

说明

报表中的锁定列不允许设置可见性，必须一直显示。设置时，必须保持至少有一个列是可见的。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.SetColumnVisible 方法


IGRDisplayViewer.BatchFetchRecord 事件

当分批次请求报表明细数据时触发本事件。

void BatchFetchRecord(void);

说明

当本控件的 BatchGetRecord 属性为 TRUE 时，在显示报表的过程中将触发本事件，当不端向后浏览报表数据时，本事件将不断被触发，直至全部数据被取完。分批次获取报表数据适合于大数据量报表，避免报表在打开之初产生并传输大量数据，改善整个报表的运行性能。

报表开发者在本事件中根据数据批次信息载入对应批次的明细记录数据。

此事件目前仅提供给WEB报表插件，C/S报表组件分批次请求数据还是触发报表引擎对象的 FetchRecord 事件。

请参见

IGRDisplayViewer 接口 | IGRDisplayViewer 成员 | IGRDisplayViewer.BatchGetRecord 属性 | IGRDisplayViewer.BatchNo 属性 | IGRDisplayViewer.BatchStartRecNo 属性 | IGRDisplayViewer.BatchWantRecords 属性 | IGRDisplayViewer.BatchFinished 属性 | IGRDisplayViewer.TotalRecord 属性


IGRDetailGrid.GridLinePrintType 属性

IGRDetailGrid.GridLinePrintType(行列线打印类别) 属性

指定明细网格的行列线的打印输出方式。

GRPrintType GridLinePrintType

默认值

grptForm

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRPrintType 枚举 | IGRDetailGrid.BorderPrintType 属性 | GRPrintGenerateStyle 枚举 | IGRColumnCell.PrintType 属性 | 属性特征说明


IGRDetailGrid.BorderPrintType 属性

IGRDetailGrid.BorderPrintType(边框打印类别) 属性

指定明细网格的边框的打印类别。

GRPrintType BorderPrintType

默认值

grptForm

特征

可读写

设计器中可见

请参见

IGRDetailGrid 接口 | IGRDetailGrid 成员 | GRPrintType 枚举 | IGRDetailGrid.GridLinePrintType 属性 | GRPrintGenerateStyle 枚举 | IGRColumnCell.PrintType 属性 | 属性特征说明


IGRPrinter.PrintOffsetSaveToLocal 属性

指示是否将打印偏移量保存在客户端本地机器上。

VARIANT_BOOL PrintOffsetSaveToLocal

默认值

FALSE

特征

可读写

设计器中可见

仅用于打印

说明

设置此属性为TRUE，此报表每次打印时，将把其设置的打印偏移量保存在本地电脑上，在以后再次打印此报表时，保存的打印偏移量将会自动应用上，这样就可以做到一次设置好的打印偏移量后续持续使用。不同电脑分别保存自己的打印偏移量，同一电脑中根据打印机名称为不同的打印机保存各自的打印偏移量，这样就实现了同一报表用不同的打印机打印时可以应用各自的打印偏移设置。

打印偏移保存在本地电脑的功能对票据打印(套打)非常有用，开发者只要在设计时勾选开启此功能，不用编写任何代码。

请参见

IGRPrinter 接口 | IGRPrinter 成员 | IGRPrinter.PrintOffsetX 属性 | IGRPrinter.PrintOffsetY 属性 | IGRPrinter.PrintDialog 方法 | 属性特征说明


IGRE2PDFOption.AnsiTextMode 属性

指定是否将文本数据编码为ANSI字符方式。

VARIANT_BOOL AnsiTextMode

默认值

TRUE

特征

可读写

设计器中可见

说明

如果此属性为FALSE，则文本内容将编码为字体图形方式，这种方式能很好解决乱码问题，但可能存在Windows XP与Windows7下产生的PDF文件互不相认的问题。

PDF导出乱码原因与解决办法:
1、一般是因为报表中的“字体“属性中的“字符集”没有设为对应的语言。
2、报表主对象的字体属性中的“字符集”要设对，不应该是“西方”
3、检查对应部件框或单元格的字体属性中的“字符集”要设对，不应该是“西方”
4、如果是简体中文，字符集应该是GB2312，如果是繁体，字符集应该是CHINESE_BIG5
5、尝试将PDF导出对话框的“ANSI文字编码”项不勾选，以新的方式进行PDF导出。

请参见

IGRE2PDFOption 接口 | IGRE2PDFOption 成员 | 属性特征说明


IGRGroupSection.HNewPageFixed 属性

IGRGroupSection.HNewPageFixed(横向分页锁定) 属性

指定在横向分页打印时，分组头尾是否锁定始终打印页面左边的内容。

VARIANT_BOOL HNewPageFixed

默认值

FALSE

特征

可读写

设计器中可见

说明

在横向分页生成报表页面时，如果希望分组头或分组页始终显示输出左边的内容，应该设置本属性为“是”。否则分组头或分组页根据横向分页的偏移显示对应位置处的内容。

请参见

IGRGroupSection 接口 | IGRGroupSection 成员 | IGRDetailGrid.PrintAdaptMethod 属性 | 属性特征说明


GRPictureTransparentMode 枚举

指定图像透明显示的方式

成员名称 | 枚举值 | 说明
grptmNone | 1 | 不透明
grptmOverlying | 2 | 叠加透明
grptmBackground | 3 | 背景透明

请参见

IGRPictureBox.TransparentMode 属性


IGRPictureBox.TransparentMode 属性

IGRPictureBox.TransparentMode(透明显示) 属性

指定图像的透明显示方式。

GRPictureTransparentMode TransparentMode

默认值

grptmNone

特征

可读写

设计器中可见

请参见

IGRPictureBox 接口 | IGRPictureBox 成员 | GRPictureTransparentMode 枚举 | 属性特征说明


IGRRecordset.SaveDataToXML 方法

将记录集中的数据保存为XML文本。

BSTR SaveDataToXML(void);

返回值

BSTR

XML文本数据

说明

XML数据格式如下：

HUNGC 五金机械苏先生大连(053) 5556874
CENTC 三捷实业王先生大连(061) 15553392
CACTU 威航货运有限公司刘先生大连(061) 11355555
BLONP 国皓黄雅玲大连(0671) 88601531

请参见

IGRRecordset 接口 | IGRRecordset 成员


IGRE2CSVOption.TextEncode 属性

指定文字的编码类型。

GRTextEncodeMode TextEncode

默认值

ANSI

特征

可读写

设计器中可见

请参见

IGRE2CSVOption 接口 | IGRE2CSVOption 成员 | GRTextEncodeMode 枚举 | 属性特征说明


介绍

在服务器部署插件安装包 - WEB报表

关于报表插件CAB安装包

在部署用 Grid++Report WEB报表插件开发的系统时，需要将插件安装包一同分发在WEB服务器上，插件安装包是一个扩展名为.CAB的压缩文件，里面包含了插件程序及自动安装信息。本软件的CAB包文件名为：griectl.cab，在本软件的安装目录(通常为: C:\Grid++Report 5.0)下可以找到。

CAB插件安装包用于没有安装报表插件的客户端机器上进行报表插件的自动安装和以后版本的自动升级。客户端第一次浏览含有报表插件的网页时，IE浏览器会提示下载报表插件。点击是，进行安装，安装完成后，不会再提示下载安装，除非有更新版本的报表插件。

在服务器部署插件CAB安装包

将插件安装包文件 griectl.cab 上传至WEB服务器的一个可下载的目录，在浏览器的地址栏输入 griectl.cab 这个文件的URL，要保证能下载这个文件，假设是上传在网站的根目录,服务器 IP 为192.168.1.10，从“http://192.168.1.10/griectl.cab”这个地址能下载 griectl.cab。

在报表网页中关联报表插件CAB安装包

在包含插件的网页中，在定义插件对象时，通过 codebase 属性指定cab包文件的url位置及版本号。如：codebase="/rootpath/path/griectl.cab#Version=5,0,9,518"，指定文件位置从网站根目录寻址的URL：/rootpath/path/griectl.cab，版本号为5,0,9,518。Grid++Report WEB报表插件的版本前两位为程序主副版本号，后两位指定程序发布的年月日。

在指定cab包与报表参数相关url时，采用相对url值可以极大简化报表系统部署。建议griectl.cab从网站根目录开始寻址。而报表摸板URL(ReportURL)与报表数据URL(ReportDataURL)从报表网页的相对路径寻址。

如果采用例子中 CreateControl.js 那样的方式统一定义网页中的插件，只要改变这个文件中的 GridReportCodeBase 常量中的版本号。强烈建议采用 CreateControl.js 中提供的函数在网页中创建报表插件，当有很多报表相关网页时，只要替换 CreateControl.js 中的版本号，就可以实现所有报表相关网页的版本更新。

升级报表插件CAB安装包

在下载并安装新版本 Grid++Report 后，新的插件自动安装包文件“griectl.cab”在安装目录下，一般为“C:\Grid++Report 5.0\griectl.cab”。

升级报表插件过程：

  1. 获取新版本号：cab包文件可以用 winzip 或 winrar 解压展开，将鼠标光标停留在解压后的DLL文件上，可以查看到cab包的版本号。
  2. 将新的 griectl.cab 文件上传至的WEB服务器，覆盖掉原来旧版本的文件。
  3. 更新插件网页中 codebase 的 Version 值与当前包的版本号一致，如果采用例子中 CreateControl.js 那样的方式统一定义网页中的插件，只要改变这个文件中的版本号。

分析客户端不能自动下载安装报表插件的原因

  1. 因素1：插件定义中的 codebase 已经指定了插件安装包的下载URL，把此URL输入到浏览器的地址栏看能否正确下载来验证其正确性。详细请看前面的“在报表网页中关联报表插件CAB包”部分的说明。
  2. 因素2：客户端的 IE 浏览器的安全设置应该满足插件的自动下载安装要求，Grid++Report 报表插件经过了正规数字签名，默认设置都会自动下载安装。如何调整浏览器的安全设置请参考：http://www.rubylong.cn/WebReport/doc/setie.htm
  3. 因素3：客户端应该以管理员身份登录 Windows，这样才能保证插件下载后能正确自动安装。在 Windows 中通常只有管理员才有安装软件的权限。

分析原因：如果是所有客户端都不行，应该根据因素1解决问题。如果是个别客户端不行，根据因素2与因素3综合考虑排除问题。

客户端插件手工安装

在通常的情况下，插件都能从服务器上自动下载安装。如果客户端始终无法自动安装插件，锐浪软件提供独立插件安装程序，双击这个文件启动安装并完成安装过程。Grid++Report5插件客户端安装程序下载地址：http://www.rubylong.cn/download/griesetup5.zip。

参考

注册报表插件 | 在网页中插入报表对象 | 在网页中插入报表显示器插件 | 在网页中插入报表设计器插件


介绍

WEB报表插件介绍 - WEB报表

Grid++Report 插件适用于开发 B/S 结构的网络报表系统，是软件开发人员开发 WEB 报表的最佳选择。支持 Asp, Asp.net, Jsp, VbScript, JavaScript，PHP 等一切 Web 开发技术。可以在浏览器中直接打印报表（非IE打印）与导出报表。带有国际化数字签名，在 IE 中自动下载更方便，让用户使用更安全。

特点

  1. Grid++Report 插件与 Grid++Report 组件构建在相同的报表引擎之上，两者具有相同编程接口与相同报表格式定义，以及相同的知识学习过程，让您开发 B/S 系统与 C/S 系统共享相同的开发经验与开发资源。
  2. 网络报表界面美观，具有与桌面报表一样的报表展现功能与操作体验，大大改善浏览器中报表功能。
  3. 支持丰富的报表数据来源，远程OLE DB数据源直接访问、服务端数据集载入、客户端数据集与XML数据载入、以及一切可访问数据的加载。
  4. 数据经过高效压缩，极大减小数据网络传输量。
  5. 插件是一个纯客户端软件，支持一切 WEB 开发语言，如：ASP、ASP.Net、JSP、PHP等。客户端脚本支持VBScript、JavaScript。
  6. 带有国际化数字签名，让用户使用的更安全、更放心。
  7. Grid++Report 经过多年发展，用户数量众多，产品成熟稳定高效，易学以用。

组成部分：

  1. 报表打印显示插件：以打印预览的方式在 IE 浏览器中展现报表，并能打印输出或导出为多中格式文档(Excel、RTF、PDF、文本，CSV、图像等)。
  2. 报表查询显示插件：以类似数据网格(DataGrid)方式在 IE 浏览器中展现报表，其数据展现功能比常规的数据网格要强大得多。并可以打印或打印预览报表，或导出为多种格式文档(Excel、RTF、PDF、文本，CSV、图像等)。
  3. 报表对象：这是一个不可见的对象，也是本软件功能实现的核心对象，相当于报表引擎。在网页中创建这个对象，可以实现无界面打印，将Web数据直接打印出来，也可以执行数据导出功能。报表打印显示插件与报表查询显示插件都引用一个报表对象，在网页中与报表的交互主要就是访问报表对象及其子对象。
  4. 报表设计器插件：在网页中可视化设计报表模板，关联一个报表对象。

参考


如何向报表提供记录集数据

向报表同时提供明细记录数据与参数数据 - WEB报表

有些报表的参数数据也在服务端动态产生，希望将报表的参数数据与报表的明细记录数据同时提供给客户端报表插件。Grid++Report同样对这样的情况约定了XML数据样式，只要服务端按要求产生约定形式的XML数据即可。

数据统一打包时，报表明细记录数据部分的XML形式与前面的约定相同，而报表的参数数据部分也与明细记录的形式类似，但要求根节点名称必须为“_grparam”。

参数数据的每个下级节点表示一个参数，节点名称与报表的参数或部件框的名称对应。节点的值就是对应的报表参数的值，或为部件框的某个数据属性值。静态文本框、综合文本框与条形码对应其文本(Text)属性值，图像框对应其图像序号(ImageIndex)属性值或二进制图像数据，其它类型的部件框不能自动设置参数值。

明细记录数据与参数数据统一打包就是这两部分数据的串接，明细记录数据在前，在最外层要加上一个根节点。下面是一个样本数据：

<report>
<xml>
<row><CustomerID>BLONP</CustomerID><CompanyName>国皓</CompanyName><ContactName>黄雅玲</ContactName></row>
<row><CustomerID>CACTU</CustomerID><CompanyName>威航货运有限公司</CompanyName><ContactName>刘先生</ContactName></row>
<row><CustomerID>CENTC</CustomerID><CompanyName>三捷实业</CompanyName><ContactName>王先生</ContactName></row>
<row><CustomerID>HUNGC</CustomerID><CompanyName>五金机械</CompanyName><ContactName>苏先生</ContactName></row>
<row><CustomerID>MEREP</CustomerID><CompanyName>华科</CompanyName><ContactName>吴小姐</ContactName></row>
</xml>
<_grparam>
<Parameter1>Value1</Parameter1>
<Parameter2>Value2</Parameter2>
<StaticBox1>Text1</StaticBox1>
<MemoBox1>Text2</MemoBox1>
</_grparam>
</report>

套打发票例子（04.PrintInForm/InvoiceOne.htm）演示了这样的应用，报表的参数数据部分对应发票的表头与表尾信息，而报表的明细记录数据部分对应发票的明细数据行。

如果一个报表没有明细网格，则数据包就不需要包含明细数据部分，形如：

<report>
<_grparam>
<Parameter1>Value1</Parameter1>
<Parameter2>Value2</Parameter2>
<StaticBox1>Text1</StaticBox1>
<MemoBox1>Text2</MemoBox1>
</_grparam>
</report>

套打支票例子（04.PrintInForm/CheckDataFromServer.htm）演示了这样的应用，报表的参数数据部分对应支票中的各个数据项。

参考


如何向报表提供记录集数据

向报表提供记录集数据 - WEB报表

一般的报表都有一个明细表格，这个明细表格对应到一个记录集，这个记录集的数据也是报表的主体数据，如何向报表提供记录集数据就非常重要。Grid++Report 报表插件可以用多种方式获得记录集数据，一切在网络服务端与客户端可以访问的数据都可以载入到报表中。

特别提示：在没有特殊需求的情况下，应该采用“方式一”向报表提供数据，其它方式列出仅供在特殊需求情况下参考。

方式一：XML数据包

从指定的网页服务 URL 获得约定格式的XML数据，然后将XML数据加载到报表的明细记录集中，这个 URL 产生的XML数据必须满足约定格式。采用这种方式一般是在插件网页中指定 DataURL 参数，如：

<body style="margin:0">
<script language="javascript">
//用打印显示控件展现报表，从URL“../grf/1a.grf”获取报表模板定义，从URL“../data/xmlCustomer.aspx”获取报表XML数据，
CreatePrintViewer("../grf/1a.grf", "../data/xmlCustomer.aspx");
</script>
</body>

也可以通过报表对象的 LoadDataFromURL 方法从网页服务 URL 获得XML数据。

XML数据格式约定：

报表插件接受两种约定形式的XML数据：“形式1：在节点中包含数据方式”与“形式2：在属性中包含数据方式”。数据的最外层都要定义一个命名空间，名称不限定，然后是多个“row”数据项。

形式1：在节点中包含数据方式

在“Row”数据项下创建下级数据项，在下级数据项中包含字段数据，通过数据项名称指定数据对应的字段。数据形式如下：

<xml>
<row><CustomerID>BLONP</CustomerID><CompanyName>国皓</CompanyName><ContactName>黄雅玲</ContactName></row>
<row><CustomerID>CACTU</CustomerID><CompanyName>威航货运有限公司</CompanyName><ContactName>刘先生</ContactName></row>
<row><CustomerID>CENTC</CustomerID><CompanyName>三捷实业</CompanyName><ContactName>王先生</ContactName></row>
<row><CustomerID>HUNGC</CustomerID><CompanyName>五金机械</CompanyName><ContactName>苏先生</ContactName></row>
<row><CustomerID>MEREP</CustomerID><CompanyName>华科</CompanyName><ContactName>吴小姐</ContactName></row>
</xml>

说明：外层节点的名称可以随意命名，即“xml”与“row”对应节点的名称可以自由命名。内层节点的名称必须与报表中的字段名称保持一致。

形式2：在属性中包含数据方式

直接在“row”数据项的属性中包含数据，通过属性名称指定数据对应的字段。这种形式的数据中不能包含回车换行字符，建议不采用这种形式。数据形式如下：

<xml>
<row CustomerID="BLONP" CompanyName="国皓" ContactName="黄雅玲" />
<row CustomerID="CACTU" CompanyName="威航货运有限公司" ContactName="刘先生" />
<row CustomerID="CENTC" CompanyName="三捷实业" ContactName="王先生" />
<row CustomerID="HUNGC" CompanyName="五金机械" ContactName="苏先生" />
<row CustomerID="MEREP" CompanyName="华科" ContactName="吴小姐" />
</xml>

说明：外层节点的名称可以随意命名，即“xml”与“row”对应节点的名称可以自由命名。内层属性名称必须与报表中的字段名称保持一致。

关于报表XML数据的更多说明

二进制字段的数据经过BASE64编码后进行数据传递。以上XML数据在服务端可以进行压缩，这样可以极大减小网络数据传输量。各种开发语言如何产生这些XML数据的WEB程序实现代码在 Grid++Report 提供的相应例子中都有，开发者可以借鉴并重用这些相关代码，一般只需调整数据库连接参数即可。

Grid++Report 插件的决大多数演示例子采用这种方式。网上演示地址：http://www.rubylong.cn/webreport/。

方式二：OLE DB 直接访问数据源

通过 OLE DB 直接访问远程的数据源，这种方式是最简单的实现方式，不用编写任何脚本代码，只要在设计报表模板时指定好数据源连接串与查询SQL语句,前提条件是数据源可以被所有客户端访问。

WEB报表直接通过报表模板中的连接串与SQL获取数据的弊端：连接串中的数据库用户与密码信息是固定的，客户端必须具有直接访问数据库的权限，这样会有很大的安全局限性。WEB报表应该关联报表数据DataURL，从DataURL处获取XML数据,即上面的方式1，客户端肯定能访问WEB服务器，这样肯定不存在访问权限限制。

方式三：服务端根据记录集产生填充报表记录集脚本

在 Web 服务端访问数据源并打开报表对应的记录集，然后通过编历记录数据产生一笔笔填充报表记录集的客户端脚本，这些脚本在客户端运行时就会把服务端产生的记录数据写入到报表记录集。

例子“服务端产生填充报表数据的脚本”就是演示这种方式，这是一个 ASP 网页，对应的例子文件为“Misc\FillRecords.asp”。其它类型网页程序语言都可以实现这样的功能。下面是“Misc\FillRecords.asp”中的部分代码：

<% Do while (Not oRs.eof) %>
Recordset.Append();
fldCustomerID.Value = "<%=oRs("CustomerID")%>";
fldCompanyName.AsString = "<%=oRs("CompanyName")%>";
...
Recordset.Post();
<% oRs.MoveNext %>

上面的脚本在服务端运行之后，就会生成很多笔填充记录数据的脚本代码，在 IE 中打开“FillRecords.asp”并查看其源文件就可以这些代码，下面是从中摘录的部分代码：

Recordset.Append();
fldCustomerID.Value = "BLONP";
fldCompanyName.AsString = "国皓";
...
Recordset.Post();

Recordset.Append();
fldCustomerID.Value = "CACTU";
fldCompanyName.AsString = "威航货运有限公司";
...
Recordset.Post();

...

方式四：在客户端直接用脚本代码填充报表记录集

在网页客户端脚本调用 Grid++Report 插件的相关编程接口,将网页客户端可以访问到的数据填入到报表中。使用这种方式可以将网页客户端可以访问的各种各样的数据加载到报表中。

例子“用脚本代码填充报表数据”就是演示这种方式，对应的例子文件为“html\ManualFillRecord.htm”。这个例子将一些模拟数据加载到报表。在 IE 中打开“html\ManualFillRecord.htm”并查看其源文件就可以看到这些代码，下面是从中摘录的部分代码：

Recordset.Append();
fldC1.AsString = "First";
fldI1.AsInteger = 321;
fldF1.AsFloat = 123.45;
Recordset.Post();

Recordset.Append();
fldC1.AsString = "Second";
fldI1.AsInteger = 1234;
fldF1.AsFloat = 2345.78;
Recordset.Post();

参考


在网页中插入插件

在网页中插入报表设计器插件 - WEB报表

Grid++Report 报表设计器插件是一个 ActiveX 控件，报表设计器插件在网页中可视化的设计报表模板。

在网页中插入设计器插件：

<OBJECT classid="CLSID:76AB1C26-34A0-4898-A90B-74CCFF435C43" width="100%" height="100%" id="ReportDesigner" VIEWASTEXT>
<param name="LoadReportURL" value="http://www.mysite.com/webreport/grf/myreport.grf">
<param name="SaveReportURL" value="http://www.mysite.com/webreport/asp/DesignReportSave.asp">
</OBJECT>

codeBase：指定插件包的下载地址与最新版本号，用户在初次访问时会根据这个参数去下载并安装 Grid++Report 报表插件。在安装 Grid++Report 之后，在安装目录的 Web 子目录下有 griectl.cab 这个文件，应该把 griectl.cab 放在可供下载的网站上。其中的 http://www.mysite.cn/webreport/griectl.cab 应该替换为您网站上 griectl.cab 的 URL。

id：这个参数值表示插件的标识，这里参数值为"ReportDesigner" ，在脚本代码中通过 ReportDesigner 这个变量访问插件的方法与属性。

height 与 width 指定插件的高度与宽度。

PARAM NAME 定义的参数是可选的，一般初始设置 LoadReportURL 与 SaveReportURL 这两个参数。ReportURL 指定要设计的报表模板的 URL，在实际中应该替换为对应报表模板的 URL。Save ReportURL 参数指定保存报表模板的 URL，由此 URL 提供的WEB服务将设计结果进行持久保存，如保存到文件或数据库。

提醒：务必将 codeBase、LoadReportURL 与 SaveReportURL参数的值替换为您的实际值。

实际应用说明

在 Grid++Report 提供的例子中，在“CreateControl.js”中定义了一些在网页中插入各种报表对象的脚本函数。建议开发者采用其中的函数来定义插件对象，而不是采用上面的方式，上面的方式在日常维护与插件升级时不太方便，举这样的例子只是为了让大家更好的理解插件插入网页的形式。

CreateDesigner 与 CreateDesignerEx 函数是用来在网页中插入设计器插件的，其参数说明请参考函数代码中的注释。

CreateDesignerEx 可以指定更多的参数，通过最后一个参数可以在创建插件时指定插件的属性值。插件的具体属性参考 IGRDesigner 接口的说明。如果希望设计器只显示普通视图与页面视图，应该设置 ViewStyle 属性，通过查询 ViewStyle 编程接口帮助得知属性值应该设置为 6，在 CreateDesignerEx 中的设置代码如下：

<script language="javascript">
CreateDesignerEx("100%", "100%", "grf/a.grf", "DesignReportSave.aspx?Report=../grf/a.grf", "", "<param name=ViewStyle value=6>");
</script>

相关例子

  1. 09.DesignReport\DesignReport.htm
  2. 04.PrintInForm\CheckDesign.htm

参考

在网页中插入报表对象 | 在网页中插入报表显示器插件 | 在服务器部署插件安装包 | IGRDesigner 接口


在网页中插入插件

在网页中插入报表对象 - WEB报表

概述

Grid++Report 报表对象是一个不可显示的 ActiveX 控件，报表对象在网页中没有直接的显示输出，但调用其方法可以实现很多与报表生成与输出相关的任务。如实现无界面的打印报表，导出报表数据。处理网页中的子报表时，也需要在网页中插入报表对象，具体参考例子。报表对象有很多事件，为了在网页中响应这些事件，也必须在网页中插入报表对象。

报表对象不要求插入在网页 BODY 节中，我们一般将其插入在 HEAD 节中。

在网页中插入设计器插件：

<OBJECT id="Report" classid="CLSID:50CA95AF-BDAA-4C69-A9C6-93E1136E68BC" codeBase="http://www.rubylong.cn/webreport/griectl.cab#Version=5,0,0,0" VIEWASTEXT>
</OBJECT>

codeBase：指定插件包的下载地址与最新版本号，用户在初次访问时会根据这个参数去下载并安装 Grid++Report 报表插件。在安装 Grid++Report 之后，在安装目录的 Web 子目录下有 griectl.cab 这个文件，应该把 griectl.cab 放在可供下载的网站上。其中的 http://www.mysite.cn/webreport/griectl.cab 应该替换为您网站上 griectl.cab 的 URL。

id：这个参数值表示插件的标识，这里参数值为"Report" ，在脚本代码中可以通过 Report 这个变量访问报表对象的方法与属性。

提醒：务必将 codeBase参数的值替换为您的实际值。

实际应用说明

在 Grid++Report 提供的例子中，在“CreateControl.js”这个文件中定义了一些在网页中插入各种报表对象的脚本函数。建议开发者采用其中的函数来定义插件对象，而不是采用上面的方式，上面的方式在日常维护与插件升级时不太方便，举这样的例子只是为了让大家更好的理解插件插入网页的形式。

CreateReport 函数就是用来在网页中插入报表对象的，其参数“Name”指定报表对象的名称。

相关例子：

  1. Advance\CalcField\CalcField.htm
  2. Misc\PrintTable.htm
  3. Advance\CustomGroup\CustomGroup.htm
  4. 06.SubReport\SubReport.htm
  5. 02.PrintDirect\PrintDirect.htm

参考

在网页中插入报表显示器插件 | 在网页中插入报表设计器插件 | 在服务器部署插件安装包 | IGridppReport 接口


在网页中插入插件

在网页中插入报表显示器插件 - WEB报表

概述

在 Grid++Report 报表显示器插件是两个 ActiveX 控件，分别为打印显示插件与查询显示插件。这两个插件以不同的方式展现报表，相同的报表用不同的插件去展现，会得到两种方式的展现效果。打印显示插件按报表打印输出的方式在屏幕上显示报表。查询显示插件按连续表格方式在屏幕上显示报表，一般是查询显示插件展现具有明细网格的报表。

在网页中定义插件

在网页中插入打印显示插件代码：

<OBJECT id="ReportViewer" codeBase="http://www.mysite.com/webreport/griectl.cab#Version=5,0,0,0"
height="100%" width="100%" classid="CLSID:9E4CCA44-17FC-402b-822C-BFA6CBA77C0C" VIEWASTEXT>
<PARAM NAME="ReportURL" VALUE="http://www.mysite.com/webreport/grf/myreport.grf>">
<PARAM NAME="AutoRun" VALUE="true">
</OBJECT>

在网页中插入查询显示插件代码：

<OBJECT id="ReportViewer" codeBase="http://www.rubylong.cn/webreport/griectl.cab#Version=5,0,0,0"
height="100%" width="100%" classid="CLSID:E060AFE6-5EFF-4830-B7F0-093ECC08EF37" VIEWASTEXT>
<PARAM NAME="ReportURL" VALUE="http://www.mysite.com/webreport/grf/myreport.grf">
<PARAM NAME="AutoRun" VALUE="true">
</OBJECT>

除了classid后面的参数有区别外，插入这两个插件的代码基本相同。下面就几个参数进行具体说明:

codeBase：指定插件包的下载地址与最新版本号，用户在初次访问时会根据这个参数去下载并安装 Grid++Report 报表插件。在安装 Grid++Report 之后，在安装目录的 Web 子目录下有 griectl.cab 这个文件，应该把 griectl.cab 放在可供下载的网站上。其中的 http://www.mysite.cn/webreport/griectl.cab 应该替换为您网站上 griectl.cab 的 URL 地址。

id：这个参数值表示插件的标识，这里参数值为"ReportViewer" ，在脚本代码中可以通过 ReportViewer 这个变量访问插件的方法与属性。

height 与 width 指定插件的高度与宽度，既可以使百分比，也可以是像素数，通常采用百分比，以便动态适应当前网页布局。

PARAM NAME 定义的参数是可选的，一般初始设置 ReportURL 与 AutoRun 这两个参数。ReportURL 指定报表模板的 URL，在实际中应该替换为对应报表模板的实际值。AutoRun 参数指定是否在加载报表模板后自动运行报表，参数值为 true 或 false。

提醒：务必将 codeBase 与 ReportURL 参数的值替换为您的实际值。

实际应用说明

在 Grid++Report 提供的例子中，在“CreateControl.js”这个文件中定义了一些在网页中插入各种报表对象的脚本函数。建议开发者采用其中的函数来定义插件对象，而不是采用上面的方式，上面的方式在日常维护与插件升级时不太方便，举这样的例子只是为了让大家更好的理解插件插入网页的形式。

CreatePrintViewer 与 CreatePrintViewerEx 函数用来在网页中插入打印显示插件，其参数说明请参考代码中的注释。
CreateDisplayViewer 与 CreateDisplayViewerEx 函数用来在网页中插入查询显示插件，其参数说明请参考代码中的注释。

CreatePrintViewerEx 与 CreateDisplayViewerEx 可以指定更多的参数，通过最后一个参数可以在创建插件时指定插件的属性值。插件的具体属性参考 IGRPrinterViewer 与 IGRDisplayViewer 接口的说明。如果要让打印显示插件不显示工具栏(Toolbar)，应该设置 ShowToolbar 属性为 false，在 CreatePrintViewerEx 中的设置代码如下：

<script language="javascript">
CreatePrintViewerEx("100%","100%","grf/report1.grf","data/report1.xml",true,"<param name=ShowToolbar value=false>");
</script>

多数例子都使用到这两组方法，两组方法的参数都是一样，只是以不同的方式展现报表。

参考

在网页中插入报表对象 | 在网页中插入报表设计器插件 | 在服务器部署插件安装包 | IGRPrintViewer 接口 | IGRDisplayViewer 接口


插件主要接口说明

Grid++Report 插件主要编程接口说明 - WEB报表

Grid++Report报表插件与Grid++Report报表组件的接口几乎完全一致，在没有特别声明的前提下，帮助中内容适用于两者。这里只是列出对插件起步使用比较常用的一些属性与方法进行说明，更详细说明应该查看插件对应的编程接口帮助。

报表打印显示插件与报表查询显示插件的属性与方法：

以下属性与方法在两个插件中具有类似的功能与用法，更多关于这两个插件的编程接口请参考帮助中的 IGRPrintViewer 与 IGRDisplayViewer。

Report属性：指定插件关联的报表对象，通过此属性对报表进行访问。

ReportURL属性：指定插件要展现报表的报表模板所处的 URL 值，在运行时从此 URL 载入报表定义模板。

DataURL属性：指定插件要展现的报表数据来源 URL 值，在运行时从此 URL 载入XML格式的报表明细记录集。

AutoRun属性：指定插件在浏览器中显示后是否自动运行生成报表。如果指定了 ReportURL 属性，且本属性为 True，插件在浏览器中显示后自动运行生成报表。

Start 与 Stop 方法：Start 方法启动插件的运行，Stop 方法停止插件的运行。如果没有指定 AutoRun 属性为 True，一定要调用 Start 方法开始插件的运行。如果在插件运行之后，打算更新显示报表数据，应该首先调用 Stop 方法停止插件的运行，然后向报表定义新参数或重新向报表加载数据，最后调用 Start 方法开始插件的运行。

报表设计器插件的属性与方法：

更多关于设计器插件的编程接口请参考帮助中的 IGRDesigner。

LoadReportURL属性：指定插件要设计报表的报表模板所处的 URL 值，在运行时从此 URL 载入报表模板数据。

SaveReportURL属性：指定插件设计的报表模板数据提交保存的 URL 地址，由此 URL 网页服务完成报表模板的保存。

DataURL属性：指定插件要展现的报表数据来源 URL 值，当进入预览视图与查询视图时从此 URL 载入XML格式的报表数据。

报表引擎对象的属性与方法：

报表引擎对象通过插件的 Report 属性访问，这个对象是访问其它报表子对象的最上级父对象。更多编程接口请参考帮助中的 IGridppReport。

MyInterface属性：获取报表对象的接口引用。如果要在网页中响应报表事件，必须在网页中显式定义报表，如果此报表要关联报表显示插件，将此属性值设定给插件的 Report 属性即可建立关联。下面的示例代码实现了：显式定义报表、定义报表事件响应函数体、报表显示器插件关联报表对象。

<OBJECT id="Report" height="8" width="8" classid="CLSID:50CA95AF-BDAA-4C69-A9C6-93E1136E68BC" VIEWASTEXT></OBJECT>

<SCRIPT LANGUAGE="JavaScript" FOR="Report" EVENT="TextBoxGetDisplayText(Sender)">
<!--
...
-->
</SCRIPT>

function window_onload()
{
//报表显示器与外部的报表对象关联。定义外部的报表对象，可以处理报表事件
ReportViewer.Report = Report.MyInterface;
}

FieldByName方法：根据字段名称找到对应字段对象，然后对子段进行访问。

var fldABC = ReportViewer.Report.FieldByName("ABC");
fldABC.AsString = "StringText";

ParameterByName方法：根据参数名称找到对应参数对象，然后对参数进行访问。

var paramABC = ReportViewer.Report.ParameterByName("ABC");
paramABC.AsInteger = 123;

PrepareRecordset方法：准备向报表记录集加载记录数据。准备通过脚本代码向报表加载一笔笔记录数据时，必须首先调用本方法。

LoadFromURL方法：从指定的 URL 地址载入报表模板数据。

Report.LoadFromURL("grf/1a.简单列表.grf");

SaveToURL方法：将报表模板数据提交给指定的 URL 地址，由此 URL 网页服务完成报表模板的保存。

LoadDataFromURL方法：从指定的 URL 地址载入报表明细记录集数据，数据必须为XML格式并符合约定的形式。

CustomerReport.LoadDataFromURL("asp/data/xmlCustomerList.asp");

LoadDataFromXML方法：从XML文字串中载入报表明细记录集数据，数据应符合约定的形式。

报表记录集对象的属性与方法：

报表记录集对象管理并存储报表的记录集，向报表加载记录数据就要访问这个对象。通过插件的 Report.DetailGrid.Recordset 属性访问这个对象，更多编程接口请参考帮助中的 IGRRecordset。

Append方法：在记录集之后追加一条记录数据。

Post方法：将当前追加的记录数据提交到记录集。Append 与 Post 方法成对使用，在两者之间一般是向记录集的各个字段设置值的语句

ReportViewer.Report.PrepareRecordset();

Recordset.Append();
fldC1.AsString = "One";
fldI1.AsInteger = 321;
fldF1.AsFloat = 123.45;
Recordset.Post();

...

字段对象的属性与方法：

字段对象从属于记录集对象，更多编程接口请参考帮助中的 IGRField。

AsBoolean 属性：获取或设置字段的用布尔类型表示的值。

AsCurrency 属性：获取或设置字段的用货币类型表示的值。

AsDateTime 属性：获取或设置字段的用日期时间类型表示的值。

AsFloat 属性：获取或设置字段的用浮点数类型表示的值。

AsInteger 属性：获取或设置字段的用整数类型表示的值。

AsString 属性：获取或设置字段的用字符串类型表示的值。

Value 属性：获取或设置字段在运行时的值，值的数据类型不限。

参考

报表插件介绍 | 报表插件运行原理介绍 | 向报表提供记录集数据 | 向报表统一提供记录集数据与参数数据


介绍

WEB报表插件运行原理介绍 - WEB报表

WEB报表插件负责在网页浏览器中完成报表展现与输出等一系列任务，而其展现的数据来自WEB服务器。报表展现与输出需要的数据包括两部分：报表模板定义数据与报表运行数据(含明细记录数据与参数数据)，报表引擎根据报表模板与报表运行数据运算出最终的报表结果，每个报表都需要提供报表模板与报表运行数据。这两部分数据就需要WEB服务器来提供，报表插件用两个属性来指定获取这两部分数据的URL值。当在网页文件中加入插件时，通常会为插件的这两个属性设上相应的值。

报表模板一般是通过报表设计器应用程序可视化设计并保存到文件，只要将这些文件部署到WEB服务器的目录下，其就会有对应的WEB访问URL，报表插件通过对应属性关联这个URL就会自动从此URL读取报表模板数据。

报表插件对报表运行数据的格式进行了约定，是一种规定格式的XML数据。报表开发者应该提供产生这样格式数据的WEB服务程序，WEB服务程序在WEB服务器中按照这种约定产生数据。报表插件通过对应属性关联其URL，就会自动从此URL读取报表运行数据。报表运行数据通常从数据库中查询出来，在Grid++Report提供的例子程序中，已经为产生这样的XML数据提供了通用的函数，所以编写这些提供数据的WEB服务程序也非常简单。

参考


介绍

报表插件分发注册 - WEB报表

报表插件按分发服务器授权，每台要部署报表插件的WEB服务器需要购买注册许可。本产品根据服务器三级域名或IP地址生成注册号。报表插件开发无需授权。有关购买方面的具体信息请参考锐浪软件网站。

在用户购买后，本公司根据用户提供的注册用户名与注册网站产生一个注册号，并将此注册号发送给购买用户。在使用插件的网页上应用上此注册号即可完成插件注册过程，如果部署的网站与注册的网站对应，生成的报表打印页面就不会有试用标志文字。

注册号应用有两种方式：

如果在网页上包含了报表查询显示插件与报表打印显示插件，设置插件的“UserName”与“SerialNo”属性，“UserName”是注册用户名，“SerialNo”是注册号。下面是一个具体的示例：

            <OBJECT id="ReportViewer" codeBase="griectl.cab#Version=5,0,8,518"
height="100%" width="100%"
classid="CLSID:9E4CCA44-17FC-402b-822C-BFA6CBA77C0C" VIEWASTEXT>
<PARAM NAME="ReportURL" VALUE="">
<PARAM NAME="DataURL" VALUE="">
<PARAM name="SerialNo" VALUE="4DFB949E066NYS7W11L8KAT53SA177391Q96E76TKNK5">
<PARAM name="UserName" VALUE="锐浪报表插件本机开发测试注册">

在 Grid++Report 的例子中提供了通用的创建插件的JavaScript函数，如果插件的创建都采用通用函数，只要在此通用函数中写上注册号即可，具体请参考例子中 CreateControl.js 这个文件。强烈建议采用 CreateControl.js 中提供的函数在网页中创建报表插件，当有很多报表相关网页时，只要替换 CreateControl.js 中原有的试用注册号与注册用户名，就可以实现所有报表相关网页的注册，即将文件前面的 UserName 与 SerialNo 变量值替换为你自己的。

关于开发与试用

报表插件在开发与试用时无需授权，除了会在打印页面显示试用标志文字，没有时间与功能方面的任何限制。我们为开发者提供了一个本机注册号，使用这个注册号可以在本机访问报表时去掉试用标志文字，这样可以方便我们的开发。在部署时，用实际的注册用户名与注册号替换即可。

SerialNo：4DFB949E066NYS7W11L8KAT53SA177391Q9LZQ094WUT9C9J3813SX8PTQC4ALPB9UAQN6TMA55Q3BN8E5726Z5A839QAD9P6E76TKNK5
UserName：锐浪报表插件本机开发测试注册

应用上面的注册参数，以“localhost”访问报表网页，就不会出现试用文字。在我们提供的例子程序中都采用了上面的注册参数。

特别提示

注册号是根据服务器三级域名或IP地址产生的，只在访问域名或IP地址对应的服务器上的报表网页才会生效，且访问的URL中必须包含注册的域名或IP地址。

假设是用“www.rubylong.cn”注册的，则访问报表网页时必须用包含有“www.rubylong.cn”的URL才能去除试用标志，如下形式：
http://www.rubylong.cn/myreport/report1.aspx

假设是用“192.168.111.111”注册的，则访问报表网页时必须用包含有“192.168.111.111”的URL才能去除试用标志，如下形式：
http://192.168.111.111/myreport/report1.aspx

如果既要用三级域名访问报表，也要用IP地址访问报表，则一台物理服务器需要购买两个服务器注册。假设用“www.rubylong.cn”与“192.168.111.111”访问报表，锐浪软件会根据“www.rubylong.cn;192.168.111.111”产生注册号，这样用三级域名与IP地址访问报表都不会有试用标志。

参考

在服务器部署插件安装包 | 购买与注册版本介绍


在各种WEB开发语言中使用报表插件概述

指定URL参数的HTTP请求方法(GET或POST) - WEB报表

报表的模板数据与报表的内容数据都是从指定的URL地址中获取，其内部实现都是通过HTTP请求从网站服务器得到数据。而HTTP请求最常用的请求方式就是GET与POST。GET方法在客户端会缓存数据，即相同的URL请求在第一次之后的请求可能会从本地缓存中获取数据，而不是再次从服务器获取数据。而POST方法始终从服务器获取数据，即使是相同的URL地址。因此用 GET 方法可以减少客户端与服务器端的通讯次数与数据传输流量，但有可能得不到最新的服务器数据。

报表插件中的以下方面可以指定HTTP请求的方法：

  1. 报表查询显示插件的 ReportURL 与 DataURL 属性，ReportURL 默认采用 GET 方法，DataURL 默认采用 POST 方法。
  2. 报表打印显示插件的 ReportURL 与 DataURL 属性，ReportURL 默认采用 GET 方法， DataURL 默认采用 POST 方法。
  3. 报表设计器插件的 LoadReportURL 属性，默认采用 GET 方法。
  4. 报表引擎对象 的 LoadFromURL、LoadDataFromURL 方法，LoadFromURL默认采用 GET 方法，LoadDataFromURL 默认采用 POST 方法。

如果要改变请求方法，在属性值前面加上“ POST::”或“ GET::”，如：POST::report/getreport.aspx。

如果报表数据在用户查看的过程中有较高可能性发生改变，应考虑将报表取数的HTTP请求改为POST方法。

如果报表模板数据是直接从URL指定的文件载入，则只能采用GET方法，而不能采用POST方法。如果一定要采用POST方法，应该实现一个WEB服务网页，实现从文件中读入数据，然后将数据发送给请求者。如例子中的 ReadReport.aspx、ReadReport.jsp、ReadReport.php，就是这样的实现。

参考

插件主要编程接口


在网页中插入插件

分析报表不能运行的原因 - WEB报表

在浏览器中输入正确的报表URL地址而不能正常浏览报表时，可以通过分解访问报表模板与报表数据的URL来确定问题的原因。

1、确定报表模板URL是否能正常访问：

在浏览器地址栏中输入完整的URL值，看能否正常下载报表模板文件或在浏览器中显示显示模板文件内容数据。报表插件的ReportURL属性一般都是相对URL，在测试时应转换为绝对URL。IIS6 必须定义文件扩展名对应的 MIMIE 类型才能下载这种类型的文件，请参考常见问题解答中更具体的说明。在URL地址正确的前提下，一般不会存在问题，如果有问题，应该检查WEB服务器的配置，或检查对应目录的权限。

当报表模板不能成功访问时，会出现如下图的提示：

2、确定报表数据URL是否能正常访问：

在浏览器地址栏中输入完整的URL值，看能否运行对应的WEB网页。报表插件的DataURL属性一般都是相对URL，在测试时应转换为绝对URL。在URL地址正确的前提下，如果网页出现访问错误，应该根据错误提示排除错误。在能访问的情况下，应保证数据满足约定的格式。有可能不能在浏览器直接看到数据，通过IE菜单“查看-〉源文件”查看响应数据。如果数据是压缩的，可以暂时取消数据的压缩在进行查看。

当报表数据不能成功访问时，会出现如下图的提示：

3、客户端网页脚本错误：

在报表模板与报表数据都能正常访问时，如果网页中出现客户端脚本不能正常执行的错误，应根据错误信息排除错误。客户端脚本出现错误，在IE浏览器的左下角会有一个错误图标，双击这个图标可以看到错误信息，并可以知道出错的行号。执行IE的菜单“查看-〉源文件”打开网页的源文件，找出出错的网页代码，分析原因并改正对应网页程序。

请参见

WEB报表常见问题解答 | WEB报表插件运行原理介绍