DevExpress的XAF 框架通常使用 GridControl 控件来操作数据库表中的数据,但导入导出、非结构化数据的管理可以使用SpreadSheet 控件。

SpreadSheet 控件模拟微软的 EXCEL 电子表格,对手工干预比较多的数据是一种很好的方式。下面总结一下如何组合应用:

一、利用 SpreadSheet 控件 来导入 EXCEL 格式的数据。

通常的做法是通过 EXCEL 的接口,读取 EXCEL 文件,获取数据,然后写入数据库记录。本人采用一种更直观的方式。

1)在 XAF 中创建一个 用户控件,引用 SpreadSheet  提供的 SpreadsheetControl 控件;

2)加入 SpreadsheetControl   提供的 操作动作控件 (比如打开文件、保存等)。

3)在模型设计器中创建一个 XAF 的 DashboardView,加入一个 ControlDetailItem,并将 其ControlTypeName 属性的值设置为:上述创建的用户控件。然后,增加其它设置。。。

4)在需要导入EXCEL 的对象界面,创建一个 ViewController (可以限用于 List 界面),增加一个PopupWindowShowAction  。

A\ 自行定义 CustomizePopupWindowParams 事件,用方法 CreatDashbardView  创建 一个  DashbardView,用于弹出。

弹出窗口中,包含了 EXCEL 样式的 SpreadsheetControl 控件,可以打开 XLS,XLSX 等格式的文件。

B\ XXXAction_Excute 事件,用于数据的导入。

二、 利用 SpreadSheet  控件来管理 非结构化数据。

1)自定义控件与 VIEW 的过程同上(一);

2)但数据保存于数据库记录的一个字段中,使用于XAF 的附件扩展;

3)从此字段加载数据,使用控件的方法:SpreadsheetControl.LoadDocument ,有两个参考:

bool LoadDocument(Stream stream, DocumentFormat format)     bool LoadDocument(Byte[] buffer)   后者自动探测文档格式。

bool LoadDocument(Byte[] buffer, DocumentFormat format)          bool LoadDocument(Stream stream)  后者自动探测文档格式。

4) 保存文档的方法 参考此文   How to: Save a Document to a File  ,下列方法可以使用。

void SaveDocument(Stream stream, DocumentFormat format)

Byte[] SaveDocument(DocumentFormat format)

5)  SpreadsheetControl 如何与数据库交互, 参考 此文:  How to: Store a Workbook in the Database

最新文章

  1. 【疯狂造轮子-iOS】JSON转Model系列之二
  2. mono for android学习过程系列教程(3)
  3. Linux内核启动过程概述
  4. ATL 获取flash信息
  5. ASP.NET Web API中的参数绑定总结
  6. html5中Canvas为什么要用getContext('2d')
  7. Linux-理解ARP、网关、路由
  8. 安装 centos7 注意事项
  9. jquery取消事件冒泡和取消默认行为
  10. ECMAScript 6 中的一些新特性
  11. android相对布局中控件的常用属性【转】
  12. jvm内存回收诡异现象
  13. Video Target Tracking Based on Online Learning—TLD多目标跟踪算法
  14. JavaScript递归函数解“汉诺塔”
  15. scheduling while atomic和bad: scheduling from the idle thread(转)
  16. [Redis] - redis实战1
  17. JavaScript for/in 语句 遍历数组内容
  18. IO创建Socket通信中慎用BufferReader中的readLine()
  19. VS2017中用C#调试DLL
  20. vue 中使用 async/await 将 axios 异步请求同步化处理

热门文章

  1. ps -ef | grep Linux进程查看命令
  2. 本地服务器上挂载A目录到B目录
  3. Sublime Text3中 less 自动编译成 css 的方法
  4. HDU 6432(不连续环排列 ~)
  5. Linux下main函数启动过程【程序员自我修养笔记】【自用】
  6. MysqL_select for update锁详解
  7. SQL结构化查询语句
  8. Ext.net 的锁定列要集中放到前面
  9. transitionEnd不起作用解决方法
  10. 嵌入式开发 迅为4418开发板Qt移植移动4G模块第一部分