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

如何操控DevExpress的 SpreadSheet 控件 并与 XAF 结合应用的更多相关文章

  1. DevExpress的GridControl控件更新數據問題解決辦法

    開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據. ...

  2. DevExpress的Web控件汉化方法

    原文:DevExpress的Web控件汉化方法 项目中用到devexpress的web控件,机器没有安装devexpress控件,直接在项目中引用的dev的dll,项目运行时发现都是英文界面,所以解决 ...

  3. 使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体

    使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体     [csharp] view plaincopyprint? <SPAN ...

  4. DevExpress Winform 常用控件

    Ø  前言 DevExpress 控件的功能比较强大,是全球知名控件开发公司,对于开发 B/S 或 C/S 都非常出色,可以实现很炫且功能强大的效果. DevExpress Winform 常用控件是 ...

  5. 玩转控件:重绘DEVEXPRESS中DateEdit控件 —— 让DateEdit支持只选择年月 (提供源码下载)

      前言 上一篇博文<玩转控件:重绘ComboBox —— 让ComboBox多列显示>中,根据大家的回馈,ComboBox已经支持筛选了,更新见博文最后最后最后面.   奇葩 这两天遇到 ...

  6. DevExpress Winform 通用控件打印方法(允许可自定义边距) z

    DevExpress Winform 通用控件打印方法,包括gridcontrol,treelist,pivotGridControl,ChartControl,LayoutControl...(所有 ...

  7. DevExpress之GridControl控件小知识

    DevExpress之GridControl控件小知识 一.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会自动增加一个子视图 .列名也就是子表的字段 ...

  8. DevExpress主要常用控件

    DevExpress主要常用控件说明:1. TestEdit: 一个单行文本编辑器. 常用属性:Name:该控件的名称.Text:该控件中的内容.Enabled:该控件是否激活. Visible:控件 ...

  9. Devexpress treelist 树形控件 实现带三种状态的CheckBox

    树形控件是使用频率很高的一种控件.对于属性控件往往需要下面两个功能 1.TreeList带有CheckBox,并且节点要有三种状态(所有的子节点都选中,所有的子节点都没选择,一部分子节点选中).使用 ...

随机推荐

  1. Rancher之Pipeline JAVA demo

    Rancher Pipeline Pipeline,简单来说,就是一套运行于Rancher上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程. Ranc ...

  2. 【C#】C#创建自定义Object对象

    艹,老是忘!!! }; 记录一下,var obj = new { Name="lily",Age=12};

  3. 面向对象【day08】:类的起源与metaclass(二)

    本节内容 1.概述 2.类的起源 3.__new__方法 4.__metaclass__方法 一.概述 前面我们学习了大篇幅的关于类,通过类创建对象,那我们想知道这个类到底是怎么产生的呢?它的一切来源 ...

  4. java和c#通过esb服务互调用组件

    场景:java和c#写的服务.站点,互相任意调用.实现一切即服务. 解决方案:使用这种轻量级的esb架构,通过tcp通信解决通信传输问题,总线服务解决服务地址问题,契约解决数据交互问题.由于组件封装了 ...

  5. bootstrap 在线设计工具layout IT

    Layoutit! bootstrap 可视化布局BETA

  6. IO流----操作文件的9种方法代码实现

    IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1:          每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...

  7. 服务器部署全程记录(centos6.5)

    1.安装nginx 上传安装包:put E:\yz_index\installPackage\nginx-1.14.0.tar.gz 解压:tar zxvf nginx-1.14.0.tar.gz 切 ...

  8. C++获取MAC与IP

    #include <Nb30.h> #pragma comment(lib,"ws2_32.lib") #pragma comment(lib,"netapi ...

  9. man termios(FreeBSD 12.0)

    TERMIOS() FreeBSD Kernel Interfaces Manual TERMIOS() NAME termios - general terminal line discipline ...

  10. MySQL的一些基本命令笔记(2)

    1.逻辑运算符的补充 between 的用法:(在....之间) select column1,column2,......columnN from 表名 where columnX between ...