{"id":88012021,"date":"2024-04-25T15:48:32","date_gmt":"2024-04-25T15:48:32","guid":{"rendered":"http:\/\/access-basics.de\/index.php\/88012021.html"},"modified":"2024-04-25T15:48:32","modified_gmt":"2024-04-25T15:48:32","slug":"88012021","status":"publish","type":"page","link":"https:\/\/vbentwickler.de\/88012021\/","title":{"rendered":"Visual Basic Entwickler 01\/2021"},"content":{"rendered":"<h3>IsCancel: Abbrechen-Schaltfl&auml;che festlegen<\/h3>\n<p>Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Bet\u00e4tigen der Escape-Taste geschehen soll. Sie k\u00f6nnten beispielsweise die Ereignisse abfangen, die beim Dr\u00fccken einer Taste ausgel\u00f6st werden und dabei pr\u00fcfen, ob der Benutzer die Escape-Taste gedr\u00fcckt hat. Meist jedoch gibt es eine Schaltfl\u00e4che, welche die gleiche Funktion bereithalten soll wie die Escape-Taste \u2013 zum Beispiel das Schlie\u00dfen des Fensters \u00fcber eine Abbrechen-Schaltfl\u00e4che ohne Speichern der Daten. Wie dies ganz einfach mithilfe des Attributs \u00bbIsCancel\u00ab erledigen, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/IsCancel_AbbrechenSchaltflaeche_festlegen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>EDM mit vorhandener SQL Server-Datenbank<\/h3>\n<p>In einigen der vorherigen Ausgaben haben wir uns mit dem Erstellen eines Entity Data Models auf Basis auf Access-Datenbanken konzentriert. Dabei haben wir aus dem Datenmodell der Access-Datenbank ein Entity Data Model erstellt, mit dem dann die SQL Server-Datenbank angelegt werden konnte. Nun wollen wir den vermutlich nicht so seltenen Fall betrachten, dass bereits eine SQL Server-Datenbank existiert. Dabei zeigen wir, wir Sie das Entity Data Model erstellen und damit auf die in der SQL Server-Datenbank enthaltenen Daten zugreifen k\u00f6nnen \u2013 und wie Sie die Namen von Entit\u00e4ten und Eigenschaften angleichen, wenn die in den Tabellen und Feldern verwendeten Namen nicht passen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/EDM_mit_vorhandener_SQL_ServerDatenbank\">Zum Artikel &#8230;<\/a><\/p>\n<h3>IsDefault: Standardschaltfl&auml;che festlegen<\/h3>\n<p>Unter WPF haben Sie verschiedene M\u00f6glichkeiten, eine Schaltfl\u00e4che festzulegen, die beim Bet\u00e4tigen der Eingabetaste ausgel\u00f6st wird. Die einfachste ist die \u00fcber das Attribut \u00bbIsDefault\u00ab einer Schaltfl\u00e4che. Stellen Sie dieses auf den Wert \u00bbTrue\u00ab ein, wird die normalerweise durch Schaltfl\u00e4che ausgel\u00f6ste Ereignismethode auch beim Bet\u00e4tigen der Eingabetaste ausgel\u00f6st. Unter welchen Voraussetzungen das geschieht, zeigt dieser Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/IsDefault_Standardschaltflaeche_festlegen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>SQL Server: Fehler bei Entwurfs&auml;nderungen<\/h3>\n<p>In letzter Zeit habe ich gelegentlich \u00c4nderungen an den Tabellen verschiedener SQL Server-Datenbanken vorgenommen. Einige \u00c4nderungen dienten der Erweiterung um neue Felder, andere haben Prim\u00e4rschl\u00fcssel, Indizes, Beziehungen und andere Elemente angepasst. Die betroffenen Tabellen enthalten teilweise sehr viele Daten, sodass SQL Server recht viel Zeit beanspruchte, die Tabellen zu \u00e4ndern. Teilweise gab es Fehler, weil Zeitlimits \u00fcberschritten wurden. Teilweise konnten aber auch neue Beziehungen oder Indizes nicht angelegt werden, weil die Integrit\u00e4t der Daten nicht gegeben war. Dieser Artikel zeigt, welche Einstellungen Sie dann \u00e4ndern k\u00f6nnen und welche Ursachen es gibt, wenn all dies nichts hilft.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/SQL_Server_Fehler_bei_Entwurfsaenderungen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Code First Mapping per Fluent API<\/h3>\n<p>Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardm\u00e4\u00dfig greifen. So hei\u00dfen Entit\u00e4ten wie der Singular der zugrunde liegenden Tabellennamen oder der Prim\u00e4r- und Fremdschl\u00fcssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten \u2013 gegebenenfalls kombiniert mit dem Entit\u00e4tsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Pr\u00e4fix \u00bbtbl\u00ab mitbringen, wollen Sie dieses nicht in den Entit\u00e4tsnamen wiederfinden und gegebenenfalls m\u00f6chten (oder m\u00fcssen) Sie auch noch Feldnamen \u00e4ndern und diese anschlie\u00dfend mappen. Eine M\u00f6glichkeit dazu finden Sie in den Methoden der Fluent Api, die wir in diesem Artikel beschreiben.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Code_First_Mapping_per_Fluent_API\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Code First Mapping per DataAnnotation<\/h3>\n<p>Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardm\u00e4\u00dfig greifen. So hei\u00dfen Entit\u00e4ten wie der Singular der zugrunde liegenden Tabellennamen oder der Prim\u00e4r- und Fremdschl\u00fcssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten \u2013 gegebenenfalls kombiniert mit dem Entit\u00e4tsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Pr\u00e4fix \u00bbtbl\u00ab mitbringen, wollen Sie dieses nicht in den Entit\u00e4tsnamen wiederfinden und gegebenenfalls m\u00f6chten (oder m\u00fcssen) Sie auch noch Feldnamen \u00e4ndern und diese anschlie\u00dfend mappen. Eine M\u00f6glichkeit dazu bieten die DataAnnotations, die wir in diesem Artikel beschreiben.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Code_First_Mapping_per_DataAnnotation\">Zum Artikel &#8230;<\/a><\/p>\n<h3>AdventureWorks: Schnelle Beispieldatenbank<\/h3>\n<p>Vielleicht ben\u00f6tigen Sie zu irgendeinem Zweck einmal eine SQL Server-Beispieldatenbank. Microsoft stellt eine solche zur Verf\u00fcgung: Diese hei\u00dft AdventureWorks und steht in verschiedenen Versionen zum kostenlosen Download bereit. Dieser Artikel zeigt, wo Sie diese Beispieldatenbank finden und wie diese aus einem Backup auf ihrem Rechner wiederherstellen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/AdventureWorks_Schnelle_Beispieldatenbank\">Zum Artikel &#8230;<\/a><\/p>\n<h3>SQL Server Reporting Services<\/h3>\n<p>Wer von Access kommt, kennt die dort verf\u00fcgbare Darstellung von Daten in Berichtsform. Berichte lassen sich mit wenigen Kenntnissen zusammenklicken und werden dann Teil der Datenbankdatei. Wenn Sie in Mehrbenutzerumgebungen Daten als Bericht anzeigen wollen und dabei regelm\u00e4\u00dfig neue Berichte erstellen, wird das recht aufw\u00e4ndig \u2013 neue Berichte m\u00fcssen dann immer in Form eines neuen Backends verteilt werden. Oder Sie erstellen ein eigenes Backend nur f\u00fcr die Berichte. Wie auch immer: Wenn Sie .NET-Anwendungen programmieren, stehen die Access-Berichte nicht mehr bereit. Eine Alternative lautet SQL Server Reporting Services. Diese bieten einen anderen Ansatz als die Access-Berichte: Sie stellen ihre Daten \u00fcber eine Service bereit, den Sie \u00fcber den Browser nutzen k\u00f6nnen. Der Benutzer ben\u00f6tigt also noch nicht einmal Zugriff auf eine Datenbankanwendung, um Berichtsdaten einzusehen. Der vorliegende Artikel liefert grundlegende Informationen \u00fcber die SQL Server Reporting Services.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/SQL_Server_Reporting_Services\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services 2019 installieren und starten<\/h3>\n<p>Der Vorteil von Microsoft Access ist: Man bekommt alles aus einer Hand. Tabellenentwurf, Abfragedesigner, Formulare, Programmierumgebung und \u2013 Tools zur Berichtserstellung. Bei der Datenbank mit Visual Studio gibt es so viele M\u00f6glichkeiten, die aber alle irgendwie viel gr\u00f6\u00dfer und komplizierter erscheinen als das, was der Berichtsdesigner von Access bietet. Fr\u00fcher oder sp\u00e4ter wollen wir aber auch in DATENBANKENTWICKLER das Thema Reporting behandeln und deshalb schauen wir uns in dieser Artikelreihe die M\u00f6glichkeiten der SQL Server Reporting Services an. Da SQL Server mittlerweile in einer Community Version kommt, die f\u00fcr den privaten Einsatz kostenlos ist, steht dem Ausprobieren auch nichts im Wege. Der vorliegende Artikel ist eine Neuauflage des Artikels \u00bbReporting Services: Installation und Start\u00ab (www.datenbankentwickler.net\/****). Diese ist notwendig, weil sich einige Schritte beim Installieren ge\u00e4ndert haben.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_2019_installieren_und_starten\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services: Web-Portal<\/h3>\n<p>In den bisherigen Berichten \u00fcber die Erstellung von Berichten mit den Reporting Services haben wir einen Aspekt noch nicht betrachtet: Wie kann der Benutzer eigentlich auf die Berichte zugreifen? Immerhin ben\u00f6tigen wir f\u00fcr die Definition von Reporting Services immer eigene Projekte, die parallel beispielsweise zu unseren WPF-Anwendungen erstellt werden m\u00fcssen. Dieser Artikel bringt Licht ins Dunkel und zeigt, wie Sie Berichte im Web-Portal \u00f6ffnen und diesen auch noch Parameter zum Filtern von Daten \u00fcbergeben k\u00f6nnen. Au\u00dferdem zeigen wir, wie Sie Bericht von WPF-Anwendungen aus aufrufen.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_WebPortal\">Zum Artikel &#8230;<\/a><\/p>\n<h3>SQL Server Report Builder<\/h3>\n<p>Neben Visual Studio gibt es noch ein weiteres, wesentlich schlankeres Tool zum Definieren von Berichten auf Basis der SQL Server Reporting Services. Dieses Tool hei\u00dft Report Builder und kann kostenlos bei Microsoft heruntergeladen werden. Es bietet sich als Alternative f\u00fcr solche Anwendungszwecke an, wo nur Berichte designed werden sollen und die \u00fcbrigen Funktionen von Visual Studio nicht erforderlich sind. Dieser Artikel zeigt, wie Sie den Report Builder installieren und verwenden.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/SQL_Server_Report_Builder\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services Datenquellen<\/h3>\n<p>Wenn Sie die Reporting Services nutzen wollen, um Berichte anzuzeigen, ben\u00f6tigen Sie dazu vor allem eines: Die Daten, die in den Berichten abgebildet werden sollen. Sie k\u00f6nnen nicht einfach wie in einer Access-Datenbank auf die Daten der aktuellen Datenbank zugreifen. Reporting Services sind vielmehr eine von den Datenquellen getrennte Instanz, der Sie erst einmal bekanntgeben m\u00fcssen, welche Daten verwendet werden sollen. Das erledigen Sie mit der Definition sogenannter Datenquellen. Diese definieren Sie in verschiedenen Anwendungen. Alles rund um die Definition von Datenquellen f\u00fcr Reporting Services erfahren Sie in diesem Artikel!<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_Datenquellen\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services Datasets<\/h3>\n<p>Wenn Sie ein Reporting Services Projekt erstellt haben, ben\u00f6tigen Sie vor dem Anlegen von Berichten zwei Dinge: eine Datenquelle, auch Datasource genannt, und eine Art Abfrage, wie bei den Reporting Services Dataset genannt werden. Wie Sie Datenquellen auf verschiedene Arten erstellen, haben wir im Artikel \u00bbReporting Services Datenquellen\u00ab erl\u00e4utert. Im vorliegenden Artikel beschreiben wir, wie Sie mithilfe von Datasets die Daten f\u00fcr Ihren Bericht zusammenstellen und welche unterschiedlichen M\u00f6glichkeiten es daf\u00fcr gibt. Dabei schauen wir uns wieder Visual Studio, den SQL Server Report Builder und das Web-Portal der Reporting Services an.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_Datasets\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services Datasets mit Parametern<\/h3>\n<p>Ein Dataset, das als Datenquelle eines Berichts der Reporting Services dient, ist selten statisch aufgebaut \u2013 also so, dass er immer alle Daten einer Tabelle oder Abfrage liefert oder einen bestimmten Teil. Stattdessen sollen Berichte oft Daten liefern, die sich auf einen bestimmten Zeitraum beziehen, auf einen bestimmten Kunden oder auch auf bestimmte Artikel oder Kategorien. In den bisherigen Artikeln haben wir erl\u00e4utert, wie Sie Berichte auf Basis statischer Datenquellen erstellen. Der vorliegende Artikel f\u00fcgt die Verwendung von Parametern mit hinzu, damit der Benutzer genau festlegen kann, welche Daten der von ihm gew\u00e4hlte Bericht liefern soll.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_Datasets_mit_Parametern\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services: Tabellarische Berichte<\/h3>\n<p>Eine der einfachsten Arten, Daten in Berichten darzustellen, ist die tabellarische Darstellung. Die Reporting Services bieten beispielsweise gegen\u00fcber Microsoft Access eine erhebliche Vereinfachung: Sie k\u00f6nnen hier ein Steuerelement speziell zur Anzeige von Daten als Tabelle verwenden. Wie Sie dieses Steuerelement nutzen, und wie Sie auch mehrseitige Berichte mit allen notwendigen Informationen darstellen, zeigt der vorliegende Artikel.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_Tabellarische_Berichte\">Zum Artikel &#8230;<\/a><\/p>\n<h3>Reporting Services: Gruppen und Summen<\/h3>\n<p>Im Artikel \u00bbReporting Services: Tabellarische Beriche\u00ab haben wir uns am Beispiel einer Kundenliste bereits angesehen, wie Sie einfache Tabellen erstellen und einfache Features wie sich wiederholende Spalten\u00fcberschriften nutzen. In diesem Artikel wollen wir Kunden, Bestellungen und Bestellpositionen zum Thema machen und dazu wiederum eine Tabelle verwenden. Wegen der verschiedenen Ebenen soll diese allerdings Gruppierungen enthalten, die uns unter anderem Informationen \u00fcber die Ums\u00e4tze je Position, Bestellung und Kunde liefern.<\/p>\n<p><a href=\"http:\/\/www.vbentwickler.de\/Reporting_Services_Gruppen_und_Summen\">Zum Artikel &#8230;<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>IsCancel: Abbrechen-Schaltfl&auml;che festlegen Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Bet\u00e4tigen der Escape-Taste geschehen soll. Sie k\u00f6nnten beispielsweise die Ereignisse abfangen, die beim Dr\u00fccken einer Taste ausgel\u00f6st werden<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","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":""},"yst_prominent_words":[],"class_list":["post-88012021","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88012021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=88012021"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/pages\/88012021\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=88012021"}],"wp:term":[{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=88012021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}