AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Generator fuer Position verwalten ?
Thema durchsuchen
Ansicht
Themen-Optionen

Generator fuer Position verwalten ?

Ein Thema von FrankBKK · begonnen am 14. Jul 2005 · letzter Beitrag vom 14. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von FrankBKK
FrankBKK

Registriert seit: 20. Mai 2005
Ort: Bangkok
35 Beiträge
 
Delphi 7 Enterprise
 
#1

Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 06:25
Datenbank: Firebird • Zugriff über: IBO
Ich verwende zwei Tabellen: Orders und Orderdetails

Wird ein neuer Order generiert, wird vom Generator fuer
diesen Auftrag ein Wert abgeholt. Der Generator fuer
die Orderdetails soll dann auf 1 zurueckgesetzt werden und
beui Eingabe der entsprechenden Positionen hochgezaehlt werden.

Wie ist das nun aber wenn mehrere Benutzer unabhaengig von
einander gleichzeitig neue Auftrage eingeben ?

Wie kann ich hier fuer die Details einen Generator verwenden
der nur fuer die Detailpositionen EINES Benutzers und eines
Auftrags hochzaehlt geht das ueberhaupt oder muss ich den
Positionszaehler programmintern verwalten ?
Frank
  Mit Zitat antworten Zitat
Benutzerbild von BrunoT
BrunoT

Registriert seit: 23. Jan 2003
Ort: Sandbeiendorf
360 Beiträge
 
Delphi 8 Professional
 
#2

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 06:38
Hi Frank,

Ich würde eigentlich gar keinen Zähler für Orderdetails verwenden. Ich würde bei den Orderdeteils die OrderNr hinterlegen und danach bei Auswahl des Auftrages mit Filter selektieren. Die Anzahl der Order-Deteils ergibt sich automatisch aus der Anzahl der Datensätze, Damit ist es auch möglich, einen Datensatz aus den Orderdeteils zu löschen und neue dazwischen einzufügen, weil ja die zeilennummer nicht im datensatz steht, sondern nur in der Anzeige. Damit gibt es überhaupt gar kein Problem mit dem Multi-User-Zugriff.

Es gibt auch die Möglichkeit, Primär- und Sekundär-Tabelle mit einander direkt zu verknüpfen, dann würde sich das manuelle Filtern erübrigen( in Paradox, Access z.B.).

Ich hoffe, ich konnte helfen.


mfg

BrunoT
Holger

EDV- Ende der Vernunft
Meine Calcedit-Kompo
  Mit Zitat antworten Zitat
Benutzerbild von FrankBKK
FrankBKK

Registriert seit: 20. Mai 2005
Ort: Bangkok
35 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 06:53
Zitat von BrunoT:
Ich würde eigentlich gar keinen Zähler für Orderdetails verwenden. Ich würde bei den Orderdeteils die OrderNr hinterlegen und danach bei Auswahl des Auftrages mit Filter selektieren. Die Anzahl der Order-Deteils ergibt sich automatisch aus der Anzahl der Datensätze, Damit ist es auch möglich, einen Datensatz aus den Orderdeteils zu löschen und neue dazwischen einzufügen, weil ja die zeilennummer nicht im datensatz steht, sondern nur in der Anzeige. Damit gibt es überhaupt gar kein Problem mit dem Multi-User-Zugriff.
Das macht absolut Sinn was Du da sagst, so aehnlich hab ich das bisher auch gehandhabt, allerdings sollen die Positionen kuenftig vom User sortiert werden koennen (willkuerlich), daher muss ich ne Art Zaehler einbauen,
der zunaechst beim Erfassen hochzaehlt und spaeter vom Anwender innerhalb gewisser Grenzen veraendert werden kann.
Frank
  Mit Zitat antworten Zitat
marabu

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

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 07:04
Hallo Frank,

in der Client Table solltest du trotz allem den Generator nur für einen Primärschlüssel einsetzen. Die Positionsnummer muss der Benutzer nicht eingeben. Beim Hinzufügen enspricht die Positionsnummer der Anzahl der bereits gespeicherten Positionen, beim Löschen werden die Folgepositionen herabgesetzt und beim Einfügen hinaufgesetzt. Schau mal hier

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von FrankBKK
FrankBKK

Registriert seit: 20. Mai 2005
Ort: Bangkok
35 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 07:25
Zitat von marabu:
Hallo Frank,

in der Client Table solltest du trotz allem den Generator nur für einen Primärschlüssel einsetzen. Die Positionsnummer muss der Benutzer nicht eingeben. Beim Hinzufügen enspricht die Positionsnummer der Anzahl der bereits gespeicherten Positionen, beim Löschen werden die Folgepositionen herabgesetzt und beim Einfügen hinaufgesetzt. Schau mal hier

Grüße vom marabu
Passt ! Vielen Dank fuer den Hinweis.
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 07:51
Wir haben uns für die Speicherung der Positionsnummer entschieden (zusätzlich zum Primärschlüssel). Der Grund ist relativ einfach:
Der Kunde bestellt etwas und bekommt Teillieferungen. Damit er weiß, welche Positionsnummer des Lieferscheins (oder auch der Rechnung) zu welcher Position in der Auftragsbestätigung gehört.
Oder der Kunde storniert eine Position und möchte eine neue Bestätigung haben. Dann ist es doch evtl. sinnvoll, eine Lücke in den Nummern zu lassen.
Wenn für einen Auftrag noch was bestellt wird, kann man in der Bestellung mitdrucken, für welche Auftragsposition das ist.
Oder der Kunde möchte gerne seine eigenen Positionsnummern in der Auftragsbestätigung sehen (na gut. das lösen wir auch anders -> zusätzliche Felder).

Es gibt durchaus Gründe, Positionsnummern zusätzlich zu Primärschlüsseln zu verwalten. Es hängt alles ein bisschen davon ab, was damit evtl. noch gemacht werden muss/soll.
Peter
  Mit Zitat antworten Zitat
marabu

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

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 08:30
Hallo Peter,

auch ich speichere Positionsnummern. In erster Linie stellen solche Nummern für mich ein Ordnungskriterium dar. Solange der Vorgang in der internen Bearbeitung ist, sollte die Herstellung einer lückenlosen Ordnung vom System unterstützt werden. Deine Anforderungen zähle ich zu den business rules und würde sie durch ein Steuerungsattribut umsetzen. Das kann zum Beispiel das Druckdatum der Auftragsbestätigung sein, in Verbindung mit der Anzahl der Positionen (Auftragsumfang) zu diesem Zeitpunkt. Sobald das Datum existiert ist eine Umstellung der betroffenen Positionsnummern verboten. Stornierte Positionen erhalten ein Storno-Flag, neue Positionen werden hinten angefügt und können in ihrem Bereich solange beliebig umgeordnet werden, bis Druckdatum und Auftragsumfang aktualisiert werden. Ich würde in einer überarbeiteten Auftragsbestätigung auch stornierte Positionen ausgeben.

Die Bedeutung einer konstanten Positionsnummer für die externe Kommunikation sehe ich differenzierter. Für die Vollständigkeitskontrolle bei der Warenannahme ist eine lückenlose Nummerierung wertvoller, als der direkte Bezug auf den Auftrag durch konstante Positionsnummern. Die Semantik einer Positionsnummer wechselt mitunter von Dokument zu Dokument. Da, wo Warenannahme und Bestellwesen nicht in Personalunion erledigt werden, wäre das eine Anforderung von mir.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 08:40
Hi marabu,
datenbanktechnisch stimme ich dir voll zu. "Leider" haben unsere Kunden keinen Zugriff auf unsere Datenbank. Daher zählt für die nur das, was auf Papier gedruckt wurde (oder eMail).

Ich wollte auch gar nichts schlechtreden. Ich hatte nur den Eindruck, dass man auch ein paar Schritte weiter denken sollte, wenn man solche Überlegungen anstellt. Oft genug wird das vergessen.
Das war durchaus konstruktiv gemeint. Ich sehe oft genug Entwickler, die nicht über die eigene Nasenspitze sehen können und dann völlig an der Praxis vorbei programmieren.

Also nicht als Vorwurf auffassen.
Peter
  Mit Zitat antworten Zitat
marabu

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

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 09:26
Ich halte das hier für eine wohltuend sachliche Diskussion - ein Schelm, wer anderes denkt. Ich musste bei diesem Thema sofort an ein Angebot zur Fassadenrenovierung denken, dass ich kürzlich erhielt - mit den Positionsnummern 1 bis 3, 5 - 8, 10 und 11. Da ich sicher sein wollte, habe ich telefonisch nachgefragt und erhielt die Antwort, dass die fehlenden Nummern gelöscht wurden, da die Teilleistung in den anderen Nummern enthalten sei. Das zur Untermauerung meiner Forderung nach automatisiert lückenloser Nummerierung in der Bearbeitungsphase.

marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Generator fuer Position verwalten ?

  Alt 14. Jul 2005, 09:32
Das hätte mich auch irritiert.
Bei einem Angebot Lücken in den Positionsnummern ???
So was macht man doch mit Ordnungsstrukturen (im einfachsten Fall Unterpositionen), wenn das in Teilleistungen aufgeteilt ist. Ich habe auch mal für die Baubranche programmiert. Da wird doch immer mit strukturierten Positionsnummern gearbeitet. Du solltest die genau überlegen, ob du das Angebot annimmst.
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:27 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