Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo
und herzlichen Dank für das gezeigte Interesse! @ marabu
Delphi-Quellcode:
Hier erhalte ich die Meldung: Undefinierter Bezeichner 'Global'.
DatabaseName := Global.DatabaseName;
D3-Problem? Gruß Lombi |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hi,
ohne mich mit Paradox auszukennen: Ich nehme an marabu meint mit Global das TConnection-Objekt, welches die Verbindung zur Datenbank herstellt. Edit: sowas wie QueryRechnungenin deinem Fall. :zwinker: |
Re: Letzte Rechnungsnummer um 1 hochzählen
Brauche ich denn überhaupt die QueryRNr oder genügt bereits
QueryRechnungen? Gruß Lombi |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo.
Global.DatabaseName soll eine String-Konstante sein:
Delphi-Quellcode:
Ich wusste nicht wie die Datenbank heißt ...
unit Global;
interface const DatabaseName = 'DBDEMOS'; implementation end; marabu |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo marabu,
Delphi-Quellcode:
Meldung: Tabelle nicht vorhanden.
unit Rechnungen;
interface . . . const DatabaseName = ... implementation . . . uses Kunden, KundenListe; function NextKey(tblName, fldName: String): Integer; begin with TQuery.Create(nil) do begin DatabaseName := Rechnungen.DatabaseName; ... Ich habe doch die Rechnungen.DatabaseName angegeben? Lombi |
Re: Letzte Rechnungsnummer um 1 hochzählen
Bei Paradox ist Databasename die vorgeschaltete Tdatabase-Komponente.
In der Databasekomponente ist Database der der Pfad zum Datenbankverzeichnis (z.B.: 'c:\Daten\Datebank') Grüße in die Runde // Martin |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo,
Du kannst auch mit Nummernkreisen arbeiten. Rechnungen = 200000 - 299999 Lieferscheine = 300000 - 399999 In einer Tabelle speicherst Du dann die Nummernkreise ab und dazu immer den letzten Wert je Belegart. Die Belegarten kannst Du auch über ein Kürzel trennen, dann kannste alles mehr oder weniger in 3 oder 4 Tabellen unterbringen, wie z.B.: VKBelege = Belegkopf mit Anschrift, Belegart etc. VKBelegePositionen = die einzelnen Positionen, Menge, Preis etc. Nummernkreise = die Nummernkreise der Belegarten Belegarten = die verschiedenen Belegarten Wenn Du jetzt noch das Belegjahr mit dazunimmst, kannst Du die Nummernkreise auch klein halten, weil es jedes Jahr wieder von vorne beginnt. Der DB-Key muß dann natürlich über mehrere Felder eindeutig sein (Belegjahr, Belegnummer, Belegart). Die Belegnummer setzt sich dann wie folgt zusammen: Belegjahr-Belegnummer, also z.B. 2006-123456 So sind auch abweichende Fiskaljahre finanztechnisch abgedeckt und Du weißt schon anhand der Belegnummer in welchem Zeitraum der Beleg war. Das gleiche kannst Du auch für den Einkauf machen mit Bestellungen, Wareneingang etc. Anstatt VKBelege nennst Du die dann einfach EKBelege nach gleichem Schema. |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo,
@marabu Zitat:
und im BeforeInsert irrtümlich NextKey('Rechnungen', 'RNr') geschrieben. Deshalb wurde zunächst die Tabelle nicht gefunden. Schon kämpfe ich mit einem neuen Problem: 'Datenmenge weder im Editier- noch im Einfügemodus'
Delphi-Quellcode:
In QueryRechnungen.SQL(TStrings) steht: SELECT * FROM Rechnungen
TFRechnungenListe.BtnNeuClick(Sender: TObject);
begin with FRechnungen do begin Show; QueryRechnungen.Append; //Einfügemodus QueryRechnungen.FieldByName('RNr').AsInteger := StrToInt(EditRNr.Text); ... end; Wer hilft mir bitte? Gruß Lombi |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo Lombi,
an deinen gezeigten Code-Zeilen kann es eigentlich nicht liegen, dass die Datenmenge sich nicht im Editiermodus befindet. Nur am Rande - wenn die Methode BtnNeuClick() ausgelöst wird, dann ist doch deine Form FRechnungen bereits sichtbar, wieso versuchst du sie dann noch mit Show() zu zeigen? Auch solltest du in einer Methode der Form nicht auf die Formvariable Bezug nehmen:
Delphi-Quellcode:
Grüße vom marabu
TFRechnungenListe.BtnNeuClick(Sender: TObject);
begin with QueryRechnungen do begin Append; //Einfügemodus FieldByName('RNr').AsInteger := StrToInt(EditRNr.Text); // ... end; end; |
Re: Letzte Rechnungsnummer um 1 hochzählen
Hallo marabu,
Delphi-Quellcode:
Trotz "Succ" wird RNr.Text immer mit dem gleichen Wert gespeichert und nichts hochgezählt. Woran bitte könnte das liegen?
Result := Succ(Fields[0].AsInteger);
Lombi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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