Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Letzte Rechnungsnummer um 1 hochzählen (https://www.delphipraxis.net/74353-letzte-rechnungsnummer-um-1-hochzaehlen.html)

LOMBI 5. Aug 2006 12:16

Re: Letzte Rechnungsnummer um 1 hochzählen
 
Nachtrag:

@marabu

Zitat:

procedure TFormRechnungen.QueryRechnungenBeforeInsert(DataSe t: TDataSet);
begin
DataSet.FieldByName('RNR').AsInteger := NextKey('RNR', 'Rechnungen');
end;
Damit es funktioniert muß der Code geändert werden:

Delphi-Quellcode:
procedure TFormRechnungen.QueryRechnungenBeforInsert(DataSet: TDataSet);
begin
  EditRNr.Text := IntToStr(NextKey('RNr', 'Rechnungen'));
end;
Noch ne Frage zu SQL.Text:
Delphi-Quellcode:
SQL.Text := Format('SELECT MAX(%s) FROM %s', [fldName, tblName]);
Damit wird immer die "größte" vorhandene Rechnungsnummer hochgezählt.
Ich möchte, dass die Nr. frei wählbar bleibt, d.h. wird nach "1000"
nur "100" eingegeben, dann soll die nächste Nr. mit 101 hochgezählt
werden. Was gibt's dafür als Ersatz für "MAX"?

Gruß
Lombi

mkinzler 5. Aug 2006 12:28

Re: Letzte Rechnungsnummer um 1 hochzählen
 
Dann nimmt man aucch max schränkt aber die Ergebnismenge ein.

marabu 5. Aug 2006 12:33

Re: Letzte Rechnungsnummer um 1 hochzählen
 
Hallo Lombi,

es fällt mir erst jetzt auf, aber OnBeforeInsert() ist nicht der beste Zeitpunkt für das Zuordnen der neuen Rechnungsnummer. Probiere es mit OnBeforePost(), dann ist auch die Zuweisung an das Feld kein Problem, weil der DataSet sich nicht im Browse-Modus befindet. Du versuchst das Problem offensichtlich zu umgehen, indem du eine Zuweisung an ein Edit-Control machst.

Ich rate dir zu fortlaufenden Rechnungsnummern, welche durch dein Programm vergeben werden. Eine gleichzeitig mögliche Eingabe durch den Benutzer schafft mehr Probleme als sie löst. Der Nummernverbrauch dürfte den Vorrat nie erschöpfen, wenn du den Wertebereich für Rechnungsnummern ausreichend dimensionierst. Sollte es aus welchen Gründen auch immer Lücken geben, dann ist eine Betriebsprüfung das Letzte was du dir wünschst.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr.
Seite 3 von 3     123   

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