• 进销存项目中实现数据字典


    创建字典

    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) { }

  • 相关阅读:
    线性表——(2)单向链表
    线性表——(1)顺序表
    UVa 1592 数据库
    UVa 12096 集合栈计算机
    Python 协程
    Python 多线程及进程
    Python 日志(Log)
    Python 函数式编程
    Python基础
    DB2 获取前两天的数据
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/2088879.html
Copyright © 2020-2023  润新知