DevExpress Scheduler, Keine Appointmens angezeigt

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von hans im glück.

    DevExpress Scheduler, Keine Appointmens angezeigt

    Servus zusammen,

    ich bin gerade dabei ein kleines Projekt umzusetzen. Und zwar möchte ich so eine Art Terminplaner programmieren. Umsetzen möchte ich dies gern mit einer SQLite-Datenbank in Verbindung mit den DevExpress Scheduler-Control.
    Soweit so gut funzt es schon mal. Kann einen Termin erzeugen. Dieser wird mir auch in die Datenbank geschrieben. Allerdings, wenn ich das Programm neu starte, werden mir die Daten nicht im Scheduler-Control angezeigt. Ins DataSet werden die Datensätze geschrieben, soweit ich da sehen kann.

    Ich versuche das Problem schon seit Tagen zu ergründen. Auch das "studieren" der Dokumentation brachte keinen Erfolg. Ich bin mit meinem Latain am Ende.
    Vielleicht hat jemand von Euch eine Idee, wie oder was ich umstetzen oder umstellen sollte, dass es funzt.

    Möchte mich schon mal bei Euch für Eure Unterstützung bedanken.

    Hier der Quellcode, den ich anhand der Beispiele zusammen gestrickt habe.

    VB.NET-Quellcode

    1. Imports System.ComponentModel
    2. Imports System.Text
    3. Imports DevExpress.XtraScheduler
    4. Imports System.Data.SQLite
    5. Partial Public Class Form1
    6. Inherits DevExpress.XtraEditors.XtraForm
    7. Shared Sub New()
    8. DevExpress.UserSkins.BonusSkins.Register()
    9. DevExpress.Skins.SkinManager.EnableFormSkins()
    10. End Sub
    11. Public Sub New()
    12. InitializeComponent()
    13. ' Subscribe to Storage events required for updating the data source.
    14. AddHandler Me.SchedulerStorage1.AppointmentsInserted, AddressOf OnApptChangedInsertedDeleted
    15. AddHandler Me.SchedulerStorage1.AppointmentsChanged, AddressOf OnApptChangedInsertedDeleted
    16. AddHandler Me.SchedulerStorage1.AppointmentsDeleted, AddressOf OnApptChangedInsertedDeleted
    17. '// Uncomment the code below to demonstrate how to store and retrieve data in the appointment custom field.
    18. '// Do not forget to uncomment event handlers.
    19. 'this.schedulerControl1.InitAppointmentDisplayText += schedulerControl1_InitAppointmentDisplayText;
    20. 'this.schedulerControl1.InitNewAppointment += schedulerControl1_InitNewAppointment;
    21. End Sub
    22. ' Modify this string if required to connect to your database.
    23. Private Const SchedulerDBConnection As String = "Data Source=Datenbank.db"
    24. Private DXSchedulerDataset As DataSet
    25. Private AppointmentDataAdapter As SQLiteDataAdapter
    26. Private ResourceDataAdapter As SQLiteDataAdapter
    27. Private DXSchedulerConn As SQLiteConnection
    28. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    29. Me.SchedulerStorage1.Appointments.ResourceSharing = True
    30. Me.SchedulerControl1.GroupType = SchedulerGroupType.Resource
    31. Me.SchedulerControl1.Start = DateTime.Today
    32. Me.SchedulerStorage1.Appointments.CommitIdToDataSource = False
    33. Me.SchedulerControl1.ActiveViewType = SchedulerViewType.Week
    34. DXSchedulerDataset = New DataSet()
    35. Dim selectAppointments As String = "SELECT * FROM Appointments"
    36. Dim selectResources As String = "SELECT * FROM resources"
    37. DXSchedulerConn = New SQLiteConnection(SchedulerDBConnection)
    38. DXSchedulerConn.Open()
    39. AppointmentDataAdapter = New SQLiteDataAdapter(selectAppointments, DXSchedulerConn)
    40. ' Subscribe to RowUpdated event to retrieve identity value for an inserted row.
    41. AddHandler AppointmentDataAdapter.RowUpdated, AddressOf AppointmentDataAdapter_RowUpdated
    42. AppointmentDataAdapter.Fill(DXSchedulerDataset, "Appointments")
    43. ResourceDataAdapter = New SQLiteDataAdapter(selectResources, DXSchedulerConn)
    44. ResourceDataAdapter.Fill(DXSchedulerDataset, "Resources")
    45. ' Specify mappings.
    46. MapAppointmentData()
    47. MapResourceData()
    48. ' Generate commands using CommandBuilder.
    49. Dim cmdBuilder As New SQLiteCommandBuilder(AppointmentDataAdapter)
    50. AppointmentDataAdapter.InsertCommand = cmdBuilder.GetInsertCommand()
    51. AppointmentDataAdapter.DeleteCommand = cmdBuilder.GetDeleteCommand()
    52. AppointmentDataAdapter.UpdateCommand = cmdBuilder.GetUpdateCommand()
    53. DXSchedulerConn.Close()
    54. Me.SchedulerStorage1.Appointments.DataSource = DXSchedulerDataset
    55. Me.SchedulerStorage1.Appointments.DataMember = "Appointments"
    56. Me.SchedulerStorage1.Resources.DataSource = DXSchedulerDataset
    57. Me.SchedulerStorage1.Resources.DataMember = "Resources"
    58. SchedulerControl1.Storage = SchedulerStorage1
    59. End Sub
    60. Private Sub MapAppointmentData()
    61. Me.SchedulerStorage1.Appointments.Mappings.AllDay = "AllDay"
    62. Me.SchedulerStorage1.Appointments.Mappings.Description = "Description"
    63. ' Required mapping.
    64. Me.SchedulerStorage1.Appointments.Mappings.End = "EndDate"
    65. Me.SchedulerStorage1.Appointments.Mappings.Label = "Label"
    66. Me.SchedulerStorage1.Appointments.Mappings.Location = "Location"
    67. Me.SchedulerStorage1.Appointments.Mappings.RecurrenceInfo = "RecurrenceInfo"
    68. Me.SchedulerStorage1.Appointments.Mappings.ReminderInfo = "ReminderInfo"
    69. ' Required mapping.
    70. Me.SchedulerStorage1.Appointments.Mappings.Start = "StartDate"
    71. Me.SchedulerStorage1.Appointments.Mappings.Status = "Status"
    72. Me.SchedulerStorage1.Appointments.Mappings.Subject = "Subject"
    73. Me.SchedulerStorage1.Appointments.Mappings.Type = "Type"
    74. Me.SchedulerStorage1.Appointments.Mappings.ResourceId = "ResourceIDs"
    75. Me.SchedulerStorage1.Appointments.CustomFieldMappings.Add(New AppointmentCustomFieldMapping("MyNote", "CustomField1"))
    76. End Sub
    77. Private Sub MapResourceData()
    78. Me.SchedulerStorage1.Resources.Mappings.Id = "ResourceID"
    79. Me.SchedulerStorage1.Resources.Mappings.Caption = "ResourceName"
    80. End Sub
    81. ' Retrieve identity value for an inserted appointment.
    82. Private Sub AppointmentDataAdapter_RowUpdated(ByVal sender As Object, ByVal e As Common.RowUpdatedEventArgs)
    83. If e.Status = UpdateStatus.Continue AndAlso e.StatementType = StatementType.Insert Then
    84. Dim id As Integer = 0
    85. Using cmd As New SQLiteCommand("SELECT last_insert_rowid()", DXSchedulerConn)
    86. id = Convert.ToInt32(cmd.ExecuteScalar())
    87. End Using
    88. e.Row("UniqueID") = id
    89. End If
    90. End Sub
    91. ' Store modified data in the database
    92. Private Sub OnApptChangedInsertedDeleted(ByVal sender As Object, ByVal e As PersistentObjectsEventArgs)
    93. AppointmentDataAdapter.Update(DXSchedulerDataset.Tables("Appointments"))
    94. DXSchedulerDataset.AcceptChanges()
    95. End Sub
    96. '// Uncomment the code below to demonstrate how to store and retrieve data in the appointment custom field.
    97. '// Do not forget to uncomment event subscription code in the form constructor.
    98. '// Store a custom value in the newly created appointment.
    99. 'private void schedulerControl1_InitNewAppointment(object sender, AppointmentEventArgs e)
    100. '{
    101. ' e.Appointment.CustomFields["MyNote"] = String.Format("Created on {0:d} at {0:t} \n", DateTime.Now);
    102. '}
    103. '// Modify default appointment text to display a custom value.
    104. 'private void schedulerControl1_InitAppointmentDisplayText(object sender, AppointmentDisplayTextEventArgs e)
    105. '{
    106. ' e.Text = (e.Appointment.CustomFields["MyNote"] is DBNull) ? String.Empty : (string)e.Appointment.CustomFields["MyNote"];
    107. '}
    108. End Class


    Vielen Dank für Eure Unterstützung.

    Gruß Zaunkonig