{"id":55000294,"date":"2021-12-01T00:00:00","date_gmt":"2022-03-31T21:33:39","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=294"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Seminarverwaltung_IVb_Kunden_und_Seminare","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/","title":{"rendered":"Seminarverwaltung IVb: Kunden und Seminare"},"content":{"rendered":"<p><b>In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben&ouml;tigen wir zwei Seiten &#8211; eine zur Anzeige der &Uuml;bersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m&uuml;ssen wir noch eine kleine Anpassung am Entity Date Model durchf&uuml;hren, und au&szlig;erdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen<\/b><\/p>\n<p>Wir haben diesen Artikel gegen&uuml;ber der urspr&uuml;nglichen Planung dreigeteilt. Den zweiten Teil finden Sie hier vor. Im ersten Teil namens <b>Seminarverwaltung IVa: Kunden und Seminare <\/b>(<b>www.datenbankentwickler.net\/273<\/b>) stellen wir die beiden Seiten zur Anzeige der &Uuml;bersicht und der Details der Kunden vor.<\/p>\n<p>Im dritten Teil zeigen wir unter dem Titel <b>Seminarverwaltung IVc: Kunden und Seminare <\/b>(<b>www.datenbankentwickler.net\/295<\/b>), wie Sie den Kunden Seminare zuordnen und umgekehrt.<\/p>\n<p>Im aktuellen Teil der Artikelreihe schauen wir uns die Seiten zur Darstellung der Seminare in der &Uuml;bersicht und in der Einzelansicht an. Die hier beschriebenen Seiten lauten:<\/p>\n<ul>\n<li><b>SeminareUebersicht.xaml<\/b>: Die &Uuml;bersichtsseite f&uuml;r die Seminare soll eine Liste aller Seminare anzeigen. Hier soll der Benutzer eine Suchfunktion vorfinden sowie Schaltfl&auml;chen zum Anlegen neuer Seminare und zum Bearbeiten oder L&ouml;schen von Seminaren.<\/li>\n<li><b>Seminardetails.xaml<\/b>: Die Detailseite eines Seminars zeigt neben den Details des Seminars auch eine Liste der Kunden an, die dieses Seminar gebucht haben. Sie k&ouml;nnen hier manuell Kunden hinzuf&uuml;gen oder aus der Liste der Teilnehmer entfernen. Au&szlig;erdem finden Sie hier Funktionen, um den Kunden Informationen zum Seminar zuzusenden &#8211; beispielsweise E-Mails mit dem Link zur Teams-Sitzung, in der das Seminar stattfindet, oder f&uuml;r die Aufzeichnung des Seminars.<\/li>\n<\/ul>\n<h2>&Auml;nderungen am Entity Data Model<\/h2>\n<p>Die Entit&auml;ten f&uuml;r die Seminare enthalten ein Datumsfeld. Damit dieses beim Speichern in der Datenbank korrekt verarbeitet werden kann, f&uuml;gen wir der Methode <b>OnModelCreating <\/b>eine Anweisung hinzu, welche den Datentyp f&uuml;r die Eigenschaft <b>Seminartermin <\/b>auf <b>datetime2 <\/b>festlegt:<\/p>\n<pre>Protected Overrides Sub OnModelCreating(modelBuilder<span style=\"color:blue;\"> As <\/span>DbModelBuilder)\r\n     MyBase.OnModelCreating(modelBuilder)\r\n     ...\r\n     modelBuilder.Entity(Of Seminar).        Property(Function(s) s.Seminartermin).HasColumnType(\"datetime2\").HasPrecision(0)\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Aufruf der Seminar&uuml;bersicht &uuml;ber das Ribbon<\/h2>\n<p>Im Artikel <b>Seminarverwaltung II: Ribbon und Frame <\/b>(<b>www.datenbankentwickler.net\/272<\/b>) haben wir bereits den Aufbau des Ribbons f&uuml;r diese Anwendung beschrieben. Was noch fehlt, sind die Ereignismethoden, die durch die Schaltfl&auml;chen <b>btnSeminaruebersicht <\/b>und <b>btnSeminaranlegen <\/b>ausgel&ouml;st werden. Mit diesen Schaltfl&auml;chen wollen wir die noch zu erstellenden Seiten <b>SeminareUebersicht <\/b>und <b>Seminardetails <\/b>aufrufen. Die Methode, die durch die Schaltfl&auml;che <b>btnSeminaruebersicht <\/b>ausgel&ouml;st werden soll, erstellt eine neue Seite auf Basis des <b>Page<\/b>-Elements <b>SeminareUebersicht <\/b>und &uuml;bergibt dieser einen Verweis auf das <b>Frame<\/b>-Objekt und auf den Datenbankkontext aus <b>dbContext<\/b>. Dann weist sie der Eigenschaft <b>Content <\/b>des <b>Frame<\/b>-Elements das neue <b>Page<\/b>-Element zu:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>btnSeminaruebersicht_Click(sender<span style=\"color:blue;\"> As Object<\/span>, e<span style=\"color:blue;\"> As <\/span>RoutedEventArgs)\r\n     <span style=\"color:blue;\">Dim <\/span>pgeSeminaruebersicht<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> SeminareUebersicht(fra, dbContext)\r\n     fra.Content = pgeSeminaruebersicht\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Aufruf der Seite zum Anlegen eines neuen Seminars &uuml;ber das Ribbon<\/h2>\n<p>&Auml;hnlich sieht der Aufruf f&uuml;r die Schaltfl&auml;che <b>btnSeminarAnlegen <\/b>aus:<\/p>\n<pre><span style=\"color:blue;\">Private Sub <\/span>btnSeminarAnlegen_Click(sender<span style=\"color:blue;\"> As Object<\/span>, e<span style=\"color:blue;\"> As <\/span>RoutedEventArgs)\r\n     <span style=\"color:blue;\">Dim <\/span>pgeSeminardetails<span style=\"color:blue;\"> As <\/span><span style=\"color:blue;\">New<\/span> Seminardetails(fra, dbContext)\r\n     fra.Content = pgeSeminardetails\r\n<span style=\"color:blue;\">End Sub<\/span><\/pre>\n<h2>Validierung der Seminare bei der Eingabe<\/h2>\n<p>Bevor wir die Benutzeroberfl&auml;che und die Anwendungslogik f&uuml;r das Anlegen neuer Seminare und das Bearbeiten vorhandener Seminare kreieren, ben&ouml;tigen wir noch eine Klasse, welche die Validierungsregeln f&uuml;r die <b>Seminar<\/b>-Elemente enth&auml;lt. Daf&uuml;r legen wir eine Klasse namens <b>Seminar.vb <\/b>an, in der wir die Schnittstelle <b>IDataErrorInfo <\/b>implementieren. Diese enth&auml;lt die beiden Eigenschaften <b>Item <\/b>und <b>Error<\/b>. F&uuml;r die Eigenschaft <b>Item <\/b>hinterlegen wir die Validierungsregeln, die Eigenschaft Error brauchen wir nicht anzupassen.<\/p>\n<p>Die beiden Felder <b>Titel <\/b>und <b>Inhalt <\/b>d&uuml;rfen einfach nicht leer sein, was wir durch die Pr&uuml;fung des Inhalts dieser Felder mit <b>String.IsNullOrEmpty <\/b>pr&uuml;fen. Der Inhalt des Feldes <b>Preis<\/b> darf nicht leer sein und weder einen negativen noch einen nicht-numerischen Wert enthalten. Das Feld <b>Seminartermin <\/b>darf ebenfalls nicht leer sein und muss ein Datum enthalten:<\/p>\n<pre>Imports System.ComponentModel\r\n<span style=\"color:blue;\">Public Class<\/span> Seminar\r\n     Implements IDataErrorInfo\r\n     Default Public ReadOnly Property Item(columnName<span style=\"color:blue;\"> As String<\/span>)<span style=\"color:blue;\"> As String<\/span> Implements IDataErrorInfo.Item\r\n         Get\r\n             <span style=\"color:blue;\">Dim <\/span>strErrorMessage<span style=\"color:blue;\"> As String<\/span> = \"\"\r\n             Select Case columnName\r\n                 <span style=\"color:blue;\">Case <\/span>\"Titel\"\r\n                     <span style=\"color:blue;\">If <\/span>(String.IsNullOrEmpty(Titel))<span style=\"color:blue;\"> Then<\/span>\r\n                         strErrorMessage = \"Bitte geben Sie einen Titel ein.\"\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n                 <span style=\"color:blue;\">Case <\/span>\"Inhalt\"\r\n                     <span style=\"color:blue;\">If <\/span>(String.IsNullOrEmpty(Inhalt))<span style=\"color:blue;\"> Then<\/span>\r\n                         strErrorMessage = \"Bitte geben Sie einen Inhalt ein.\"\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n                 <span style=\"color:blue;\">Case <\/span>\"Preis\"\r\n                     <span style=\"color:blue;\">If <\/span>(Preis &lt; 0 Or String.IsNullOrEmpty(Preis))<span style=\"color:blue;\"> Then<\/span>\r\n                         strErrorMessage = \"Bitte geben Sie einen Preis ein.\"\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n                 <span style=\"color:blue;\">Case <\/span>\"Seminartermin\"\r\n                     <span style=\"color:blue;\">If <\/span>(String.IsNullOrEmpty(Seminartermin) Or <span style=\"color:blue;\">Not<\/span> IsDate(Seminartermin))<span style=\"color:blue;\"> Then<\/span>\r\n                         strErrorMessage = \"Bitte geben Sie einen Seminartermin ein.\"\r\n                     <span style=\"color:blue;\">End If<\/span>\r\n             <span style=\"color:blue;\">End Select<\/span>\r\n             Return strErrorMessage\r\n         End Get\r\n     End Property\r\n     <span style=\"color:blue;\">Public <\/span>ReadOnly Property [Error]<span style=\"color:blue;\"> As String<\/span> Implements IDataErrorInfo.Error\r\n         Get\r\n             ''Throw <span style=\"color:blue;\">New<\/span> NotImplementedException()\r\n         End Get\r\n     End Property\r\n<span style=\"color:blue;\">End Class<\/span><\/pre>\n<h2>Detailseite zum Anlegen und Bearbeiten von Seminaren<\/h2>\n<p>Damit gehen wir gleich &uuml;ber zu der Seite, mit der wir neue Seminare anlegen und vorhandene Seminare bearbeiten wollen. Im Teil mit den <b>Resources <\/b>f&uuml;r das <b>Page<\/b>-Element definieren wir wieder einige allgemeine Eigenschaften f&uuml;r die Steuerelemente wie <b>Margin <\/b>und <b>Padding<\/b> f&uuml;r die Elemente <b>DatePicker <\/b>und <b>Button<\/b>. F&uuml;r das Element <b>TextBox <\/b>legen wir au&szlig;erdem noch einen Wert f&uuml;r das Attribut <b>Validation.ErrorTemplate <\/b>fest, mit dem wir das Aussehen der <b>TextBox<\/b>-Elemente f&uuml;r den Fall definieren, dass der Inhalt nicht erfolgreich validiert werden konnte. Diese Teile finden Sie im Beispielprojekt, wir haben sie an dieser Stelle aus Platzgr&uuml;nden ausgespart:<\/p>\n<pre>&lt;Page x:Class=\"Seminardetails\"... Title=\"Seminardetails\"&gt;\r\n     &lt;Page.Resources&gt;\r\n         ...<\/pre>\n<p>Ein weiteres <b>Style<\/b>-Element definiert die Regeln, nach denen <b>Button<\/b>-Elemente, die diese Regel aufnehmen, deaktiviert werden sollen. Diese Regeln richten sich nach der Validierung, genauer danach, ob die Validierung f&uuml;r ein bestimmtes Steuerelement fehlgeschlagen ist.<\/p>\n<pre>     &lt;Style x:Key=\"EnableOnValidation\" TargetType=\"{x:Type Button}\"&gt;\r\n         &lt;Style.Triggers&gt;\r\n             &lt;DataTrigger Binding=\"{Binding ElementName=txtTitel, Path=(Validation.HasError)}\" Value=\"True\"&gt;\r\n                 &lt;Setter Property=\"IsEnabled\" Value=\"False\"&gt;&lt;\/Setter&gt;\r\n             &lt;\/DataTrigger&gt;\r\n             &lt;DataTrigger Binding=\"{Binding ElementName=txtInhalt, Path=(Validation.HasError)}\" Value=\"True\"&gt;\r\n                 &lt;Setter Property=\"IsEnabled\" Value=\"False\"&gt;&lt;\/Setter&gt;\r\n             &lt;\/DataTrigger&gt;\r\n             &lt;DataTrigger Binding=\"{Binding ElementName=txtPreis, Path=(Validation.HasError)}\" Value=\"True\"&gt;\r\n                 &lt;Setter Property=\"IsEnabled\" Value=\"False\"&gt;&lt;\/Setter&gt;\r\n             &lt;\/DataTrigger&gt;\r\n             &lt;DataTrigger Binding=\"{Binding ElementName=txtSeminartermin, Path=(Validation.HasError)}\"                     Value=\"True\"&gt;\r\n                 &lt;Setter Property=\"IsEnabled\" Value=\"False\"&gt;&lt;\/Setter&gt;\r\n             &lt;\/DataTrigger&gt;\r\n         &lt;\/Style.Triggers&gt;\r\n     &lt;\/Style&gt;\r\n&lt;\/Page.Resources&gt;<\/pre>\n<p>Anschlie&szlig;end folgt die Definition f&uuml;r die <b>RowDefinition<\/b>&#8211; und die <b>ColumnDefinition<\/b>-Elemente f&uuml;r das <b>Grid<\/b> dieses <b>Page<\/b>-Elements, die wir hier ebenfalls nicht abbilden.<\/p>\n<h2>Steuerelemente der Seite Seminardetails.xaml<\/h2>\n<p>Interessanter wird es wieder bei der Definition der Steuerelemente der Seite <b>Seminardetails.xaml<\/b>, die wie in Bild 1 aussehen sollen. Hier finden wir zwei Spalten, von denen die erste jeweils das <b>Label<\/b>-Element aufnimmt und die zweite die eigentlichen gebundenen Steuerelemente.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2021_06\/pic_294_001.png\" alt=\"Entwurf der Seite zur Anzeige der Seminardetails\" width=\"674,627\" height=\"221,3062\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Entwurf der Seite zur Anzeige der Seminardetails<\/span><\/b><\/p>\n<p>Damit die Steuerelemente die Werte des jeweiligen Datensatzes beziehungsweise des jeweiligen Elements des Entity Data Models anzeigen, werden wir im Anschluss das Code behind-Modul mit einer Eigenschaft namens <b>AktuellesSeminar <\/b>f&uuml;llen, welches wir beim Anlegen eines neuen Seminars oder beim Bearbeiten eines vorhandenen Seminars jeweils mit dem entsprechenden Element f&uuml;llen.<\/p>\n<p>F&uuml;r die zu bindende Eigenschaft geben wir daher einen Ausdruck wie <b>{Binding -AktuellesSeminar.ID, Mode=TwoWay} <\/b>an &#8211; hier f&uuml;r das Binden an das Feld <b>ID<\/b>. F&uuml;r die Elemente mit Validierung definieren wir zus&auml;tzlich noch das Attribut <b>ValidatesOnDataErrors <\/b>wie in <b>{Binding AktuellesSeminar.Titel, Mode=TwoWay, ValidatesOnDataErrors=True}<\/b>.<\/p>\n<p>Die ID bilden wir in einem <b>TextBox<\/b>-Element ab, das wir mit dem Wert <b>False <\/b>f&uuml;r das Attribut <b>IsEnabled <\/b>f&uuml;r die Eingabe deaktivieren. Die Felder <b>Titel <\/b>und <b>Inhalt <\/b>werden jeweils mit <b>TextBox<\/b>-Elementen dargestellt, die &uuml;ber das Attribut <b>Text <\/b>an diese Felder gebunden sind.<\/p>\n<p>F&uuml;r das Feld <b>Preis <\/b>legen wir noch zur Anzeige des Wertes als W&auml;hrung noch ein spezielles Format fest, n&auml;mlich <b>StringFormat<\/b>: <b>{Binding -AktuellesSeminar.Preis, Mode=TwoWay, ValidatesOnDataErrors=True, StringFormat=C}<\/b>. <\/p>\n<p>Das Datum zeigen wir mit einem <b>DatePicker<\/b>-Steuerelement an, die im Feld <b>Seminartermin <\/b>enthaltene Uhrzeit liefern wir mit einer separaten TextBox, die wir ebenfalls an das Feld <b>Seminartermin <\/b>binden. Allerdings legen wir hier mit <b>StringFormat=&#8221;t&#8221; <\/b>fest, dass nur die Uhrzeit angezeigt wird.<\/p>\n<p>Die gebundenen Felder definieren wir insgesamt wie folgt:<\/p>\n<pre>     &lt;Grid&gt;\r\n         ...\r\n         &lt;Label Content=\"ID:\" Grid.Column=\"0\" \/&gt;\r\n         &lt;TextBox x:Name=\"txtID\" Grid.Column=\"1\" HorizontalAlignment=\"Left\" Text=\"{Binding -AktuellesSeminar.ID, Mode=TwoWay}\" Width=\"50\" IsEnabled=\"False\" BorderBrush=\"Transparent\" \/&gt; \r\n         &lt;Label Content=\"Titel:\" Grid.Column=\"0\" Grid.Row=\"1\" \/&gt;\r\n         &lt;TextBox x:Name=\"txtTitel\" Grid.Column=\"1\" Grid.Row=\"1\" HorizontalAlignment=\"Stretch\" -Text=\"{Binding AktuellesSeminar.Titel, Mode=TwoWay, ValidatesOnDataErrors=True}\" \/&gt;\r\n         &lt;Label Content=\"Inhalt:\" Grid.Row=\"2\" \/&gt;\r\n         &lt;TextBox x:Name=\"txtInhalt\" Grid.Column=\"1\" Grid.Row=\"2\" HorizontalAlignment=\"Stretch\" -Text=\"{Binding AktuellesSeminar.Inhalt, Mode=TwoWay, ValidatesOnDataErrors=True}\" \/&gt;\r\n         &lt;Label Content=\"Preis:\" Grid.Row=\"3\" \/&gt;\r\n         &lt;TextBox x:Name=\"txtPreis\" Grid.Column=\"1\" Grid.Row=\"3\" Width=\"100\" Text=\"{Binding -AktuellesSeminar.Preis, Mode=TwoWay, ValidatesOnDataErrors=True, StringFormat=C}\" \/&gt;\r\n         &lt;Label Content=\"Seminartermin:\" Grid.Row=\"4\" \/&gt;\r\n         &lt;DatePicker x:Name=\"dpSeminartermin\" Grid.Column=\"1\" Grid.Row=\"4\" Width=\"140\" -HorizontalAlignment=\"left\" SelectedDate=\"{Binding AktuellesSeminar.Seminartermin, Mode=TwoWay, ValidatesOnDataErrors=True, TargetNullValue=''''}\"&gt;&lt;\/DatePicker&gt;\r\n        &lt;Label Content=\"Uhrzeit:\" Grid.Row=\"5\" \/&gt;\r\n         &lt;TextBox x:Name=\"txtUhrzeit\" Grid.Column=\"1\" Grid.Row=\"5\" Width=\"140\" HorizontalAlignment=\"left\" Text=\"{Binding AktuellesSeminar.Seminartermin, Mode=TwoWay, ValidatesOnDataErrors=True, TargetNullValue='''', StringFormat=''t''}\"&gt;&lt;\/TextBox&gt;<\/pre>\n<h2>Schaltfl&auml;chen zum Speichern und zum Verwerfen eines Seminars<\/h2>\n<p>Damit fehlen noch die beiden Schaltfl&auml;chen, die wir in einem <b>StackPanel<\/b>-Element nebeneinander anordnen. Die Schaltfl&auml;che <b>btnSpeichern <\/b>soll nur aktiviert werden, wenn die in der weiter oben definierten statischen Ressource <b>EnableOnValidation<\/b> gestellten Bedingungen erf&uuml;llt sind.<\/p>\n<p>Deshalb legen wir im <b>Style<\/b>-Element der Schaltfl&auml;che mit dem <b>BasedOn <\/b>fest, das die dortigen Bedingungen f&uuml;r den Wert des Attributs <b>Enabled <\/b>gepr&uuml;ft werden sollen. Die beiden Schaltfl&auml;chen enthalten wiederum jeweils ein <b>StackPanel<\/b>-Element, welches nebeneinander das Icon und den Schaltfl&auml;chentext beinhaltet:<\/p>\n<pre>         &lt;StackPanel Orientation=\"Horizontal\" Grid.Row=\"6\" Grid.ColumnSpan=\"4\" &gt;\r\n             &lt;Button x:Name=\"btnSpeichern\" Click=\"btnSpeichern_Click\"&gt;\r\n                 &lt;Button.Style&gt;\r\n                     &lt;Style TargetType=\"{x:Type Button}\" BasedOn=\"{StaticResource EnableOnValidation}\"&gt;\r\n                         &lt;Style.Setters&gt;\r\n                             &lt;Setter Property=\"Margin\" Value=\"2\"&gt;&lt;\/Setter&gt;\r\n                         &lt;\/Style.Setters&gt;\r\n                     &lt;\/Style&gt;\r\n                 &lt;\/Button.Style&gt;\r\n                 &lt;StackPanel Orientation=\"Horizontal\"&gt;\r\n                     &lt;Image Source=\"images\/ok.png\" Width=\"24\" Height=\"24\"&gt;&lt;\/Image&gt;\r\n                     &lt;Label&gt;OK&lt;\/Label&gt;\r\n                 &lt;\/StackPanel&gt;\r\n             &lt;\/Button&gt;\r\n             &lt;Button x:Name=\"btnVerwerfen\" Click=\"btnVerwerfen_Click\"&gt;\r\n                 &lt;StackPanel Orientation=\"Horizontal\"&gt;\r\n                     &lt;Image Source=\"images\/delete.png\" Height=\"24\" Width=\"24\"&gt;&lt;\/Image&gt;\r\n                     &lt;Label&gt;Verwerfen&lt;\/Label&gt;\r\n                 &lt;\/StackPanel&gt;\r\n             &lt;\/Button&gt;\r\n         &lt;\/StackPanel&gt;\r\n     &lt;\/Grid&gt;\r\n&lt;\/Page&gt;<\/pre>\n<h2>Anwendungslogik in der Datei Seminarverwaltung.xaml.vb<\/h2>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000294\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000294?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000294\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"8fadd20fd6\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben&ouml;tigen wir zwei Seiten &#8211; eine zur Anzeige der &Uuml;bersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m&uuml;ssen wir noch eine kleine Anpassung am Entity Date Model durchf&uuml;hren, und au&szlig;erdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662021,66062021,44000027,44000004],"tags":[],"yst_prominent_words":[],"class_list":["post-55000294","post","type-post","status-publish","format-standard","hentry","category-662021","category-66062021","category-Excel_programmieren","category-Loesungen"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-03-31T21:33:39+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#blogposting\",\"name\":\"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler\",\"headline\":\"Seminarverwaltung IVb: Kunden und Seminare\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2021_06\\\/pic_294_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#articleImage\"},\"datePublished\":\"2021-12-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#webpage\"},\"articleSection\":\"2021, 6\\\/2021, Excel programmieren, L\\u00f6sungen\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2021\\\/#listItem\",\"name\":\"2021\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2021\\\/#listItem\",\"position\":2,\"name\":\"2021\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2021\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#listItem\",\"name\":\"Seminarverwaltung IVb: Kunden und Seminare\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#listItem\",\"position\":3,\"name\":\"Seminarverwaltung IVb: Kunden und Seminare\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2021\\\/#listItem\",\"name\":\"2021\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/\",\"name\":\"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler\",\"description\":\"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\\u00f6tigen wir zwei Seiten - eine zur Anzeige der \\u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\\u00fchren, und au\\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/Seminarverwaltung_IVb_Kunden_und_Seminare\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2021-12-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler","description":"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen","canonical_url":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#blogposting","name":"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler","headline":"Seminarverwaltung IVb: Kunden und Seminare","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2021_06\/pic_294_001.png","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#articleImage"},"datePublished":"2021-12-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#webpage"},"articleSection":"2021, 6\/2021, Excel programmieren, L\u00f6sungen"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2021\/#listItem","name":"2021"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2021\/#listItem","position":2,"name":"2021","item":"https:\/\/vbentwickler.de\/category\/2021\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#listItem","name":"Seminarverwaltung IVb: Kunden und Seminare"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#listItem","position":3,"name":"Seminarverwaltung IVb: Kunden und Seminare","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2021\/#listItem","name":"2021"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#webpage","url":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/","name":"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler","description":"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2021-12-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler","og:description":"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen","og:url":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2022-03-31T21:33:39+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"Seminarverwaltung IVb: Kunden und Seminare - Visual Basic Entwickler","twitter:description":"In diesem Teil der Artikelreihe zur Seminarverwaltung zeigen wir, wie Sie die Seminare verwalten. Dazu ben\u00f6tigen wir zwei Seiten - eine zur Anzeige der \u00dcbersicht aller Seminare und eine zur Anzeige der Details eines einzelnen Seminars beziehungsweise zum Anlegen eines neuen Seminars. Dabei m\u00fcssen wir noch eine kleine Anpassung am Entity Date Model durchf\u00fchren, und au\u00dferdem legen wir noch die Methoden im Hauptfenster an, mit denen Sie die beiden Seiten zur Anzeige und Bearbeitung der Seminare darstellen","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000294","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-01-30 16:23:23","updated":"2026-05-16 08:55:28","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2021\/\" title=\"2021\">2021<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSeminarverwaltung IVb: Kunden und Seminare\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2021","link":"https:\/\/vbentwickler.de\/category\/2021\/"},{"label":"Seminarverwaltung IVb: Kunden und Seminare","link":"https:\/\/vbentwickler.de\/Seminarverwaltung_IVb_Kunden_und_Seminare\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000294"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000294\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000294"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}