Einige wichtige Datenbankbefehle bzw. Abläufe für manuelle Datenbankreparaturen
Reparatur Angebotsdatenbank angebot2.dbf (kopiert Datensätze aus der defekten Datenbank in eine leere "ORG"-Datenbank
use C:\SICH\ANGEBOTE\ORG\angebot2.dbf
append from C:\SICH\ANGEBOTE\angebot2.dbf for not dele()
close all
* leeren Datensatz in Liefer2.dbf finden (Datensatz existiert bereits)
brow all for empty(id_li2)
* Anzeige des Lieferdatums mit Monat und Jahr:
"Liefer- bzw. Leistungsdatum : " + alltrim(cmonth(beleg1.termin)) + " " +
alltrim(str(year(beleg1.termin)))
* Zusätzliches Feld im Formular holen
iif(seek(beleg1.knr,“Kunden“),Kunden.knr,““)
iif(seek(beleg1.mitnr,"Mitarbeiter"),mitarbeiter.mc,"") = Mitarbeitermc in Rechnung
* Zusätzliches Feld aus Artikeldatei ins Formular (Materialauszug) holen
iif(seek(upper(bericht.katnr)+upper(alltrim(bericht.artnr)),"Artikel"),artikel.drf,"")
Wichtig: bei der Artikeldatenbank muss fast immer der Katalogname
mitgenommen werden!
* Zusätzliches Feld aus Projektdatei ins Formlar holen
IIF(SEEK(gu_mandant+bericht.pronr,"projekte"),projekte.promc,"")
Wichtig: bei allen Datenbanken wo der Mandant hinterlegt ist, muß dieses Feld mitberücksichtigt werden!
* Zahl von einem Textfeld in ein Zahlenfeld kopieren
repl all mindest with round(val(scode),2) for katnr="HOLTER"
kopiert einen Wert aus dem Textfeld "scode" in das Zahlenfeld "Mindest"
Hinweis: Kommastellen werden nur dann übernommen, wenn als Kommazeichen ein "." (Punkt!!) verwendet wird - z.B. 1.44
* Wichtige Systemdateien
* VFXSYSID = laufende Nummer für Datensatzanzahl
* VFXUSER = Benutzerdatei
* VFXSYS = Firmendateneinstellungen
* VFXRES = Fenstereinstellungen
* PARAMETER = Parametereinstellungen Belegarten
* Umlaute umwandeln
repl all bez1 with oemtoansi(bez1)
oder repl all bez1 with ansitooem(bez1)
* schnelle Bearbeitung für einzelne Artikelkataloge
use \eprojekt\data\artikel.dbf
set order to katnr
set key to “HOLTER”
ACHTUNG: ein “pack” hebt den key wieder auf und muß neu eingegeben werden
* einzelne Zeichen ersetzen
repl all str with strstran(str,“ß“,“ss“)
ersetzt im Feld str(Strasse) das Zeichen “ß” durch “ss”
* Druckbedingung wenn Zeichen "x" in Feld oder Text vorkommt
"x" $ mline(bericht.atextm,15) = Feld wird gedruckt wenn im Memofeld (Vorlauftext) in der Textzeile 15 irgendwo ein "x" vorkommt
"x" $ bericht.promc = Feld wird gedruckt wenn im Projektmatchcode irgendwo ein "x" vorkommt
* Datumsfeld Format bearbeiten
set date to german
repl all datum with ctod(“01.01.2006”)
brow all for k7 = ctod("01.01.2008")
* Variable für Bilderdruck
lbild = .T.
* Artikeltexte nach defekter Memodatei für angebot2 herstellen
Wenn die Momodatei für angebot2, rechnung2 usw.. defekt ist, sind keine
positionstexte mehr sichtbar. Bezeichnung 1 und Bezeichnung 2 kann wieder
hergestellt werden, Langtexte für Gruppen, Positionen oder Textpositionen
gehen verloren.
repl all text with bez1 + chr(13) + bez2
* Bilderdruck wenn Dateiname einem Datenbankfeld entspricht
z.B. Kundennummer im Anlagenetikett, wobei sich das Bild im Verzeichnis \eprojekt\logo befindet uns so heißt wie die Kundennummer
Hier muß eine Variable definiert werden, die den kompletten String enthält. z.B. Variable logo entspricht:
"\eprojekt\logo" + alltrim(str(anlage1.knr)) + ".jpg)
Im Bilderfeld muß dann diese Variable so eingetragen werden: (logo)
Achtung: die Druckbedingung so stellen, daß das Bild nicht gedruckt
wird, wenn es dazu kein passendes Bild gibt, sonst kommt Fehler
Datei oder Dateiname nicht vorhanden!
z.B. nur drucken wenn im Feld K3 der Anlage ein X steht
* Bilderdruck wenn Dateiinfo aus Datenbankfeld kommt
z.B. Bild aus Anlage = anlage1.bild
Im Bilderfeld muß dann diese Variable so eingetragen werden:
(alltrim(anlage1.bild))
Achtung: die Druckbedingung so stellen, daß das Bild nicht gedruckt
wird, wenn es dazu kein passendes Bild gibt, sonst kommt Fehler
Datei oder Dateiname nicht vorhanden!
z.B. !empty(anlage1.bild)
* Zeilen Langtext (Memofeld) zählen
memlines(beleg1.atextm)
* Memotexte ändern (fügt in der ersten Zeile des Textfeldes einen Text ein, wenn das erste Zeichen in der ersten Zeile ein ":" ist)
repl all notizen with "13.10.2015 Info Birgit Nachruf Steuerreform 2015" + notizen for left(mline(notizen,1),1)=":"
* Felder neu durchnummerieren
repl all knr with recno() + 20000 ergibt eine neue Kundennummer ab 20000
* Seitennummerierung z.B. Seite 1 von 11
"Seite " + alltrim(str(_pageno)) + " von " + alltrim(str(_pagetotal))
* Übertrag fortlaufend
bericht.kontrolle
* Fußzeilen nur auf letzter Seite drucken
Druckbedingung: _pageno = _pagetotal
* Variablen für Mandanten - Formulargestaltung
gu_mankopf = Kopftext Mandant (bei Überlauf vergrößern mehrere Textzeilen)
gu_manfuß = Fußtext Mandant (bei Überlauf vergrößern mehrere Textzeilen)
gu_manprog = Kurzbezeichung Mandant (1)
gu_mandant = Mandantenbuchstabe
gu_manrepo = Mandantenverzeichnis für Formulare
gu_manmwst = Mehrwertsteuersatz Mandant
* Kundenindex Feld id_kund neu aufbauen (Feld hat 10 Stellen) wenn höchstens 9999
Kunden vorhanden sind
repl all id_kund with str(recno() + 1000)
repl all id_kund with “000000” + alltrim(id_kund)
* Seitennummerierung z.B. Seite 1 von 11
"Seite " + alltrim(str(_pageno)) + " von " + alltrim(str(_pagetotal))
* Datensätze einfügen
Append from D:\eprojekt\data\angebot1.dbf for not dele()
Fügt nur Datensätze ein, die nicht als gelöscht markiert sind
* Datenbank mit anderer Sortierung ausgeben
z.B. Kundendatenbank nach Kundennummer sortiert
sort on knr to D:\EPROJEKT\DATASICH\kundensortknr.dbf
* Lizenzen
https://seacloud.steurer.cc/d/bd3055b326/