Compare commits

...

2 Commits

Author SHA1 Message Date
508a3fb483 Messagebox bei erfolgreichem Export, EndGridEdit hinzugefügt 2025-01-05 18:48:16 +01:00
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
17 changed files with 289 additions and 132 deletions

View File

@ -2,6 +2,8 @@
Public Class Settings Public Class Settings
Public Property Categories As List(Of Category) Public Property Categories As List(Of Category)
Public Property DefaultTimezoneId As String
Public Sub New() Public Sub New()
Load() Load()
@ -17,10 +19,17 @@ Public Class Settings
Else Else
Categories = New List(Of Category) Categories = New List(Of Category)
End If End If
If My.Settings.DefaultTimezoneId Is Nothing Then
DefaultTimezoneId = TimeZoneInfo.Local.Id
Else
DefaultTimezoneId = My.Settings.DefaultTimezoneId
End If
End Sub End Sub
Public Sub Save() Public Sub Save()
My.Settings.CategoryList = JsonConvert.SerializeObject(Categories) My.Settings.CategoryList = JsonConvert.SerializeObject(Categories)
My.Settings.DefaultTimezoneId = DefaultTimezoneId
My.Settings.Save() My.Settings.Save()
End Sub End Sub

View File

@ -71,37 +71,37 @@
<OptionInfer>On</OptionInfer> <OptionInfer>On</OptionInfer>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DevExpress.Drawing.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.v23.2, Version=23.2.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.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.DataAccess.v24.1, Version=24.1.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.DataAccess.v24.1.UI, Version=24.1.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.DataVisualization.v24.1.Core, Version=24.1.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.Dialogs.v24.1.Core, Version=24.1.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.Office.v24.1.Core, Version=24.1.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.Printing.v24.1.Core, Version=24.1.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.Data.Desktop.v24.1, Version=24.1.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.RichEdit.v24.1.Core, Version=24.1.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.Spreadsheet.v24.1.Core, Version=24.1.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.v24.1, Version=24.1.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.Utils.v24.1.UI, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraBars.v23.2, Version=23.2.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.v23.2.Core, Version=23.2.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.v23.2, Version=23.2.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.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraDialogs.v24.1, Version=24.1.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.XtraEditors.v24.1, Version=24.1.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.XtraGrid.v24.1, Version=24.1.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.XtraLayout.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v23.2, Version=23.2.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.v23.2, Version=23.2.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.v23.2, Version=23.2.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.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" /> <Reference Include="DevExpress.XtraScheduler.v24.1, Version=24.1.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.v24.1.Core.Desktop, Version=24.1.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.v24.1.Core, Version=24.1.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.XtraScheduler.v24.1.Extensions, Version=24.1.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.Images.v24.1, Version=24.1.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.XtraSpreadsheet.v24.1, Version=24.1.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.XtraTreeList.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraTreeMap.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraTreeMap.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <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> <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
@ -136,10 +136,10 @@
<Compile Include="Classes\clsGridFunctions.vb" /> <Compile Include="Classes\clsGridFunctions.vb" />
<Compile Include="Classes\clsSettings.vb" /> <Compile Include="Classes\clsSettings.vb" />
<Compile Include="Objects\clsTableHeader.vb" /> <Compile Include="Objects\clsTableHeader.vb" />
<Compile Include="frmCategoryEdit.Designer.vb"> <Compile Include="frmSettings.Designer.vb">
<DependentUpon>frmCategoryEdit.vb</DependentUpon> <DependentUpon>frmSettings.vb</DependentUpon>
</Compile> </Compile>
<Compile Include="frmCategoryEdit.vb"> <Compile Include="frmSettings.vb">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Include="frmMain.Designer.vb"> <Compile Include="frmMain.Designer.vb">
@ -166,8 +166,8 @@
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="frmCategoryEdit.resx"> <EmbeddedResource Include="frmSettings.resx">
<DependentUpon>frmCategoryEdit.vb</DependentUpon> <DependentUpon>frmSettings.vb</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="frmMain.resx"> <EmbeddedResource Include="frmMain.resx">
<DependentUpon>frmMain.vb</DependentUpon> <DependentUpon>frmMain.vb</DependentUpon>

View File

@ -71,39 +71,37 @@
<OptionInfer>On</OptionInfer> <OptionInfer>On</OptionInfer>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="DevExpress.Drawing.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Drawing.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Data.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Data.v23.2, Version=23.2.3.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.v23.2, Version=23.2.3.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.DataAccess.v23.2.UI, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.DataVisualization.v22.1.Core, Version=22.1.6.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.v22.1.Core, Version=22.1.6.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.v22.1.Core, Version=22.1.6.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.v22.1.Core, Version=22.1.6.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.v22.1, Version=22.1.6.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.v22.1.Core, Version=22.1.6.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.v22.1.Core, Version=22.1.6.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.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.Utils.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Utils.v22.1.UI, Version=22.1.6.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.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Charts.v22.1.Core, Version=22.1.6.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.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraCharts.v23.2, Version=23.2.3.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.XtraDialogs.v23.2, Version=23.2.3.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.XtraEditors.v23.2, Version=23.2.3.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.XtraGrid.v23.2, Version=23.2.3.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.XtraLayout.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraNavBar.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraNavBar.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraPrinting.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraPrinting.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.XtraRichEdit.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraRichEdit.v23.2, Version=23.2.3.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.v23.2, Version=23.2.3.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.v23.2.Core.Desktop, Version=23.2.3.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.v23.2.Core, Version=23.2.3.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.XtraScheduler.v23.2.Extensions, Version=23.2.3.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.Images.v23.2, Version=23.2.3.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.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeMap.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> <Reference Include="DevExpress.XtraTreeList.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="Microsoft.Office.Interop.Excel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL"> <Reference Include="DevExpress.XtraTreeMap.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <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> <HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference> </Reference>
@ -184,7 +182,10 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Include="app.config" /> <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"> <None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator> <Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput> <LastGenOutput>Application.Designer.vb</LastGenOutput>
@ -220,6 +221,35 @@
<ItemGroup> <ItemGroup>
<None Include="Resources\exportfile.svg" /> <None Include="Resources\exportfile.svg" />
</ItemGroup> </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" /> <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -119,15 +119,15 @@
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <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"> <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>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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>
<data name="exportfile" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> </data>
</root> </root>

View File

@ -119,15 +119,15 @@
</resheader> </resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> <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"> <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>
<data name="save" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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>
<data name="open" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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>
<data name="exportfile" type="System.Resources.ResXFileRef, System.Windows.Forms"> <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> </data>
</root> </root>

View File

@ -15,7 +15,7 @@ Option Explicit On
Namespace My Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _ <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)> _ Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase Inherits Global.System.Configuration.ApplicationSettingsBase
@ -77,6 +77,18 @@ Namespace My
Me("EndDateCalculationHoursToAdd") = value Me("EndDateCalculationHoursToAdd") = value
End Set End Set
End Property 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 Class
End Namespace End Namespace

View File

@ -8,5 +8,8 @@
<Setting Name="EndDateCalculationHoursToAdd" Type="System.Int32" Scope="User"> <Setting Name="EndDateCalculationHoursToAdd" Type="System.Int32" Scope="User">
<Value Profile="(Default)">2</Value> <Value Profile="(Default)">2</Value>
</Setting> </Setting>
<Setting Name="DefaultTimezoneId" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings> </Settings>
</SettingsFile> </SettingsFile>

View File

@ -1,5 +1,6 @@
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.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.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v24.1, Version=24.1.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.v24.1, Version=24.1.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v23.2, Version=23.2.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

View File

@ -1,5 +1,5 @@
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.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.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraSpreadsheet.SpreadsheetControl, DevExpress.XtraSpreadsheet.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraScheduler.SchedulerControl, DevExpress.XtraScheduler.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v22.1, Version=22.1.6.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v23.2, Version=23.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a

View File

@ -8,7 +8,8 @@
Public Property Status As String Public Property Status As String
Public Property IsInvalid As Boolean Public Property IsInvalid As Boolean
Public Property Exclude As Boolean Public Property Exclude As Boolean
Public Property RowIndex As Integer Public Property RowIndex As Integer
Public Property TimeZoneKey As String = General.Settings.DefaultTimezoneId
End Class End Class

View File

@ -33,6 +33,9 @@
<setting name="EndDateCalculationHoursToAdd" serializeAs="String"> <setting name="EndDateCalculationHoursToAdd" serializeAs="String">
<value>2</value> <value>2</value>
</setting> </setting>
<setting name="DefaultTimezoneId" serializeAs="String">
<value />
</setting>
</FWCreateCalendar.My.MySettings> </FWCreateCalendar.My.MySettings>
</userSettings> </userSettings>
</configuration> </configuration>

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

View File

@ -141,7 +141,7 @@ Partial Class frmMain
' '
'btnCategories 'btnCategories
' '
Me.btnCategories.Caption = "Kategorien bearbeiten..." Me.btnCategories.Caption = "Einstellungen..."
Me.btnCategories.Id = 2 Me.btnCategories.Id = 2
Me.btnCategories.ImageOptions.SvgImage = Global.FWCreateCalendar.My.Resources.Resources.viewsettings Me.btnCategories.ImageOptions.SvgImage = Global.FWCreateCalendar.My.Resources.Resources.viewsettings
Me.btnCategories.Name = "btnCategories" Me.btnCategories.Name = "btnCategories"

View File

@ -65,6 +65,8 @@ Public Class frmMain
.Columns(NameOf(EventEntry.IsInvalid)).OptionsColumn.AllowEdit = False .Columns(NameOf(EventEntry.IsInvalid)).OptionsColumn.AllowEdit = False
.Columns(NameOf(EventEntry.RowIndex)).Visible = False .Columns(NameOf(EventEntry.RowIndex)).Visible = False
.Columns(NameOf(EventEntry.RowIndex)).OptionsColumn.AllowEdit = False .Columns(NameOf(EventEntry.RowIndex)).OptionsColumn.AllowEdit = False
.Columns(NameOf(EventEntry.TimeZoneKey)).Visible = False
.Columns(NameOf(EventEntry.TimeZoneKey)).OptionsColumn.AllowEdit = False
End With 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.Exclude), True, FormatCondition.Equal, True, backcolor:=Color.LightGray))
grdv.FormatRules.Add(GridFunctions.CreateFormatRule(grdv, NameOf(EventEntry.IsInvalid), True, FormatCondition.Equal, True, backcolor:=Color.MistyRose)) grdv.FormatRules.Add(GridFunctions.CreateFormatRule(grdv, NameOf(EventEntry.IsInvalid), True, FormatCondition.Equal, True, backcolor:=Color.MistyRose))
@ -78,6 +80,7 @@ Public Class frmMain
.Subject = NameOf(EventEntry.Subject) .Subject = NameOf(EventEntry.Subject)
.Location = NameOf(EventEntry.Location) .Location = NameOf(EventEntry.Location)
.Label = NameOf(EventEntry.Category) .Label = NameOf(EventEntry.Category)
'.TimeZoneId = NameOf(EventEntry.TimeZoneKey)
End With End With
.Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.IsInvalid), NameOf(EventEntry.IsInvalid))) .Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.IsInvalid), NameOf(EventEntry.IsInvalid)))
.Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.Exclude), NameOf(EventEntry.Exclude))) .Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping(NameOf(EventEntry.Exclude), NameOf(EventEntry.Exclude)))
@ -96,23 +99,21 @@ Public Class frmMain
sched.GoToToday() sched.GoToToday()
End Sub End Sub
Private Sub fill(datei As String) Private Sub ImportDatasourceFromFile(datei As String)
schedStorage.Appointments.DataSource = Nothing schedStorage.Appointments.DataSource = Nothing
grd.BeginUpdate() grd.BeginUpdate()
grd.DataSource = Nothing grd.DataSource = Nothing
ds = Readout(datei) ds = GetEventsFromFile(datei)
grd.DataSource = ds grd.DataSource = ds
grd.EndUpdate() grd.EndUpdate()
grdv.BestFitColumns() grdv.BestFitColumns()
schedStorage.Appointments.DataSource = ds schedStorage.Appointments.DataSource = ds
sched.RefreshData() sched.RefreshData()
End Sub 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 Dim xlApp = New Excel.Application
'Im Fall von folgendem Fehler: '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". '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 +179,7 @@ Public Class frmMain
ElseIf zDatum.Trim.Length = 0 Then ElseIf zDatum.Trim.Length = 0 Then
' Status.Add("Kein Datum angegeben") ' Status.Add("Kein Datum angegeben")
ev.IsInvalid = True 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) ev.EndDate = ev.StartDate.AddHours(My.Settings.EndDateCalculationHoursToAdd)
ElseIf Date.TryParse($"{zDatum}", ev.StartDate) Then ElseIf Date.TryParse($"{zDatum}", ev.StartDate) Then
'Status.Add("Keine Zeit gefunden, gehe von Ganztag aus") 'Status.Add("Keine Zeit gefunden, gehe von Ganztag aus")
@ -233,13 +234,13 @@ Public Class frmMain
If OFD.ShowDialog = DialogResult.OK Then If OFD.ShowDialog = DialogResult.OK Then
SFD.FileName = $"{Path.GetFileNameWithoutExtension(OFD.FileName)}.ics" SFD.FileName = $"{Path.GetFileNameWithoutExtension(OFD.FileName)}.ics"
SFD.InitialDirectory = Path.GetDirectoryName(OFD.FileName) SFD.InitialDirectory = Path.GetDirectoryName(OFD.FileName)
fill(OFD.FileName) ImportDatasourceFromFile(OFD.FileName)
xlsSheet.LoadDocument(OFD.FileName) xlsSheet.LoadDocument(OFD.FileName)
End If End If
End Sub End Sub
Private Sub btnCategories_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnCategories.ItemClick 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 If frm.ShowDialog = DialogResult.OK Then
RefreshEventExclusion(ds) RefreshEventExclusion(ds)
CheckEventValidity(ds) CheckEventValidity(ds)
@ -249,17 +250,27 @@ Public Class frmMain
End Sub End Sub
Private Sub btnExport_ItemClick(sender As Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles btnExport.ItemClick 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" SFD.FileName = Path.GetFileNameWithoutExtension(OFD.FileName) & ".ics"
If SFD.ShowDialog = DialogResult.OK Then If SFD.ShowDialog = DialogResult.OK Then
'schedStorage.TimeZoneId = General.Settings.DefaultTimezoneId
Dim exporter As New iCalendarExporter(schedStorage) Dim exporter As New iCalendarExporter(schedStorage)
exporter.ProductIdentifier = "FW-EXPORTER"
exporter.CustomPropertyIdentifier = "FWPROP"
AddHandler exporter.AppointmentExporting, AddressOf Exporter_AppointmentExporting AddHandler exporter.AppointmentExporting, AddressOf Exporter_AppointmentExporting
exporter.Export(SFD.FileName) Dim failed As Boolean
Try
exporter.Export(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 If
End Sub End Sub
Private Sub Exporter_AppointmentExporting(sender As Object, e As AppointmentExportingEventArgs) Private Sub Exporter_AppointmentExporting(sender As Object, e As AppointmentExportingEventArgs)
'e.Appointment.TimeZoneId = sched.OptionsBehavior.ClientTimeZoneId '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 If CType(e.Appointment.GetSourceObject(schedStorage), EventEntry).Exclude OrElse CType(e.Appointment.GetSourceObject(schedStorage), EventEntry).IsInvalid Then
e.Cancel = True e.Cancel = True
End If End If

View File

@ -1,5 +1,5 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
Partial Class frmCategoryEdit Partial Class frmSettings
Inherits System.Windows.Forms.Form Inherits System.Windows.Forms.Form
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. '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.rpgGeneral = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
Me.grd = New DevExpress.XtraGrid.GridControl() Me.grd = New DevExpress.XtraGrid.GridControl()
Me.grdv = New DevExpress.XtraGrid.Views.Grid.GridView() 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.rcMain, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.grd, System.ComponentModel.ISupportInitialize).BeginInit() CType(Me.grd, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.grdv, 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() Me.SuspendLayout()
' '
'rcMain 'rcMain
' '
Me.rcMain.DrawGroupCaptions = DevExpress.Utils.DefaultBoolean.[False] Me.rcMain.DrawGroupCaptions = DevExpress.Utils.DefaultBoolean.[False]
Me.rcMain.ExpandCollapseItem.Id = 0 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.Location = New System.Drawing.Point(0, 0)
Me.rcMain.MaxItemId = 3 Me.rcMain.MaxItemId = 3
Me.rcMain.Name = "rcMain" Me.rcMain.Name = "rcMain"
Me.rcMain.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.rpMain}) Me.rcMain.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.rpMain})
Me.rcMain.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False] Me.rcMain.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
Me.rcMain.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages 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 Me.rcMain.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden
' '
'btnSave 'btnSave
@ -69,11 +79,11 @@ Partial Class frmCategoryEdit
'grd 'grd
' '
Me.grd.Dock = System.Windows.Forms.DockStyle.Fill 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.MainView = Me.grdv
Me.grd.MenuManager = Me.rcMain Me.grd.MenuManager = Me.rcMain
Me.grd.Name = "grd" 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.TabIndex = 1
Me.grd.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.grdv}) 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.ShowGroupPanel = False
Me.grdv.OptionsView.ShowIndicator = 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 'frmCategoryEdit
' '
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(800, 450) Me.ClientSize = New System.Drawing.Size(800, 450)
Me.Controls.Add(Me.grd) Me.Controls.Add(Me.tcMain)
Me.Controls.Add(Me.rcMain) Me.Controls.Add(Me.rcMain)
Me.Name = "frmCategoryEdit" Me.Name = "frmCategoryEdit"
Me.Text = "Kategorien bearbeiten" Me.Text = "Kategorien bearbeiten"
CType(Me.rcMain, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.rcMain, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.grd, System.ComponentModel.ISupportInitialize).EndInit() CType(Me.grd, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.grdv, 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.ResumeLayout(False)
Me.PerformLayout() Me.PerformLayout()
@ -107,4 +165,9 @@ Partial Class frmCategoryEdit
Friend WithEvents rpgGeneral As DevExpress.XtraBars.Ribbon.RibbonPageGroup Friend WithEvents rpgGeneral As DevExpress.XtraBars.Ribbon.RibbonPageGroup
Friend WithEvents grd As DevExpress.XtraGrid.GridControl Friend WithEvents grd As DevExpress.XtraGrid.GridControl
Friend WithEvents grdv As DevExpress.XtraGrid.Views.Grid.GridView 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 End Class

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