1.背景 在企业应用中单据编号的自定义是一个很常见的需求,如工号.业务单据编码等,能不能抽象一个通用的框架呢? 2.思路 这里的难点在于实现"解释器",比如将"前缀"是日期.年月.固定字符.部门代码等.而且“解释器”的“规则”允许动态增加.实施人员和用户可以自由改变单号的生成规则. 还要考虑并发问题,如一个单据同时多人访问编码是否唯一,如果不唯一那就有问题了. 3.具体实现类图 4.界面使用效果 这个编码规则的维护页面可是耗费了我不少的精力,除了编码规则的技术实现还…
8.1运行效果: 8.2开发实现: 1.  先要创建.grf报表模版,指定数据列.存储位置:Reports\Template文件夹下 2.  之后在程序当中查出数据,之后把数据和打印模版 传入方法进行打印. BaseInterfaceLogic.ShowPrintReport(dtData, "BaseOrganize.grf"); 3.在项目中选择模版文件右键属性:复制到输出目录配置成”如果较新则复制” 8.3报表模版创建方法: 1.报表模版的设计技巧,就是创建一个空的模版或者按向导…
下面我们就从什么都没有,结合审核流进行演示实例.从无到有如何快速完美的实现,然而如此简单.低调而奢华,简单而不凡. 从只有数据表通过SNF.CodeGenerator代码生成器快速生成单据并与审核流进行结合案例. 现在我只有这样一个表如下:(下面介绍单表,多表原理是一样的) 1.审核流结合代码生成器快速实现 1.用代码生成器生成单据(选择启用审核流) 之后点击“生成“并把对应代码拷贝到相应的位置,执行脚本把菜单预制进去,详见“06.SNF.CodeGenerator代码生成器使用说明.docx”…
流程设计 图形化的流程设计,更方便.直观 1.打开“流程设计“程序,如上.点击”新建“如下: 2.红色部分为必填项,审批对象是选择要审批的程序菜单,单据名称是在审核流流转时用于提示的单据名称,还要选择审核的数据表和审核状态字段.当维护完成后进行“确定“保存.再点击 进行图形化设计审核流. 3.从左边拖拽审核节点和连接线. 4.双击节点 ,设计节点此节点的名称.审核人.投票比例等. 注:可以选择多人再结合投票设置可以达到会审需求. 5.双击连接线可以配置走此分支需要具备的条件.如果业务人员可以用鼠…
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…
1.调用前组装参数 2.调用发送信息服务脚本   .调用前组装参数: BaseSendTaskEntity entity = new BaseSendTaskEntity(); entity.MessType = BaseSendTaskEntity.EnumMessType.Phone.ToString(); entity.BusinessType = BaseSendTaskEntity.EnumBusinessType.MES.ToString(); entity.WindowName =…
原来我们用的是微软自带的打包工具去打包,但感觉好像也是第三方做的打包并且很是麻烦,还有时不成功报错.那综合考虑就找一个简单实用的打包工具吧,就找到了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…