Lasse ich das nämlich weg dann passt der NDEX auch nach einem APPEND und nach dem Neustart des Programms ohne Neuaufbau !!!
Code: Alles auswählen
procedure nrpruef
#define CRLF chr(13)+chr(10)
local csv
nrsend:=0
tx1:="Die Richtigkeit der Datenbank-Nummern wird berprft - Bitte warten !"
tmitte:=round((dzeile/2)-(len(tx1)/2),0)
do f1 with "3"
clear
@10,tmitte say tx1
csv:="Die APPEND DBFnummern werden getestet"+CRLF
?
?
? "Kundendatenbank berprfen"
csv:=csv+"Kundendatenbank testing"+CRLF
select 1
use adresse1 EXCLUSIVE
pack
al1:=0
index on kundnr to al1nr
set index to al1nr
go bottom
al1=val(kundnr)
if (al1+2) = anzahl1->kundnr
? "neue Kundennummer OK!"
csv:=csv+"neue Kundennummer OK!"+CRLF
else
nrsend:=1
? "Kundennummer "+str(al1)+ " wird ersetzt da defekt !"
csv:=csv+"Kundennummer "+str(al1)+ " wird ersetzt da defekt !"+CRLF
replace anzahl1->kundnr with (al1+2)
endif
close adresse1
*------H„ndlernummer
? "H„ndlerdatenbank berprfen"
csv:=csv+"Haendlerdatenbank testing"+CRLF
select 1
use adresse2 EXCLUSIVE
pack
al1:=0
index on kundnr to al2nr
set index to al2nr
go bottom
al1=val(kundnr)
if (al1+2) = anzahl1->hkundnr
? "neue H„ndlernummer OK!"
csv:=csv+"neue Haendlernummer OK!"+CRLF
else
nrsend:=1
? "H„ndlernummer "+str(al1)+" wird ersetzt da defekt !"
csv:=csv+"Haendlernummer "+str(al1)+" wird ersetzt da defekt !"+CRLF
replace anzahl1->hkundnr with (al1+2)
endif
close adresse2
*--------Lagernummer
? "Lagerdatenbank berprfen"
csv:=csv+"Lagerdatenbank testing"+CRLF
select 3
use lager1 EXCLUSIVE
pack
al1:=0
index on lagernr to al3nr
set index to al3nr
go bottom
al1=val(lagernr)
if (al1+2) = anzahl1->lagernr
? "neue Lagernummer OK!"
csv:=csv+"neue Lagernummer OK!"+CRLF
else
nrsend:=1
? "Lagernummer "+str(al1)+" wird ersetzt da defekt !"
csv:=csv+"Lagernummer "+str(al1)+" wird ersetzt da defekt !"+CRLF
replace anzahl1->lagernr with (al1+2)
endif
close lager1
*-------Terminnr
? "Termindatenbank berprfen"
csv:=csv+"Termindatenbank testing"+CRLF
select 4
use termin1 EXCLUSIVE
pack
al1:=0
index on terminnr to al4nr
set index to al4nr
go bottom
al1=val(terminnr)
if (al1+2) = anzahl1->terminnr
? "neue Terminnummer OK!"
csv:=csv+"neue Terminnummer OK!"+CRLF
else
nrsend:=1
? "Terminnummer "+str(al1)+" wird ersetzt da defekt !"
csv:=csv+"Terminnummer "+str(al1)+" wird ersetzt da defekt !"+CRLF
replace anzahl1->terminnr with (al1+2)
endif
close termin1
*--------Rechnungsnummer
? "Rechnungsnummer berprfen"
csv:=csv+"Rechnungsnummer testing"+CRLF
select 8
use rechnung EXCLUSIVE
pack
al1:=0
index on rnr2 to al7nr
set index to al7nr
go bottom
al1=(rnr2)
skip-1
*Es wird geschaut ob die Nummer 1 davor genau um 1 kleiner ist -- sonst Meldung (c)2016
dal1=(rnr2)
if (al1-dal1) = 1
? "Die vorherige Rechnungsnummer ist um genau 1 kleiner - OK !"
csv:=csv+"Die vorherige Rechnungsnummer ist um genau 1 kleiner - OK !"+CRLF
else
? "Die vorherige Rechnungsnummer ist nicht um 1 kleiner"
? "sonder unterscheidet sich um "+str(al1-dal1)+" da stimmt was nicht !!!"
csv:=csv+"Die vorherige Rechnungsnummer ist nicht um 1 kleiner"+CRLF
csv:=csv+"sonder unterscheidet sich um "+str(al1-dal1)+" da stimmt was nicht !!!"+CRLF
endif
*----- da die Nummer selber vergeben wird ... soll er nur die aktuell vergebene Nummer abgleichen (c)2016 - deswegen (alt+0)
if (al1+0) = anzahl1->rnzahl
? "neue Rechnungsnummer OK!"
csv:=csv+"neue Rechnungsnummer OK!"+CRLF
else
nrsend:=1
? "Rechnungsnummer "+str(al1)+" wird ersetzt da defekt !"
csv:=csv+"Rechnungsnummer "+str(al1)+" wird ersetzt da defekt !"+CRLF
replace anzahl1->rnzahl with (al1+0)
endif
close rechnung
*-------Eknummer
? "EinkaufDatenbank berprfen"
csv:=csv+"EinkaufDatenbank testing"+CRLF
select 7
use einkauf EXCLUSIVE
pack
al1:=0
index on eknummer to al6nr
set index to al6nr
go bottom
al1=val(eknummer)
if (al1+2) = anzahl1->eknummer
? "neue Einkaufnummer OK!"
csv:=csv+"neue Einkaufnummer OK!"+CRLF
else
nrsend:=1
? "Einkaufnummer "+str(al1)+" wird ersetzt da defekt !"
csv:=csv+"Einkaufnummer "+str(al1)+" wird ersetzt da defekt !"+CRLF
replace anzahl1->eknummer with (al1+2)
endif
close einkauf
*--Programm beenden da Defekt aufgetreten
?
?
? "Datenbankberprfung beendet"
csv:=csv+"Datenbanktesting beendet"+CRLF
csv:=csv+version
memowrit("Nrfehler.txt", csv)
*-------------- Datei senden
if nrsend=1
?
? "Datenbank - Fehlernummern werden gesendet - Bitte warten! "
? runshell(" /C Start3.bat" ,,, .T.)
*Ferase("Nrfehler.txt")
endif
return
was beinflußt hier den INDEX der Datenbank Termin1 so, daß er beim beenden nicht mehr stimmt ?