AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi PosNummern in Rechnungsdaten
Thema durchsuchen
Ansicht
Themen-Optionen

PosNummern in Rechnungsdaten

Ein Thema von LOMBI · begonnen am 24. Aug 2006 · letzter Beitrag vom 13. Sep 2006
Antwort Antwort
Seite 1 von 3  1 23      
LOMBI
(Gast)

n/a Beiträge
 
#1

PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 16:34
Datenbank: Paradox • Zugriff über: TQuery, TDataSource
Tabelle: Rechnungsdaten
Feld: PosNr (n)umerisch


Hallo,

die Rechnungsdaten (Artikel) werden in einem DBGrid angezeigt. Jeder Artikel erhält eine fortlaufende PosNr

1.0 Artikel1
2.0 Artikel2
3.0 Artikel3
...

Delphi-Quellcode:
TFRechnungen.QueryRechnungsdatenAfterInsert(DataSet. TDataSet);
begin //PosNr hochzählen
  with DataSet do
    if QueryRechnungsdaten.FieldByName('PosNr').IsNull then
      QueryRechnungsdaten.FieldByName('PosNr').AsInteger :=
      NextKey('PosNr', 'Rechnungsdaten');
    end;
Problem:

Mit dem ersten Artikel in einer neuen Rechnung muß die PosNr wieder bei 1.0 starten.

Wie bitte erreiche ich das?

Gruß
Lombi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 16:39
Was steckt hinter NextKey?
Ggf mußt du diese Funktion anpassen.
Markus Kinzler
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#3

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 17:39
Delphi-Quellcode:
function NextKey (fldName, tblName: String): Integer;
begin
  with TQuery.Create do
  begin
  DatabaseName := QueryRechnungen.DatabaseName;
  SQL.Text := Format('SELECT MAX(%s) FROM %s', [fldName, tblName]);
  Open;
  Result: succ(Fields[0].AsInteger);
  Close;
end;
Gruß
Lombi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 18:29
SELECT MAX(PosNr) FROM RechPos where RechPos.RechNr = RechNr;
Markus Kinzler
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#5

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 20:18
Hallo mkinzler,

danke für den Code, aber damit erhalte ich leider keine Veränderung.
Die PosNr wird in einer neuen Rechnung einfach weiter hochgezählt und
fängt nicht wieder bei PosNr. 1.0 für den ersten angelegten Artikel an.
Grüße
Lombi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 20:22
Zitat:
Die PosNr wird in einer neuen Rechnung einfach weiter hochgezählt
Das dürfte aber nicht sein. Bei einer neuen Rechnungsnummer müßte die Abfrage NULL zurückliefern, da ja keine Datensätze da sind, über die er eine Summierung durchführen könnte.

Poste mal dei Metadaten der Tabelle.
Markus Kinzler
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#7

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 20:46
Rechnungsdaten-Tabelle:

RechnungsNr I(nteger)
PosNr N(umerisch)
ArtNr A(lphanumerisch)
ArtBez A(lphanumerisch)
ArtBez2 A(lphanumerisch)
Datum D(ate)
Anzahl N(umerisch)
EinzelPreis N(umerisch)
GesamtPreis N(umerisch)
MwSt N(umerisch)
Rabatt N(umerisch)

QueryRechnungsdaten
DataSource: DataSourceRechnungen
SQL.Text : SELECT * FROM Rechnungen WHERE RechnungsNr= :RechnungsNr;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 20:49
Setze mal für RechnungsNr eine nicht vorhandene ein. Was bekommst du als Ergebnis der Max()-Funktion?
Markus Kinzler
  Mit Zitat antworten Zitat
LOMBI
(Gast)

n/a Beiträge
 
#9

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 21:08
Ungültiger Feldname.

Ich habe zusätzlich eine Query auf die Form gelegt:

Name: QueryPosNr
DataSource: DataSourceRechnungsdaten
SQL.Text: SELECT MAX(PosNr)
FROM Rechnungsdaten
WHERE Rechnungsdaten.RechnungsNr = RechnungsNr;
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: PosNummern in Rechnungsdaten

  Alt 24. Aug 2006, 21:14
SQL-Code:
SELECT MAX(PosNr)
FROM Rechnungsdaten
WHERE Rechnungsdaten.RechnungsNr = 999999;
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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