AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Filtern und Zusammenzählen von Buchungen / Verbrauchsberech.
Thema durchsuchen
Ansicht
Themen-Optionen

Filtern und Zusammenzählen von Buchungen / Verbrauchsberech.

Ein Thema von CG2003 · begonnen am 14. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#1

Filtern und Zusammenzählen von Buchungen / Verbrauchsberech.

  Alt 14. Okt 2005, 22:53
Datenbank: Paradox • Zugriff über: Lokal
Hallo,

ich arbeite zur Zeit an einem kleinen Ersatzteil-Lagersystem für mich in der Firma, um Ersatzteile hinzu zubuchen und abzubuchen vom Lager. Das ganze geschiet durch eine Datenbank.
Buchungen werden vollzogen, nur möchte ich nun gerne den Verbrauch errechnen bzw. eine Übersicht haben.

Die Buchungs-Tabelle sieht so aus:
ID - Index

PartNr - Ersatzteilnr.

PartDatum - Buchungsdatum

PartUhrzeit - Buchungszeit

PartStatus - 2 Werte ("Hinzugebucht" oder "Abgebucht")

AlterBestand - Alter Lagerbestand des Teils

NeuerBestand - Neuer Lagerbestand des Teils (in der Regel: Alter Bestand - 1)

PartGrund - Grund der Buchung (Norm. Reparatur, KVA, Reklamation etc.)


So, mein Problem ist es nun, ich möchte eine Übersicht (StringGrid, ListView etc.), wenn ich Auswähle (per TDateTimePicker) Alle Buchungen vom Datum 1 bis Datum 2 aufzulisten, und zusammenzuzählen, da ja mehrere Buchungen pro Tag des gleichen Teils vorkommen.

Wie geht das? Hab's schon mit TTable-Filtern probiert, aber irgendwie haut das nicht hin.

Ich hoffe Ihr könnt mir weiterhelfen.
Sebastian M.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 07:59
Hallo,

eine Bewegungstabelle für eine Lagerverwaltung sieht in ihren Grundzügen etwa so aus:

SQL-Code:
CREATE TABLE bewegungen (
  ID AUTOINC,
  KONTO INTEGER,
  PART_ID INTEGER,
  MENGE INTEGER,
  DATUM DATE,
  ZEIT TIME,
  PRIMARY KEY(ID)
)
Dein Feld PartGrund entspricht dem KONTO. Du richtest einen Kontenstamm so ein, dass Lagerzugänge auf den Konten 100 bis 199 erfolgen, Abgänge auf den Konten 200 bis 299, Abgänge werden mit negativem Vorzeichen gebucht.

Der Bestand zu einem beliebigen Zeitpunkt wird durch einen Inventurlauf ermittelt und nicht in der Tabelle gespeichert:

SQL-Code:
SELECT SUM(menge) AS bestand
  FROM bewegungen
  WHERE DATUM = :datum
Die Lagerbewegungen in einem Zeitraum erhältst du so:

SQL-Code:
SELECT *
  FROM bewegungen
  WHERE DATUM BETWEEN :datum1 AND :datum2
  ORDER BY DATUM, ZEIT
Grüße vom marabu
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 09:11
Hallo marabu,

Erst einmal vielen Dank für Deine schnelle Antwort und kompetente Hilfe!
Hmm, das erscheint mir jetzt ein wenig zu kompliziert. Eine neue Tabelle für die Bewegungen erstellen? Ist es nicht möglich, das Ganze ein wenig einfacher zu gestalten?
Sebastian M.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 09:17
Zitat von marabu:
Der Bestand zu einem beliebigen Zeitpunkt wird durch einen Inventurlauf ermittelt und nicht in der Tabelle gespeichert:
SQL-Code:
SELECT SUM(menge) AS bestand
  FROM bewegungen
  WHERE DATUM = :datum
Grüße vom marabu
Das halte ich für ein Gerücht... Es muss heissen DATUM <= :datum denn sonst erhältst Du nur die Bewegungen eines Tages. Oder Du machst Tagesabschlussbuchungen ähnlich wie SB/EB Werte. Ein Nachteil dabei ist natürlich die schwindende Performance im Laufe der Zeit.

@CG2003:
Wenn Du alles nachvollziehbar machen willst und auch korrigierbar für vergangene Bestände, dann führt an einer Bewegungstabelle kein Weg vorbei.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 09:24
Zitat von marabu:
Der Bestand zu einem beliebigen Zeitpunkt ...
Zitat von Union:
Das halte ich für ein Gerücht... ---
Hai Union,

in dem Fall ist der Code von marabu doch richtig.
Wenn natürlich die Buchung "bis zu einem beliebigen Zeitpunkt" ermittelt werden sollen wäre deiner richtig.
Und wenn es "für einen beliebigen Zeitraum ermittelt werden sollen müsste halt wieder eine andere Abfrage erfolgen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 09:31
Zitat von Sharky:
Zitat von marabu:
Der Bestand zu einem beliebigen Zeitpunkt ...
Zitat von Union:
Das halte ich für ein Gerücht... ---
Hai Union,

in dem Fall ist der Code von marabu doch richtig.
Wenn natürlich die Buchung "bis zu einem beliebigen Zeitpunkt" ermittelt werden sollen wäre deiner richtig.
Und wenn es "für einen beliebigen Zeitraum ermittelt werden sollen müsste halt wieder eine andere Abfrage erfolgen.
Das widerspricht aber IMHO der Definition von Bestand. Wenn ich zu jedem Zeitpunkt einer Veränderung diesen mit der Menge speichere, muss ich alle Buchungen von Beginn der Lagerführung bis zum Auswertungsdatum addieren. Die Abfrage DATUM = :datum ergibt wirklich nur die Summe der an einem Tag erfolgten Änderungen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 09:52

Ich habe nicht richtig gelesen. Klar, da es um eine Summenbildung geht müssen natürlich alle Bewegung bis zum Zeitpunkt x berücksichtigt werden um den Lagerbestand ermitteln zu können.

Sorry, mein Fehler.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 15. Okt 2005, 15:43
@Sharky: Auch sorry bin.

@Union: Das sollte gar kein Gerücht sein - es war schlicht ein Tastaturaussetzer, einer von vielen in diesem Beitrag, aber dummerweise an einer Stelle, wo ich ihn beim Querlesen nicht erkannt habe. Gut dass du ihn entdeckt hast. Das zeigt mir auch, dass da jemand ist, der meine Beiträge wirklich liest...

@CG2003: Hoffentlich hast du wegen dem dummen Fehler nicht zu sehr gelitten. Da du beim Paradox-Tabellen-Format mit LocalSQL arbeitest, solltest du für die Sortierung den einen oder anderen Sekundärindex in Erwägung ziehen.

Geknickte Grüße vom marabu
  Mit Zitat antworten Zitat
CG2003

Registriert seit: 8. Nov 2003
Ort: Hamburg
470 Beiträge
 
Delphi 2009 Professional
 
#9

Re: Filtern und Zusammenzählen von Buchungen / Verbrauchsber

  Alt 17. Okt 2005, 19:45
Hallo,

erstmal vielen Dank nochmal für Eure Tips.
Ich habe es geschafft, das mir der Verbrauch eines Tages in einem Treeview mit folgendem Format angezeigt wird:

Part-Nr. Datum Verbrauch


Beispiel:

Part-Nr. Datum Verbrauch

101555644 14.10.2005 -1



So, nun kommen in dem Treeview jetzt mehrfach die gleichen Teile vor. Wie kann ich diese am Einfachsten zusammenrechnen? Ich habe das so gemacht, weil mir Euer Weg zu kompliziert war. Sorry, aber da sehe ich irgendwie nicht durch... Ich fand' es so einfacher...
Sebastian M.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz