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 1 von 2  1 2   
schniede

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

Rechnungsnummer generieren?

  Alt 11. Jan 2004, 21:25
Hallo!

Also ich such nen praktischen Weg ne Rechnungsnummer zu generieren (soll fortlaufend sein).

Meine Überlegung.-- 9 stellige zahl die ersten beiden die Jahreszahl und den Rest von 0 aufwärtzzählen.

Beispiel 04xxxxxxx .

ich würde dann die letzten 7 stellen in einer INI speichern und je Rechnung um eins erhöhen und wieder neu speichern ,als letzte vergebene Nummer.

So nun find ich das nicht gerade Elegant und denk, da gibt es doch bestimmt ne bessere Lösung.



mfg schniede
  Mit Zitat antworten Zitat
scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#2

Re: Rechnungsnummer generieren?

  Alt 11. Jan 2004, 22:02
Was könnte da eleganter sein?
Die einzigen Alternativen, die mir dazu einfallen, wäre, den Wert in der Registry zu speichern und evtl. noch ein alphanumerisches Zahlensystem zu verwenden (z.B. Hexadezimal).
Durch letzteres hast du einen Grösseren Nummerierungsbereich mit der gleichen Anzahl Ziffern (in dem Fall statt 1 bis 9.999.999 ein Bereich von 1 bis 268.435.455 = FFFFFFF in Hex).
  Mit Zitat antworten Zitat
schniede

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

Re: Rechnungsnummer generieren?

  Alt 11. Jan 2004, 22:13
Danke scp !

Das mit den hex lass ich lieber, ca. 27000 verschiedene Nummern pro Tag im Jahr sollten reichen.
geht ja 2005 mit 05xxxxxxx weiter

Registry , hm Vorteile??

Ini ist für mich leichter zu händeln.

thx schniede
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#4

Re: Rechnungsnummer generieren?

  Alt 11. Jan 2004, 22:18
Moin Schniede.
Dann lass es doch bei der INI. Du musst wegen einem Wert nicht gleich was in die Registry schreiben.
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Rechnungsnummer generieren?

  Alt 12. Jan 2004, 08:06
hi,
ich würde die rechnungsnummer weder in ini-files noch in der registry
speichern. was machst du wenn zwei user auf das programm zugreifen
und beide gleichzeitig eine rechnung erfassen ? am besten in der
datenbank (wird es ja bei einem rechnungsprogramm geben) speichern
und hochzählen lassen (je nach datenbank gibt es ja verschiedenen
möglichkeiten zur unterstützung, bei interbase/firebird generatoren,
bei oracle sequenzen, bei m$ und paradox die AutoInc-felder, etc.)

thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.605 Beiträge
 
#6

Re: Rechnungsnummer generieren?

  Alt 12. Jan 2004, 08:12
Du kannst alternativ auch einfach Jahr + Monat + Tag + anzahl Sekunden des aktuellen Tages nehmen. Das sind 5 Stellen von 0 bis 86400 pro Tag.

Macht z.B. 040112 33180

Und man kann anhand der Rechnungsnummer auch gleich das Datum nachvollziehen.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

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

Re: Rechnungsnummer generieren?

  Alt 13. Jan 2004, 17:24
Hallo schniede,

am besten in der Tabelle nach der letzten Rechnung suchen.

Tabelle.LAST

Tabelle.RECHNUM := Tabelle.RECHNUM + 1

So habe ich es gemacht. Wenn du willst schicke ich Dir einen Auszug mit dem erhöhen
der Rechnungsnummer.

Gruß
----
BiBi
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

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

Re: Rechnungsnummer generieren?

  Alt 13. Jan 2004, 17:54
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.

Gruß

[edit=Admin]Delphi-Tags eingefügt. Bitte künftig selber amchen. Mfg, Daniel[/edit]
----
BiBi
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#9

Re: Rechnungsnummer generieren?

  Alt 13. Jan 2004, 18:01
Moin. moin,

da war doch noch das Finazamt. Die möchten ab diesem Jahr abfogende Rechnugnsnummern auch wenn
verschedene Rechner an diesem Procedre beteiligt sind. Deshalb entscheide zunächst ob Du ein reines
Einzelplatzsystem hast und es auch nicht auf mehrer Rechner erweitern möchtest.

Einzelplatzsystem:
Hier geht das mit der Ini bestens

Mehrplaztsystem
Verwende einen Datenbankgenerator (Hansa hatte mal ein schönes Beispiel)
Das hängt natürlich vom Datenbanksystem ab, welches Du verwendest.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Rechnungsnummer generieren?

  Alt 13. Jan 2004, 18:02
BiBi,

Problem könnte bei deinem codeschnipsel nur sein, dass in einem netzwerk zwei user
gleichezeitig eine rechnung holen und damit jeweils die gleiche iLetzteRechNummer
erhalten....
wenn würde ich gleich nach dem holen der zahl ein update auf das datenfeld durchführen.
vermindert die wahrscheinlich etwas.
Code:
iLetzteRechNummer := StrToInt(LetzteRechNummer);
iNeueRechNummer := inc(iLetzteRechNummer);
executeQuery : "update t_rechnungen set Rechnungsnummer = INeueRechNummer where ...."

NeueRechNummer := IntToStr(iNeueRechNummer);
......
gruss



thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 05:11 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