127 lines
3.6 KiB
OpenEdge ABL
127 lines
3.6 KiB
OpenEdge ABL
VERSION 1.0 CLASS
|
|
BEGIN
|
|
MultiUse = -1 'True
|
|
END
|
|
Attribute VB_Name = "DB_Content"
|
|
Attribute VB_GlobalNameSpace = False
|
|
Attribute VB_Creatable = False
|
|
Attribute VB_PredeclaredId = False
|
|
Attribute VB_Exposed = False
|
|
Option Explicit
|
|
|
|
Private data_ As Excel.Worksheet
|
|
Private attributes_ As Excel.Worksheet
|
|
|
|
Public Function Init(iData As Excel.Worksheet, iAttributes As Excel.Worksheet)
|
|
Set data_ = iData
|
|
Set attributes_ = iAttributes
|
|
End Function
|
|
|
|
Public Function Attributes() As IteratorAttribute
|
|
Set Attributes = New IteratorAttribute
|
|
Call Attributes.Init(attributes_)
|
|
End Function
|
|
|
|
Public Function IBegin() As IteratorContent
|
|
Set IBegin = New IteratorContent
|
|
Call IBegin.Init(data_)
|
|
End Function
|
|
|
|
Public Function ILast() As IteratorContent
|
|
Set ILast = New IteratorContent
|
|
Call ILast.Init(data_)
|
|
Call ILast.GoLast
|
|
End Function
|
|
|
|
Public Function INew() As IteratorContent
|
|
Set INew = New IteratorContent
|
|
Call INew.Init(data_)
|
|
Call INew.GoLast
|
|
Call INew.Increment
|
|
End Function
|
|
|
|
Public Property Get Count() As Long
|
|
Count = ILast.row_ - IBegin.row_ + 1
|
|
End Property
|
|
|
|
Public Function FindTaskID(sID$) As IteratorContent
|
|
Dim iResult As IteratorContent: Set iResult = IBegin
|
|
If iResult.FindTaskID(sID) Then _
|
|
Set FindTaskID = iResult
|
|
End Function
|
|
|
|
Public Function FindContentName(sName$, sType$) As IteratorContent
|
|
Dim iResult As IteratorContent: Set iResult = IBegin
|
|
If iResult.FindContentName(sName, sType) Then _
|
|
Set FindContentName = iResult
|
|
End Function
|
|
|
|
Public Function EnsureDataVisible()
|
|
Call XLShowAllData(data_, bKeepColumns:=True)
|
|
Call XLShowAllData(attributes_)
|
|
End Function
|
|
|
|
Public Function ImportCSVTasks(iInput As IteratorCSVTasks)
|
|
Call iInput.GoFirst
|
|
Dim iOutput As IteratorContent
|
|
Do While Not iInput.IsDone
|
|
Set iOutput = FindPlaceFor(iInput.TaskID, iInput.ContentName, iInput.TaskType)
|
|
If Not iInput.IsCanceled Or iOutput.TaskType <> "" Then
|
|
Call iOutput.SyncCSVTasks(iInput)
|
|
End If
|
|
If CSE_ProgressBar.Visible Then _
|
|
Call CSE_ProgressBar.IncrementA
|
|
Call iInput.Increment
|
|
Loop
|
|
End Function
|
|
|
|
Public Function ImportCSVContent(iInput As IteratorCSVContent)
|
|
Call iInput.GoFirst
|
|
Dim iOutput As IteratorContent
|
|
Do While Not iInput.IsDone
|
|
Set iOutput = FindPlaceFor(iInput.TaskID)
|
|
Call iOutput.SyncCSVContent(iInput)
|
|
If CSE_ProgressBar.Visible Then _
|
|
Call CSE_ProgressBar.IncrementA
|
|
Call iInput.Increment
|
|
Loop
|
|
End Function
|
|
|
|
Public Function ImportDB(iData As DB_Content)
|
|
Dim iInput As IteratorContent: Set iInput = iData.IBegin()
|
|
Dim iOutput As IteratorContent
|
|
Do While Not iInput.IsDone
|
|
Set iOutput = FindPlaceFor(iInput.TaskID, iInput.ContentName, iInput.TaskType)
|
|
If Not iInput.IsCanceled Or iOutput.TaskType <> "" Then _
|
|
Call iOutput.SyncContent(iInput)
|
|
If CSE_ProgressBar.Visible Then _
|
|
Call CSE_ProgressBar.IncrementA
|
|
Call iInput.Increment
|
|
Loop
|
|
Call ImportAttributes(iData.Attributes)
|
|
End Function
|
|
|
|
' =======
|
|
Private Function FindPlaceFor(sID$, Optional sName$ = "", Optional sType$ = "") As IteratorContent
|
|
Dim iWhere As IteratorContent: Set iWhere = IBegin
|
|
If Not iWhere.FindTaskID(sID) Then _
|
|
If Not iWhere.FindContentName(sName, sType) Or iWhere.TaskID <> "" Then _
|
|
Call iWhere.GoEmpty
|
|
Set FindPlaceFor = iWhere
|
|
End Function
|
|
|
|
Private Function ImportAttributes(iInput As IteratorAttribute)
|
|
Dim iOutput As IteratorAttribute: Set iOutput = Attributes
|
|
Call iOutput.GoEmpty
|
|
Do While Not iInput.IsDone
|
|
Call iOutput.SyncWith(iInput)
|
|
Call iOutput.Increment
|
|
Call iInput.Increment
|
|
Loop
|
|
Call DeleteAttributeDuplicates
|
|
End Function
|
|
|
|
Private Function DeleteAttributeDuplicates()
|
|
|
|
End Function
|