AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Rechnungsnummer generieren?

Rechnungsnummer generieren?

Ein Thema von schniede · begonnen am 11. Jan 2004 · letzter Beitrag vom 3. Feb 2004
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#11

Re: Rechnungsnummer generieren?

  Alt 13. Jan 2004, 21:08
merlin17,

ist richtig, doch habe ich das Prog nur für mich und als Einzelplatzlösung erstellt.

Trotzdem Danke für den Tip.

Gruß
----
BiBi
  Mit Zitat antworten Zitat
schniede

Registriert seit: 20. Sep 2003
Ort: Woltersdorf
104 Beiträge
 
Delphi 7 Professional
 
#12

Re: Rechnungsnummer generieren?

  Alt 14. Jan 2004, 18:40
Hy !!

Ich danke euch allen,war unterwegs und werd später genau lesen.

Auf alle Fälle viel guter Ideen.

thx schniede
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#13

Re: Rechnungsnummer generieren?

  Alt 2. Feb 2004, 23:44
Ich nehme mal an,
das deine Rechnungsnummern folgende Kriterien erfüllen müssen:

1. fortlaufend
2. lückenlos
3. unique im laufenden jahr
4. evtl will der anwender bei jahreswechsel wieder von n loslegen
5. der anwender will noch nicht verschickte rechnungen einfach verwerfen können
und nicht sofort eine storno oder gutschrift erstellen

ich würde folgenden ansatz verfolgen

a) rechnr niemals PK
b) rechnr über generator holen
c) wenn generierte rechnr geloescht wird -> nummer zurück in einen nummernpool

zu b) bevor der generator erhoeht wird, erstmal schauen ob noch was im nummernpool liegt, hier muss man sich dann im mehrplatzsytem was einfallen lassen, das nicht etwa 2 user zur selben zeit sich im pool bedienen können. Kriegt man aber über pessimistisches Locking hin (zumindest mit IBObjects).
Eleganterweise wird das nummern holen dann mit einer SP gelöst.
Bleibt das chronologische Problem. rechnr versus Rechdatum. (nur über Organisation in
dem Betrieb möglich)

wer Interesse an dem geschilderten ansatz hat, dem kann ich eine ausführlichere Interbase/IBO Lösung zukommen lassen.

mfg
delphideveloper
  Mit Zitat antworten Zitat
jlanger

Registriert seit: 26. Jan 2004
Ort: Wittlich
15 Beiträge
 
#14

Re: Rechnungsnummer generieren?

  Alt 3. Feb 2004, 16:58
Zitat von BiBi:
Hallo nochmal,

habe auf die schnelle den Prog-Teil gefunden.



Delphi-Quellcode:
  // Rechnungsnummer um 1 erhöhen
  DataModule1.T_Rechnungen.Last;

  LetzteRechNummer :=
       DataModule1.T_Rechnungen.FieldByName('Rechnungsnummer').AsString;

  iLetzteRechNummer := StrToInt(LetzteRechNummer);
  iNeueRechNummer := iLetzteRechNummer + 1;

  NeueRechNummer := IntToStr(iNeueRechNummer);

Ich habe die Rechnungsnummer als String gespeichert, weil ich "RE" davor schreibe. Ich hoffe ich konnte Dir damit etwas helfen.
Warum der ganze Quatsch? Nimm doch ein Autoinc-Feld oder ein Generator-Feld, das zählt automatisch hoch, den Startwert kannst du auch setzen. Und schon wars das.
Und das Argument mit dem RE davor ist doch völliger Käse. Warum soll das RE in der Datenbank stehen? Wozu braucht du es? Auf der Rechnung? Dann lass es beim Schreiben der Rechnung davor schreiben (berechnetes Feld). Selbst auf irgendwelchen Masken macht man das so. Schliesslich hat das "RE" KEINERLEI Infogehalt in der Datenbank. Oder benutzt du für Währungen auch ein Stringfeld, damit du das € (oder früher DM) dahinter schreiben kannst? In der Datenbank ist bei einem Währungsfeld nur die Zahl gespeichert, nicht aber das €.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 16:04 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