Ich habe die Aufgabe, einen dynamischen Berichtsersteller zu erstellen, um unser aktuelles Produkt zu erweitern, damit unsere Benutzer relativ einfach einen nützlichen Bericht erstellen können, der Daten aus den Eingaben in das System zeichnet. Derzeit passen wir diese Berichte manuell an, wobei ein Entwickler (ich) die Anforderungen des Berichts (Felder, Gesamtsummen, Prozentsätze usw.) annimmt und die Ergebnisse als relativ interaktive Seite veröffentlicht, die einen Drilldown ermöglicht 'für weitere Informationen in den Datensatzzeilen usw.
Die Berichte sind nicht sehr kompliziert, aber sie sind so weit eingebunden, dass das programmatische Generieren dieser Berichte nicht möglich erscheint. Ich habe das Gefühl, eine Schnittstelle zu erstellen, die es den Benutzern ermöglicht, das Aussehen des Berichts anzupassen, sollte nicht zu schwierig sein, obwohl sie an sich selbst beteiligt ist. Wo ich ratlos bin, ist die Schaffung einer Schnittstelle, die es Benutzern, die absolut keine "Programmierkenntnisse" besitzen, ermöglicht, problemlos die SQL-Abfragen zu generieren, die die benötigten Informationen abrufen.
Tatsächlich müssen sie in der Lage sein, diese Abfragen zu erstellen und auf die Eingeweide ihrer eingegebenen Daten zuzugreifen, ohne jemals zu wissen, was sie wirklich tun. Ich fühle, dass dies so funktioniert, wie es erforderlich ist. Die Erstellung des Berichts muss so unähnlich von Magie wie möglich sein. Der Benutzer sollte in der Lage sein, das, was er / sie benötigt, aus den möglichen Datensätzen zu ziehen und abzulegen und auf magische Weise einen Bericht zu erstellen.
Ich bin natürlich bereit für die Herausforderung, aber ich weiß wirklich nicht, wo ich anfangen soll. Sobald ich die Gänge in Bewegung setze, ist die Lösung einzelner Probleme "einfach" (eigentlich eher Teil des Prozesses), aber der Start war schwierig und frustrierend. Wenn mir jemand eine Wegbeschreibung geben kann, habe ich keine Angst davor, die Stunden einzuplanen. Vielen Dank für Ihre Zeit und ich freue mich auf einige positive Vorschläge.
Ich wurde mit so etwas beauftragt. Mein Ratschlag: Tu es nicht. Sofern die erforderlichen Berichte nicht extrem einfach sind und Ihre Benutzer sich nicht darum kümmern, wie der Bericht aussieht, wird viel Zeit für die Implementierung benötigt. Wenn Sie Ihr Team aus einer einzelnen Person angeben, tun Sie es einfach nicht. Es wäre billiger für Sie (auch auf lange Sicht), einen Junior-Entwickler oder Praktikanten einzustellen oder etwas, um diesen Teil des Jobs zu bewältigen.
Jetzt gibt es ein paar verschiedene Report Designer. Ich habe keine gesehen, die komplett auf einer Webseite arbeiten, und alle sangen ziemlich schlecht aus der Nicht-Programmiererperspektive.
Nun gibt es Möglichkeiten, dies zu umgehen. Die meisten Leute, die diese Art von Berichten wünschen, wissen, wie man mit Microsoft Access arbeitet. Sie können ihr Wissen dazu nutzen, um eigene Berichte zu erstellen. Dies ist jedoch nicht trivial, da Sie nicht möchten, dass sie sich nur mit Ihrer Datenbank verbinden. Also, hier ist was ich empfehle:
Sehen Sie sich an, was Data Warehouses tun (z. B. Das Data Warehouse-Toolkit ). Sie erstellen mehrere grundlegende Tabellen, die sehr breit sind, eine Menge redundanter Daten enthalten und einen bestimmten Aspekt der Datenbank abdecken.
Ich würde mehrere so große Ansichten erstellen und die Benutzer eine einzelne Ansicht als Grundlage für einen dynamischen Bericht auswählen lassen. Sie können dann die anzuzeigenden Spalten auswählen, sortieren und gruppieren. Sie können jedoch keine zusätzlichen Tabellen oder Ansichten auswählen.
Natürlich muss eine typische Ansicht wirklich alles abdecken, was einen bestimmten Aspekt der Datenbank betrifft. Nehmen wir an, Sie haben eine Bestellartikel Ansicht. Eine solche Ansicht würde alle Elemente aller Aufträge enthalten, die Hunderte von Spalten mit folgenden Angaben enthalten:
Auf diese Weise ist das dynamische Reporting relativ einfach zu verwenden, da die Benutzer keine Tabellen beifügen müssen, sondern alle benötigten Daten haben.
Ich würde Ihnen empfehlen, sich die fertigen Berichtskomponenten anzusehen. Zum Beispiel Microsoft Reporting Services , Telerik , DevExpress oder (ich sollte gestehen, unser Produkt) SharpShooter-Berichte
Schauen Sie sich um, welche Art von Reporting-Tools gibt es? Gibt es etwas da draußen, das sogar in die Nähe kommt, was sie erwarten? Die Tools in der Umgebung sind generisch und Ihr Fall ist möglicherweise eher spezifisch. Sie kennen bereits einen Teil der Antwort, nach der Ihre Nutzer suchen. Deine Lösung sollte ihnen auf diese Weise helfen.
Du hast das Wort "Magie" benutzt. Das sollte ein großes Warnzeichen sein. Als Entwickler machen wir nicht Magie , wir tun Logik . Wir können Illusionen schaffen, wir können nicht zaubern.
Ich würde in Sql Analysis Services und Excel eintauchen. Es gibt eine Präsentation hier . Diese Typen zaubern auch nicht, aber sie können viel tun.
Wir verwenden eine Kombination aus EasyQuery und FastReport.NET.
Mit EasyQuery können unsere Benutzer dynamische Abfragen erstellen und die für Report und FastReport erforderlichen Daten extrahieren - für die eigentliche Berichterstellung und den Export in Excel oder PDF.
Tags und Links sql javascript sql-server asp.net report