Winform快速开发组件的实现(二)】的更多相关文章

好久好久没有露面了,呵呵,对于写文章都有点生疏了. 在拿到任何一个项目,不管是b/s的还是c/s,我不会立即开始写代码,我一般会为使这些项目能够快速开发制定一系列的支持组件,虽然可能前期会付出一些代价,但不管是应付当前的任务,还是为以后形成一种可持续改进的开发模式,都是有意义的. 最近几年都忙于应付b/s方面的项目,所以winform的一些东西已经不是怎么拿得出手了,虽然以前也写过一系列的组件,毕竟技术革新太快了,现在已经不太适应了. 今天介绍的只是一小部份,主要实现信息编辑窗体中各控件与数据属…
昨天我们一直在做准备工作,最终表单数据需要从数据库里提取,并保存到数据库,今天接着介绍如何做提取.保存和验证. 四.提取并显示信息 在EditForm我们定义一个InfoId属性,用于接收在列表页面打开编辑窗体时传递主键,然后编辑窗体通过主键查询实体,最终填充到映射好的控件上. /// <summary> /// 获取或设置信息ID,根据此ID查询实体并填充在窗体上. /// </summary> public string InfoId { get; set; } 在窗体的Loa…
对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件.  针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三方组件在网上找了很久,也没有发现自己比较心仪的组件. 对于工作流组件通过web方式来实现具有绝对的优势.我的这套winform平台当然也不能少了工作流组件. 通过winform来实现自己的工作流组件,目前我想到的指能通过GDI+重绘的方式来实现工作流的方案. 说干就干,如下图这是我通过GDI+绘制的…
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. 当然我们不可能将控件的所有事件都发布出来. 我们返现所有的按钮操作都是围绕着我们的的查询记录来进行操作. 至此我们只需要提供出一个事件方法. 对外开放进行数据绑定即可. 完成对数据的分页参数处理. 分页控件如下图所示: 相关业务代码:主要代码由事件委托来处理 有了通用的分页控件,我们发现并没有绑定…
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确实通过通用权限管理系统我们能快速的解决针对winform项目中的权限管理模块,节省这部分时间来更好的完善项目的的实际业务模块. 真的很不错. 有吉日嘎拉.湖南胡勇等等吧.忽然发现这些只是满足了我们的唯一的权限模块.当我们接到一个时间紧迫的项目我们是否能只通过这套权限管理来解决项目问题呢,显然是不能的…
这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, 那么一个动态的菜单在企业信息化管理系统占有一定的分量. 下面介绍我的一些思路. 由于原声的winform界面美观性不够, 系统采用dotnetbar第三方控件来辅助编程. 首先我们看红色方框部分为我们的动态模块功能.这样我们获得到了以下几个信息, 我们需要记录模块功能, 并且需要父子集关系, 那么…
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combobox动态数据,大致都是来自于数据字典的数据绑定,那么思路来了,我们需要绑定的是通过获取字典属性来绑定ComboBox控件.大家都知道ComboBox控件中存在显示数据,和值数据对数据值进行绑定. 那么此时我们需要定义一个实体类: /// <summary> /// ComboBoxModel数据…
BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面 bolt 基本介绍 Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库.迅雷7是首个采用该引擎成功开发的产品,目前迅雷旗下大部分客户端产品都基于该引擎开发,并稳定运行于超过3.5亿台PC上. BOLT.NET开源项目 介绍 从2012年11月开始,千寻动漫(http://manhuahe.net)团队开始开发千寻漫画盒2.0版本,我们选择了迅雷的BOLT界面引擎开发新版界面.由于我们项目一开始主要…
C/S系统开发框架-企业版 V4.0 (Enterprise Edition) 简介: http://www.csframework.com/cs-framework-4.0.htm 适用软件:适合开发贸易.制造.物流.零售行业的MIS.MES.ERP.MRP等基于Winform桌面数据库管理系统运行平台:Windows + .NET Framework 4.0产品报价:请联系我们 视频下载: 百度网盘: http://pan.baidu.com/share/link?shareid=52294…
1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.MessType = BaseSendTaskEntity.EnumMessType.Phone.ToString(); entity.BusinessType = BaseSendTaskEntity.EnumBusinessType.MES.ToString(); entity.WindowName =…
6.1运行效果: 6.2开发实现: 1.先在要使用的项目进行引用,SNF.WinForm.Attachments.dll文件. 2.在工具箱内新建选项卡->选择项,浏览找到文件SNF.WinForm.Attachments.dll后会出现控件UCAttachments如下: 3.拖拽控件:UCAttachments到合适的位置上.(注:如果没有这个控件就从其它项目复制过来或者在工具箱里 选择项添加这个dll进来就有了) 4.需要配置如下属性: BusinessID业务表主键.这个主键是你业务表的…
2.1运行效果: 2.2开发实现: 2.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http://www.cnblogs.com/spring_wang/p/6116523.html 2.2.2 菜单配置项上配置如下就可以了: 这个系列教程文档,欢迎转载: SNF开发平台WinForm之十四-站内发送系统信息http://www.cnblogs.com/spring_wang/p/61400…
1运行效果: 2开发实现: .组装站内信息发送实体对象. SNFService SNFService = new SNFService(); if (this.ucUser.SelectedIds != null) { // 发送信息 BaseMessageEntity messageEntity = new BaseMessageEntity(); messageEntity.Id = BusinessLogic.NewGuid(); messageEntity.FunctionCode =…
1运行效果: 2开发实现: 如果需要单独显示PDF文件时用下面代码去实现,指定url地址. 地址: . 获取附件管理的实体对象: List<KeyValuePair<string, object>> paramters = new List<KeyValuePair<string, object>>(); paramters.Add(new KeyValuePair<string, object>(BaseAttachmentsEntity.Fi…
原来我们用的是微软自带的打包工具去打包,但感觉好像也是第三方做的打包并且很是麻烦,还有时不成功报错.那综合考虑就找一个简单实用的打包工具吧,就找到了NSIS这个.具体打包步骤如下: 1.安装NSIS 打开安装程序,按照指示安装即可 2. 安装完毕,打开NIS Edit,点击文件,选择新建脚本:向导(W),如下图所示. 3. 点击下一步,在这里相应更改: (1)将应用程序名称填写*.exe文件名: (2)软件版本.出版人.网站根据实际需要填写(若没有,则保留空白即可): (3)程序标志会在安装界面…
7.1运行效果: 2.Excel导入开发实现 2.1. 创建窗体,修改命名空间 新增的窗体命名“FrmImport表名”,这个导入窗口比较其它窗口会特殊一些,需要继承BaseFormImport父级窗体 2.2.在新建窗体中写方法 构造方法,是用来设置 导入的窗体名称,和下载导入模版名称,指定必填列. 2.3.AddItem在“导入数据”事件时会被调用,并且每一行数据转换成实体对象过来,我们可以对实体对象进行操作保存或者其它处理. 2.4.添加导入按钮 2.5.在调用按钮事件写入调用导入窗体代码…
下面就具体的使用说明: 1.获取代码生成器的授权码(根据本机)-----还原数据库-------改config-----代码生成器 改代码生成器Config 2.登录代码生成器 3.查看是否连接成功 4.配置参数 下图,可在字段右键选择控件编码字段,控件名称字段 5.生成代码 6.启动程序 这个系列教程文档,欢迎转载: SNF开发平台WinForm之十四-站内发送系统信息http://www.cnblogs.com/spring_wang/p/6140031.html SNF开发平台WinFor…
9.1运行效果: 9.2开发实现: 1.首先配置服务器端,把“SNFAutoUpdate2.0\服务器端部署“目录按网站程序进行发布到IIS服务器上. 2.粘贴语句,生成程序 需要调用的应用程序的Load事件或者Program入口的Main方法第一行代码加上如下代码: 注意:是主程序的 Load事件要加上调整自动更新程序的代码.要以模式打开窗口.如果没有差异会自动关闭升级窗口显示主窗口. 3.把下面目录里的文件拷贝到 应用程序的同级目录下: 4.配置WINFORMS应用程序目录下Updateli…
8.1运行效果: 8.2开发实现: 1.  先要创建.grf报表模版,指定数据列.存储位置:Reports\Template文件夹下 2.  之后在程序当中查出数据,之后把数据和打印模版 传入方法进行打印. BaseInterfaceLogic.ShowPrintReport(dtData, "BaseOrganize.grf"); 3.在项目中选择模版文件右键属性:复制到输出目录配置成”如果较新则复制” 8.3报表模版创建方法: 1.报表模版的设计技巧,就是创建一个空的模版或者按向导…
5.1运行效果: 5.2开发实现: 1.按上面效果来说,先来看一下在程序当中如果调用.第一步在页面拖拽一个按钮为“高级查询”,事件上写下如下代码: 如果是单表查询的话,只需要传GridView就行,如果是多表查询的话需要传的参数多一些. 单表查询调用:this.ShowAdvancedQuery(this.grvGridView); 多表查询调用: this.ShowAdvancedQuery(this.grvGridView, DemoMultiTableEntity.TableName,li…
4.1运行效果: 4.2开发实现: 4.2.1          有了第一个程序的开发,代码生成器的配置应该是没有问题了,我们只要在对应的数据库中创建我们需要的表结构就可以了,如下: 主表结构如下: 细表结构如下:注意,细表需要有存储主表ID的字段. 创建表时要注意:字段的说明和表的名称描述要写: 4.2.2          表创建完之后我们来看看多表生成操作应该怎么玩.需要分别对主表.细表按单表一样的处理“表结构配置”后,进行保存.主要配置的是显示的中文名称.使用的控件.格式化.是否必填.是…
3.1运行效果: 3.2开发实现: 3.2.1 这个开发与第一个开发操作步骤是一致的,不同之处就是在生成完代码之后,留下如下圈红程序,其它删除. 第一个开发地址:开发-单表表格编辑管理页面 http://www.cnblogs.com/spring_wang/p/6116523.html 3.2.2 当然了这个就不用增加菜单了,而是生成了自定义控件.可以在工具箱里找到此控件名称为“UC+表名+Select”拖拽到窗体上就可以了,如果找不到就编译一下项目. 3.2.3 在配置一下这个选择控件的属性…
1.1运行效果: 1.2开发实现: 1.2.1          首先在数据库中创建需要开发的数据表,在代码生成器中进行配置连接数据库. 代码生成器的Config.xml文件配置如下节点: 1.2.2          之后打开代码生成器 SNF.CodeGenerator.exe.再之后选中需要开发的数据库和数据表. 1.2.3          选中之后在“表结构配置”区域可以进行配置,字段要显示的中文名称,显示时所使用的控件,如:文本框.文本域.数量控件.金额控件.下拉框(直接选择数据字典…
1.   表格单元格合并组件 1.1.      效果展示 1.1.1.    页面展现表格合并单元格 图 4.1 1.1.2.    导出excel合并单元格 图 4.2 1.2.      调用说明 1.2.1.    表格合并单元格调用说明 首先,要有一个在viewModel中绑定的表格,例如,我们有一个绑定对象为this.grid的表格 我们要在表格的onLoadSuccess事件中添加一个方法 snf.mergeCellsByParentField ("grid", &quo…
1.   瀑布式分页 目前已经比较流行了,以往的这种点击分页已经不能满足广大网民的需求了.像百度图片等等,网站都有滚动滚轮直接分页的功能,这样体验也确实好了不少,所以我们也决定在我们的框架内进行集成此功能.一种针对于我们的表格控件进行瀑布式分页,另一种是针对于网页自定义样式瀑布式分页. 1.1.      效果展示 1.1.1.    表格瀑布式分页 图 3.1 1.1.2.    任意文本的瀑布式分页 图 3.2 1.2.      添加引用 <script src="~/Content…
1.   高级查询 在我们做项目的时候经常想要按名称.编号进行查询数据,可在开发时会把最常用的查询条件写上,不常用的就不写了,也是因为把所有字段都写上太多了,布局不好看而且不实用.还有些查询条件几百年用那么一次,也不能用到时调整一下程序.基于这些考虑我们做的一个高级查询组件,可以把所有列都作为查询条件,把最常用的查询条件还正常放在页面上.点击高级查询按钮后,会有所以列作为筛选条件方便进行查找,别如果本次条件比较多还可以保存起来为一个查询方案,下次时可以方便再次查询. 1.1.      效果展示…
1.    自由排序功能使用 在一些需要排序优先级的数据进行调整处理,如民族数据,在北方实施的时候汉族比较多,希望把汉族放在第一位.在蒙古实施项目时,蒙古族人最多把蒙古族放在第一选择位. 1.1.      效果展示 图 1.1 1.2.      调用说明 1.2.1.    定义自由排序模型 this.freeSort = new snf.freeSortOptionsModel();//自由排序模型 self.freeSort.set({ grid: self.grid, NameSpac…
一.显示效果如下: 二.在控件库里选择UCTimeAxis 拖拽到窗体里. 三.加入以下代码,在load事件里进行调用就可以运行了. #region 给时间轴控件加载数据 private void UCTimeAxisData() { //增加节点 List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>(); list.Add(", "…
今天做了一个windows系统下调用摄像头.进行开启.关闭.拍照.设置等等功能演示. 进行源码贡献,欢迎大家下载使用 一.DEMO效果如下: 二.DEMO演示代码如下: using SNF.Utilities; using SNF.WinForm; /// <summary> /// CameraDemo.cs /// Windows摄像头调用DEMO /// /// 修改记录 /// /// 2016.10.28 版本:1.0 WangJinDou 创建. /// /// <autho…
上一篇讲到,如何快速创建报表程序了.这篇教大家如何快速制作图表报表. 继上一篇,Winform开发框架之图表报表在线设计器-报表 上一篇讲到如何了创建数据源,这里就不在介绍了.那我们就直接从图表设计器开始. 整体设计思路是:1.创建数据源(SQL脚本.存储过程)2.配置显示列名.查询条件等信息,基本信息如图表类型.x.y轴等.3.发布到菜单,按权限授权进行显示. 第一步:打开图表设计器如下 1.图表菜单区域,都有哪些图表. 2.图表预览显示区域 3.选择数据源,配置图表的查询条件和显示的控件.样…