Dorado 5 : 1.3.5.Export2ExcelCommand(Excel导出命令) (RF2)

简述

查询数据的excel导出功能应该是目前很多系统中的基本特性之一,对于如下图中的界面应该一点都不会陌生:

图表 16 Excel数据导出界面
dorado也对excel数据导出提供了支持,通过Export2ExcelCommand实现excel数据导出.
由于在dorado中,相关的数据都是通过dataset实现的,数据查询与数据分批下载都需要通过dataset向数据层请求和获得,于是Export2ExcelCommand的数据导出是基于dataset实现的,另外对于excel数据的导出格式,在dorado中利用了DataTable对象,利用DataTable的用户格式定制功能,例如动态改变列的顺序,动态改变列的标题,动态设定列是否可见等。这些都可以控制最终的excel数据导出格式。
更详细的内容参考文档<<dorado 5 ExcelReport 使用手册 v0.9.doc>>

使用

使用Export2ExcelCommand数据导出的实现非常简单,查看如下的xml配置文件:

<Control id="cmdDownloadExcel"
type="Export2ExcelCommand"
dataset="dsEmployee"
templateTable="tableEmployee">
<Frame />
<Parameters />
</Control>

其中关键的属性就是dataset与templateTable属性:
dataset用以指定excel数据的来源,系统执行时将以dataset作为服务获取导出数据;
templateTable指定导出模板,excel数据导出时将以该table目前的格式作为导出格式的参照;
dataset的指定很容易,只要选择当前视图模型中的相应dataset对象即可,而对于templateTable的格式控制来说,默认情况下Export2ExcelCommand使用该Table的默认格式实现到处,如图表13中的表格。

常用技巧

如何自定义导出格式

利用表格的属性页我们可以动态的控制Excel文件中输出的数据列和他们之间的顺序。 您可以利用表格的属性页或列拖动操作来改变表格的显示,从而改变Excel导出的格式。(在表格中按下Ctrl+T可以打开表格的属性页)
表格属性页如下图:

图表 17
表格的属性页详细功能参考DataTable部分。

动态编程

在服务器段动态生成Export2ExcelCommand

protected void initControls() throws Exception {
super.initControls();//系统默认函数,注意保留
Export2ExcelCommand cmdExport = (Export2ExcelCommand)createControl("Export2ExcelCommand", " cmdExport");
cmdExport.setDataset("dsEmployee");
cmdExport.setTemplateTable("tableEmployee");
}

使用视图模型实现类提供的createControl方法创建Export2ExcelCommand对象,注意第一个参数用以指定组件的类型,第二个参数指定新建对象的id.

在服务器段获得View(视图模型)中定义的Export2ExcelCommand,并动态它的属性

protected void initControls() throws Exception {
super.initControls();//系统默认函数,注意保留
Export2ExcelCommand cmdExport = (Export2ExcelCommand)getControl("cmdExport");
cmdExport.setDataset("dsEmployee");
cmdExport.setTemplateTable("tableEmployee");
}

在上面的代码中可以看到通过实现类提供的getControl函数获得我们需要的组件对象,所需要的就是给它一个Export2ExcelCommand对象的id,注意开发时我们建议您直接在View的设计中添加一个空Export2ExcelCommand组件,这样我们就可以在initControls方法中通过getControl方法获得这个空的Export2ExcelCommand对象,并利用该对象提供的API进行各种设定和初始化的工作,如Export2ExcelCommand的setDataset(), setTemplateTable()方法。

主要属性说明

基本属性参考RequestCommand的属性说明

属性

说明

dataset

dataset用以指定excel数据的来源,系统执行时将以dataset作为服务获取导出数据

dataMode

  • server-all(默认): 在服务端重新执行该Dataset,并导出结果集中的全部数据。
  • server-current-page: 在服务端重新执行该Dataset,并导出当前页的数据。
  • client-visible: 不在服务端重新执行该Dataset,导出当前客户端Dataset中所有可见的数据(除被删除记录外的全部数据)。
  • client-selected: 不在服务端重新执行该Dataset,导出当前客户端Dataset中所有被选中的数据。

templateTable

templateTable指定导出模板,excel数据导出时将以该table目前的格式作为导出格式的参照
利用表格的属性页我们可以动态的控制Excel文件中输出的数据列和他们之间的顺序。 您可以利用表格的属性页或列拖动操作来改变表格的显示,从而改变Excel导出的格式。(在表格中按下Ctrl+T可以打开表格的属性页)

exportMode

Excel导出模式:
output:导出后直接在浏览器中打开;
download: 导出后按照文件的方式下载到客户端

fileName

Excel导出后下载文件的文件名(exportMode为download才有效)

maxRow

Excel导出的数据行数限制,可在此处输入数字加以控制,该属性为空或则为0则,导出全部的数据。某些情况下还要注意检查自己的数据层是否支持这种操作。


主要事件说明

参考RequestCommand的事件说明