Compare commits

...
4 Commits
Author SHA1 Message Date
Christopher Kirchhöfer fefef83a32 Encoding in UTF8 (ohne -BOM) Geändert. System.Text.Encoding.UTF8 ist standardmäßig mit -BOM, was beim Import in Android-Handys Probleme machte 2025-01-07 15:31:13 +01:00
wombat b16cf3d860 Ical.Net für den Export eingebaut.
Der Export enthält scheinbar jetzt keinerlei Zeitzonendaten
Import in Google, Outlook und auf der HP hat funktioniert
2025-01-05 20:02:47 +01:00
wombat 508a3fb483 Messagebox bei erfolgreichem Export, EndGridEdit hinzugefügt 2025-01-05 18:48:16 +01:00
wombat 3fca229f52 DevExpress-Update
frmCategoryEdit umbenannt in frmSettings
Weitere (erfolglose) Tests, um die richtige Zeitzone bei Google-Kalender-Terminen zu hinterlegen
2025-01-05 17:48:45 +01:00
18 changed files with 329 additions and 133 deletions

No files matched your search

+9
View File
@@ -2,6 +2,8 @@
Public Class Settings
Public Property Categories As List(Of Category)
Public Property DefaultTimezoneId As String
Public Sub New()
Load()
@@ -17,10 +19,17 @@ Public Class Settings
Else
Categories = New List(Of Category)
End If
If My.Settings.DefaultTimezoneId Is Nothing Then
DefaultTimezoneId = TimeZoneInfo.Local.Id
Else
DefaultTimezoneId = My.Settings.DefaultTimezoneId
End If
End Sub
Public Sub Save()
My.Settings.CategoryList = JsonConvert.SerializeObject(Categories)
My.Settings.DefaultTimezoneId = DefaultTimezoneId
My.Settings.Save()
End Sub
+45 -36
View File
@@ -71,45 +71,54 @@
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.DataAccess.v23.2.UI, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataVisualization.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Spreadsheet.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v23.2.UI, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraDialogs.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Core.Desktop, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Extensions, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Images.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeList.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeMap.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Drawing.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataAccess.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.DataAccess.v24.1.UI, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataVisualization.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Office.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.Desktop.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Spreadsheet.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v24.1.UI, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Charts.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraCharts.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraDialogs.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v24.1.Core.Desktop, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v24.1.Core, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v24.1.Extensions, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Images.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraSpreadsheet.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeList.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeMap.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Ical.Net, Version=4.3.1.0, Culture=neutral, PublicKeyToken=65c0446cd019ea53, processorArchitecture=MSIL">
<HintPath>..\packages\Ical.Net.4.3.1\lib\netstandard2.0\Ical.Net.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NodaTime, Version=3.2.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1, processorArchitecture=MSIL">
<HintPath>..\packages\NodaTime.3.2.0\lib\netstandard2.0\NodaTime.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
@@ -136,10 +145,10 @@
<Compile Include="Classes\clsGridFunctions.vb" />
<Compile Include="Classes\clsSettings.vb" />
<Compile Include="Objects\clsTableHeader.vb" />
<Compile Include="frmCategoryEdit.Designer.vb">
<DependentUpon>frmCategoryEdit.vb</DependentUpon>
<Compile Include="frmSettings.Designer.vb">
<DependentUpon>frmSettings.vb</DependentUpon>
</Compile>
<Compile Include="frmCategoryEdit.vb">
<Compile Include="frmSettings.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="frmMain.Designer.vb">
@@ -166,8 +175,8 @@
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="frmCategoryEdit.resx">
<DependentUpon>frmCategoryEdit.vb</DependentUpon>
<EmbeddedResource Include="frmSettings.resx">
<DependentUpon>frmSettings.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="frmMain.resx">
<DependentUpon>frmMain.vb</DependentUpon>
+64 -34
View File
@@ -71,39 +71,37 @@
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<ItemGroup>
<Reference Include="DevExpress.Drawing.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataAccess.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.DataAccess.v22.1.UI, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataVisualization.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Office.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.Desktop.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Spreadsheet.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v22.1.UI, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Charts.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraCharts.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraDialogs.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v22.1.Core.Desktop, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v22.1.Core, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v22.1.Extensions, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraSpreadsheet.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeList.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeMap.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="DevExpress.Drawing.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataAccess.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.DataAccess.v23.2.UI, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataVisualization.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Dialogs.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Office.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.Desktop.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Spreadsheet.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v23.2.UI, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Charts.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraDialogs.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraLayout.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Core.Desktop, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Core, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraScheduler.v23.2.Extensions, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Images.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeList.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeMap.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
@@ -184,7 +182,10 @@
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="Feuerwehr 2019.xlsx" />
<None Include="_Docs\2023_Dienstplan_FFWeitefeld.xlsx" />
<None Include="_Docs\2022_Dienstplan_FFWeitefeld_V1.0.xlsx" />
<None Include="_Docs\2024_Dienstplan_FFWeitefeld.xlsx" />
<None Include="_Docs\2019_Dienstplan.xlsx" />
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
@@ -220,6 +221,35 @@
<ItemGroup>
<None Include="Resources\exportfile.svg" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>9</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="VBIDE">
<Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
<VersionMajor>5</VersionMajor>
<VersionMinor>3</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
+4 -4
View File
@@ -119,15 +119,15 @@
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="viewsettings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\viewsettings.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\viewsettings.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="exportfile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\exportfile.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\exportfile.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>
@@ -119,15 +119,15 @@
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="viewsettings" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\viewsettings.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\viewsettings.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\save.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\open.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
<data name="exportfile" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\exportfile.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
<value>..\Resources\exportfile.svg;DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a</value>
</data>
</root>
+13 -1
View File
@@ -15,7 +15,7 @@ Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0"), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.12.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@@ -77,6 +77,18 @@ Namespace My
Me("EndDateCalculationHoursToAdd") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("")> _
Public Property DefaultTimezoneId() As String
Get
Return CType(Me("DefaultTimezoneId"),String)
End Get
Set
Me("DefaultTimezoneId") = value
End Set
End Property
End Class
End Namespace
@@ -8,5 +8,8 @@
<Setting Name="EndDateCalculationHoursToAdd" Type="System.Int32" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
<Setting Name="DefaultTimezoneId" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>
+6 -5
View File
@@ -1,5 +1,6 @@
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.ImageComboBoxEdit, DevExpress.XtraEditors.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
@@ -1,5 +1,5 @@
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
+2 -1
View File
@@ -8,7 +8,8 @@
Public Property Status As String
Public Property IsInvalid As Boolean
Public Property Exclude As Boolean
Public Property RowIndex As Integer
Public Property TimeZoneKey As String = General.Settings.DefaultTimezoneId
End Class
+3
View File
@@ -33,6 +33,9 @@
<setting name="EndDateCalculationHoursToAdd" serializeAs="String">
<value>2</value>
</setting>
<setting name="DefaultTimezoneId" serializeAs="String">
<value />
</setting>
</FWCreateCalendar.My.MySettings>
</userSettings>
</configuration>
-25
View File
@@ -1,25 +0,0 @@
Public Class frmCategoryEdit
Private Sub frmCategoryEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
prepare()
End Sub
Private Sub prepare()
grd.DataSource = General.Settings.Categories
With grdv
.PopulateColumns()
.Columns(NameOf(Category.Key)).OptionsColumn.AllowEdit = False
.Columns(NameOf(Category.Key)).Caption = "Kürzel"
.Columns(NameOf(Category.Text)).Caption = "Bezeichnung"
.Columns(NameOf(Category.Color)).Caption = "Farbe"
.Columns(NameOf(Category.Exclude)).Caption = "Auf Kalender ausschließen"
End With
End Sub
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
GridFunctions.EndGridEdit(grdv)
General.Settings.Save()
DialogResult = DialogResult.OK
End Sub
End Class
+2 -2
View File
@@ -141,7 +141,7 @@ Partial Class frmMain
'
'btnCategories
'
Me.btnCategories.Caption = "Kategorien bearbeiten..."
Me.btnCategories.Caption = "Einstellungen..."
Me.btnCategories.Id = 2
Me.btnCategories.ImageOptions.SvgImage = Global.FWCreateCalendar.My.Resources.Resources.viewsettings
Me.btnCategories.Name = "btnCategories"
@@ -364,7 +364,7 @@ Partial Class frmMain
Me.schedStorage.Appointments.Labels.CreateNewLabel(8, "Birthday", "&Birthday", System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(207, Byte), Integer), CType(CType(233, Byte), Integer)))
Me.schedStorage.Appointments.Labels.CreateNewLabel(9, "Anniversary", "&Anniversary", System.Drawing.Color.FromArgb(CType(CType(141, Byte), Integer), CType(CType(233, Byte), Integer), CType(CType(223, Byte), Integer)))
Me.schedStorage.Appointments.Labels.CreateNewLabel(10, "Phone Call", "Phone &Call", System.Drawing.Color.FromArgb(CType(CType(255, Byte), Integer), CType(CType(247, Byte), Integer), CType(CType(165, Byte), Integer)))
Me.schedStorage.TimeZoneId = "UTC"
Me.schedStorage.TimeZoneId = "E. Europe Standard Time"
'
'SFD
'
+48 -10
View File
@@ -9,6 +9,8 @@ Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraScheduler
Imports DevExpress.XtraScheduler.iCalendar
Imports Ical.Net.DataTypes
Imports Ical.Net.Serialization
Imports Microsoft.Office.Interop
Public Class frmMain
@@ -65,6 +67,8 @@ Public Class frmMain
.Columns(NameOf(EventEntry.IsInvalid)).OptionsColumn.AllowEdit = False
.Columns(NameOf(EventEntry.RowIndex)).Visible = False
.Columns(NameOf(EventEntry.RowIndex)).OptionsColumn.AllowEdit = False
.Columns(NameOf(EventEntry.TimeZoneKey)).Visible = False
.Columns(NameOf(EventEntry.TimeZoneKey)).OptionsColumn.AllowEdit = False
End With
grdv.FormatRules.Add(GridFunctions.CreateFormatRule(grdv, NameOf(EventEntry.Exclude), True, FormatCondition.Equal, True, backcolor:=Color.LightGray))
grdv.FormatRules.Add(GridFunctions.CreateFormatRule(grdv, NameOf(EventEntry.IsInvalid), True, FormatCondition.Equal, True, backcolor:=Color.MistyRose))
@@ -78,6 +82,7 @@ Public Class frmMain
.Subject = NameOf(EventEntry.Subject)
.Location = NameOf(EventEntry.Location)
.Label = NameOf(EventEntry.Category)
'.TimeZoneId = NameOf(EventEntry.TimeZoneKey)
End With
.Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.IsInvalid), NameOf(EventEntry.IsInvalid)))
.Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.Exclude), NameOf(EventEntry.Exclude)))
@@ -96,23 +101,21 @@ Public Class frmMain
sched.GoToToday()
End Sub
Private Sub fill(datei As String)
Private Sub ImportDatasourceFromFile(datei As String)
schedStorage.Appointments.DataSource = Nothing
grd.BeginUpdate()
grd.DataSource = Nothing
ds = Readout(datei)
ds = GetEventsFromFile(datei)
grd.DataSource = ds
grd.EndUpdate()
grdv.BestFitColumns()
schedStorage.Appointments.DataSource = ds
sched.RefreshData()
End Sub
Public Function Readout(datei As String) As List(Of EventEntry)
Public Function GetEventsFromFile(datei As String) As List(Of EventEntry)
Dim xlApp = New Excel.Application
'Im Fall von folgendem Fehler:
'The COM object of the type "Microsoft.Office.Interop.Excel.ApplicationClass" cannot be converted to the interface type "Microsoft.Office.Interop.Excel._Application".
@@ -178,7 +181,7 @@ Public Class frmMain
ElseIf zDatum.Trim.Length = 0 Then
' Status.Add("Kein Datum angegeben")
ev.IsInvalid = True
ElseIf Date.TryParse($"{zDatum} {zStart}", ev.StartDate) Then
ElseIf zStart.Trim.Length > 0 AndAlso Date.TryParse($"{zDatum} {zStart}", ev.StartDate) Then
ev.EndDate = ev.StartDate.AddHours(My.Settings.EndDateCalculationHoursToAdd)
ElseIf Date.TryParse($"{zDatum}", ev.StartDate) Then
'Status.Add("Keine Zeit gefunden, gehe von Ganztag aus")
@@ -233,13 +236,13 @@ Public Class frmMain
If OFD.ShowDialog = DialogResult.OK Then
SFD.FileName = $"{Path.GetFileNameWithoutExtension(OFD.FileName)}.ics"
SFD.InitialDirectory = Path.GetDirectoryName(OFD.FileName)
fill(OFD.FileName)
ImportDatasourceFromFile(OFD.FileName)
xlsSheet.LoadDocument(OFD.FileName)
End If
End Sub
Private Sub btnCategories_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCategories.ItemClick
Dim frm As New frmCategoryEdit
Dim frm As New frmSettings
If frm.ShowDialog = DialogResult.OK Then
RefreshEventExclusion(ds)
CheckEventValidity(ds)
@@ -249,17 +252,48 @@ Public Class frmMain
End Sub
Private Sub btnExport_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExport.ItemClick
GridFunctions.EndGridEdit(grdv)
SFD.FileName = Path.GetFileNameWithoutExtension(OFD.FileName) & ".ics"
If SFD.ShowDialog = DialogResult.OK Then
'schedStorage.TimeZoneId = General.Settings.DefaultTimezoneId
Dim exporter As New iCalendarExporter(schedStorage)
exporter.ProductIdentifier = "FW-EXPORTER"
exporter.CustomPropertyIdentifier = "FWPROP"
AddHandler exporter.AppointmentExporting, AddressOf Exporter_AppointmentExporting
exporter.Export(SFD.FileName)
Dim failed As Boolean
Try
'exporter.Export(SFD.FileName)
IcalNetTest(SFD.FileName)
Catch ex As Exception
failed = True
End Try
If failed = False Then MessageBox.Show("Export abgeschlossen", "Kalenderexport", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End Sub
Private Sub IcalNetTest(OutputFile As String)
Dim calendar As New Ical.Net.Calendar
For Each evt As EventEntry In ds.Where(Function(e) e.IsInvalid = False AndAlso e.Exclude = False)
calendar.Events.Add(New Ical.Net.CalendarComponents.CalendarEvent With {
.Start = New CalDateTime(evt.StartDate),
.[End] = New CalDateTime(evt.EndDate),
.IsAllDay = evt.AllDay,
.Location = evt.Location,
.Summary = evt.Subject '.Categories = {evt.Category} Kategorien machen beim Import in Joomla JEvents probleme
})
Next
Dim serializer As New CalendarSerializer
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
Using sw As New StreamWriter(OutputFile, False, utf8WithoutBom) 'NICHT einfach System.Text.Encoding.UTF8 nehmen, da dann als UTF8-BOM gespeichert wird und der Import z.B. Bei Samsung/Android-Handys nicht funktioniert
sw.Write(serializer.SerializeToString(calendar))
End Using
End Sub
Private Sub Exporter_AppointmentExporting(sender As Object, e As AppointmentExportingEventArgs)
'e.Appointment.TimeZoneId = sched.OptionsBehavior.ClientTimeZoneId
'e.Appointment.TimeZoneId = "Europe/Berlin"
'e.Appointment.TimeZoneId = General.Settings.DefaultTimezoneId
If CType(e.Appointment.GetSourceObject(schedStorage), EventEntry).Exclude OrElse CType(e.Appointment.GetSourceObject(schedStorage), EventEntry).IsInvalid Then
e.Cancel = True
End If
@@ -289,4 +323,8 @@ Public Class frmMain
xlsSheet.SelectedCell = activeSheet.Cells($"A{grdv.GetFocusedRowCellValue("RowIndex")}")
activeSheet.ScrollTo(activeSheet.SelectedCell)
End Sub
Private Sub FluentDesignFormControl1_Click(sender As Object, e As EventArgs) Handles FluentDesignFormControl1.Click
End Sub
End Class
@@ -1,5 +1,5 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmCategoryEdit
Partial Class frmSettings
Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
@@ -28,23 +28,33 @@ Partial Class frmCategoryEdit
Me.rpgGeneral = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.grd = New DevExpress.XtraGrid.GridControl()
Me.grdv = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.tcMain = New DevExpress.XtraTab.XtraTabControl()
Me.tpGeneral = New DevExpress.XtraTab.XtraTabPage()
Me.tpCategories = New DevExpress.XtraTab.XtraTabPage()
Me.cboDefaultTimezone = New DevExpress.XtraEditors.ImageComboBoxEdit()
Me.lblDefaultTimezone = New DevExpress.XtraEditors.LabelControl()
CType(Me.rcMain, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.grd, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.grdv, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.tcMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.tcMain.SuspendLayout()
Me.tpGeneral.SuspendLayout()
Me.tpCategories.SuspendLayout()
CType(Me.cboDefaultTimezone.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'rcMain
'
Me.rcMain.DrawGroupCaptions = DevExpress.Utils.DefaultBoolean.[False]
Me.rcMain.ExpandCollapseItem.Id = 0
Me.rcMain.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.rcMain.ExpandCollapseItem, Me.btnSave, Me.rcMain.SearchEditItem})
Me.rcMain.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.rcMain.ExpandCollapseItem, Me.btnSave})
Me.rcMain.Location = New System.Drawing.Point(0, 0)
Me.rcMain.MaxItemId = 3
Me.rcMain.Name = "rcMain"
Me.rcMain.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.rpMain})
Me.rcMain.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.rcMain.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages
Me.rcMain.Size = New System.Drawing.Size(800, 79)
Me.rcMain.Size = New System.Drawing.Size(800, 109)
Me.rcMain.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden
'
'btnSave
@@ -69,11 +79,11 @@ Partial Class frmCategoryEdit
'grd
'
Me.grd.Dock = System.Windows.Forms.DockStyle.Fill
Me.grd.Location = New System.Drawing.Point(0, 79)
Me.grd.Location = New System.Drawing.Point(0, 0)
Me.grd.MainView = Me.grdv
Me.grd.MenuManager = Me.rcMain
Me.grd.Name = "grd"
Me.grd.Size = New System.Drawing.Size(800, 371)
Me.grd.Size = New System.Drawing.Size(798, 316)
Me.grd.TabIndex = 1
Me.grd.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grdv})
'
@@ -84,18 +94,66 @@ Partial Class frmCategoryEdit
Me.grdv.OptionsView.ShowGroupPanel = False
Me.grdv.OptionsView.ShowIndicator = False
'
'tcMain
'
Me.tcMain.Dock = System.Windows.Forms.DockStyle.Fill
Me.tcMain.Location = New System.Drawing.Point(0, 109)
Me.tcMain.Name = "tcMain"
Me.tcMain.SelectedTabPage = Me.tpCategories
Me.tcMain.Size = New System.Drawing.Size(800, 341)
Me.tcMain.TabIndex = 3
Me.tcMain.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.tpGeneral, Me.tpCategories})
'
'tpGeneral
'
Me.tpGeneral.Controls.Add(Me.lblDefaultTimezone)
Me.tpGeneral.Controls.Add(Me.cboDefaultTimezone)
Me.tpGeneral.Name = "tpGeneral"
Me.tpGeneral.Size = New System.Drawing.Size(798, 316)
Me.tpGeneral.Text = "Allgemein"
'
'tpCategories
'
Me.tpCategories.Controls.Add(Me.grd)
Me.tpCategories.Name = "tpCategories"
Me.tpCategories.Size = New System.Drawing.Size(798, 316)
Me.tpCategories.Text = "Kategorien"
'
'cboDefaultTimezone
'
Me.cboDefaultTimezone.Location = New System.Drawing.Point(212, 8)
Me.cboDefaultTimezone.MenuManager = Me.rcMain
Me.cboDefaultTimezone.Name = "cboDefaultTimezone"
Me.cboDefaultTimezone.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
Me.cboDefaultTimezone.Size = New System.Drawing.Size(212, 20)
Me.cboDefaultTimezone.TabIndex = 0
'
'lblDefaultTimezone
'
Me.lblDefaultTimezone.Location = New System.Drawing.Point(11, 11)
Me.lblDefaultTimezone.Name = "lblDefaultTimezone"
Me.lblDefaultTimezone.Size = New System.Drawing.Size(162, 13)
Me.lblDefaultTimezone.TabIndex = 1
Me.lblDefaultTimezone.Text = "Standard-Zeitzone für den Import"
'
'frmCategoryEdit
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.grd)
Me.Controls.Add(Me.tcMain)
Me.Controls.Add(Me.rcMain)
Me.Name = "frmCategoryEdit"
Me.Text = "Kategorien bearbeiten"
CType(Me.rcMain, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.grd, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.grdv, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.tcMain, System.ComponentModel.ISupportInitialize).EndInit()
Me.tcMain.ResumeLayout(False)
Me.tpGeneral.ResumeLayout(False)
Me.tpGeneral.PerformLayout()
Me.tpCategories.ResumeLayout(False)
CType(Me.cboDefaultTimezone.Properties, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -107,4 +165,9 @@ Partial Class frmCategoryEdit
Friend WithEvents rpgGeneral As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents grd As DevExpress.XtraGrid.GridControl
Friend WithEvents grdv As DevExpress.XtraGrid.Views.Grid.GridView
Friend WithEvents tcMain As DevExpress.XtraTab.XtraTabControl
Friend WithEvents tpCategories As DevExpress.XtraTab.XtraTabPage
Friend WithEvents tpGeneral As DevExpress.XtraTab.XtraTabPage
Friend WithEvents lblDefaultTimezone As DevExpress.XtraEditors.LabelControl
Friend WithEvents cboDefaultTimezone As DevExpress.XtraEditors.ImageComboBoxEdit
End Class
File renamed without changes.
+49
View File
@@ -0,0 +1,49 @@
Public Class frmSettings
Private Sub frmCategoryEdit_Load(sender As Object, e As EventArgs) Handles MyBase.Load
prepare()
fill()
tcMain.SelectedTabPageIndex = 0
End Sub
Private Sub prepare()
grd.DataSource = General.Settings.Categories
With grdv
.PopulateColumns()
.Columns(NameOf(Category.Key)).OptionsColumn.AllowEdit = False
.Columns(NameOf(Category.Key)).Caption = "Kürzel"
.Columns(NameOf(Category.Text)).Caption = "Bezeichnung"
.Columns(NameOf(Category.Color)).Caption = "Farbe"
.Columns(NameOf(Category.Exclude)).Caption = "Auf Kalender ausschließen"
End With
cboDefaultTimezone.DataBindings.Add(New Binding("EditValue", General.Settings, NameOf(General.Settings.DefaultTimezoneId)))
End Sub
Private Sub fill()
For Each z As TimeZoneInfo In TimeZoneInfo.GetSystemTimeZones().OrderBy(Function(tz) tz.DisplayName)
cboDefaultTimezone.Properties.Items.Add(z.DisplayName, z.Id, -1)
' Console.WriteLine(z.Id)
Next
End Sub
Private Sub btnSave_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnSave.ItemClick
GridFunctions.EndGridEdit(grdv)
EndControlEdit(ActiveControl)
General.Settings.Save()
DialogResult = DialogResult.OK
End Sub
Public Shared Sub EndControlEdit(ActiveCtrl As Control)
'Dieser Sub ist nötig, da DevExpress-Controls ihre Daten erst durch verlieren des Fokus oder durch DoValidate() zurück ins DataSet schreiben.
'Hat ein DevExpress-Control noch Fokus und es wird auf einen Button geklickt, der keinen Fokus bekommt (z.B. RibbonControl-Buttons), werden die Änderungen aus diesem Feld nicht ins Dataset zurückgeschrieben und somit auch nicht beim Speichern als Änderungen erkannt
While TypeOf ActiveCtrl Is IContainerControl
ActiveCtrl = CType(ActiveCtrl, IContainerControl).ActiveControl
End While
If TypeOf ActiveCtrl Is DevExpress.XtraEditors.TextBoxMaskBox Then ActiveCtrl = ActiveCtrl.Parent
If TypeOf ActiveCtrl Is DevExpress.XtraEditors.BaseEdit Then CType(ActiveCtrl, DevExpress.XtraEditors.BaseEdit).DoValidate()
End Sub
End Class
+3
View File
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Ical.Net" version="4.3.1" targetFramework="net48" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net48" />
<package id="NodaTime" version="3.2.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net48" />
</packages>