C# Winform 开发框架 - 业务单据附件管理解决方案(原)
C# Winform 开发框架 - 业务单据附件管理解决方案(原)
业务单据附件管理功能
业务单据附件管理是C/S开发框架提供的辅助功能,主要是用于保存业务单据的原始副本电子文件,如:原始单据扫描件,传真文件,签名文件,图片, 电子邮件等。附件数据作为业务单据的一个明细表,通过单据号码建立主外键关联。
系统需要存储大量的附件文件,因此要严格限制文件大小,图片文件必须压缩(建议JPG格式),或者文件大小控制在指定的数值范围。
建议所有文件压缩成RAR再上传到服务器。
附件存储介质,支持两种存储介质:
1: SQL数据库
2. 服务器本地文件
3.自定扩展IAttachmentStorage接口
附件管理功能已封装为自定义控件,您只要从工具栏拖到界面上即可使用。
控件功能:
1. 附件展示方式: 以列表方式展示附件,显示文件图标+文件名。
2. 增加: 打开文件对话框选择文件,建议RAR文件。
3. 删除: 弹出对话框确认是否删除文件。
4. 另存为:将文件存储到本地。
5. 打开附件:依赖Windows安装的程序自动打开附件。
控件使用说明:
1. 属性设置
ImmediatelyPost 属性:
True: 立即提交附件到存储地, 新增状态下尚未生成单据号码此功能无效,。
False: 点保存按钮时与单据数据一并提交。
StorageStrategy: 存储策略:
1. AttachmentStorage_SQL – 存储到SQL服务器。
2. AttachmentStorage_Folder – 存储到共享目录。
3. 自由扩展, 实现IAttachmentStorage 接口即可。
(错别字:StorateStrategy应改为StorageStrategy)
绑定事件:
OnPostAttachmentData:
该事件用于处理提交数据前的准备工作,如设置关联单据号码。
ImmediatelyPost 属性为True,必须需要绑定此事件。当用户新增/删除附件立即触发OnPostAttachmentData事件提交数据。
实例源码:
1. InitializeForm 方法内设置存储策略
ucAttachment1.StorateStrategy = new AttachmentStorage_SQL(); //附件存储策略
2. 在ButtonStateChanged方法内增加一行代码, 当操作状态发生变化时设置附件管理组件的按钮状态。
ucAttachment1.DoSetButtonState(_UpdateType); //设置按钮状态
3. DoBindingDetailGrid方法,作为明细表绑定附件数据。
//绑定单据的附件数据
DataTable attachFiles = dataSource.Tables[tb_AttachFile.TableName];
ucAttachment1.StorateStrategy.AttachmentStorage = attachFiles;
ucAttachment1.DoBindDataSource();
4. DoSave方法保存业务数据成功后再提交附件
if (result.Success) //保存成功
{
ucAttachment1.StorateStrategy.SetDocNo(result.DocNo);//设置单号
ucAttachment1.StorateStrategy.Post();//保存附件
}
5. 绑定OnPostAttachmentData事件,保存前设置单据号码
private void ucAttachment1_OnPostAttachmentData(object data)
{ //在提交数据前设置单据号码
string docNo = this.GetSummaryFieldValue(tb_SO.KeyName);
ucAttachment1.StorateStrategy.SetDocNo(docNo);
}

C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
C# Winform等待窗体WaitingForm组件下载(CSFramework提供)|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
Winform开发框架 | 表格编辑窗体权限控制|C/S开发框架
DevExpress组件版本下载、安装与VS开发环境 | Winform C/S框架|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
C/S Winform框架开发指南 | 如何新增系统消息参数(sys_SystemSettings表)|C/S开发框架
C/S Winform开发框架 | 单表基础资料窗体实现主从表资料管理|C/S开发框架
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
Winform开发框架 - 使用Linq判断日期时间范围查询条件的方法
CSFrameworkV6 - Winform开发框架 - Delete方法使用
CSFrameworkV6 - Winform开发框架 - GetLookupData方法使用
Winform框架通用导入程序,支持Excel,xls/xlsx格式|C/S开发框架
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
