zoukankan      html  css  js  c++  java
  • 进销存项目中实现数据字典

    创建字典

    clip_image002

    将字典内容绑定到ComboBox

    cboCategory.InitializeValueListFromDictionary("DatabaseScript");

    效果如下

    clip_image003

    在设计Windows 组件ComboBox时,根本没有考虑到数据字典的存在,没有InitializeValueListFromDictionary的实现。

    随着系统的扩展,在业务系统中实现了数据字典功能,然而组件ComboBox对数据字典仍然一无所知。也就是,不能让ComboBox的实现依赖于数据字典功能,这样不利于扩展和维护。

    在不改变代码的情况下,对一个组件进行扩展,添加新的方法,可以使用扩展方法

    public static class ExtensionHelper

    {

    public static void InitializeValueListFromDictionary(this ComboBox combox, string dictionaryCode)

    {

    }

    }

    于是就实现了数据字典的功能。

    继续应用数据字典到员工信息中,实现省份的绑定

    cboProverince.InitializeValueListFromDictionary("Province");

    clip_image004

    SQL脚本如下

    IF OBJECT_ID ('dbo.GBDICH') IS NOT NULL

    DROP TABLE dbo.GBDICH

    GO

    CREATE TABLE dbo.GBDICH

    (

    NAME NVARCHAR (50) NOT NULL,

    DESCRIPTION NVARCHAR (200) NULL,

    SUSPENDED BIT NULL,

    CONSTRAINT PK_GBDICH PRIMARY KEY (NAME)

    )

    GOIF OBJECT_ID ('dbo.GBDICD') IS NOT NULL

    DROP TABLE dbo.GBDICD

    GO

    CREATE TABLE dbo.GBDICD

    (

    CODE_NAME NVARCHAR (50) NOT NULL,

    NAME NVARCHAR (50) NULL,

    DESCRIPTION NVARCHAR (200) NULL,

    SUSPENDED BIT NULL,

    CONSTRAINT PK_GBDICD PRIMARY KEY (CODE_NAME),

    CONSTRAINT FK_GBDICD_GBDICD FOREIGN KEY (NAME) REFERENCES dbo.GBDICH (NAME)

    )

    GO

    不变的数据字典 changeless

    有一种类型的数据字典,它的值是不会发生改变的。比如消息的命令类型,只有三种,收,发和回复三种类型

    public enum MessageFlowType

    {

    Outgoing = 0,

    Incoming = 1,

    Reply = 2,

    }

    再比如报表数据源,规定是应用数据库,框架数据库,或是自定义数据库

    public enum ReportDataSource

    {

    CompanyDatabase = 0,

    SystemDatabase = 1,

    CustomDatabase = 2,

    }

    对于这种数据字典,直接以C#代码的方式编译到程序集中,并且在设计ComboBox组件时就要考虑绑定问题

    public void InitializeValueListFromEnum(Type enumType, bool allowEmpty) { }

  • 相关阅读:
    Scala进阶之路-idea下进行spark编程
    Scala进阶之路-Spark本地模式搭建
    Scala进阶之路-Scala高级语法之隐式(implicit)详解
    Scala进阶之路-Spark底层通信小案例
    Scala进阶之路-并发编程模型Akka入门篇
    Scala进阶之路-统计商家id的标签数以及TopN示例案例分析
    Scala进阶之路-Scala中的泛型介绍
    Scala进阶之路-尾递归优化
    Scala进阶之路-Scala特征类与unapply反向抽取
    Java基础-爬虫实战之爬去校花网网站内容
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/2088879.html
Copyright © 2011-2022 走看看