ERP设计之我见二-标准化与快速开发

2 篇文章 0 订阅
2 篇文章 0 订阅

          在上一篇文章中,介绍了我软件中代码的布局,基于以上布局,我在和另外两名程序员合作中为了方便大家工作制订了,一系列标准,这种结构与这些标准的制订,在后来实现快速开发提供了有力的前提保证.
          我的标准主要归纳为以下几点.
          1,在上文中提到,用户对象,类,表是一一对应的,我在标准钟要求表的命名类的名称用户对象的名称一一对应,比如用户 client 对象 表的名子就叫 ClientInfo, 对象类的名子就可以命名为ClsClient.
          2,类里的变量名字,与表的字段名字完全相同.
          3,每个类都必须支持AddNew ,UpDate,Delete,LoadInfo,GetItem,QueryItem函数(例程如下)
数据库表

Imports DBH
Public Class ClsClientInfo
    Public ID as Long
    Public Name as String
    Public Addr as String
    Public Trad as String
    Public Area as String
    Public Kind as String
    Public phoneNum as String
    Public EMail as String
    Public HomePage as String
    Public Bank as String
    Public Account as String
    Public OMSName as String
    Public CPerson as String
    Public Zip as String
    Public OutputValue as String
    Public Products as String
    Public SendPhone as String
    Public SendAddr as String
    Public SendPerson as String
    Public BillAddr as String
    Public BillPhone as String
    Public Class as String
    Public CDate as Date
    Public LinkPerson as String
    Public Fax as String
    Public LinkPersonMobile as String
    Public Remark as String
    Public State as String
 'AddNew 新建数据信息
    Public Function AddNew(ByRef IDStr As String) As Boolean
        dim SqlStr as String
        SqlStr =" Insert Into ClientInfo (Name,Addr,Trad,Area,Kind,phoneNum,EMail,HomePage,Bank,Account,OMSName,CPerson,Zip,OutputValue,Products,SendPhone,SendAddr,SendPerson,BillAddr,BillPhone,Class,CDate,LinkPerson,Fax,LinkPersonMobile,Remark,State) values(@Name,@Addr,@Trad,@Area,@Kind,@phoneNum,@EMail,@HomePage,@Bank,@Account,@OMSName,@CPerson,@Zip,@OutputValue,@Products,@SendPhone,@SendAddr,@SendPerson,@BillAddr,@BillPhone,@Class,@CDate,@LinkPerson,@Fax,@LinkPersonMobile,@Remark,@State)"
        sqlStr &="SELECT @@IDENTITY"
        Dim dbhelper As New ClsDbHelper
        dbhelper.SqlText = SqlStr
        dbhelper.AddPara("@Name", me.Name)
        dbhelper.AddPara("@Addr", me.Addr)
        dbhelper.AddPara("@Trad", me.Trad)
        dbhelper.AddPara("@Area", me.Area)
        dbhelper.AddPara("@Kind", me.Kind)
        dbhelper.AddPara("@phoneNum", me.phoneNum)
        dbhelper.AddPara("@EMail", me.EMail)
        dbhelper.AddPara("@HomePage", me.HomePage)
        dbhelper.AddPara("@Bank", me.Bank)
        dbhelper.AddPara("@Account", me.Account)
        dbhelper.AddPara("@OMSName", me.OMSName)
        dbhelper.AddPara("@CPerson", me.CPerson)
        dbhelper.AddPara("@Zip", me.Zip)
        dbhelper.AddPara("@OutputValue", me.OutputValue)
        dbhelper.AddPara("@Products", me.Products)
        dbhelper.AddPara("@SendPhone", me.SendPhone)
        dbhelper.AddPara("@SendAddr", me.SendAddr)
        dbhelper.AddPara("@SendPerson", me.SendPerson)
        dbhelper.AddPara("@BillAddr", me.BillAddr)
        dbhelper.AddPara("@BillPhone", me.BillPhone)
        dbhelper.AddPara("@Class", me.Class)
        dbhelper.AddPara("@CDate", me.CDate)
        dbhelper.AddPara("@LinkPerson", me.LinkPerson)
        dbhelper.AddPara("@Fax", me.Fax)
        dbhelper.AddPara("@LinkPersonMobile", me.LinkPersonMobile)
        dbhelper.AddPara("@Remark", me.Remark)
        dbhelper.AddPara("@State", me.State)
        Try
            IDStr=dbhelper.ExecValue()
            Return True
        Catch ex As Exception
            Msgbox ex.Message
            Return False
        Finally
            dbhelper.Close
        End Try
    End Function
 'UpdateInfo 更新数据信息
    Public Function UpdateInfo(ByVal IDStr As String) As Boolean
        dim SqlStr as String
        SqlStr =" Update ClientInfo Set Name=@Name,Addr=@Addr,Trad=@Trad,Area=@Area,Kind=@Kind,phoneNum=@phoneNum,EMail=@EMail,HomePage=@HomePage,Bank=@Bank,Account=@Account,OMSName=@OMSName,CPerson=@CPerson,Zip=@Zip,OutputValue=@OutputValue,Products=@Products,SendPhone=@SendPhone,SendAddr=@SendAddr,SendPerson=@SendPerson,BillAddr=@BillAddr,BillPhone=@BillPhone,Class=@Class,CDate=@CDate,LinkPerson=@LinkPerson,Fax=@Fax,LinkPersonMobile=@LinkPersonMobile,Remark=@Remark,State=@State where ID= " & IDStr & "
        Dim dbhelper As New ClsDbHelper
        dbhelper.SqlText = SqlStr
        dbhelper.AddPara("@Name", me.Name)
        dbhelper.AddPara("@Addr", me.Addr)
        dbhelper.AddPara("@Trad", me.Trad)
        dbhelper.AddPara("@Area", me.Area)
        dbhelper.AddPara("@Kind", me.Kind)
        dbhelper.AddPara("@phoneNum", me.phoneNum)
        dbhelper.AddPara("@EMail", me.EMail)
        dbhelper.AddPara("@HomePage", me.HomePage)
        dbhelper.AddPara("@Bank", me.Bank)
        dbhelper.AddPara("@Account", me.Account)
        dbhelper.AddPara("@OMSName", me.OMSName)
        dbhelper.AddPara("@CPerson", me.CPerson)
        dbhelper.AddPara("@Zip", me.Zip)
        dbhelper.AddPara("@OutputValue", me.OutputValue)
        dbhelper.AddPara("@Products", me.Products)
        dbhelper.AddPara("@SendPhone", me.SendPhone)
        dbhelper.AddPara("@SendAddr", me.SendAddr)
        dbhelper.AddPara("@SendPerson", me.SendPerson)
        dbhelper.AddPara("@BillAddr", me.BillAddr)
        dbhelper.AddPara("@BillPhone", me.BillPhone)
        dbhelper.AddPara("@Class", me.Class)
        dbhelper.AddPara("@CDate", me.CDate)
        dbhelper.AddPara("@LinkPerson", me.LinkPerson)
        dbhelper.AddPara("@Fax", me.Fax)
        dbhelper.AddPara("@LinkPersonMobile", me.LinkPersonMobile)
        dbhelper.AddPara("@Remark", me.Remark)
        dbhelper.AddPara("@State", me.State)
        Try
            dbhelper.ExecNonQuery()
            Return True
        Catch ex As Exception
            Msgbox ex.Message
            Return False
        Finally
            dbhelper.Close
        End Try
    End Function
 'LoadInfo 实例划类数据
    Public Function LoadInfo(ByVal IDStr As String) As Boolean
        dim SqlStr as String
        SqlStr =" Select * from ClientInfo where ID='" & IDStr  & " '"
        Dim dbhelper As New ClsDbHelper
         Dim dr As SqlClient.SqlDataReader
        Try
            dr = dbhelper.GetDataReaderBySqlString(sqlStr)
            IF dr.Read() Then
             Me.ID= dr("ID")
             Me.Name= dr("Name")
             Me.Addr= dr("Addr")
             Me.Trad= dr("Trad")
             Me.Area= dr("Area")
             Me.Kind= dr("Kind")
             Me.phoneNum= dr("phoneNum")
             Me.EMail= dr("EMail")
             Me.HomePage= dr("HomePage")
             Me.Bank= dr("Bank")
             Me.Account= dr("Account")
             Me.OMSName= dr("OMSName")
             Me.CPerson= dr("CPerson")
             Me.Zip= dr("Zip")
             Me.OutputValue= dr("OutputValue")
             Me.Products= dr("Products")
             Me.SendPhone= dr("SendPhone")
             Me.SendAddr= dr("SendAddr")
             Me.SendPerson= dr("SendPerson")
             Me.BillAddr= dr("BillAddr")
             Me.BillPhone= dr("BillPhone")
             Me.Class= dr("Class")
             Me.CDate= dr("CDate")
             Me.LinkPerson= dr("LinkPerson")
             Me.Fax= dr("Fax")
             Me.LinkPersonMobile= dr("LinkPersonMobile")
             Me.Remark= dr("Remark")
             Me.State= dr("State")
            End IF
            dr.Close() 
            Return True
        Catch ex As Exception
            Msgbox ex.Message
            Return False
        Finally
            dbhelper.Close
        End Try
    End Function
 'GetItems 实例划类数据
    Public Function GetItems(ByVal IDStr As String) As List(OF ClsClientInfo)
        dim SqlStr as String
        dim ls as New List (Of ClsClientInfo )
        SqlStr =" Select * from ClientInfo where Name='" & IDStr  & " '"
        Dim dbhelper As New ClsDbHelper
         Dim dr As SqlClient.SqlDataReader
        Try
            dr = dbhelper.GetDataReaderBySqlString(sqlStr)
            While dr.Read() 
                Dim Info as ClsClientInfo
                 Info.ID= dr("ID")
                 Info.Name= dr("Name")
                 Info.Addr= dr("Addr")
                 Info.Trad= dr("Trad")
                 Info.Area= dr("Area")
                 Info.Kind= dr("Kind")
                 Info.phoneNum= dr("phoneNum")
                 Info.EMail= dr("EMail")
                 Info.HomePage= dr("HomePage")
                 Info.Bank= dr("Bank")
                 Info.Account= dr("Account")
                 Info.OMSName= dr("OMSName")
                 Info.CPerson= dr("CPerson")
                 Info.Zip= dr("Zip")
                 Info.OutputValue= dr("OutputValue")
                 Info.Products= dr("Products")
                 Info.SendPhone= dr("SendPhone")
                 Info.SendAddr= dr("SendAddr")
                 Info.SendPerson= dr("SendPerson")
                 Info.BillAddr= dr("BillAddr")
                 Info.BillPhone= dr("BillPhone")
                 Info.Class= dr("Class")
                 Info.CDate= dr("CDate")
                 Info.LinkPerson= dr("LinkPerson")
                 Info.Fax= dr("Fax")
                 Info.LinkPersonMobile= dr("LinkPersonMobile")
                 Info.Remark= dr("Remark")
                 Info.State= dr("State")
               ls.Add(info) 
            End While
            dr.Close() 
            Return ls
        Catch ex As Exception
            Msgbox ex.Message
            Return ls
        Finally
            dbhelper.Close
        End Try
    End Function
End Class
在这种工作模式下,很快我发现这些类的代码惊人的相似,作为一个程序员,不停地做重复的工作是无法接受的,于是编写了一段程序来生成这些代码,生成代码的程序界面如图所示,其实上面的代码就是生成器生成的代码.生成器如下

代码生成器的产生,是我们的团队实现了快速开发,只要能有效的建表,业务层的代码是直接生成的,程序员只需要按照业务流程调试界面即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值