IsCancel: Abbrechen-Schaltfläche festlegen
Unter WPF gibt es verschiedene Wege, um zu definieren, was in einem Fenster beim Betätigen der Escape-Taste geschehen soll. Sie könnten beispielsweise die Ereignisse abfangen, die beim Drücken einer Taste ausgelöst werden und dabei prüfen, ob der Benutzer die Escape-Taste gedrückt hat. Meist jedoch gibt es eine Schaltfläche, welche die gleiche Funktion bereithalten soll wie die Escape-Taste – zum Beispiel das Schließen des Fensters über eine Abbrechen-Schaltfläche ohne Speichern der Daten. Wie dies ganz einfach mithilfe des Attributs »IsCancel« erledigen, zeigt der vorliegende Artikel.
EDM mit vorhandener SQL Server-Datenbank
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önnen – und wie Sie die Namen von Entitäten und Eigenschaften angleichen, wenn die in den Tabellen und Feldern verwendeten Namen nicht passen.
IsDefault: Standardschaltfläche festlegen
Unter WPF haben Sie verschiedene Möglichkeiten, eine Schaltfläche festzulegen, die beim Betätigen der Eingabetaste ausgelöst wird. Die einfachste ist die über das Attribut »IsDefault« einer Schaltfläche. Stellen Sie dieses auf den Wert »True« ein, wird die normalerweise durch Schaltfläche ausgelöste Ereignismethode auch beim Betätigen der Eingabetaste ausgelöst. Unter welchen Voraussetzungen das geschieht, zeigt dieser Artikel.
SQL Server: Fehler bei Entwurfsänderungen
In letzter Zeit habe ich gelegentlich Änderungen an den Tabellen verschiedener SQL Server-Datenbanken vorgenommen. Einige Änderungen dienten der Erweiterung um neue Felder, andere haben Primärschlüssel, Indizes, Beziehungen und andere Elemente angepasst. Die betroffenen Tabellen enthalten teilweise sehr viele Daten, sodass SQL Server recht viel Zeit beanspruchte, die Tabellen zu ändern. Teilweise gab es Fehler, weil Zeitlimits überschritten wurden. Teilweise konnten aber auch neue Beziehungen oder Indizes nicht angelegt werden, weil die Integrität der Daten nicht gegeben war. Dieser Artikel zeigt, welche Einstellungen Sie dann ändern können und welche Ursachen es gibt, wenn all dies nichts hilft.
Code First Mapping per Fluent API
Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardmäßig greifen. So heißen Entitäten wie der Singular der zugrunde liegenden Tabellennamen oder der Primär- und Fremdschlüssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten – gegebenenfalls kombiniert mit dem Entitätsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Präfix »tbl« mitbringen, wollen Sie dieses nicht in den Entitätsnamen wiederfinden und gegebenenfalls möchten (oder müssen) Sie auch noch Feldnamen ändern und diese anschließend mappen. Eine Möglichkeit dazu finden Sie in den Methoden der Fluent Api, die wir in diesem Artikel beschreiben.
Code First Mapping per DataAnnotation
Wenn Sie ein Code First-Entity Data Model entwerfen, gibt es bestimmte Konventionen, die standardmäßig greifen. So heißen Entitäten wie der Singular der zugrunde liegenden Tabellennamen oder der Primär- und Fremdschlüssel werden aus Feldern abgeleitet, welche die Zeichenkette ID enthalten – gegebenenfalls kombiniert mit dem Entitätsnamen. Wenn Sie mit einem Datenmodell daherkommen, dessen Tabellen das Präfix »tbl« mitbringen, wollen Sie dieses nicht in den Entitätsnamen wiederfinden und gegebenenfalls möchten (oder müssen) Sie auch noch Feldnamen ändern und diese anschließend mappen. Eine Möglichkeit dazu bieten die DataAnnotations, die wir in diesem Artikel beschreiben.
AdventureWorks: Schnelle Beispieldatenbank
Vielleicht benötigen Sie zu irgendeinem Zweck einmal eine SQL Server-Beispieldatenbank. Microsoft stellt eine solche zur Verfügung: Diese heißt 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.
SQL Server Reporting Services
Wer von Access kommt, kennt die dort verfügbare 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äßig neue Berichte erstellen, wird das recht aufwändig – neue Berichte müssen dann immer in Form eines neuen Backends verteilt werden. Oder Sie erstellen ein eigenes Backend nur für 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 über eine Service bereit, den Sie über den Browser nutzen können. Der Benutzer benötigt also noch nicht einmal Zugriff auf eine Datenbankanwendung, um Berichtsdaten einzusehen. Der vorliegende Artikel liefert grundlegende Informationen über die SQL Server Reporting Services.
Reporting Services 2019 installieren und starten
Der Vorteil von Microsoft Access ist: Man bekommt alles aus einer Hand. Tabellenentwurf, Abfragedesigner, Formulare, Programmierumgebung und – Tools zur Berichtserstellung. Bei der Datenbank mit Visual Studio gibt es so viele Möglichkeiten, die aber alle irgendwie viel größer und komplizierter erscheinen als das, was der Berichtsdesigner von Access bietet. Früher oder später wollen wir aber auch in DATENBANKENTWICKLER das Thema Reporting behandeln und deshalb schauen wir uns in dieser Artikelreihe die Möglichkeiten der SQL Server Reporting Services an. Da SQL Server mittlerweile in einer Community Version kommt, die für den privaten Einsatz kostenlos ist, steht dem Ausprobieren auch nichts im Wege. Der vorliegende Artikel ist eine Neuauflage des Artikels »Reporting Services: Installation und Start« (www.datenbankentwickler.net/****). Diese ist notwendig, weil sich einige Schritte beim Installieren geändert haben.
Reporting Services: Web-Portal
In den bisherigen Berichten über 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ötigen wir für die Definition von Reporting Services immer eigene Projekte, die parallel beispielsweise zu unseren WPF-Anwendungen erstellt werden müssen. Dieser Artikel bringt Licht ins Dunkel und zeigt, wie Sie Berichte im Web-Portal öffnen und diesen auch noch Parameter zum Filtern von Daten übergeben können. Außerdem zeigen wir, wie Sie Bericht von WPF-Anwendungen aus aufrufen.
SQL Server Report Builder
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ßt Report Builder und kann kostenlos bei Microsoft heruntergeladen werden. Es bietet sich als Alternative für solche Anwendungszwecke an, wo nur Berichte designed werden sollen und die übrigen Funktionen von Visual Studio nicht erforderlich sind. Dieser Artikel zeigt, wie Sie den Report Builder installieren und verwenden.
Reporting Services Datenquellen
Wenn Sie die Reporting Services nutzen wollen, um Berichte anzuzeigen, benötigen Sie dazu vor allem eines: Die Daten, die in den Berichten abgebildet werden sollen. Sie können 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üssen, 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ür Reporting Services erfahren Sie in diesem Artikel!
Reporting Services Datasets
Wenn Sie ein Reporting Services Projekt erstellt haben, benötigen 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 »Reporting Services Datenquellen« erläutert. Im vorliegenden Artikel beschreiben wir, wie Sie mithilfe von Datasets die Daten für Ihren Bericht zusammenstellen und welche unterschiedlichen Möglichkeiten es dafür gibt. Dabei schauen wir uns wieder Visual Studio, den SQL Server Report Builder und das Web-Portal der Reporting Services an.
Reporting Services Datasets mit Parametern
Ein Dataset, das als Datenquelle eines Berichts der Reporting Services dient, ist selten statisch aufgebaut – 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äutert, wie Sie Berichte auf Basis statischer Datenquellen erstellen. Der vorliegende Artikel fügt die Verwendung von Parametern mit hinzu, damit der Benutzer genau festlegen kann, welche Daten der von ihm gewählte Bericht liefern soll.
Reporting Services: Tabellarische Berichte
Eine der einfachsten Arten, Daten in Berichten darzustellen, ist die tabellarische Darstellung. Die Reporting Services bieten beispielsweise gegenüber Microsoft Access eine erhebliche Vereinfachung: Sie können 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.
Reporting Services: Gruppen und Summen
Im Artikel »Reporting Services: Tabellarische Beriche« haben wir uns am Beispiel einer Kundenliste bereits angesehen, wie Sie einfache Tabellen erstellen und einfache Features wie sich wiederholende Spaltenüberschriften 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 über die Umsätze je Position, Bestellung und Kunde liefern.