TASKS.BAS

Attribute VB_Name = "TaskObjectRoutines" 
Option Explicit

Function bCreate8KRecurTask(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer
Dim dt As Date
Dim szText As String

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Get the 8k of text
szText = szGetMuchText(8192)

'Create some simple tasks

Set objTable = objGetTable(RECURRING_TASKS)

For i = 1 To nNumber
dt = DateAdd("d", i, Now())
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreate8KRecurTask " & Str$(i) & " " & Now() & szText), Notes:="Notes", _
Priority:=CLng((67 * 2 ^ 8) And (51)), _
AccessActual:=saclOwner, _
AlarmAmount:=CLng(10), AlarmTypeUnit:=CLng(0), BusyType:=CLng(1), BeforeEnd:=True, ring:=True, _
AmountActualEffort:=CLng(10), TypeUnitActualEffort:=CLng(2), AmountEstimatedEffort:=CLng(5), TypeUnitEstimatedEffort:=CLng(2), _
AmountStartWork:=CLng(2), TypeUnitStartWork:=CLng(2), _
Billing:="Billing", Mileage:="Mileage", Role:="Role", _
IsTaskAutoDone:=True, PercentCompleted:=CLng(55)
objItem.SetProperties RecurringType:=trecurWeekly, WeekInterval:=CLng(1), DayOfWeekMask:=CLng(4), DayOfWeekStart:=CLng(0), _
StartRecurringDate:=lConvertToJohnnyDate(dt), _
StartRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 1, dt)), _
EndRecurringDate:=lConvertToJohnnyDate(DateAdd("yyyy", 1, dt)), _
EndRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 2, dt))

Set objItem = Nothing
DoEvents
Next i

Set objTable = Nothing

bCreate8KRecurTask = True

End Function

'****************************
'
' bCreateRecurTaskAllFields - Creates Recurring Task while setting all fields
'
'****************************
Function bCreateRecurTaskAllFields(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer
Dim dt As Date

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Create some simple tasks

Set objTable = objGetTable(RECURRING_TASKS)

For i = 1 To nNumber
dt = DateAdd("d", i, Now())
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreateRecurTaskAllFields " & Str$(i) & " " & Now()), Notes:="Notes", _
Priority:=CLng((67 * 2 ^ 8) And (51)), _
AccessActual:=saclOwner, _
AlarmAmount:=CLng(10), AlarmTypeUnit:=CLng(0), BusyType:=CLng(1), BeforeEnd:=True, ring:=True, _
AmountActualEffort:=CLng(10), TypeUnitActualEffort:=CLng(2), AmountEstimatedEffort:=CLng(5), TypeUnitEstimatedEffort:=CLng(2), _
AmountStartWork:=CLng(2), TypeUnitStartWork:=CLng(2), _
Billing:="Billing", Mileage:="Mileage", Role:="Role", _
IsTaskAutoDone:=True, PercentCompleted:=CLng(55)
objItem.SetProperties RecurringType:=trecurWeekly, WeekInterval:=CLng(1), DayOfWeekMask:=CLng(4), DayOfWeekStart:=CLng(0), _
StartRecurringDate:=lConvertToJohnnyDate(dt), _
StartRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 1, dt)), _
EndRecurringDate:=lConvertToJohnnyDate(DateAdd("yyyy", 1, dt)), _
EndRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 2, dt))

Set objItem = Nothing
DoEvents
Next i

Set objTable = Nothing

bCreateRecurTaskAllFields = True

End Function

'*******************************************
'
'Creates a weekly recurring task with no end date
'
'*******************************************
Function bCreateSimpleRecurTask(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer
Dim dt As Date

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Create some simple tasks

Set objTable = objGetTable(RECURRING_TASKS)

For i = 1 To nNumber
Set objItem = objTable.New
dt = DateAdd("d", i, Now())
objItem.SetProperties Text:=("OLE: bCreateSimpleRecurTask " & Str$(i) & " " & Now()), Notes:="Notes", _
Start:=dt, End:=(DateAdd("h", 1, dt)), _
RecurringType:=trecurWeekly, WeekInterval:=CLng(1), DayOfWeekMask:=CLng(4), DayOfWeekStart:=CLng(0), _
StartRecurringDate:=lConvertToJohnnyDate(dt), _
StartRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 1, dt)), _
EndRecurringTime:=lConvertToJohnnyTime(DateAdd("h", 2, dt))

' EndRecurringDate:=lConvertToJohnnyDate(DateAdd("yyyy", 1, dt)), _

objItem.Flush
Set objItem = Nothing
DoEvents
Next i

bCreateSimpleRecurTask = True

End Function

'******************************
'
' Calls all scripts in this module
'
'******************************
Function CallAllTaskScripts()

Set gobjBase = objSetBaseObject

If gobjBase.LoggedOn = False Then
gobjBase.Logon profileName:="ryanw24"
End If

Set gobjSched = gobjBase.ScheduleSelected
gobjSched.Activate

'Create a simple task (desc. and notes)
' bCreateSimpleTask (1)

'Create a task with all fields filled (except contact and role)
' bCreateTaskAllFields (1)

'Create an 8K Task
' bCreate8KTask (1)

'Create simple recurring task
bCreateSimpleRecurTask (1)

'Create recurring task with all fields filled
bCreateRecurTaskAllFields (1)

'Create an 8K task
bCreate8KRecurTask (1)

Set gobjSched = Nothing
Set gobjBase = Nothing

End Function




Function bCreateSimpleTask(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Create some simple tasks

Set objTable = objGetTable(SINGLE_TASKS)

For i = 1 To nNumber
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreateSimpleTask " & Str$(i) & " " & Now()), Notes:="Notes"
Set objItem = Nothing
DoEvents
Next i

bCreateSimpleTask = True

End Function


Function bCreate8KTask(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer
Dim szText As String

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Get the 8k of text
szText = szGetMuchText(8192)

'Create some simple tasks

Set objTable = objGetTable(SINGLE_TASKS)

For i = 1 To nNumber
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreate8KTask " & Str$(i) & " " & Now() & szText), Notes:="Notes", _
Priority:=CLng((67 * 2 ^ 8) And (51)), _
AlarmAmount:=CLng(10), AlarmTypeUnit:=CLng(0), BusyType:=CLng(1), BeforeEnd:=True, ring:=True, _
Start:=(DateAdd("d", i, Now())), End:=(DateAdd("d", i + 1, Now())), _
AmountActualEffort:=CLng(10), TypeUnitActualEffort:=CLng(2), _
AmountEstimatedEffort:=CLng(5), TypeUnitEstimatedEffort:=CLng(2), _
AmountStartWork:=CLng(2), TypeUnitStartWork:=CLng(2), _
Billing:="Billing", Mileage:="Mileage", Role:="Role", _
IsTaskAutoDone:=True, PercentCompleted:=CLng(55)

Set objItem = Nothing
DoEvents
Next i

Set objTable = Nothing

bCreate8KTask = True

End Function

Function bCreateTaskAllFields(nNumber As Integer) As Boolean
Dim objTable As Object
Dim objItem As Object
Dim i As Integer

'Check to make sure nNumber was set
nNumber = IIf(nNumber = 0, 1, nNumber)

'Create some simple tasks

Set objTable = objGetTable(SINGLE_TASKS)

For i = 1 To nNumber
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreateTaskAllFields " & Now()), Notes:="Notes", _
Priority:=CLng((67 * 2 ^ 8) And (51)), _
AccessActual:=saclOwner, _
AlarmAmount:=CLng(10), AlarmTypeUnit:=CLng(0), BusyType:=CLng(1), BeforeEnd:=True, ring:=True, _
Start:=DateAdd("d", i, Now()), End:=DateAdd("d", i + 1, Now()), _
AmountActualEffort:=CLng(10), TypeUnitActualEffort:=CLng(2), _
AmountEstimatedEffort:=CLng(5), TypeUnitEstimatedEffort:=CLng(2), _
AmountStartWork:=CLng(2), TypeUnitStartWork:=CLng(2), _
Billing:="Billing", Mileage:="Mileage", Role:="Role", _
IsTaskAutoDone:=True, PercentCompleted:=CLng(55)

Set objItem = Nothing
DoEvents
Next i

Set objTable = Nothing

bCreateTaskAllFields = True

End Function

Function UETest() As Boolean
Dim objTable As Object
Dim objItem As Object

'Create a Sched+ object
Set gobjBase = CreateObject("Schedule+.Application")

'Find out if we're logged on, if not use a profile
If gobjBase.LoggedOn = False Then
gobjBase.Logon profileName:="ryanw24"
End If

'Get the handle for the selected schedule and activate it's window
Set gobjSched = gobjBase.ScheduleSelected
gobjSched.Activate

'Create a simple task

'Get the tasks table
Set objTable = gobjSched.SingleTasks

'Create a new item
Set objItem = objTable.New
objItem.SetProperties Text:=("OLE: bCreateSimpleTask " & Now()), Notes:="Notes"
Set objItem = Nothing

'Release Objects and log off
Set objTable = Nothing
Set gobjSched = Nothing
gobjBase.Logoff
Set gobjBase = Nothing
End Function