Berechnetes Formularfeld in Adobe Acrobat ein- und ausschalten
Hallo Zusammen. Ich habe ein PDF-Formular erstellt, um ausgehend von einem Basispreis einen Nettopreis zu berechnen.
Zuerst werden vom Basispreis mehrere Rabatte abgezogen, um zum Nettopreis zu gelangen. Dabei ist die zweit unterste Position "Skonto". Dabei soll das Skonto automatisch berechnet werden. Dies habe ich auch geschafft. Gibt es aber eine Möglichkeit, das Skonto "auszuschalten" wenn es jemand nicht braucht. Die nachfolgenden Positionen aber wie gewohnt berechnet werden.
Für das Skonto verwende ich aktuell folgenden Code:
function kaufm(x){
var k = Math.round(x*20)/20; return k }
var fBasispreis_1 = this.getField("Basispreis_1");
var fLoserabatt_1 = this.getField("Loserabatt_1");
var fMengenrabatt_1 = this.getField("Mengenrabatt_1");
var fSpezialrabatt_1 = this.getField("Spezialrabatt_1");
var fAktionsrabatt_1 = this.getField("Aktionsrabatt_1");
var fDV_1 = this.getField("DV_1");
var fSkonto_1 = this.getField("Skonto_1");
fSkonto_1.value = kaufm(( fBasispreis_1.value - fLoserabatt_1.value - fMengenrabatt_1.value - fSpezialrabatt_1.value - fAktionsrabatt_1.value - fDV_1.value)*0.02);
Muss ich hier etwas ergänzen, damit das Skonto nur bei Bedarf hinzugezogen wird? Ich hoffe ihr versteht, was ich machen möchte. Ich habe das Formular zum besseren Verständnis als Bild in den Anhang getan.
Vielen Dank für eure Hilfe
Zuerst werden vom Basispreis mehrere Rabatte abgezogen, um zum Nettopreis zu gelangen. Dabei ist die zweit unterste Position "Skonto". Dabei soll das Skonto automatisch berechnet werden. Dies habe ich auch geschafft. Gibt es aber eine Möglichkeit, das Skonto "auszuschalten" wenn es jemand nicht braucht. Die nachfolgenden Positionen aber wie gewohnt berechnet werden.
Für das Skonto verwende ich aktuell folgenden Code:
function kaufm(x){
var k = Math.round(x*20)/20; return k }
var fBasispreis_1 = this.getField("Basispreis_1");
var fLoserabatt_1 = this.getField("Loserabatt_1");
var fMengenrabatt_1 = this.getField("Mengenrabatt_1");
var fSpezialrabatt_1 = this.getField("Spezialrabatt_1");
var fAktionsrabatt_1 = this.getField("Aktionsrabatt_1");
var fDV_1 = this.getField("DV_1");
var fSkonto_1 = this.getField("Skonto_1");
fSkonto_1.value = kaufm(( fBasispreis_1.value - fLoserabatt_1.value - fMengenrabatt_1.value - fSpezialrabatt_1.value - fAktionsrabatt_1.value - fDV_1.value)*0.02);
Muss ich hier etwas ergänzen, damit das Skonto nur bei Bedarf hinzugezogen wird? Ich hoffe ihr versteht, was ich machen möchte. Ich habe das Formular zum besseren Verständnis als Bild in den Anhang getan.
Vielen Dank für eure Hilfe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7966432344
Url: https://administrator.de/contentid/7966432344
Ausgedruckt am: 23.11.2024 um 22:11 Uhr
3 Kommentare
Neuester Kommentar
Hi.
Mit einer Variable, die Du auf true oder false setzt z. B.?
Mit einer Variable, die Du auf true oder false setzt z. B.?
var skonto_aktiv = true;
function kaufm(x) {
if (skonto_aktiv) {
var k = Math.round(x * 20) / 20;
return k;
} else {
return x;
}
}
var fBasispreis_1 = this.getField("Basispreis_1");
var fLoserabatt_1 = this.getField("Loserabatt_1");
var fMengenrabatt_1 = this.getField("Mengenrabatt_1");
var fSpezialrabatt_1 = this.getField("Spezialrabatt_1");
var fAktionsrabatt_1 = this.getField("Aktionsrabatt_1");
var fDV_1 = this.getField("DV_1");
var fSkonto_1 = this.getField("Skonto_1");
fSkonto_1.value = kaufm(
(fBasispreis_1.value -
fLoserabatt_1.value -
fMengenrabatt_1.value -
fSpezialrabatt_1.value -
fAktionsrabatt_1.value -
fDV_1.value) *
0.02,
);
Musst du doch gar nichts weiter machen, wenn einer kein Skonto nutzt bleibt Skonto bei ja bei 0.00 und unten kannst du weiterhin deine Formel benutzen denn wenn du 0.00 vom Gesamtpreis abziehst macht das ja nix aus .
Wenn du nur willst das das Feld nicht angezeigt wird wenn es 0 ist dann blende es einfach aus. Die Property heißt dafür display
oder wenn man es nur nicht drucken will, sonst aber angezeigt bleiben soll
Zum Abfragen von Werten kannst du ja dann if() nutzen
Die Referenz ist wie immer dein Freund:
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API ...
Gruß siddius
Wenn du nur willst das das Feld nicht angezeigt wird wenn es 0 ist dann blende es einfach aus. Die Property heißt dafür display
fSkonto_1.display = display.hidden;
fSkonto_1.display = display.noPrint;
if (fSkonto_1.value == 0) {
// hier passiert was wenn Wert = 0
}else{
// und hier wenn nicht
}
Die Referenz ist wie immer dein Freund:
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API ...
Gruß siddius