home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
- <script:module xmlns:script="http://openoffice.org/2000/script" script:name="CreateTable" script:language="StarBasic">Option Explicit
-
- Public Const FirstDayRow = 5 ' Row on month sheet for first day of month
- Public Const DateColumn% = 3 ' Column on month sheet with days
- Public Const NewYearRow = 4 ' Row on year sheet for January 1st
- Public Const NewYearColumn = 2 ' Column on year sheet for January 1st
-
-
- Sub CalCreateYearTable(ByVal YearInt%)
- ' Completes the overview for whole year
-
- ' Needed by StarOffice Calc and StarOffice Schedule
- Dim CalDay%, CalMonth%, Count%, nCount%
-
- ' Only needed by StarOffice Schedule
- Dim oYearCell as object
- Dim iDate
- Dim i, s as Integer
- Dim ColPos, RowPos as Integer
- Dim oNameCell, oDateCell as Object
- Dim iCellValue as Long
- Dim oRangeFebCell, oCellAddress, oFebcell as Object
- Dim oRangeBlank as Object
- Dim sBlankStyle as String
- On Error Goto ErrorHandling
- oStatusLine.Start(GetResText(sProgress),140)
-
- iDate = DateSerial(Val(DlgCalModel.txtYear.Text),1,1)
-
- ' Insert year
- oYearCell = oSheet.GetCellRangeByName("Year")
- oYearCell.Value = Val(DlgCalModel.txtYear.Text)
- ' Insert holidays
- CalMonth% = 1
- CalDay% = 0
- s = 10
- oStatusLine.SetValue(s)
- For i = 1 To 374
- CalDay = CalDay+1
- If CalDay = 32 Then
- CalDay = 1
- CalMonth = CalMonth+1
- s = s + 10
- oStatusLine.SetValue(s)
- End If
- ColPos = NewYearColumn+(2*CalMonth)
- RowPos = NewYearRow + CalDay
- FormatCalCells(ColPos,RowPos,i)
- Next
- If NOT CalIsLeapYear(Val(txtYear.Text)) Then
- ' Delete 29th February if necessary
- oRangeFebCell = oSheet.GetCellRangeByName("Feb29")
- oCellAddress = oRangeFebCell.RangeAddress
- oFebCell = oSheet.GetCellByPosition(oCellAddress.StartColumn,oCellAddress.StartRow)
- oFebCell.String = ""
- ' Change the CellStyle according to the Range "Blank"
- oRangeBlank = oSheet.GetCellRangebyName("Blank")
- sBlankStyle = oRangeBlank.CellStyle
- oRangeFebCell.CellStyle = sBlankStyle
- End If
- oStatusLine.SetValue(150)
- ErrorHandling:
- If Err <> 0 Then
- MsgBox sError$, 16, sWizardTitle$
- End If
- End Sub
-
-
-
- Sub CalCreateMonthTable(ByVal YearInt%, ByVal MonthInt%)
- Dim oMonthCell, oDateCell as Object
- Dim iDate as Date
- Dim oAddress
- Dim i, s as Integer
- Dim StartDay%, TargetMonth%
-
- ' Completes the monthly calendar
- On Error Goto ErrorHandling
- oStatusLine.Start(GetResText(sProgess),40)
- ' Set month
- TargetMonth% = CalGetIntOfShortMonthName%(txtMonth.Text)
- oMonthCell = oSheet.GetCellRangeByName("Month")
-
- iDate = DateSerial(Val(DlgCalModel.txtYear.Text),TargetMonth%,1)
- oMonthCell.Value = iDate
- ' Inserting holidays
- StartDay% = (TargetMonth% - 1) * 31 + 1
- s = 5
- For i = StartDay% To StartDay%+30
- oStatusLine.SetValue(s)
- s = s + 1
- FormatCalCells(DateColumn+1,FirstDayRow+i-StartDay,i)
- Next
- oDateCell = oSheet.GetCellbyPosition(DateColumn,FirstDayRow+i-StartDay - 1)
- oAddress = oDateCell.RangeAddress
-
- Select Case TargetMonth
- Case 2,4,6,9,11
- oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
- If TargetMonth = 2 Then
- oAddress.StartRow = oAddress.StartRow - 1
- oAddress.EndRow = oAddress.StartRow
- oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
- If Not CalIsLeapYear(Val(txtYear.Text)) Then
- oAddress.StartRow = oAddress.StartRow - 1
- oAddress.EndRow = oAddress.StartRow
- oSheet.RemoveRange(oAddress, com.sun.star.sheet.CellDeleteMode.ROWS)
- End If
- End If
- End Select
- oStatusLine.SetValue(45)
- ErrorHandling:
- If Err <> 0 Then
- MsgBox sError$, 16, sWizardTitle$
- End If
- End Sub
-
-
-
- Sub FormatCalCells(ColPos,RowPos,i as Integer)
- Dim oNameCell, oDateCell as Object
- Dim iCellValue as Long
- oDateCell = oSheet.GetCellbyPosition(ColPos-1,RowPos)
- If oDateCell.Value <> 0 Then
- iCellValue = oDateCell.Value
- oDateCell.Value = iCellValue
- If CalBankHolidayName$(i) <> "" Then
- oNameCell = oSheet.GetCellbyPosition(ColPos,RowPos)
- oNameCell.String = CalBankHolidayName$(i)
- If CalTypeOfBankHoliday%(i) = cHolidayType_Full Then
- oDateCell.CellStyle = cCalStyleWeekend$
- End If
- End If
- End If
- End Sub</script:module>