summaryrefslogtreecommitdiff
path: root/wizards/source/schedule
diff options
context:
space:
mode:
authorBehrend Cornelius <bc@openoffice.org>2002-10-29 09:48:13 +0000
committerBehrend Cornelius <bc@openoffice.org>2002-10-29 09:48:13 +0000
commit050eec5b4096686f60683441291b6575513f9976 (patch)
tree5fd59b2fc6711e8fdaf39870fea4dd8a8079e792 /wizards/source/schedule
parent4457d8cd564ba8e313a4158cef5eab1346e03ce7 (diff)
#96771# Own Holidays that occur once no longer supported
Diffstat (limited to 'wizards/source/schedule')
-rw-r--r--wizards/source/schedule/BankHoliday.xba24
-rw-r--r--wizards/source/schedule/CalendarMain.xba141
-rw-r--r--wizards/source/schedule/CreateTable.xba1
-rw-r--r--wizards/source/schedule/DlgControl.xba94
-rw-r--r--wizards/source/schedule/GermanHolidays.xba14
-rw-r--r--wizards/source/schedule/Language.xba5
-rw-r--r--wizards/source/schedule/LocalHolidays.xba12
-rw-r--r--wizards/source/schedule/OwnEvents.xba253
8 files changed, 277 insertions, 267 deletions
diff --git a/wizards/source/schedule/BankHoliday.xba b/wizards/source/schedule/BankHoliday.xba
index 8c89b1c80..635141366 100644
--- a/wizards/source/schedule/BankHoliday.xba
+++ b/wizards/source/schedule/BankHoliday.xba
@@ -124,30 +124,23 @@ End Function
Sub CalInsertOwnDataInTables(ByVal iSelYear as Integer)
- &apos; Fügt die eigenen Individuellen Daten aus der Tabelle in die
- &apos; bereits erstellte unsortierte Tabelle ein.
+ &apos; inserts the individual data from the table into the previously unsorted list
Dim CurEventName as String
-Dim CurYear as Integer
-Dim CurMonth as Integer
-Dim CurDay as Integer
+Dim CurEvMonth as Integer
+Dim CurEvDay as Integer
Dim LastIndex as Integer
Dim i as Integer
+Dim DateStr as String
LastIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
For i = 0 To LastIndex
- CurYear = CalGetYearOfEvent(i)
- If DlgCalModel.lstOwnData.StringItemList(i) &lt;&gt; &quot;&quot; Then
- If (CurYear = iSelYear) Or (CurYear = 0) Then
- CurMonth = CalGetMonthofEvent(i)
- CurDay = CalGetDayofEvent(i)
- CurEventName = CalGetNameOfEvent(i)
- CalInsertBankholiday(DateSerial(CurYear, CurMonth, CurDay), CurEventName, cHolidayType_Own)
- End If
+ If GetSelectedDateUnits(CurEvDay, CurEvMonth, i) &lt;&gt; SBDATEUNDEFINED Then
+ CurEventName = CalGetNameOfEvent(i)
+ CalInsertBankholiday(DateSerial(iSelYear, CurEvMonth, CurEvDay), CurEventName, cHolidayType_Own)
End If
Next
End Sub
-
&apos; Finds eg the first,second Monday in a month
&apos; Note: in This Function the week starts with the Sunday
Function GetMonthDate(YearInt as Integer, iMonth as Integer, iWeekDay as Integer, iOffset as Integer)
@@ -167,7 +160,6 @@ Dim lDate as Long
End Function
-
&apos; Finds the next weekday after a fixed date
&apos; e.g. Midsummerfeast in Sweden: next Saturday after 20th June
Function GetNextWeekDay(iYear as Integer, iMonth as Integer, iDay as Integer, iWeekDay as Integer)
@@ -185,7 +177,7 @@ End Function
Sub AddFollowUpHolidays(ByVal lStartDate as Long, iCount as Integer, HolidayName as String, iType as Integer)
Dim lDate as Long
- For lDate = lStartDate + 1 To lStartDate + iCount
+ For lDate = lStartDate + 1 To lStartDate + 4
CalInsertBankholiday(lDate, HolidayName, iType)
Next lDate
End Sub
diff --git a/wizards/source/schedule/CalendarMain.xba b/wizards/source/schedule/CalendarMain.xba
index be49f82ee..a75310d56 100644
--- a/wizards/source/schedule/CalendarMain.xba
+++ b/wizards/source/schedule/CalendarMain.xba
@@ -61,6 +61,8 @@ Public CONST CalBLThueringen = 16
Public DlgCalendar as Object
Public DlgCalModel as Object
+Public lDateFormat as Long
+Public lDateStandardFormat as Long
@@ -85,15 +87,14 @@ Dim iThisMonth as Integer
CalChoosenLand = -2
CalLoadOwnData()
-&apos; sCurLanguage = &quot;ja&quot;
With DlgCalModel
.cmdDelete.Enabled = False
.lstMonth.StringItemList() = cCalShortMonthNames()
Select Case sCurLangLocale
- Case &quot;ja&quot;
+ Case cLANGUAGE_JAPANESE
.lstOwnData.FontName = &quot;HG Mincho Light J&quot;
.txtEvent.FontName = &quot;HG Mincho Light J&quot;
- Case &quot;zh&quot;
+ Case cLANGUAGE_CHINESE
If oDocument.CharLocale.Country = &quot;CN&quot; Then
.lstOwnData.FontName = &quot;HG MSung Light SC&quot;
.txtEvent.FontName = &quot;HG MSung Light SC&quot;
@@ -111,6 +112,7 @@ Dim iThisMonth as Integer
.txtYear.Tag = .txtYear.Value
.Step = 1
End With
+ SetupNumberFormatter(sCurLangLocale, sCurCountryLocale)
CalChooseCalendar() &apos; month
iThisMonth = Month(Now)
DlgCalendar.GetControl(&quot;lstMonth&quot;).SelectItemPos(iThisMonth-1, True)
@@ -129,6 +131,70 @@ ErrorHandler:
End Sub
+Sub SetupNumberFormatter(sCurLangLocale as String, sCurCountryLocale as String)
+Dim oFormats as Object
+Dim DateFormatString as String
+ oFormats = oDocument.getNumberFormats()
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ DateFormatString = &quot;TT.MMM&quot;
+ Case cLANGUAGE_ENGLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_FRENCH
+ DateFormatString = &quot;JJ/MMM&quot;
+ Case cLANGUAGE_ITALIAN
+ DateFormatString = &quot;GG/MMM&quot;
+ Case cLANGUAGE_SPANISH
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_PORTUGUESE
+ DateFormatString = &quot;DD-MMM&quot;
+ Case cLANGUAGE_DUTCH
+ DateFormatString = &quot;DD-MMM&quot;
+ Case cLANGUAGE_SWEDISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_DANISH
+ DateFormatString = &quot;DD-MMM&quot;
+ Case cLANGUAGE_POLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_RUSSIAN
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_JAPANESE
+ DateFormatString = &quot;M月D日&quot;
+ Case cLANGUAGE_CHINESE
+ If sCurCountryLocale = &quot;TW&quot; Then
+ DateFormatString = &quot;MMMMD&quot; &amp;&quot;&quot;&quot;&quot; &amp; &quot;日&quot; &amp; &quot;&quot;&quot;&quot;
+ Else
+ DateFormatString = &quot;M&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;月&quot; &amp; &quot;&quot;&quot;&quot; &amp; &quot;D&quot; &amp;&quot;&quot;&quot;&quot; &amp; &quot;日&quot; &amp; &quot;&quot;&quot;&quot;
+ End If
+ Case cLANGUAGE_GREEK
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_TURKISH
+ DateFormatString = &quot;DD/MMM&quot;
+ Case cLANGUAGE_POLISH
+ DateFormatString = &quot;MMM DD&quot;
+ Case cLANGUAGE_FINNISH
+ DateFormatString = &quot;PP.KKK&quot;
+ End Select
+
+ lDateFormat = AddNumberFormat(oFormats, DateFormatString, oDocument.CharLocale)
+ lDateStandardFormat = oFormats.getStandardFormat(com.sun.star.util.NumberFormat.DATE, oDocument.CharLocale)
+
+&apos; lDateStandardFormat = AddNumberFormat(oFormats, StandardDateFormatString, oDocument.CharLocale)
+ oNumberFormatter = createUNOService(&quot;com.sun.star.util.NumberFormatter&quot;)
+ oNumberFormatter.attachNumberFormatsSupplier(oDocument)
+End Sub
+
+
+Function AddNumberFormat(oNumberFormats as Object, FormatString as String, oLocale as Object) as Long
+Dim lLocDateFormat as Long
+ lLocDateFormat = oNumberFormats.QueryKey(FormatString, oLocale, True)
+ If lLocDateFormat = -1 Then
+ lLocDateFormat = oNumberFormats.addNew(FormatString, oLocale)
+ End If
+ AddNumberFormat() = lLocDateFormat
+End Function
+
+
Sub CalChooseCalendar()
With DlgCalModel
.lstMonth.Enabled = .optMonth.State = 1
@@ -143,52 +209,18 @@ Sub CalcmdCancel()
End Sub
-
Sub CalcmdOk()
&apos; cmdOk is called when the Button &apos;Read&apos; is clicked on
&apos; It is either given out a month or a year
-Dim i as Integer
-Dim iSelYear as Integer
+Dim i, iSelYear as Integer
Dim SelYear as String
+&apos; DlgCalendar.Visible = False
oSheets = oDocument.sheets
Call CalSaveOwnData()
UnprotectSheets(oSheets)
oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
iSelYear = DlgCalModel.txtYear.Value
- If DlgCalModel.optYear.State = 1 Then
- oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
- oSheet = oSheets.GetbyIndex(0)
- oSheet.Name = sCalendarTitle$ + &quot; &quot; + iSelYear
- InsertLocalBankholidays(iSelYear)
- CalInsertOwnDataInTables(iSelYear)
- oDocument.AddActionLock()
- CalCreateYearTable(iSelYear)
- ElseIf DlgCalModel.optMonth.State = 1 Then
- Dim iMonth
- iMonth = DlgCalModel.lstMonth.SelectedItems(0) + 1
- oSheets.RemovebyName(oSheets.GetbyIndex(1).Name)
- oSheet = oSheets.GetbyIndex(0)
- If sMonthTitle = &quot;&quot; Then
- oSheet.Name = cCalLongMonthNames(iMonth-1)
- Else
- oSheet.Name = sMonthTitle + &quot; &quot; + cCalLongMonthNames(iMonth-1)
- End If
- InsertLocalBankholidays(iSelYear)
- CalInsertOwnDataInTables(iSelYear)
- oDocument.AddActionLock
- CalCreateMonthTable(iSelYear, iMonth)
- End If
- oDocument.RemoveActionLock
-&apos; oDocument.CalculateAll()
- oSheet.protect(&quot;&quot;)
- oStatusLine.End
- DlgCalendar.EndExecute()
- bCancelTask = True
-End Sub
-
-
-Sub InsertLocalBankholidays(iSelYear as Integer)
Select Case sCurLangLocale
Case cLANGUAGE_GERMAN
If Ubound(DlgCalModel.lstHolidays.SelectedItems()) &gt; -1 Then
@@ -234,4 +266,33 @@ Sub InsertLocalBankholidays(iSelYear as Integer)
Case cLANGUAGE_FINNISH
Call FindWholeYearHolidays_FI(iSelYear)
End Select
-End Sub</script:module> \ No newline at end of file
+
+ Call CalInsertOwnDataInTables(iSelYear)
+
+ If DlgCalModel.optYear.State = 1 Then
+ oSheets.RemovebyName(oSheets.GetbyIndex(0).Name)
+ oSheet = oSheets.GetbyIndex(0)
+ oSheet.Name = sCalendarTitle$ + &quot; &quot; + iSelYear
+ oDocument.AddActionLock
+ Call CalCreateYearTable(iSelYear)
+ ElseIf DlgCalModel.optMonth.State = 1 Then
+ Dim iMonth
+ iMonth = DlgCalModel.lstMonth.SelectedItems(0) + 1
+ oSheets.RemovebyName(oSheets.GetbyIndex(1).Name)
+ oSheet = oSheets.GetbyIndex(0)
+ If sMonthTitle = &quot;&quot; Then
+ oSheet.Name = cCalLongMonthNames(iMonth-1)
+ Else
+ oSheet.Name = sMonthTitle + &quot; &quot; + cCalLongMonthNames(iMonth-1)
+ End If
+ oDocument.AddActionLock
+ Call CalCreateMonthTable(iSelYear, iMonth)
+ End If
+
+ oDocument.RemoveActionLock
+ oSheet.protect(&quot;&quot;)
+ oStatusLine.End
+ DlgCalendar.EndExecute()
+ bCancelTask = True
+End Sub
+</script:module> \ No newline at end of file
diff --git a/wizards/source/schedule/CreateTable.xba b/wizards/source/schedule/CreateTable.xba
index 10838707f..6d472a84b 100644
--- a/wizards/source/schedule/CreateTable.xba
+++ b/wizards/source/schedule/CreateTable.xba
@@ -114,6 +114,7 @@ ErrorHandling:
End Sub
+
Sub FormatCalCells(ColPos,RowPos,i as Integer)
Dim oNameCell, oDateCell as Object
Dim iCellValue as Long
diff --git a/wizards/source/schedule/DlgControl.xba b/wizards/source/schedule/DlgControl.xba
index 0ba3ca42e..275e507fa 100644
--- a/wizards/source/schedule/DlgControl.xba
+++ b/wizards/source/schedule/DlgControl.xba
@@ -8,6 +8,7 @@ Public fHeightCorrFactor as Double
Public fWidthCorrFactor as Double
+
Sub Main()
Call CalAutopilotTable()
End Sub
@@ -15,14 +16,28 @@ End Sub
Sub CalcmdDeleteSelect()
Dim MsgBoxResult as Integer
+Dim bDoEnable as Boolean
+Dim iSel as Integer
+Dim MaxIndex as Integer
If Ubound(DlgCalModel.lstOwnData.SelectedItems()) &gt; -1 Then
MsgBoxResult = MsgBox(cCalSubcmdDeleteSelect_DeleteSelEntry$, 4+32, cCalSubcmdDeleteSelect_DeleteSelEntryTitle$)
If MsgBoxResult = 6 Then
+ iSel = DlgCalModel.lstOwnData.SelectedItems(0)
DlgCalModel.lstOwnData.StringItemList() = RemoveSelected(DlgCalModel.lstOwnData)
- &apos; Flag zum Speichern der neuen Daten.
+ &apos; Flag to store the new data
bCalOwnDataChanged = True
- DlgCalModel.cmdDelete.Enabled = Ubound(DlgCalModel.lstOwnData.StringItemList()) &gt; -1
- Call CalClearInputMask()
+ bDoEnable = Ubound(DlgCalModel.lstOwnData.StringItemList()) &gt; -1
+ DlgCalModel.cmdDelete.Enabled = bDoEnable
+ If bDoEnable Then
+ MaxIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
+ If iSel &gt; MaxIndex Then
+ iSel = MaxIndex
+ End If
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).SelectItemPos(iSel, True)
+ CalUpdateNewEventFrame()
+ Else
+ Call CalClearInputMask()
+ End If
End If
End If
End Sub
@@ -32,21 +47,6 @@ Sub CalSaveOwnEventControls()
With DlgCalModel
.txtOwnEventDay.Tag = .txtOwnEventDay.Value
.txtOwnEventMonth.Tag = .txtOwnEventMonth.Text
- .DlgCalModel.txtOwnEventYear.Tag = DlgCalModel.txtOwnEventYear.Value
- End With
-End Sub
-
-
-Sub ToggleYearBox()
-&apos; Falls der RadioButton für einen Jahreskalender angeklickt
-&apos; worden ist, müssen die Controls für den Monat Disabled
-&apos; werden, da ihre Werte in einer Jahrestabelle aufgehen.
- With DlgCalModel
- .txtOwnEventYear.Enabled = .chkEventOnce.State = 1
- .lblEventYear.Enabled = .chkEventOnce.State = 1
- If .txtOwnEventYear.Value = 0 And .lblEventYear.Enabled Then
- .txtOwnEventYear.Value = Year(Now)
- End If
End With
End Sub
@@ -66,11 +66,14 @@ End Sub
Sub SelectState(aEvent as Object)
Dim ListIndex as Integer
- If aEvent.ClickCount &gt;= 1 Then
- ListIndex = CalGetGermanLandAtMousePos(CInt(aEvent.X/fWidthCorrFactor), CInt(aEvent.Y/fHeightCorrFactor), Land$)
- DlgCalendar.GetControl(&quot;lstHolidays&quot;).SelectItemPos(ListIndex, True)
- bSelectByMouseMove = False
- End If
+ Select Case sCurLangLocale
+ Case cLANGUAGE_GERMAN
+ If aEvent.ClickCount &gt;= 1 Then
+ ListIndex = CalGetGermanLandAtMousePos(CInt(aEvent.X/fWidthCorrFactor), CInt(aEvent.Y/fHeightCorrFactor), Land$)
+ DlgCalendar.GetControl(&quot;lstHolidays&quot;).SelectItemPos(ListIndex, True)
+ bSelectByMouseMove = False
+ End If
+ End Select
End Sub
@@ -81,29 +84,26 @@ End Sub
Sub CalClearInputMask()
Dim NullList() as String
-&apos; Löscht die Werte der Eingabe Controls für ein neues Ereignis.
With DlgCalModel
- .chkEventOnce.State = 0
- .lblEventYear.Enabled = False
- .txtOwnEventYear.Enabled = False
- .txtOwnEventYear.SetPropertyToDefault(&quot;Value&quot;)
.txtEvent.Text = &quot;&quot;
.txtOwnEventDay.SetPropertyToDefault(&quot;Value&quot;)
.cmdInsert.Enabled = False
End With
- DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).SelectItemPos(0,True)
- CurOwnMonth = 1
+ If Ubound(DlgCalModel.lstOwnData.StringItemList()) &gt; -1 Then
+ If Ubound(DlgCalModel.lstOwnData.SelectedItems()) = -1 Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).SelectItemPos(0,True)
+ CalUpdateNewEventFrame()
+ End If
+ End If
End Sub
Sub CalmdSwitchOwnDataOrGeneral()
- &apos;Ändert den Titel der Dialogbox beim Seitenwechsel und die
- &apos;Beschriftungen der Knöpfe
If DlgCalModel.Step = 1 Then
DlgCalModel.Step = 2
DlgCalModel.cmdOwnData.Label = cCalSubcmdSwitchOwnDataOrGeneral_Back$
DlgCalModel.cmdInsert.Enabled = DlgCalModel.txtEvent.Text &lt;&gt; &quot;&quot;
- ToggleYearBox()
+&apos; ToggleYearBox()
Else
dim bla as boolean
DlgCalModel.Step = 1
@@ -124,32 +124,24 @@ Dim bDoEnable as Boolean
Dim sSelectedItem
Dim ListIndex as Integer
Dim MaxSelIndex as Integer
-Dim iMonth as Integer
+Dim CurEvMonth as Integer
+Dim CurEvDay as Integer
+Dim DateStr as String
bDoEnable = False
With DlgCalModel
MaxSelIndex = Ubound(DlgCalModel.lstOwnData.SelectedItems())
If MaxSelIndex &gt; -1 Then
ListIndex = .lstOwnData.SelectedItems(MaxSelIndex)
.txtEvent.Text = CalGetNameofEvent(ListIndex)
- .txtOwnEventDay.Value = CalGetDayOfEvent(ListIndex)
- iMonth = CalGetMonthOfEvent(ListIndex)
- DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).SelectItemPos(iMonth-1, True)
- CurOwnMonth = DlgCalModel.lstOwnEventMonth.SelectedItems(0) + 1
- If CalGetYearofEvent(ListIndex) &lt;&gt; 0 Then
- .txtOwnEventYear.Value = CalGetYearofEvent(ListIndex)
- bDoEnable = True
+ If GetSelectedDateUnits(CurEvDay, CurEvMonth, ListIndex) &lt;&gt; SBDATEUNDEFINED Then
+ .txtOwnEventDay.Value = CurEvDay
+ DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).SelectItemPos(CurEvMonth-1, True)
+ .cmdDelete.Enabled = True
+ .cmdInsert.Enabled = True
Else
- bDoEnable = False
- DlgCalModel.txtOwnEventYear.SetPropertyToDefault(&quot;Value&quot;)
+ Call CalClearInputMask()
+ .cmdDelete.Enabled = True
End If
- .chkEventOnce.State = Abs(bDoEnable)
- .lblEventYear.Enabled = bDoEnable
- .txtOwnEventYear.Enabled = bDoEnable
- .cmdDelete.Enabled = True
- .cmdInsert.Enabled = True
- Else
- Call CalClearInputMask()
- .cmdDelete.Enabled = False
End If
End With
End Sub</script:module> \ No newline at end of file
diff --git a/wizards/source/schedule/GermanHolidays.xba b/wizards/source/schedule/GermanHolidays.xba
index 60e1acaf5..7ce4357e9 100644
--- a/wizards/source/schedule/GermanHolidays.xba
+++ b/wizards/source/schedule/GermanHolidays.xba
@@ -6,7 +6,6 @@ Sub Main()
Call CalAutopilotTable()
End Sub
-
Function CalGetGermanLandAtMousePos(byval X as single, byval Y as single) as Integer
CalChoosenLand = 0
If (X&gt;73)And(X&lt;130)And(Y&gt;=117)And(Y&lt;181) Then
@@ -69,17 +68,6 @@ End Function
Sub CalFindWholeYearHolidays_GERMANY(ByVal iSelYear as Integer, ByVal iCountry as Integer)
-
- &apos; Ermittelt die Feiertage eines gesamten Jahres (Parameter iSelYear),
- &apos; bezogen auf ein bestimmtes Bundesland (Parameter iCountry). Kein
- &apos; bestimmtes Bundesland bedeutet, dass der Parameter gleich der
- &apos; Konstante calBLHamburg ist, da Hamburg nur Standardfeiertage kennt.
- &apos; Die Feiertage werden in das Array CalBankHolidayName$ geschrieben.
- &apos; Der Index dieses Arrays geht bis vierhundert. Der 1. Januar hat den
- &apos; Indexwert 1, der 2. Januar den Indexwert 2 usw. Das bedeutet, daß
- &apos; wenn am 2. Januar kein Feiertag existiert, liefert
- &apos; CalBankHolidayName$(DateSerial(0, 1, 2) eine leere Zeichenkette (&quot;&quot;).
-
Dim So as Integer
Dim OsternDate&amp;, VierterAdvent&amp;
@@ -130,7 +118,7 @@ Sub CalFindWholeYearHolidays_GERMANY(ByVal iSelYear as Integer, ByVal iCountry a
CalInsertBankholiday(vierterAdvent-32, &quot;Buß- und Bettag&quot;, cHolidayType_Full)
Else
CalInsertBankholiday(vierterAdvent-32, &quot;Buß- und Bettag&quot;, cHolidayType_Half)
- End If &apos; Dank an die EKD für die Berechnungsvorschrift des Buß- und Bettags!
+ End If
CalInsertBankholiday(vierterAdvent-21, &quot;1. Advent&quot;, cHolidayType_Full)
CalInsertBankholiday(vierterAdvent-14, &quot;2. Advent&quot;, cHolidayType_Full)
CalInsertBankholiday(vierterAdvent-7, &quot;3. Advent&quot;, cHolidayType_Full)
diff --git a/wizards/source/schedule/Language.xba b/wizards/source/schedule/Language.xba
index 7a874bbc8..f4fd5e2ee 100644
--- a/wizards/source/schedule/Language.xba
+++ b/wizards/source/schedule/Language.xba
@@ -12,6 +12,7 @@ Public Const cLANGUAGE_SPANISH = &quot;es&quot;, cLANGUAGE_SWEDISH = &quot;sv&qu
Public BLNameList(0 To 16) as String
+
&apos; R e s o u r c e s t r i n g c o n s t a n t s
&apos; -------------------------------------------------
&apos; Dialog labels start at 1000
@@ -71,8 +72,8 @@ Const dlgShortMonth = 1225
.lblEvent.Label = GetResText(1019)
.lblEventDay.Label = GetResText(1021)
.lblEventMonth.Label = GetResText(1022)
- .lblEventYear.Label = GetResText(1023)
- .chkEventOnce.Label = GetResText(1020)
+&apos; .lblEventYear.Label = GetResText(1023)
+&apos; .chkEventOnce.Label = GetResText(1020)
.cmdInsert.Label = GetResText(1016)
.cmdDelete.Label = GetResText(1017)
&apos; Load long month names
diff --git a/wizards/source/schedule/LocalHolidays.xba b/wizards/source/schedule/LocalHolidays.xba
index 2178b6ce9..7c7d46ce6 100644
--- a/wizards/source/schedule/LocalHolidays.xba
+++ b/wizards/source/schedule/LocalHolidays.xba
@@ -45,6 +45,7 @@ Dim lDate&amp;
End Sub
+
Sub FindWholeYearHolidays_FI(ByVal YearInt as Integer)
Dim OsternDate&amp;
&apos; New Year
@@ -78,9 +79,9 @@ Dim lDate&amp;, VierterAdvent&amp;
&apos;New Year
CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Nytårsdag&quot;, cHolidayType_Full)
lDate = CalEasterTable (YearInt)
- &apos;&quot;Fasching&quot;
+ &apos; carnival
CalInsertBankholiday(lDate-49, &quot;Fastelavn&quot;, cHolidayType_Half)
- &apos;&quot;Gründonnerstag&quot;
+ &apos;&quot;Maundy Tuesday
CalInsertBankholiday(lDate-3, &quot;Skærtorsdag&quot;, cHolidayType_Full)
&apos;&quot;Good Friday &quot;
CalInsertBankholiday(lDate-2, &quot;Langfredag&quot;, cHolidayType_Full)
@@ -148,6 +149,7 @@ Dim lDate&amp;
End Sub
+
Sub FindWholeYearHolidays_TRK(ByVal YearInt as Integer)
Dim lDate as Long
&apos; New Years&apos; Day
@@ -206,6 +208,8 @@ Dim lRamazanBayRamStartDate as Long
Case 2008
lKurbanBayRamStartDate = DateSerial(iSelYear, 12, 7)
lRamazanBayRamStartDate = DateSerial(iSelYear, 9, 29)
+ Case Else
+ Exit Sub
End Select
&apos;Feast Of the Sacrifice Eve
CalInsertBankholiday(lKurbanBayRamStartDate, &quot;Kurban Bayramı Arefesi&quot;, cHolidayType_Half)
@@ -274,6 +278,7 @@ Dim lDate as Long
End Sub
+
Sub FindWholeYearHolidays_SPAIN(ByVal YearInt as Integer)
Dim lDate&amp;
CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;Año Nuevo&quot;, cHolidayType_Full)
@@ -537,7 +542,7 @@ End Sub
Sub FindWholeYearHolidays_CN(YearInt as Integer)
CalculateChineseNewYear(YearInt)
CalInsertBankholiday(DateSerial(YearInt, 1, 1), &quot;元旦&quot;, cHolidayType_Full) &apos; New Year
- CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;妇女节&quot;, cHolidayType_Half) &apos; Women&apos;s Day
+ CalInsertBankholiday(DateSerial(YearInt, 3, 8), &quot;妇女节&quot;, cHolidayType_Half) &apos; Women&apos;s Day
CalInsertBankholiday(DateSerial(YearInt, 4, 5), &quot;清明节&quot;, cHolidayType_Half) &apos; Day of the deads
CalInsertBankholiday(DateSerial(YearInt, 5, 1), &quot;劳动节&quot;, cHolidayType_Full) &apos; International Labour Day
CalInsertBankholiday(DateSerial(YearInt, 6, 1), &quot;儿童节&quot;, cHolidayType_Half) &apos; Children&apos;s Day
@@ -628,7 +633,6 @@ Function CalculateJapaneseSpringDay(iSelYear as Integer)
End Function
-
Function CalculateJapaneseAutumnDay(iSelYear as Integer)
If (iSelYear &gt; 1979) And (iSelYear &lt; 2100) Then
CalculateJapaneseAutumnDay() = Int(23.8431 + 0.242194)* (iSelYear-1980) - (Int((iSelYear-1980)/4))
diff --git a/wizards/source/schedule/OwnEvents.xba b/wizards/source/schedule/OwnEvents.xba
index 2f2d30748..f141c2ab0 100644
--- a/wizards/source/schedule/OwnEvents.xba
+++ b/wizards/source/schedule/OwnEvents.xba
@@ -2,14 +2,13 @@
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="OwnEvents" script:language="StarBasic">Option Explicit
-Dim CurOwnMonth as Integer
+Public Const SBDATEUNDEFINED as Double = -98765432.1
Sub Main
Call CalAutopilotTable()
End Sub
-
Sub CalSaveOwnData()
Dim FileName as String
Dim FileChannel as Integer
@@ -31,160 +30,141 @@ Dim LocList() as String
End Sub
-Function CalCreateDateFromInput() as Date
-&apos; Generiert aus den Eingabedaten der Ereignisseite
-&apos; ein Datum im Dateserial Format,
-Dim newDate as Date
-Dim EvDay as Integer
-Dim EvYear as Integer
- EvDay = DlgCalModel.txtOwnEventDay.Value
- If DlgCalModel.chkEventOnce.State = 1 Then
- EvYear = DlgCalModel.txtOwnEventYear.Value
- newDate = DateSerial(EvYear, CurOwnMonth, EvDay)
- Else
- newDate = DateSerial(0, CurOwnMonth, EvDay)
- End If
- CalCreateDateFromInput = newDate
-End Function
-
-
-
Function CalCreateDateStrOfInput() as String
Dim DateStr as String
-Dim EvMonth as Integer
-Dim EvDay as Integer
-Dim CurMonthStr as String
- EvDay = DlgCalModel.txtOwnEventDay.Value
- If EvDay &lt; 10 Then
- DateStr = &quot;0&quot; &amp; EvDay &amp; &quot;. &quot;
- Else
- DateStr = Cstr(EvDay) &amp; &quot;. &quot;
- End If
- CurMonthStr = DlgCalModel.lstOwnEventMonth.StringItemList(CurOwnMonth-1)
- If Len(CurMonthStr) = 2 Then
- CurMonthStr = CurMonthStr &amp; &quot; &quot;
- End If
- DateStr = DateStr &amp; CurMonthStr
-
- If DlgCalModel.chkEventOnce.State = 1 And DlgCalModel.txtOwnEventYear.Value &lt;&gt; 0 Then
- DateStr = DateStr &amp; &quot; &quot; + DlgCalModel.txtOwnEventYear.Value
+Dim CurOwnMonth as Integer
+Dim CurOwnDay as Integer
+Dim FormatDateStr as String
+Dim dblDate as Double
+Dim iLen as Integer
+Dim iDiff as Integer
+Dim i as Integer
+ CurOwnDay = DlgCalModel.txtOwnEventDay.Value
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getselectedItemPos() + 1
+ DateStr = DateSerial(0, CurOwnMonth, CurOwnDay)
+ dblDate = CDbl(DateValue(DateStr))
+ FormatDateStr = oNumberFormatter.convertNumberToString(lDateFormat, dblDate)
+ iLen = Len(FormatDateStr)
+ iDiff = 16 - iLen
+ If iDiff &gt; 0 Then
+ For i = 0 To iDiff
+ FormatDateStr = FormatDateStr + &quot; &quot;
+ Next i
Else
- DateStr = DateStr + &quot; &quot;
- End If
- DateStr = DateStr + &quot; &quot; + Trim(DlgCalModel.txtEvent.Text)
+ MsgBox(&quot;Invalid DateFormat: &apos;FormatDateStr&apos;&quot;, 16, sWizardTitle)
+ CalCreateDateStrOfInput = &quot;&quot;
+ Exit Function
+ End If
+ DateStr = FormatDateStr &amp; Trim(DlgCalModel.txtEvent.Text)
CalCreateDateStrOfInput = DateStr
End Function
-Function CalGetDateWithoutYear&amp;(ByVal i as Integer)
- CalGetDateWithoutYear&amp; = DateSerial(0, CalGetMonthOfEvent(i), CalGetDayOfEvent(i))
-End Function
-
Sub CalcmdInsertData()
+Dim MaxIndex as Integer
+Dim UIDateStr as String
Dim DateStr as String
-Dim LastIndex as Integer
-Dim bGetYear as Boolean
-Dim NewDate as Date
+Dim NewDate as Double
Dim bInserted as Boolean
-Dim bDateDoubled as Boolean
-Dim EvYear as Integer
Dim i as Integer
-Dim CurDate as Date
-Dim CurEvYear as Integer
-Dim CurEvMonth as Integer
-Dim CurEvDay as Integer
-
- bGetYear = DlgCalModel.chkEventOnce.State = 1
- LastIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
- If bGetYear Then
- EvYear = DlgCalModel.txtOwnEventYear.Value
- End If
-
- newDate = CalCreateDateFromInput()
- DateStr = CalCreateDateStrOfInput()
- If DateStr = &quot;&quot; Then Exit Sub
-
- &apos; Es ist noch garnichts vorhanden
- If Ubound(DlgCalModel.lstOwnData.StringItemList()) = -1 Then
- DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(DateStr, 0 + 1)
+Dim CurOwnDay as Integer
+Dim CurOwnMonth as Integer
+Dim CurOwnYear as Integer
+ CurOwnDay = DlgCalModel.txtOwnEventDay.Value
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getSelectedItemPos() + 1
+ UIDateStr = CalCreateDateStrOfInput()
+ NewDate = GetDateUnits(CurOwnDay, CurOwnMonth, UIDateStr)
+ If UIDateStr = &quot;&quot; Then Exit Sub
+ MaxIndex = Ubound(DlgCalModel.lstOwnData.StringItemList())
+ If MaxIndex = -1 Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, 0 + 1)
bInserted = True
Else
- &apos; gleiche jahre(auch keine Jahre sind gleiche jahre)-&gt;alt löschen neu rein
+ Dim CurEvMonth(MaxIndex) as Integer
+ Dim CurEvDay(MaxIndex) as Integer
+ Dim CurDate(MaxIndex) as Double
+ &apos; same Years(&quot;no years&quot; are treated like same years) -&gt; delete old entry and insert new one
i = 0
Do
- CurEvYear = CalGetYearOfEvent(i)
- CurEvMonth = CalGetMonthOfEvent(i)
- CurEvDay = CalGetDayOfEvent(i)
- If DateSerial(CurEvYear, CurEvMonth, CurEvDay) = NewDate Then
- &apos; Todo: Abchecken wie das ist mit &apos;Ereignis einmalig&apos; oder nicht
+ CurDate(i) = GetSelectedDateUnits(CurEvDay(i), CurEvMonth(i), i)
+ If CurDate(i) = NewDate Then
DlgCalendar.GetControl(&quot;lstOwnData&quot;).RemoveItems(i,1)
- DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(DateStr, i)
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
bInserted = True
End If
i = i + 1
- Loop Until bInserted Or i &gt; LastIndex
+ Loop Until bInserted Or i &gt; MaxIndex
- &apos; Es existiert ein Datum mit Jahreszahl. Es wird dasselbe Datum
- &apos; ohne Angabe der Jahreszahl angegeben.
- If Not bInserted And Not bGetYear Then
- i = 0
- Do
- bInserted = CalGetDateWithoutYear(i) = newDate
- If bInserted Then
- If CalGetYearOfEvent(i) &lt;&gt; 0 Then
- DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(DateStr, i+1)
- End If
- End If
- i = i + 1
- Loop Until bInserted Or i &gt; LastIndex
- End If
-
- &apos; Das einzufügende Datum besitzt eine Jahreszahl, es gibt bereits
- &apos; das Datum in der Liste, jedoch ohne Datum.
- If Not bInserted And bGetYear Then
+ &apos; There exists already a date
+ If Not bInserted Then
i = 0
Do
- bInserted = CalGetDateWithoutYear(i) = newDate
- i = i + 1
- If bInserted Then
- DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(DateStr, i)
+ If (CurEvMonth(i) = CurOwnMonth) And (CurEvDay(i) = CurOwnDay) Then
+ bInserted = True
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).RemoveItems(i,1)
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
End If
- Loop Until bInserted Or i &gt; LastIndex
+ i = i + 1
+ Loop Until bInserted Or i &gt; MaxIndex
End If
- &apos; Das Datum ist noch nicht vorhanden und wird richtig einsortiert
- If Not bInserted And Not bDateDoubled Then
+ &apos; The date is not yet existing and will will be sorted in accordingly
+ If Not bInserted Then
i = 0
Do
- CurDate = CalGetDateWithoutYear(i)
- bInserted = newDate &lt; CurDate
+ bInserted = NewDate &lt; CurDate(i)
If bInserted Then
- Exit Do
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, i)
End If
i = i + 1
- Loop Until bInserted Or i &gt; LastIndex
- DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(DateStr, i)
+ Loop Until bInserted Or i &gt; MaxIndex
+ If Not bInserted Then
+ DlgCalendar.GetControl(&quot;lstOwnData&quot;).AddItem(UIDateStr, MaxIndex+1)
+ End If
End If
End If
-
bCalOwnDataChanged = True
-
Call CalClearInputMask()
End Sub
-Function CalGetYearOfEvent(ByVal ListIndex as Integer) as Integer
-Dim YearStr as String
- YearStr = DlgCalModel.lstOwnData.StringItemList(ListIndex)
- CalGetYearOfEvent = Val(Mid(YearStr, 10, 4))
+Function GetSelectedDateUnits(CurEvDay as Integer, CurEvMonth as Integer, i as Integer) as Double
+Dim dblDate as Double
+Dim DateStr as String
+ dblDate = SBDATEUNDEFINED
+ DateStr = DlgCalModel.lstOwnData.StringItemList(i)
+ If DateStr &lt;&gt; &quot;&quot; Then
+ dblDate = GetDateUnits(CurEvDay, CurEvMonth, DateStr)
+ End If
+ GetSelectedDateUnits() = dblDate
End Function
-Function CalGetDayOfEvent(ByVal ListIndex as Integer) as Integer
-Dim DayStr as String
- DayStr = DlgCalModel.lstOwnData.StringItemList(ListIndex)
- CalGetDayOfEvent = Val(Left(DayStr,2))
+Function GetDateUnits(CurEvDay as Integer, CurEvMonth as Integer, DateStr) as Double
+Dim bEventOnce as String
+Dim LocDateStr as String
+Dim dblDate as Double
+Dim lDate as Long
+ LocDateStr = Mid(DateStr, 1, 15)
+ LocDateStr = Trim(LocDateStr)
+
+ bEventOnce = True
+ On Local Error Goto NODATEFORMAT
+ dblDate = oNumberFormatter.convertStringToNumber(lDateFormat, LocDateStr)
+ lDate = Clng(dblDate)
+ CurEvMonth = Month(lDate)
+ CurEvDay = Day(lDate)
+ GetDateUnits() = dblDate
+ Exit Function
+ GetDateUnits() =SBDATEUNDEFINED
+NODATEFORMAT:
+ If Err &lt;&gt; 0 Then
+ MsgBox(&quot;Error: Date : &apos; &quot; &amp; LocDateStr &amp; &quot;&apos; is not a valid Format&quot;, 16, sWizardTitle)
+ Resume GETRETURNVALUE
+GETRETURNVALUE:
+ GetDateUnits() = SBDATEUNDEFINED
+ End If
End Function
@@ -196,35 +176,25 @@ Dim NameStr as String
End Function
-Function CalGetMonthOfEvent(ByVal ListIndex as Integer) as Integer
-Dim MonthStr as String
- MonthStr = DlgCalModel.lstOwnData.StringItemList(ListIndex)
- MonthStr = Mid(MonthStr, 5, 3)
- &apos; In chinese Short Monthnames may be only 2 characters long.
- &apos; In this case the third character is filled up with an empty space
- MonthStr = RTrim(MonthStr)
- CalGetMonthOfEvent = CalGetIntOfShortMonthName(MonthStr)
-End Function
-
-
-Function GetOwnYear()
- If DlgCalModel.chkEventOnce.State = 1 Then
- GetOwnYear() = DlgCalModel.txtOwnEventYear.Value
- Else
- GetOwnYear() = Year(Now())
- End If
-End Function
-
-Sub CheckInsertedDates()
+Sub CheckInsertedDates(Optional ControlEnvironment, Optional CurOwnMonth as Integer)
Dim EvYear as Long
Dim EvDay as Long
Dim sEvMonth as String
-Dim bDoEnable as Boolean
- EvYear = GetOwnYear()
- bDoEnable = (EvYear &lt;&gt; 0) And (CurOwnMonth &gt; 0)
+Dim bDoEnable as Boolean
+Dim ListboxName as String
+Dim MaxValue as Integer
+ If Not IsMissing(ControlEnvironment) Then
+ CurOwnMonth = DlgCalendar.GetControl(&quot;lstOwnEventMonth&quot;).getSelectedItemPos()+1
+ End If
+ EvYear = Year(Now())
+ bDoEnable = CurOwnMonth &lt;&gt; 0
If bDoEnable Then
- DlgCalModel.txtOwnEventDay.ValueMax = CalMaxDayInMonth(EvYear, CurOwnMonth)
+ MaxValue = CalMaxDayInMonth(EvYear, CurOwnMonth)
+ DlgCalModel.txtOwnEventDay.ValueMax = MaxValue
+ If DlgCalModel.txtOwnEventDay.Value &gt; MaxValue Then
+ DlgCalModel.txtOwnEventDay.Value = MaxValue
+ End If
bDoEnable = DlgCalModel.txtOwnEventDay.Value &lt;&gt; 0
If bDoEnable Then
bDoEnable = Ubound(DlgCalModel.lstOwnEventMonth.SelectedItems()) &gt; -1
@@ -239,8 +209,9 @@ End Sub
Sub GetOwnMonth()
Dim EvYear as Integer
- EvYear = GetOwnYear()
+Dim CurOwnMonth as Integer
+ EvYear = year(now())
CurOwnMonth = DlgCalModel.lstOwnEventMonth.SelectedItems(0) + 1
DlgCalModel.txtOwnEventDay.ValueMax = CalMaxDayInMonth(EvYear, CurOwnMonth)
- CheckInsertedDates()
+ CheckInsertedDates(,CurOwnMonth)
End Sub</script:module> \ No newline at end of file