超级难题,高手看看这是什么?

smuzy 2003-07-31 02:37:54
Option Explicit

Public Menu_Id As Long
Public Position_Id As Integer

Private mCol As Collection
Private mColCol As Collection '存放mCol的col

Public ErrMsg As String

Public Property Get Count() As Long
Count = mCol.Count
End Property
Public Property Get ColCount() As Long
ColCount = mColCol.Count
End Property
Public Property Get Item(vntIndexKey As Variant) As Struct_PageItem
Set Item = mCol(vntIndexKey)
End Property
Public Property Get ColItem(vntIndexKey As Variant) As Struct_PageItems
Set ColItem = mColCol(vntIndexKey)
End Property

Public Sub Add(objin As Struct_PageItem)
mCol.Add objin, "A" & objin.Id
End Sub
Public Sub ColAdd(objin As Struct_PageItems)
mColCol.Add objin, "A" & objin.Position_Id
End Sub
Public Sub Clear()
Set mCol = Nothing
Set mColCol = Nothing
Set mCol = New Collection
Set mColCol = New Collection
End Sub

Public Function Init(ByVal Menu_Id As Long, Optional ByVal Position_Id As Integer = -2) As Boolean
Init = False
ErrMsg = ""
If Menu_Id < 0 Then
ErrMsg = "请传入合法的栏目Id"
Exit Function
End If
Me.Menu_Id = Menu_Id
Me.Position_Id = Position_Id
Dim objtemp As Struct_PageItem
Dim Rs As New ADODB.Recordset
'这个地方虽然说是get_page但是返回的是全部,而非一页。
Set Rs = Conn.Execute("EXEC get_page_Struct_PageItems @Menu_Id=" & Menu_Id & ",@Position_Id=" & Position_Id)
With Rs
If Position_Id > 0 Then
'有Position_Id的时候是个简单集合
While Not Rs.EOF
Set objtemp = New Struct_PageItem
objtemp.Id = .Fields("Id")
objtemp.Menu_Id = .Fields("Menu_Id")
objtemp.Position_Id = .Fields("Position_Id")
objtemp.Content_Menu_Id = .Fields("Content_Menu_Id")
objtemp.Function_Id = .Fields("Function_Id")
objtemp.Order = .Fields("Order")
If Not objtemp.XML_Config.Init(.Fields("XML_Config"), wsXMLStruct_Page, objtemp.Id) Then
ErrMsg = ErrMsg & "记录" & objtemp.Id & " XML_Config加载失败"
End If
Me.Add objtemp
Set objtemp = Nothing
.MoveNext
Wend
Else
Dim objcol As Struct_PageItems
Dim tPosition_Id1 As Integer
Dim tPosition_Id2 As Integer
While Not .EOF
tPosition_Id2 = .Fields("Position_Id")
If Not tPosition_Id1 = tPosition_Id2 Then
Set objcol = Nothing
Set objcol = New Struct_PageItems
objcol.Position_Id = tPosition_Id2
End If
Set objtemp = New Struct_PageItem
objtemp.Id = .Fields("Id")
objtemp.Menu_Id = .Fields("Menu_Id")
objtemp.Position_Id = tPosition_Id2
objtemp.Content_Menu_Id = .Fields("Content_Menu_Id")
objtemp.Function_Id = .Fields("Function_Id")
objtemp.Order = .Fields("Order")
If Not objtemp.XML_Config.Init(.Fields("XML_Config"), wsXMLStruct_Page, objtemp.Id) Then
ErrMsg = ErrMsg & "记录" & objtemp.Id & " XML_Config加载失败"
End If
objcol.Add objtemp
Set objtemp = Nothing
If Not tPosition_Id1 = tPosition_Id2 Then
tPosition_Id1 = tPosition_Id2
Me.ColAdd (objcol)
End If
.MoveNext
Wend
End If
.Close
End With
Set Rs = Nothing
Init = True
End Function

Private Sub Class_Initialize()
Set mCol = New Collection
Set mColCol = New Collection
End Sub
Private Sub Class_Terminate()
Set mCol = Nothing
Set mColCol = Nothing
End Sub

怎么能够这样写?
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
smuzy 2003-07-31
  • 打赏
  • 举报
回复
赫赫
不好意思
其实我也不知道怎么提问的,

其实这个是vb写的,n-tier

没有看明白,比较麻烦
bushido 2003-07-31
  • 打赏
  • 举报
回复
兄弟,有问题你在标题中不写明白是不行的,偶很反感不把问题在标题栏里写明白的贴子。
(对事不对人)
你贴出来的贴子,应该是个class

IIs5.0支持class格式如下
class classname
content
.....
end class

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧