WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架
作者:csframework|C/S框架网  发布日期:2022/01/21 11:31:17

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

C/S结构快速开发框架/软件快速开发平台WinFrameworkV2.1轻量级框架原创软件@csframework.com

1. 新建表
2.代码生成器
3. 集成代码到VS
4.界面二次开发
LookUpEdit下拉组件
绑定LookUpEdit数据源
数据校验-ValidateForSave
数据绑定-ViewDataBinding
扩展公共数据类型

一、数据库新建表(dt_Data_Product)

表结构预览:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

SQL 语句:

CREATE TABLE [dbo].[dt_Data_Product](
    [isid] [INT] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
    [ProductID] [VARCHAR](20) NOT NULL,
    [Material] [VARCHAR](20) NULL,
    [ProductName] [VARCHAR](20) NULL,
    [ZJM] [VARCHAR](20) NULL,
    [Specification] [NVARCHAR](20) NULL,
    [Unit] [VARCHAR](10) NULL,
    [Remark] [NVARCHAR](200) NULL,
    [CreateUser] [VARCHAR](20) NULL,
    [CreateDate] [DATETIME] NULL,
    [LastUpdateUser] [VARCHAR](20) NULL,
    [LastUpdateDate] [DATETIME] NULL,
 CONSTRAINT [PK_DT_DATA_PRODUCT] PRIMARY KEY CLUSTERED 
(
    [ProductID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自增列' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'isid'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品编号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'ProductID'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'材质' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'Material'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'产品名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'ProductName'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'助记码' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'ZJM'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'规格' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'Specification'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'单位' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'Unit'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'Remark'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'CreateUser'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'CreateDate'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改人' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'LastUpdateUser'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最后修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product', @level2type=N'COLUMN',@level2name=N'LastUpdateDate'
GO

EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'基础资料-产品资料' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'dt_Data_Product'
GO

二、代码生成器生成代码

2.1 生成Model层代码

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

代码文件:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

2.2 生成窗体代码

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

使用辅助组件生成模式,窗体会采用 ViewDataBinding 绑定数据模式 。

数据绑定模式,参考: https://www.cscode.net/archive/WinFramework/1634565184.html

生成的窗体代码:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

2.3 复制代码文件到VS项目

复制 Model 代码 ( dt_Data_Product.cs ) 到 WinFrameworkDemo.Models 项目:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

复制 窗体代码(frm_Product.*.cs) 到项目 WinFrameworkDemo.Dictionary项目:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

完成第二步后,窗体 frm_Product 中会有一个报错,添加引用即可解决:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

2.4 创建BLL类

这里需要手动在 WinFrameworkDemo.Business 中创建一个 BLL_Product 类:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

代码参考:

C# 全选
using GZDBHelper;
using System;
using System.Data;
using WinFrameworkDemo.Models;

namespace WinFrameworkDemo.Business.Data
{
    public class BLL_Product : Base.bllBaseUserCommon
    {
        public BLL_Product()
            : base(typeof(dt_Data_Product))
        {
        }

    }
}

三、注册模块功能

3.1 在模块的 Management.cs 中注册功能

FunctionCollection.AddFunction(typeof(frm_Product), "产品资料", "Function_Product");

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

四、界面二次开发

4.1 TextEdit组件更改为LookUpEdit下拉参考数据组件

比如【材质类型】要设置为可下拉选择组件(LookUpEdit),需要把生成的默认类型(TextEdit)改为LookUpEdit组件。

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

更改为:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

数据编辑页面的材质也改为LookUpEdit组件:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

4.2 绑定LookUpEdit组件的下拉数据源

C# 全选
WinFramework.Library.DataBinderTools.Bound.BoundCommonDictDataName(txtMaterial, Business.CustomerEnum.EnumCommonDicData.产品材质, false, false);

BoundCommonDictDataName通用方法,用于绑定LookUpEdit组件的下拉数据源:

C# 全选
/// <summary>
/// 绑定基础数据
/// </summary>
/// <param name="lue">LookUpEdit组件</param>
/// <param name="E">公共数据类型,如:产品材质、付款方式</param>
/// <param name="displayCombination"></param>
/// <param name="AddNull">true:下拉数据源第一行显示空值</param>
public static void BoundCommonDictDataName(LookUpEdit lue, EnumCommonDicData E, bool displayCombination, bool AddNull)
{
   BoundCommonDictDataName(lue.Properties, E, displayCombination, AddNull);
}

参数说明:

lue:LookUpEdit组件

E:公共数据类型,如:产品材质、付款方式

displayCombination:下拉框默认显示【编码】+【名称】数据,如: 01 - 钢材, 或: 02 - 铝材

AddNull:True-下拉窗体第1行为空行,用于查询界面。

4.3 设置数据校验

更改控件类型后,要重新设置ValidateForSave属性 和ViewDataBinding属性:

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

ValidateForSave 属性:用于保存前数据校验。

ViewDataBinding 属性:用于数据源绑定。若不设置该属性,您更改了控件的值,数据源不会更新,也不会保存数据。

更多详细资料,参考:https://www.cscode.net/archive/WinFramework/1634565184.html

4.4 添加公共字典数据详情

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

添加公共字段类型(扩展公共字典类型):

https://www.cscode.net/archive/WinFramework/1634571374.html

五、效果展示

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

WinFramework轻量级开发框架 | 单表数据窗体开发 | 界面二次开发|C/S开发框架

C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇