![]() |
AW: ADOQuery berechnetes Feld
Zitat:
Gruß K-H |
AW: ADOQuery berechnetes Feld
Hallo,
ok, ich werde mal die Strukturen der entsprechenden Tabellen liefern. Meine weitere Überlegung ist, ob man diese Daten nicht in einem Stringrid unterbringen kann. Dann könnte man die Felder dann mit "while-Schleifen" befüllen. Es würde den lokalen Rechner etwas mehr belasten, aber diese Tabelle wird meisten nur einmal die Woche benötigt. Ich muß jedoch erst testen, ob ich ein Stringrid an Fastreport übergeben kann. Schöne Feiertage noch. Gruß, Luckner |
AW: ADOQuery berechnetes Feld
Theoretisch kann man alles als Daten-Quelle für FastReport verwenden.
Man legt ein
Delphi-Quellcode:
an und verdrahtet dort den Zugriff auf die Daten. Das war es schon.
TfrxUserDataSet
Zu der Abfrage selber: Man muss nicht immer die komplette Aufgabe mit einer Abfrage lösen. Man kann sich die Daten auch in Objekte laden und den Rest der Verarbeitung mit diesen Objekte erledigen. Je komplexer die Aufgabe umso einfacher/übersichtlicher wird so eine getrennte Abarbeitung. Und diese Anforderung schreit gerade danach. |
AW: ADOQuery berechnetes Feld
Zitat:
Gruß K-H |
AW: ADOQuery berechnetes Feld
Zitat:
Zitat:
Nimm einfach mal schrittweise meine SQLs von oben, bereinige sie ggfls. von Syntaxfehlern und sag uns dann, bis zu welchem Statement noch alle benötigten Daten im Ergebnis enthalten sind, bzw. was im "bestmöglichen" Ergebnis noch zuviel ist. Dann können wir da, ggfls. mit Hilfe von Testdaten, gezielt aufsetzen und, ggfls. mit 'ner Präzisierung der Aufgabenstellung, weiter nach einer Lösung suchen. Ein (momentan) noch nicht lösbares Problem, lässt sich nicht dadurch lösen, dass man einen anderen Weg geht. Es wird dann nur einen weiteren Weg des Scheiterns geben, das ist nicht zielführend. Zitat:
Zitat:
Zitat:
@Luckner Fordere bitte eine präzise Vorgabe dessen, was der Report enthalten soll und was nicht, ein und lasse dich bitte nicht mit etwas abspeisen, was nicht klar mit ja oder nein zu beantworten ist. Oder anders formuliert: Die Vorgabe muss in einem Entscheidungsbaum abzubilden sein, es darf dort keine Stelle geben, an der ein weitere Verlauf über unterschiedliche Wege möglich ist. |
AW: ADOQuery berechnetes Feld
Zitat:
in halbwegs logische Anforderungen zu überführen. Und ich habe nie herausbekommen ob Dummheit, Ignoranz oder was auch immer der Grund für diese WischiWaschi-Anforderungen war. Gruß K-H |
AW: ADOQuery berechnetes Feld
Zitat:
Oft hat es geholfen so penetrant nachzufragen, dass der Aufwand, eine präzise Vorgabe zu machen geringer war, als sich immer und immer wieder um die Beantwortung der Fragen der "blöden" Programmierer kümmern zu müssen. Es ist ja nix dagegen einzuwenden, wenn man aus dem Chaos etwas macht, was dann logisch klingt und umsetzbar zu sein scheint. Aber damit bin ich dann immer zur anfordernden Person gegangen und habe gefragt: "Willst Du das?" Und habe sie dann darauf festgenagelt mit ja oder nein zu antworten oder eben die Anforderung zu präzisieren. Meist klappte das, wenn auch selten beim ersten Versuch. |
AW: ADOQuery berechnetes Feld
Zitat:
Gruß K-H |
AW: ADOQuery berechnetes Feld
Hallo,
also ich versuche es jetzt mein Problem verständlich zu machen. Die Tabellen der Datenbank sind in MS-Access. Die Hauptanwendung ebenfalls. Die zusätzliche Tools in Delphi. Als Zugriff auf die Datenbank benutze ich ADOQuery. In diesem Fall werden 3 Tabellen angesprochen. 1. [Lieferanten-Stamm], mit [Lieferanten-Stamm].LieferantNr und [Lieferanten-Stamm].LieferantName 2. [Material-Stamm], mit den Feldern: [Material-Stamm].[Mat-Nr], [Material-Stamm].Bezeichnung, [Material-Stamm].[Lieferant-Nr], [Material-Stamm].aktuell.(Wenn [Material-Stamm].aktuell = -1 dann Materialmenge muss beobachtet werden). 3. Materialrollen, mit den Feldern: Materialrollen.[Mat-Nr], Materialrollen.Nr (Rollennummer), Materialrollen.[Arb-Breite] (nur wichtig, wenn > 179mm) , Materialrollen.lfm(wichtig wenn lfm = 0) , Materialrollen.DatumAb, usw. Aufgabe: Suche alle Materialrollen eines Lieferanten (das selectiere ich mir schon vorab und bekommen entsprechend: TEditLieferantNr.Text := [Lieferanten-Stamm].LieferantNr. Bis dahin kein Problem. dann nur noch Select über 2 Tabellen. Aufgabe: Suche alle Materialrollen von [Material-Stamm].[Lieferant-Nr] = TEditLieferantNr.Text, dessen [Material-Stamm].aktuell = -1, weil nur dieses Material interessant ist. Hier werden die [Material-Stamm].[Mat-Nr] selectiert. Suche alle Materialrollen.Nr zu dieser Materialrollen.[Mat-Nr] = [Material-Stamm].[Mat-Nr], die eine Materialrollen.[Arb-Breite] > 179 mm haben und Materialrollen.DatumAb = NULL ist. (nur dann sind ensprechende Materialrollen auf Lager. Aus allen Rollen des Materials, die selectiert wurden, berechne die qm (BESTAND). Wenn Materialrollen.[Arb-Breite] <= 179 mm haben und Materialrollen.DatumAb = NULL ist, solche Rollen sollen nicht berücksichtigt. Dieses Material muss ebenfalls in der Tabelle angezeigt werden mit BESTAND = 0. Ebenfalls wenn es keine Rollen mit Materialrollen.DatumAb = NULL gibt, dann muß das Material ebenfalls in der Tabelle aufgelistet sein mit BESTAND = 0; Natürlich haben diese Tabellen noch andere Felder, die spielen hier jedoch keine Rolle. Der Sinn des Ganzen ist, dass man bestimmte Materialsorten eines Lieferanten im Auge behält und rechzeitig bestellt, weil der Lieferant möglicherweise nicht innerhalb einer bestimmten Frist liefern kann und entsprechend auch anderes Material des Lieferanten gleich mitbestellt, falls deren Mengen zu gering erscheinen. Ich hoffe, jetzt ist es verständlich, ansonsten liefere ich weitere Antworten. Gruß, Luckner |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 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-2025 by Thomas Breitkreuz