📄 modbaseinfo.bas
字号:
Attribute VB_Name = "modBaseInfo"
'****************************************************************************************
' MODULE : modBaseInfo
' DESCRIPTION : 基本信息公共模块 —— 基础模块中的常用公共信息
' CREATE : Jack Xu 2001,09,05
' CODE : Jack Xu 2001,09,05
' FUNCTION : 保存基础模块中的常用公共信息
' USAGE : 使用 InitBaseInfoModule 初始化本模块。
' SUMMARY :
' 1. 数据类型定义
' (1)产品类型信息数据结构 Public TYPE_PRODUCT_STYLE
' (2)产品子类型信息数据结构 Public TYPE_PRODUCT_SUB_STYLE
' (3)片区信息数据结构 Public TYPE_TERRITORY
' (4)省份、直辖市、自治区信息数据结构 Public TYPE_STATE
' (5)城市信息数据结构 Public TYPE_CITY
' (6)客户级别信息数据结构 TYPE_CUSTOMER_CLASS
' (7)客户类型信息数据结构 TYPE_CUSTOMER_TYPE
' 2.变量声明
' (1)集合变量声明
' a. 产品类型信息集合
' Public g_ProductStyleSet() As TYPE_PRODUCT_STYLE 产品类型信息集合
' Public g_HasProductStyle As Boolean 产品类型信息集合是否有记录
' b. 产品子类型信息集合
' Public g_ProductSubStyleSet() As TYPE_PRODUCT_SUB_STYLE 产品子类型信息集合
' Public g_HasProductSubStyle As Boolean 产品子类型信息集合是否有记录
' c. 片区信息集合
' Public g_TerritorySet() As TYPE_TERRITORY 片区信息集合
' Public g_HasTerritory As Boolean 片区信息集合是否有记录
' d. 省份、自治区、直辖市信息集合
' Public g_StateSet() As TYPE_STATE 省份、自治区、直辖市信息集合
' Public g_HasState As Boolean 省份、自治区、直辖市信息集合是否有记录
' e. 城市信息集合
' Public g_CitySet() As TYPE_CITY 城市信息集合
' Public g_HasCity As Boolean 城市信息集合是否有记录
' f. 客户级别信息集合
' Public g_CustomerClassSet() As TYPE_CUSTOMER_CLASS 客户级别信息集合
' Public g_HasCustomerClass As Boolean 客户级别信息集合是否有记录
' g. 客户类型信息集合
' Public g_CustomerTypeSet() As TYPE_CUSTOMER_TYPE 客户类型信息集合
' Public g_HasCustomerType As Boolean 客户类型信息集合是否有记录
' (2)其它变量
' Private fModuleInited As Boolean 模块初始化标志
' 3.函数过程定义
' (1)初始化函数
' a. 初始化函数——初始化信息集合
' Public Function InitBaseInfoModule() As Boolean
' b. 重新初始化函数——重新初始化信息集合
' Public Function ReInitBaseInfoModule() As Boolean
' (2)产品类型信息相关函数和过程
' a. 获得产品类型名称
' Public Function GetProductStyleName(ByVal lPruductStyleID As Long) As String
' b. 获得产品类型编号
' Public Function GetProductStyleID(ByVal strPruductStyleName As String) As Long
' c. 获得某个产品类型编号的所有子产品类型信息集合
' Public Function GetProductSubStyleOfProductStyle( _
' ByVal lProductStyle As Long, _
' ByRef ProductSubStyleSet() As TYPE_PRODUCT_SUB_STYLE) As Boolean
' (3)产品子类型信息相关函数和过程
' a. 获得产品子类型名称
' Public Function GetProductSubStyleName(ByVal lPruductSubStyleID As Long) As String
' b. 获得产品子类型编号
' Public Function GetProductSubStyleID(ByVal strPruductStyleName As String) As Long
' (4)片区信息相关函数和过程
' a. 获得片区名称
' Public Function GetTerritoryName(ByVal id As Long) As String
' b. 获得片区编号
' Public Function GetTerritoryID(ByVal strName As String) As Long
' (5)省份、自治区、直辖市信息相关函数和过程
' a. 获得省份、自治区、直辖市名称
' Public Function GetStateName(ByVal id As Long) As String
' b. 获得省份、自治区、直辖市编号
' Public Function GetStateID(ByVal strName As String) As Long
' c. 获得某个省份、自治区、直辖市中的所有城市信息
' Public Function GetCityOfState( _
' ByVal state_id As Long, _
' ByRef CitySet() As TYPE_CITY) As Boolean
' (6)城市信息相关函数和过程
' a. 获得城市名称
' Public Function GetCityName(ByVal id As Long) As String
' b. 获得城市编号
' Public Function GetCityID(ByVal strName As String) As Long
' (7)客户级别信息集合相关函数和过程
' a. 获得客户级别名称
' Public Function GetCustomerClassName(ByVal id As Long) As String
' b. 获得客户级别编号
' Public Function GetCustomerClassCode(ByVal strName As String) As Long
' (8)客户类型信息集合相关函数和过程
' a. 获得客户类型名称
' Public Function GetCustomerTypeName(ByVal id As Long) As String
' b. 获得客户类型编号
' Public Function GetCustomerTypeCode(ByVal strName As String) As Long
'*********************************************************************************************************************************
Option Explicit
'''''''''''''''''''''''''''''''''''''''''''''''''''
' 错误信息
Dim m_tagErrInfo As TYPE_ERRORINFO
'*********************************************************************************
' 数据类型定义
'*********************************************************************************
' 产品类型信息数据结构
Public Type TYPE_PRODUCT_STYLE
style_id As Long '产品类型编号
style_name As String '产品类型名称
End Type
' 产品子类型信息数据结构
Public Type TYPE_PRODUCT_SUB_STYLE
sub_style_id As Long '产品子类型编号
style_id As Long '所属产品类型编号
sub_style_name As String '产品子类型名称
End Type
' 片区信息数据结构
Public Type TYPE_TERRITORY
territory_code As Long '片区编号
territory_name As String '片区名称
End Type
' 省份、直辖市、自治区信息数据结构
Public Type TYPE_STATE
state_code As Long '省份、直辖市、自治区编号
state_name As String '省份、直辖市、自治区名称
End Type
' 城市信息数据结构
Public Type TYPE_CITY
city_code As Long '城市编号
state_code As Long '所属省份、直辖市、自治区编号
city_name As String '城市名称
End Type
' 客户级别信息数据结构
Public Type TYPE_CUSTOMER_CLASS
cust_class_code As Long ' 客户级别代码
cust_class As String ' 客户级别描述
End Type
' 客户类型信息数据结构
Public Type TYPE_CUSTOMER_TYPE
cust_type_code As Long ' 客户类型代码
cust_type As String ' 客户类型描述
End Type
'*********************************************************************************
' 变量声明
'*********************************************************************************
''''''''''''''''''''''''''''''''''''''''''''''''''''''
' 集合变量声明
Public g_ProductStyleSet() As TYPE_PRODUCT_STYLE ' 产品类型信息集合
Public g_HasProductStyle As Boolean ' 产品类型信息集合是否有记录
Public g_ProductSubStyleSet() As TYPE_PRODUCT_SUB_STYLE ' 产品子类型信息集合
Public g_HasProductSubStyle As Boolean ' 产品子类型信息集合是否有记录
Public g_TerritorySet() As TYPE_TERRITORY ' 片区信息集合
Public g_HasTerritory As Boolean ' 片区信息集合是否有记录
Public g_StateSet() As TYPE_STATE ' 省份、自治区、直辖市信息集合
Public g_HasState As Boolean ' 省份、自治区、直辖市信息集合是否有记录
Public g_CitySet() As TYPE_CITY ' 城市信息集合
Public g_HasCity As Boolean ' 城市信息集合是否有记录
Public g_CustomerClassSet() As TYPE_CUSTOMER_CLASS ' 客户级别信息集合
Public g_HasCustomerClass As Boolean ' 客户级别信息集合是否有记录
Public g_CustomerTypeSet() As TYPE_CUSTOMER_TYPE ' 客户类型信息集合
Public g_HasCustomerType As Boolean ' 客户类型信息集合是否有记录
Private fModuleInited As Boolean
'*********************************************************************************
' 函数过程定义
'*********************************************************************************
''''''''''''''''''''''''''''''''''''''''''''''''''''
' 重新初始化函数——重新初始化信息集合
Public Function ReInitBaseInfoModule() As Boolean
On Error Resume Next
fModuleInited = False
ReInitBaseInfoModule = InitBaseInfoModule
End Function
''''''''''''''''''''''''''''''''''''''''''''''''''''
' 初始化函数——初始化信息集合
Public Function InitBaseInfoModule() As Boolean
On Error GoTo ERROR_EXIT
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim i As Long, j As Long
Dim strSQL As String
Dim tagProductStyleInfo As TYPE_PRODUCT_STYLE
Dim tagProductSybStyleInfo As TYPE_PRODUCT_SUB_STYLE
Dim tagTerritoryInfo As TYPE_TERRITORY
Dim tagStateInfo As TYPE_STATE
Dim tagCityInfo As TYPE_CITY
If fModuleInited Then GoTo EXIT_TRUE '已经初始化
'1.清空数据
ReDim g_ProductStyleSet(0 To 0)
ReDim g_ProductSubStyleSet(0 To 0)
ReDim g_TerritorySet(0 To 0)
ReDim g_StateSet(0 To 0)
ReDim g_CitySet(0 To 0)
ReDim g_CustomerClassSet(0 To 0)
ReDim g_CustomerTypeSet(0 To 0)
g_HasProductStyle = False
g_HasProductSubStyle = False
g_HasTerritory = False
g_HasState = False
g_HasCity = False
g_HasCustomerClass = False
g_HasCustomerType = False
'2.初始化数据
'(1)初始化产品类型信息集合
cmd.ActiveConnection = dbMyDB
cmd.CommandText = "select * from ProductStyles ORDER BY style_id"
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockReadOnly
If rs.State <> adStateOpen Then GoTo ERROR_EXIT
If rs.RecordCount > 0 And Not rs.EOF Then
ReDim g_ProductStyleSet(rs.RecordCount - 1)
For i = 0 To rs.RecordCount - 1
tagProductStyleInfo.style_id = CLng(rs!style_id)
tagProductStyleInfo.style_name = Trim(rs!style_name)
g_ProductStyleSet(i) = tagProductStyleInfo
rs.MoveNext
Next
g_HasProductStyle = True
End If
If rs.State = adStateOpen Then rs.Close
'(2)初始化产品子类型信息集合
cmd.CommandText = "select * from ProductSubStyles ORDER BY style_id , sub_style_id"
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockReadOnly
If rs.State <> adStateOpen Then GoTo ERROR_EXIT
If rs.RecordCount > 0 And Not rs.EOF Then
ReDim g_ProductSubStyleSet(rs.RecordCount - 1)
For i = 0 To rs.RecordCount - 1
tagProductSybStyleInfo.sub_style_id = CLng(rs!sub_style_id)
tagProductSybStyleInfo.style_id = CLng(rs!style_id)
tagProductSybStyleInfo.sub_style_name = Trim(rs!sub_style_name)
g_ProductSubStyleSet(i) = tagProductSybStyleInfo
rs.MoveNext
Next
g_HasProductSubStyle = True
End If
If rs.State = adStateOpen Then rs.Close
'(3)初始化片区信息集合
cmd.CommandText = "select * from Territories ORDER BY territory_code"
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockReadOnly
If rs.State <> adStateOpen Then GoTo ERROR_EXIT
If rs.RecordCount > 0 And Not rs.EOF Then
ReDim g_TerritorySet(rs.RecordCount - 1)
For i = 0 To rs.RecordCount - 1
tagTerritoryInfo.territory_code = CLng(rs!territory_code)
tagTerritoryInfo.territory_name = Trim(rs!territory)
g_TerritorySet(i) = tagTerritoryInfo
rs.MoveNext
Next
g_HasTerritory = True
End If
If rs.State = adStateOpen Then rs.Close
'(4)初始化省、直辖市、自治区份信息集合
cmd.CommandText = "select * from States order by state_code"
rs.CursorLocation = adUseClient
rs.Open cmd, , adOpenStatic, adLockReadOnly
If rs.State <> adStateOpen Then GoTo ERROR_EXIT
If rs.RecordCount > 0 And Not rs.EOF Then
ReDim g_StateSet(rs.RecordCount - 1)
For i = 0 To rs.RecordCount - 1
tagStateInfo.state_code = CLng(rs!state_code)
tagStateInfo.state_name = Trim(rs!state_name)
g_StateSet(i) = tagStateInfo
rs.MoveNext
Next
g_HasState = True
End If
If rs.State = adStateOpen Then rs.Close
'(5)初始化城市信息集合
cmd.CommandText = "select a.* , b.city from StateCity as a join Cities as b " _
& "on a.city_code = b.city_code order by a.state_code , a.city_code"
rs.CursorLocation = adUseClient
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -