AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Letzte Rechnungsnummer um 1 hochzählen
Thema durchsuchen
Ansicht
Themen-Optionen

Letzte Rechnungsnummer um 1 hochzählen

Ein Thema von LOMBI · begonnen am 1. Aug 2006 · letzter Beitrag vom 5. Aug 2006
Antwort Antwort
Seite 2 von 3     12 3      
LOMBI
(Gast)

n/a Beiträge
 
#11

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 13:51
Hallo
und herzlichen Dank für das gezeigte Interesse!

@ marabu

DatabaseName := Global.DatabaseName; Hier erhalte ich die Meldung: Undefinierter Bezeichner 'Global'.
D3-Problem?

Gruß
Lombi
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 14:42
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.
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#13

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 16:22
Brauche ich denn überhaupt die QueryRNr oder genügt bereits
QueryRechnungen?

Gruß
Lombi
  Mit Zitat antworten Zitat
marabu

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

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 16:29
Hallo.

Global.DatabaseName soll eine String-Konstante sein:

Delphi-Quellcode:
unit Global;

interface

const
  DatabaseName = 'DBDEMOS';

implementation

end;
Ich wusste nicht wie die Datenbank heißt ...

marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#15

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 17:49
Hallo marabu,

Delphi-Quellcode:
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;
  ...
Meldung: Tabelle nicht vorhanden.
Ich habe doch die Rechnungen.DatabaseName angegeben?

Lombi
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

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

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 2. Aug 2006, 20:35
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
Martin Schaefer
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#17

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 3. Aug 2006, 09:15
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.
Catbytes
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#18

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 4. Aug 2006, 10:20
Hallo,

@marabu

Zitat:
function NextKey(tblName, fldName: String): Integer;
...
end;

procedure TFormRechnungen.QueryRechnungenBeforeInsert(DataSe t: TDataSet);
begin
DataSet.FieldByName('RNR').AsInteger := NextKey('RNR', 'Rechnungen');
end;
Entschuldigung, ich hatte mich nach NextKey in der function gerichtet
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:
TFRechnungenListe.BtnNeuClick(Sender: TObject);
begin
  with FRechnungen do
    begin
      Show;
      QueryRechnungen.Append; //Einfügemodus
      QueryRechnungen.FieldByName('RNr').AsInteger :=
      StrToInt(EditRNr.Text);
      ...
      end;
In QueryRechnungen.SQL(TStrings) steht: SELECT * FROM Rechnungen

Wer hilft mir bitte?

Gruß
Lombi
  Mit Zitat antworten Zitat
marabu

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

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 4. Aug 2006, 11:37
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:
TFRechnungenListe.BtnNeuClick(Sender: TObject);
begin
  with QueryRechnungen do
  begin
    Append; //Einfügemodus
    FieldByName('RNr').AsInteger := StrToInt(EditRNr.Text);
    // ...
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#20

Re: Letzte Rechnungsnummer um 1 hochzählen

  Alt 4. Aug 2006, 16:10
Hallo marabu,

Result := Succ(Fields[0].AsInteger); Trotz "Succ" wird RNr.Text immer mit dem gleichen Wert gespeichert und nichts hochgezählt. Woran bitte könnte das liegen?

Lombi
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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