![]() |
Datenmodell
Hallo zusammen,
ich möchte dem Benutzer meiner Anwendung ermöglichen, basierend auf selbst erstellten Abfragen in einem eigenen Designer ein Datenmodell, genauer die Verknüpfung seiner Abfragen, zu ermöglichen. Ziel soll sein, dass ich später dieses generierte Modell im Quellcode mittels Table-Objekten und deren Master-Detail Eigenschaften nachbauen kann. Meine Fragen sind nun: 1. Kennt jemand irgendeine visuelle Komponente, die es dem User bequem ermöglicht, ein Modell visuell aufzubauen (aber nur solche Modelle, die auch dem Master-Detail Pattern entsprechen; es nützt z.B. nichts wenn der User hier mehrere Mastertabellen generieren wollte, diese werden ja z.B. nicht unterstützt) ? 2. Wie könnte man solche Verknüpfungen in einer Datenbank ablegen um sie dann später im Quellcode vernünftig als Master-Detail Tabellen aufbauen zu können? Ziel dieser Master-Detail Verknüpfungen soll am Ende sein dieses gesamte Modell für eigene Reports verwenden zu können. Vielen Dank schon mal im Voraus! |
Re: Datenmodell
|
Re: Datenmodell
Zitat:
Aber der Zweck dieser Komponente ist es SQL zu generieren, was ich aber nicht brauche. Ich bin an den Verknüpfungen interessiert... |
Re: Datenmodell
Um welches DBMS handelt es sich den?
|
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "VCL / WinForms / Controls" nach "Datenbanken" verschoben.
Passt imho hier besser |
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Zitat:
Ich als Benutzer will z.B. eine Adresse erhalten, da ist es mir herzlich 88 ob die Anrede in einer eigenen Tabelle ausgelagert ist oder Teil einer Adresstabelle ist. Wie soll ich da indirekt ein Datenmodell erstellen? Gruß K-H |
Re: Datenmodell
Nein, es geht um folgendes:
Der Benutzer soll sich für einen Report selbst die Datenbasis zusammenstellen können, also irgendwelche Masterdaten und dazu abhängige Daten für die Darstellung in einem Chart usw.. Zu diesem Zweck braucht er ja irgendein Werkzeug um sich die Beziehungen zu definieren (die ich zur Entwurfszeit nicht kenne). Es geht nicht darum sich hier eine Datenbank aufzubauen sondern die Datenbasis für einen Report, der eben aus mehr als einer Query oder Tabelle besteht. |
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Ich verwende SQL Server 2008.
Aber wozu ist das wichtig, Relationen sind doch in allen relationalen DBMS gleich?! |
Re: Datenmodell
Zitat:
Ich kenne einige Projekte, bei denen versucht wurde diesen Wunschtraum "Benutzer soll eigene Reports erstellen können" umzusetzen. Es ist bisher immer in die Hose gegangen. Der Lernaufwand ist für die Benutzer viel zu hoch (ohne Programmier- & Datenbankerfahrung hat man kaum Chancen). Die Kunden rufen an und haben Probleme und/oder verstehen das Datenmodell; das kostet viel Zeit. Sollte ein Report so einigermassen gelingen werden ständig neue Anforderungen gestellt ("könnte man nicht unser Logo oben in den Kopf setzen", "ich möchte da noch eine Summe haben, aber nur für Artikel, die nicht aus DE kommen", ...) Alternativ könnte man die Daten nach Excel oder als XML exportieren und sich auf den Standpunkt stellen: Hier habt ihr die Daten, macht damit was ihr wolltet und werdet glücklich damit. |
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Mir ist noch nicht ganz klar, was du benötigst. Für einen Report sollte doch ein Querydesigner reichen oder willst du die Datenbankstruktur bearbeitbar machen?
Welches Reportsystem setzt du ein? |
Re: Datenmodell
@mkinzler : Genau die Frage habe ich mir auch gestellt
@Cogito : Du brauchst keine Visuelle Komponente, sondern einen Report Generator. Vielleicht ist ![]() Dort kann man (beispielsweise der User) z. B. mit der ADO Komponente genau die Verknüpfung selbstherstellen. Auch andere Sachen lassen sich leicht implementieren, wie z. B. das Logo, Barcode, Charts usw. Aber genau die Probleme, die mein Vorredner sagte, werden möglicherweise auftreten. Man muss sich halt auskennen, um solche Verknüpfungen herzustellen. Ich selbst verwende die MyDAC & SDAC Komponente und habe keine Ahnung, ob UniDAC die gleiche Unterstützung anbietet (denke aber schon). Im Installationsordner von der DevArt Komponente findest du unter ..\Demos\ThirdParty\FastReport\FR4 die notwendigen Komponenten für FastReport, damit du kein ADO verwenden musst. Unter dem ![]() Gruß Matze |
Re: Datenmodell
Zitat:
Für den Benutzer, gibt es wahrhaftig keine Verknüpfung herzustellen, denn die möglichen Verknüpfungen sind doch durch das Design (Datenmodel) vorgegeben. Soll eine Anrede mit in die Adressausgabe, dann muß die Anredentabelle auch verknüpft werden. Da gibt es doch gar keine Diskussion. Bei uns ist da ein Teil im Einsatz, das sich "QueryBuilder" nennt und seine Parameter (Joins Feldformate etc.) in einer AccessDB mit sich schleppt. Man kann damit recht ordentlich simple Reports erstellen (not exists geht nicht!) für eine Excel-Ausgabe, die Druck-Ausgabe ist allerdings nur für interne Zwecke zu gebrauchen. (habe leider keine Quelle, da durch unseren Lieferanten angepasst!) Gruß K-H |
Re: Datenmodell
FastReport hat auch einen Query-Designer
|
Re: Datenmodell
Zitat:
Was ich meinte, war nur der Hinweis, dass man FastReports verwenden kann und sich auch selber Verknüpfung herstellen kann (oder besser muss). Dass irgendwelche Abhängigkeiten erkannt werden soll, kann man bestimmt auch selber programmieren, das geht aber leider nicht automatisch. Daher der Hinweis auf Probleme beim Erstellen der Verknüpfung innerhalb des Reportes. Das Datenbank Design wird nicht übernommen. Oder ich habe es noch nicht raus gefunden wie .... :) Gruß Matze |
Re: Datenmodell
Zitat:
Ich verwende zur Zeit List&Label von Combit und finde die freie Programmierbarkeit und die Möglichkeit einer völlig freien Platzierung von Objekten sehr gut. Als Nachteil der meisten ReportDesigner habe ich immer diese Band-Orientierung (Bereiche) gesehen, weil es dadurch eigentlich nie möglich ist, Detailfelder auf der gleichen Höhe wie Masterfelder zu platzieren. Diese Art ReportDesigner sind sicher gut geeignet für alles was in Listenform darstellbar ist, aber gar nicht wenn man Reports benötigt, wie sie mit Dektop Publishing Tools erstellbar sind, also mehr hochwertige Ausgaben. Aber genau das brauche ich sehr oft. An den üblichen QueryDesignern bemängele ich das als Ergebnis immer nur ein flachgeklopftes Resultset rauskommt, die lediglich für die Listenähnliche Darstellung geeignet sind. Aber wie stelle ich dort z.B. einen Fonds (Master) und auf der gleichen Ebene dessen Indexdaten (Child) und Allokationsstruktur (Child) als Diagramm dar? Die bereichsorientierten Designer machen für die Childtabellen in der Regel immer einen eigenen neuen Bereich auf, aber genau das geht eben nicht. Ausserdem benötige ich für eine solche Darstellung dann schon mindestens 3 Tabellen Fonds, Indexdaten und Allokationsstruktur, bei dem Ergebnis eines QueryDesigners krieg ich aber alles zusammen in einem einzigen Resultset, wie sollte das so dargestellt werden?! Ich bin hier gerne lernbereit falls ich hier einem Denkfehler aufsitzen sollte, aber ich habe auch schon mit Crystal Reports rumprobiert (ebenfalls band-orientiert) und da hab ich das nie hingekriegt. |
Re: Datenmodell
(* Seufz *)
Ich versteh jetzt überhaupt nicht mehr um was es geht. a) Verknüpfen (Relationen) von Datentabellen b) ReportDesign Und einige genutzte Vokabeln bringen mich vollends durcheinander: Zitat:
Zitat:
Gruß K-H |
Re: Datenmodell
Nein, das mit den Fonds und Indexdaten ist ein Auszug aus einem Datenmodell aus einer Bank-Applikation.
Was ich bräuchte wäre eine visuelle Möglichkeit für einen Benutzer, Relationen ähnlich einem ER-Designer definieren zu können. Nur nicht so umfangreich, denn ich benötige nur die Relationen und auf welchen Feldern die Relationen gebildet werden, um diese dann später mittels den Mastersource und Masterfields-Eigenschaften der Delphi Query-Komponenten nachbauen zu können. Dies wäre dann eine Grundlage für einen neu zu erstellenden Report. |
Re: Datenmodell
Also wenn Du von Indexdaten sprichst, dann handelt es sich nicht um Datenindices sondern um Indexdaten zu Beurteilung/Klassifizierung von Wertpapieren oder ähnlichem?
Zitat:
Hast Du Dein Glück schon einmal mit ![]() Gruß K-H |
Re: Datenmodell
Nochmal, es geht nicht darum eine Datenbank zu modellieren, sondern das Tool was ich suche soll der Endanwender benutzen, um sich damit SEINE Relationen zu definieren, die er in einem Report nutzen möchte. Dem ganzen geht voraus, das er sich mittels Abfrage-Designer vorher seine Felder und Joins zusammenstellt, diese Abfragen dann aber auch zusätzlich noch zueinander in Relation stellen können soll.
|
Re: Datenmodell
Und so etwas geht mit FastReport.
|
Re: Datenmodell
Zitat:
Ich habe beispielsweise schon einen Abfrage-Designer im Programm, der Abfragen (also das generierte SQL) dann auch in einem Datenfeld meiner Datenbank abspeichert. Wäre es beispielsweise auch möglich, dem Enduser zur Reportgestaltung nur diese Abfragen anzubieten und der User könnte diese Abfragen dann auch noch miteinander relational verknüpfen? |
Re: Datenmodell
@Cogito Ich versuch Mal etwas grundsätzlicher zu antworten, heißt ich kann Dir keine fertige Komponente nennen.
1. Du hast eine fertige Datenbankstruktur 2. Das bedeutet, dass bereits alle sinnigen Relationen bekannt sein sollten 3. Du solltest deinen Anwender nicht zumuten, diese Relation zu definieren, sondern statt dessen ihn alle Relationen anbieten die zur Verfügung stehen. Ich habe so etwas Mal mit einer ComboBox und einem Baum gelöst. In der Combobox sind alle Entities die Basis einer Abfrage seien können (Kunde, Bestellung, Rechnung, Lieferung, Bestellposition, Artikel etc.). Lautet die Abfrage "Gib mir alle Kunden die im August den Artikel 0815 bestellt haben." wählt der Anwender Kunde aus der ComboBox und sieht folgenden Baum:
Code:
nach ein paar Klicks hat der Anwender folgenden Baum
Kunde
Name KundenNr Adresse +Bestellungen +Rechnungen +Lieferung
Code:
Jetzt muss der Anwender nur noch auswählen welche Felder er sehen möchte und angeben welche Bedingungen diese Felder zu erfüllen haben.
Kunde
Name KundenNr Adresse -Bestellungen BestellNr BestellDatum -Positionen PosNr Menge -Artikel ArtikelNr Name +Positionen +Rechnungen +Lieferung
Code:
So muss der Anwender keine Relationen definieren sondern wählt aus denen die zur Verfügung stehen. Und er läuft auch nicht Gefahr die KundenNr in Relation zur ArtikelNr zu setzen.
Kunde
X Name X KundenNr X Adresse -Bestellungen BestellNr BestellDatum (vom 01.08.2009 bis 31.08.2009) -Positionen PosNr Menge -Artikel ArtikelNr (gleich 0815) Name +Positionen +Rechnungen +Lieferung Dies ist nur die Grundidee. Bevor man das dem Endanwender vorsetzt, gilt es noch eine Reihe interessanter Probleme zu lösen. :-) |
Re: Datenmodell
Nein, ich habe eben keine fest vorgegebene Datenstruktur, sondern der Anwender richtet sich die Verbindungen zu einer Datenbank ein und die wird in meiner Datenbank gespeichert. Fast genauso wie bei FastReport. Der User kann sich dann auch mittels Abfrage-Designer eigene Abfragen definieren und jetzt suche in nach einer Möglichkeit das der Anwender sich darauf basierend Reports basteln kann. Nur wäre es Quatsch den Anwender in FastReports nochmal Datenbankverbindungen und Abfragen definieren zu lassen, deshalb wiederhole ich meine Frage: Kann ich FastReports "von aussen" mit meiner Datenbankverbindung und meinen Abfragen speisen die der User dann innerhalb FastReport zur Reportgestaltung nutzen kann?
|
Re: Datenmodell
Ja. Lade dir doch einfach die Demoversion herunter
|
Re: Datenmodell
Zitat:
Das erste Problem trat allerdings schon gleich nach der Installation auf, weil ich TeeChart Prof. bereits installiert hatte. Kennt jemand das Problem und wie kann man es lösen? |
Re: Datenmodell
Neu kompillieren lassen
|
Re: Datenmodell
Aber wie kann ich denn jetzt dem Designer eigene Queries übergeben, die der User dann noch verknüpfen kann?
|
Re: Datenmodell
Entsprechende frxDataSets auf Delphiform und dann im Report unter Data aktivieren. dann sind sie im Querydesigner verfügbar
|
Re: Datenmodell
Zitat:
Was hat es nun mit dem Report Server auf sich? Hab ich den automatisch bei der FastReport VCL Enterprise mit dabei? |
Re: Datenmodell
Ich hab nur die Pro.
|
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Zitat:
Was mir jetzt beim rumspielen aufgefallen ist, ich brauche ja gar nicht unbedingt solche Bereiche im Report, ich kann ja auch alle Daten und Diagramme einfach wie auf einem leeren Blatt Papier anordnen und hinschieben wie ich will, oder brauch ich doch diese Bands? |
Re: Datenmodell
Wenn es mehrere Datensätze gibt, wirst du um Bands nicht herumkommen
|
Re: Datenmodell
Zitat:
|
Re: Datenmodell
Also irgendwie stehe ich ein bisschen auf der Leitung, wie nutzt man denn jetzt den Report Designer? Wie kann ich z.B. einen Benutzer einen neuen Report anlegen lassen und ihm von vorneherein ein paar Abfragen anbieten?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz