eXpressApp Framework生成单据编号的解决方案(vb.net)2009-10-08 博客园 瘦山鸿eXpressApp Framework (以下简称XAF)是Devexpress公司开发的一套基于.net平台的O/R M快速开发应用架构,其特点是可以快速的开发出基于web和winform的数据库应用程序,在XAF的实际应用开发过程中,我们难免要实现单据编号的自动生成和管理,传统的很多应用系统都是利用存储过程来实现这一目的的,我们知道XAF的是用XPO来和数据库存储系统交互的,有没有办法不用存储过程而直接用XPO来生成和管理应用系统的单据编号呢?经过本人的尝试,答案是肯定的,下面我就把这个实现的实体类和相应的实现函数共享出来,给大家参考,由于水平和时间的关系,代码可能没有那么的顺眼,请大家批评指正:先给个效果图看看吧:


1.单据编号设定实体类
Imports System
Imports System.ComponentModel
Imports DevExpress.Xpo
Imports DevExpress.ExpressApp
Imports DevExpress.Persistent.Base
Imports DevExpress.Persistent.BaseImpl
Imports DevExpress.Persistent.Validation
<DefaultClassOptions()> _
<System.ComponentModel.DisplayName("单据编号设定")> _
Public Class B_BILLCODEPREX
Inherits BaseObject
Public Sub New(ByVal session As Session)
MyBase.New(session)
End Sub
Private FTBNAME As String
<DevExpress.Xpo.DisplayName("表")> _
<Custom("AllowEdit", "False")> _
Public Property TBNAME() As String
Get
Return FTBNAME
End Get
Set(ByVal value As String)
SetPropertyValue("TBNAME", FTBNAME, value)
End Set
End Property
Private FTBCAPTION As String
<DevExpress.Xpo.DisplayName("表名称")> _
<Custom("AllowEdit", "False")> _
Public Property TBCAPTION() As String
Get
Return FTBCAPTION
End Get
Set(ByVal value As String)
SetPropertyValue("TBCAPTION", FTBCAPTION, value)
End Set
End Property
Private FPREX As String
<DevExpress.Xpo.DisplayName("单据编号前缀")> _
Public Property PREX() As String
Get
Return FPREX
End Get
Set(ByVal value As String)
SetPropertyValue("PREX", FPREX, value)
End Set
End Property
Private FLENTH As Integer = 5
<DevExpress.Xpo.DisplayName("流水号位数")> _
Public Property LENTH() As Integer
Get
Return FLENTH
End Get
Set(ByVal value As Integer)
SetPropertyValue("LENTH", FLENTH, value)
End Set
End Property
Private FINTERVAL As String = "-"
<DevExpress.Xpo.DisplayName("分隔符")> _
Public Property INTERVAL() As String
Get
Return FINTERVAL
End Get
Set(ByVal value As String)
SetPropertyValue("INTERVAL", FINTERVAL, value)
End Set
End Property
Public Enum EPREX
无
年
年月
年月日
End Enum
Private FDPREX As EPREX
<DevExpress.Xpo.DisplayName("日期段")> _
Public Property DPREX() As EPREX
Get
Return FDPREX
End Get
Set(ByVal value As EPREX)
SetPropertyValue("DPREX", FDPREX, value)
End Set
End Property
End Class