nachdem es Deltra ja irgendwie nicht schafft eine Lösung für Angebotsrevisionen zu etablieren, das aber für uns extrem erleichternd wäre, habe ich mich mal über die Feiertage drangemacht einen Workaround zu erstellen mit dem bis zu 9 Revisionen machbar sind.
Vielleicht hat irgendwer ähnlichen Bedarf, deshalb möchte ich meinen Code hier gerne teilen!
Ich übernehme hier selbstverständlich keine Garantie für Funktion und Vollständigkeit, bei mir läuft es aber prima:
Bedarf:
Angebote mit Revisionsnummern:
z.B. Angebot 12345 >> Angebotrevision 12345-1 12345-2 usw.
Vorbereitung:
Nummernkreis der Angebote eine "0" anhängen: aus 12345 wird 123450
VL - Entwurf:
3 unsichtbare Variablen (dtInteger) anlegen: Var1 Var2 Var3
1 unsichtbares Label anlegen: Lab1
VL - Berechnung:
Neue Prozedur anlegen.
Hier wird ein Hinweisfenster beim Start der Druckvorlage generiert, mit dem Hinweis die AngebotsNr bei Bedarf anzupassen. Neue Angebote sind nun immer in 10-Schritten anzulegen, Die nächste freie Nummer wird empfohlen.
procedure ReportOnStartFirstPass;
begin
{Hinweis auf neue AG Nummer}
var1.value := ceil((AVX['M_ID'])/10)*10;
ShowMessage('Nächste freie Nummer für Angebot: '+ var1.value);
end;
end;
Prozedur "DetailBeforeGenerate" anpassen.
Hier wird nun die Ausgabe der Nummern und Texte angepasst.
Achtung! Hier das "DBText32." ggf. an eure Vorlage anpassen!!
DBText32.displayformat:= '#-0'; {<--- "DBText" anpassen auf Feld mit Angebotsnummer!!}
{Zusatztext bei Revision}
var2.value := AVX['M_ID']-((ceil((AVX['M_ID'])/10)*10)-10);
var3.value := (AVX['M_ID']- var2.value)/10;
if var2.value < 10 then begin
Lab1.visible := true;
Lab1.caption := 'Revision ' + var2.value + ' zu Angebot ' + var3.value +' - 0' ;
end else begin
Lab1.visible := false;
end;
Ergebnis:
Angebotsnumer 123453 wird nun wie folgt ausgegeben:
Angebotsnummer: "12345-3"
Lab1.caption enthält jetzt einen Text: "Revision 3 zu Angebot 12345-0"
Sonstiges:
Die Alte Vorlage sollte beibehalten werden, da Angebote VOR der Anderung mit der neuen Vorlage falsch angezeit werden!
Ich habe bei der alten Vorlage noch ein Hinweisfenster eingebaut, damit - zum Beispiel beim "kopieren&bearbeiten"nicht vergessen wird die Vorlage zu wechseln:
Ebenfalls neue Prozedur anlegen
procedure ReportOnStartFirstPass;
begin
{Hinweis auf neues Formular}
ShowMessage('ACHTUNG! Alte Vorlage!);
end;
end;
Ich hoffe dass evtl. der Eine oder Andere damit was anfangen kann. Kleiner Wermutstropfen: Das Hinweisfester poppt bei jedem Start der Vorlage auf, sollte hier wer eine Lösung finden: Gerne her damit!. Aber ich denke das ist verkraftbar, dafür sind jetzt Revisionen immer immer fortlaufend zu finden.
Wenn wer Fragen hat kann er mich gerne Anschreiben, wenn ich Zeit finde und helfen kann: gerne!
Guten Rutsch!
Steffen
[Dieser Beitrag wurde 4mal bearbeitet, zuletzt am 29.12.2020 um 17:28.]