home *** CD-ROM | disk | FTP | other *** search
/ com!online 2001 December / COMCD1201.iso / openoffice / f_0031 / CalendarMain.xba < prev    next >
Encoding:
Extensible Markup Language  |  2001-07-20  |  6.6 KB  |  210 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
  3. <script:module xmlns:script="http://openoffice.org/2000/script" script:name="CalendarMain" script:language="StarBasic">Option Explicit
  4.  
  5. Const _DEBUG = 0
  6.  
  7. ' CalenderMain
  8. Public sCurLangLocale as String
  9.  
  10. ' Dieses Flag dient zur Abfrage ob die individuellen Daten abgespeichert werden sollen.
  11. Public bCalOwnDataChanged as Boolean
  12.  
  13. 'BankHolidayFunctions
  14. Public CalBankholidayName$ (1 To 374)
  15. Public CalTypeOfBankHoliday% (1 To 374)
  16.  
  17. Public Const cHolidayType_None = 0
  18. Public Const cHolidayType_Full = 1
  19. Public Const cHolidayType_Half = 2
  20. Public Const cHolidayType_Own = 4
  21.  
  22. 'Dlg_Control
  23. Public CalTWIPSPicHeight%, CalTWIPSPicWidth%, CalStartX%, CalStartY%
  24.  
  25. Public CalPicWidth%, CalPicHeight%
  26.  
  27. Public cCalSubcmdDeleteSelect_DeleteSelEntry$
  28. Public cCalSubcmdDeleteSelect_DeleteSelEntryTitle$
  29. Public cCalSubcmdSwitchOwnDataOrGeneral_Back$
  30. Public cCalSubcmdSwitchOwnDataOrGeneral_OwnData$
  31.  
  32. 'Language
  33. Public cCalLongMonthNames$(12)
  34. Public cCalShortMonthNames$(12)
  35.  
  36. Public sBitmapFilename$
  37. Public sCalendarTitle$, sMonthTitle$, sWizardTitle$, sError$
  38. Public cCalStyleWorkday$, cCalStyleWeekend$
  39.  
  40. ' German only
  41. ' Variablen, die zur Verwaltung der Eingabe der Bundesl├ñnder dienen
  42. Public CalChoosenLand%, MouseClicked%, LandWhenClick%
  43. Public LastMousePosX, LastMousePosY As Single
  44.  
  45. Public oDocument as Object
  46. Public oSheets as Object
  47. Public oSheet as Object
  48. Public oStatusLine as Object
  49.  
  50. ' BL* bedeutet BundesLand*
  51. Public CONST CalBLBayern         = 1
  52. Public CONST CalBLBadenWuert     = 2
  53. Public CONST CalBLBerlin         = 3
  54. Public CONST CalBLBremen         = 4
  55. Public CONST CalBLBrandenburg    = 5
  56. Public CONST CalBLHamburg        = 6
  57. Public CONST CalBLHessen         = 7
  58. Public CONST CalBLMeckPomm       = 8
  59. Public CONST CalBLNiedersachsen  = 9
  60. Public CONST CalBLNordrheinWest  = 10
  61. Public CONST CalBLRheinlandPfalz = 11
  62. Public CONST CalBLSaarland       = 12
  63. Public CONST CalBLSachsen        = 13
  64. Public CONST CalBLSachsenAnhalt  = 14
  65. Public CONST CalBLSchlHolstein   = 15
  66. Public CONST CalBLThueringen     = 16
  67.  
  68. Public DlgCalendar as Object
  69. Public DlgCalModel as Object
  70.  
  71. Sub CalAutopilotTable()
  72. Dim BitmapDir as String
  73.  
  74. ' On Error Goto ErrorHandler
  75.     BasicLibraries.LoadLibrary("Tools")
  76.     ' HauptRoutine zur Erstellung des Kalenders
  77.     oDocument = StarDesktop.ActiveFrame.Controller.Model
  78.     oStatusline = oDocument.GetCurrentController.GetFrame.CreateStatusIndicator
  79.  
  80.     sCurLangLocale = oDocument.CharLocale.Language
  81.     DlgCalendar = LoadDialog("Schedule", "Dialog1")
  82.     DlgCalModel = DlgCalendar.Model
  83.     LoadLanguage(sCurLangLocale)
  84.     ' Da modul├╝bergreifende Variablen unsicher sind,
  85.     ' wird ihre Initialisierung noch einmal explizit
  86.     ' angegeben.
  87.     CalInitGlobalVariablesDate()
  88.     BitmapDir = GetOfficeSubPath("Template","wizard/bitmap")
  89.     DlgCalModel.imgCountry.ImageURL = BitmapDir & sBitmapFilename
  90.     CalChoosenLand = -2
  91.     MouseClicked% = False
  92.  
  93.     ' Die Daten f├╝r die eigenen Ereignisdaten werden geladen.
  94.     CalLoadOwnData()
  95.     DlgCalendar.GetControl("lstMonth").SelectItem(cCalShortMonthNames$(Month(Now())), True)
  96.  
  97.     With DlgCalModel
  98. '        .lbOwnData.FontName = "Courier"
  99.         .cmdDelete.Enabled = False
  100. '        .lstMonth.Tag = DlgCalModel.txtMonth.Text
  101.         .lstMonth.StringItemList() = cCalShortMonthNames$()
  102.         .lstOwnEventMonth.StringItemList() = cCalShortMonthNames$()
  103.         .optYear.State = 1
  104.         .txtYear.Text = Year(Now())
  105.         .txtYear.Tag = DlgCalModel.txtYear.Text
  106.         .Step = 1
  107.     End With
  108.     CalChooseCalendar()  ' month
  109.     DlgCalendar.GetControl("lstHolidays").SelectItemPos(0,True)
  110.     DlgCalendar.Visible = True
  111.     Exit Sub
  112.  
  113. ErrorHandler:
  114.     MsgBox(sError$, 16, sWizardTitle$)
  115. End Sub
  116.  
  117.  
  118. Sub CalChooseCalendar()
  119.     With DlgCalModel
  120.         .lstMonth.Enabled = .optMonth.State = 1
  121.         .lblMonth.Enabled = .optMonth.State = 1
  122.     End With
  123. End Sub
  124.  
  125.  
  126. Sub CalcmdCancel()
  127.     If bCalOwnDataChanged Then
  128.         Call CalSaveOwnData()
  129.     End If
  130.     DlgCalendar.Visible = False
  131. End Sub
  132.  
  133.  
  134.  
  135. Sub CalcmdOk()
  136.     ' cmdOk is called when the Button 'Read' is clicked on
  137.     ' It is either given out a month or a year
  138. Dim i, iSelYear as Integer
  139. Dim SelYear as String
  140.     DlgCalendar.Visible = False
  141.  
  142.     If cLANGUAGE_GERMAN = sCurLangLocale Then
  143.         If Ubound(DlgCalModel.lstHolidays.SelectedItems()) > -1 Then
  144.             CalChoosenLand = DlgCalModel.lstHolidays.SelectedItems(0)
  145.         Else
  146.             CalChoosenLand = 0
  147.         End If
  148.     End If
  149.     oSheets = oDocument.sheets
  150.     If bCalOwnDataChanged Then
  151.          Call CalSaveOwnData()
  152.     End If
  153.  
  154.     ' Unprotect all tables so they can be deleted or modified
  155.        For i = 0 To oSheets.Count - 1
  156.         oSheets.GetbyIndex(i).unprotect("")
  157.     Next
  158.     oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
  159.  
  160.     iSelYear = Val(DlgCalModel.txtYear.Text)
  161.     Select Case sCurLangLocale
  162.         Case cLANGUAGE_GERMAN
  163.             Call CalFindWholeYearHolidays_GERMANY(iSelYear, CalChoosenLand)
  164.         Case cLANGUAGE_ENGLISH
  165.             Call FindWholeYearHolidays_US(iSelYear)
  166.         Case cLANGUAGE_FRENCH
  167.             Call FindWholeYearHolidays_FRANCE(iSelYear)
  168.         Case cLANGUAGE_ITALIAN
  169.             Call FindWholeYearHolidays_ITA(iSelYear)
  170.         Case cLANGUAGE_SPANISH
  171.             Call FindWholeYearHolidays_SPAIN(iSelYear)
  172.         Case cLANGUAGE_PORTUGUESE
  173.             Call FindWholeYearHolidays_PORT(iSelYear)
  174.         Case cLANGUAGE_DUTCH
  175.             Call FindWholeYearHolidays_NL(iSelYear)
  176.         Case cLANGUAGE_SWEDISH
  177.             Call FindWholeYearHolidays_SWED(iSelYear)
  178.         Case cLANGUAGE_DANISH
  179.             Call FindWholeYearHolidays_DK(iSelYear)
  180.         Case cLANGUAGE_POLISH
  181.             Call FindWholeYearHolidays_PL(iSelYear)
  182.         Case cLANGUAGE_RUSSIAN
  183.             Call FindWholeYearHolidays_RU(iSelYear)
  184.     End Select
  185.  
  186.     Call CalInsertOwnDataInTables(iSelYear)
  187.  
  188.     If DlgCalModel.optYear.State = 1 Then
  189.         oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
  190.         oSheet = oSheets.GetbyIndex(0)
  191.         oSheet.Name = sCalendarTitle$ + " " + iSelYear
  192.         oDocument.AddActionLock
  193.         Call CalCreateYearTable(iSelYear)
  194.     ElseIf DlgCalModel.optMonth.State = 1 Then
  195.         Dim iMonth
  196.         iMonth = DlgCalModel.lstMonth.SelectedItem(0)
  197.         oSheets.RemovebyName(oSheets.GetbyIndex(1).Name)
  198.         oSheet = oSheets.GetbyIndex(0)
  199.         oSheet.Name = sMonthTitle$ + " " + cCalLongMonthNames$(iMonth)
  200.         oDocument.AddActionLock
  201.         Call CalCreateMonthTable(iSelYear, iMonth)
  202.     End If
  203.  
  204.     oDocument.RemoveActionLock
  205.     ' Protect the remaining sheet
  206.     oSheet.protect("")
  207.     oStatusLine.End
  208.     DlgCalendar.Visible = False
  209. End Sub
  210. </script:module>