我们先来简单了解一下WinForm和FarPoint,WinForm是·Net开发平台中对Windows Form的一种称谓。而FarPoint是一款模拟EXCEL的控件。它可以根据用户的要求实现很大部份的EXCEL操作,且包括多个子表、表格风格定义、公式计算、排序、分组等等都可以实现。本文主要是介绍利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入。

  在Winform界面中以类似Excel表格界面中录入相关的数据,其中界面需要录入图片信息,基础信息,列表信息等,综合这些后界面的效果就如下面这样。而本文主要针对如何利用FarPoint Spread表格控件实现类似Excel界面丰富数据的保存及显示,以及希望在使用过程中的一些经验对大家在开发Winform的Excel数据录入和显示方面的开发有一定帮助。

  根据上面的界面分类能够看到,这个界面大概能怪划分的数据类型分别是基础字段数据、多行的列表数据、图片数据和备注信息的显示录入。那么下面我们根据分类介绍如何实现这些功能。

  1、类似Excel的列表总体界面设计

  首先,在这个列表中需要在Winform的界面中进行设计拖入一个Farpoint控件到Winform界面上后,然后设置好布局等属性,接着在右键菜单上启动Spread Designer,这样就可以设计相关的Excel样式表格的内容了。

  注意:一般情况下,这个界面是在窗体中设计的,当然你的内容可以通过拷贝的方式复制过来,从Excel文档中复制粘贴过来,如果从效果上来看是一样的。不过,虽然Farpoint Spread控件提供了一个另存为Xml文件的操作,并且可以通过API,Open一个XML文件,不过Open的XML文件后,好像内容不能进行修改的,而且类型CellType也是Null(空值)的,所以如果要在一个窗体上动态加载布局是没办法实现的。不过对于开发来说,我们在设计时就把Excel样式的列表界面设计好,这也是一个不错的选择。

  2、下拉列表的绑定

  大多数情况下我们为了输入的便利性,我们会选择在Excel列表中通过下拉列表方式输入内容,如此便可以提高速度和用户体验,但这些内容必须是通过数据库内容进行绑定的,Farpoint Spread控件通过输入很多的内容且包括ComoBox类型数据来绑定下拉列表的数据。如下所示。

  当我们下拉类型被指定后,Excel列表的显示方式随之变化,比如像下面一样来显示。

  上面打上对勾的就我们下一步需要绑定列表数据的列表了,绑定列表的数据也不麻烦,但是需要明确Cell的序号,绑定给他数据源就可以了,可实际上的话,经常要数着Cell的行列号上的数字是非常费心神且很不方便。

  对于BindDictItems代码,我使用了扩展方法,所以这个我们是能通过对象直接调用,具体的函数代码如下所示,这个就是调用字典业务类获取数据,但是需要给Items属性赋值,注意其中的Edittable最好选择为true,否则它只会类似于DropdownList那样只显示里面列表的内容。

  3、如何构造界面自定义录入

  为了能够很方便的输入内容,在对于一些例如弹出框选择内容,图片编辑,备注内容(很长的时候)的编辑来说,我们通常是通过自定义界面来录入比较好,比较Excel样式的界面,录入单元格很小,有时候也实现不了的。所以通过制定控件单元格的单击事件,用来处理特殊录入信息的操作。

  下面是展开界面部分内容给大家看看,如下面所示:

  例如,对于下拉列表内容,我们需要进行弹出式选择内容,如下界面所示。

  对于图片单元格,我们单击就可以弹出下面的窗体才能够很方便编辑或者查看。

  对于备注内容,我们让他弹出一个窗体,更好展现和编辑。

  4、数据的显示和保存

  在显示普通的主表数据字段这方面是非常的简单的,就是把内容赋值给对应的单元格Text属性即可,如下所示。

当我们需要保存的时候,就是把对应的内容保存到实体类进行数据保存操作即可。

  但是在数据比较多的时候,我们需要把内容保存分开,各个函数负责不同的部分即可,在主表保存后继续保存其他部分的内容,例如红色部分就是其他部分的保存操作。

  例如工艺过程是一个列表数据,我们在保存的时候是需要指定行列的属性进行操作,而且我们添加一个Seq的序列号,这样是用来保存内容的顺序,这样加载的时候,我们就按照这个循序进行加载显示,否则会出现问题。 

  其中GetProcess函数,这个就是一个列表中查找对应顺序的内容,如果有,那么我们需要更新这个对应顺序的内容,否则我们认为它是新的数据,这样就新增到数据库中,所以最后用了InserUpdate就是这个道理。其中GetProcess函数逻辑代码如下所示。

  另外有一点是需要注意的是有些单元格是合并列的,所以它的行列号一定要注意,因为有些地方可能需要跳行。

  5、Excel表格的数据打印及导出。

  对于使用Farpoint Spread的空间,我们能够非常方便地对里面的内容进行打印或者导出Excel,重要的是代码不繁琐,如下所示。

  我们导出的效果和界面显示的效果基本上一致的,而且图片等特殊的格式,也是正常保留在Excel里面,从感觉上来说是非常的不错的。

  那么在最后我们附上这个系统的一些截图作为补充了解。

到这里,我们基本上是介绍完了利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入的内容了,在上文我们通过了五个部分来介绍的,一是类似Excel的列表总体界面设计的基本内容,二是下拉列表的绑定,三是如何构造界面自定义录入,四是数据的显示和保存,五是Excel表格的数据打印及导出。

详解如何利用FarPoint Spread表格控件来构造Winform的Excel表格界面输入的更多相关文章

  1. 调用ocx ActiveX控件详解(做一个简单的ocx控件)

    背景 最近做的项目都和插件有关,就是在页面中调用插件的方法,然后进行操作. 插件就是ocx ActiveX控件,具体的说明可以自己去了解一下,在这里就不做赘述. 具体调用方式很简单: 1.在页面中写一 ...

  2. Spread.NET 表格控件 V12.0 Update2 发布更新

    Spread.NET表格控件V12.0 Update 2 已经正式发布,本次发布主要针对WinForm平台下客户反馈的产品使用功能进行优化,并修复了已知问题,具体修复情况见下方说明. Spread.N ...

  3. 【案例分享】在 React 框架中使用 SpreadJS 纯前端表格控件

    [案例分享]在 React 框架中使用 SpreadJS 纯前端表格控件 本期葡萄城公开课,将由国电联合动力技术有限公司,资深前端开发工程师——李林慧女士,与大家在线分享“在 React 框架中使用 ...

  4. QTableView表格控件区域选择-自绘选择区域

    目录 一.开心一刻 二.概述 三.效果展示 四.实现思路 1.绘制区域 2.绘制边框 3.绘制 五.相关文章 原文链接:QTableView表格控件区域选择-自绘选择区域 一.开心一刻 陪完客户回到家 ...

  5. Flutter 分页功能表格控件

    老孟导读:前2天有读者问到是否有带分页功能的表格控件,今天分页功能的表格控件详细解析来来. PaginatedDataTable PaginatedDataTable是一个带分页功能的DataTabl ...

  6. 【转】dd命令详解及利用dd测试磁盘性能

    dd命令详解及利用dd测试磁盘性能   linux下dd命令详解 名称: dd 使用权限: 所有使用者 manpage 定义: convert and copy a file 使用方式: dd [op ...

  7. Spread.NET 表格控件 V12.1 正式发布

    Spread.NET 表格控件 V12.1 正式发布 加入动态数组,让公式运算更具效率 Spread.NET 是一个在功能和布局上与 Excel 高度类似的 .NET表格控件,目前已广泛应用于财务.预 ...

  8. 基于纯前端类Excel表格控件实现在线损益表应用

    财务报表也称对外会计报表,是会计主体对外提供的反映企业或预算单位一定时期资金.利润状况的会计报表,由资产负债表.损益表.现金流量表或财务状况变动表.附表和附注构成.财务报表是财务报告的主要部分,不包括 ...

  9. C# DatrgridView表格控件的一些用法

    public class useDatrgrivView { string conn = null; string sqlComm = null; DataSet das = null; DataGr ...

随机推荐

  1. CRF++使用步骤

    1.将CRF++文件的压缩包解压后添加到java的工程目录下 2.使用前必须生成train.data和test.data 文件并放到crf_learn.exe的同级目录下 3.cmd进入目标位置,其中 ...

  2. 关于string 的简单应用

    声明||作用 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍. 之所以抛弃char*的字符串而选用C++标准程序库中的string类, ...

  3. mysql 存储引擎介绍

    一  存储引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点. 在讲清楚什么是存储引擎之前,我们先来个比喻, ...

  4. rsync常见故障

    1.1 rsync客户端执行rsync命令错误: 客户端的错误现象: [root@nfs01 tmp]# rsync -avz /etc/hosts rsync_backup@172.16.1.41: ...

  5. my23_pxc其中一个节点重建记录

    PXC报废了一个节点,时间大概在周五,而此时故障的数据库节点比较多,警告信息也成百上千,此信息混合于已有的故障节点信息中,没有被及时发现:然后周六.周日各报废一个,在周一的时候,业务已经没有节点可以写 ...

  6. 二分搜索 - Binary Search

    二分搜索是一种在有序数组中寻找目标值的经典方法,也就是说使用前提是『有序数组』.非常简单的题中『有序』特征非常明显,但更多时候可能需要我们自己去构造『有序数组』.下面我们从最基本的二分搜索开始逐步深入 ...

  7. web三大组件

    1.Servlet Servlet是用来处理客户端请求的动态资源,也就是当我们在浏览器中键入一个地址回车跳转后,请求就会被发送到对应的Servlet上进行处理. Servlet的任务有: 接收请求数据 ...

  8. Spark RDD持久化说明

    以上说明出自林大贵老师关于Hadoop.spark书籍,如有兴趣请自行搜索购买! 这是我的GitHub分享的一些笔记:https://github.com/mahailuo/pyspark_notes

  9. jemeter接口测试基础

    前言: 本文主要针对http接口进行测试,使用Jmeter工具实现. Jmter工具设计之初是用于做性能测试的,它在实现对各种接口的调用方面已经做的比较成熟,因此,本次直接使用Jmeter工具来完成对 ...

  10. linux_api之文件属性

    本篇索引:1.引言2.文件类型3.获取文件属性的函数,stat.fstat.lstat4.超级用户(root用户)和普通用户5.进程与用户ID6.文件权限的检查7.新创建的的文件和目录的所有权8.ac ...