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

  • 相关阅读:
    源码剖析Django REST framework的请求生命周期
    Django REST framework中的版本控制
    Django REST framework反向生成url
    Django的ModelForm
    SQL Server 2008 R2导出数据脚本的方法
    未在本地计算机上注册 Microsoft.Jet.OLEDB.4.0 提供程序
    Webservice发布出现 测试窗体只能用于来自本地计算机的请求
    StreamWriter和StremReader简单的用法
    (转)PHP下编码转换函数mb_convert_encoding与iconv的使用说明
    (转)PHP中构造函数和析构函数解析
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/2088879.html
Copyright © 2011-2022 走看看