So führen Sie Berechnungen für bestimmte Felder in einem PDF-Formular mithilfe eines ONLYOFFICE-Makros durch
ONLYOFFICE-Makros sind leistungsstark und vielseitig und eignen sich daher nicht nur zur Automatisierung von Aufgaben in Dokumenten, Tabellen und Präsentationen, sondern auch in PDF-Formularen. In diesem Blogbeitrag zeigen wir Ihnen, wie Sie ein einzigartiges Makro erstellen und ausführen, das Berechnungen für bestimmte Felder in einem Formular durchführt. In diesem Beispiel hilft das Makro bei der Berechnung von Steuern und macht den Prozess schneller und genauer.
Erstellen des Makros
Abrufen aller Formulare aus dem Dokument
Zuerst rufen wir alle Felder aus dem Dokument ab:
// Get all forms from the document
const document = Api.GetDocument();
let forms = document.GetAllForms();
- Api.GetDocument() ruft das aktive Dokument ab.
- GetAllForms() ruft alle Formularfelder im Dokument ab.
Formularschlüssel definieren
Dann definieren wir die Formularschlüssel:
// Formkeys of input forms
var formkey1 = "Form1";
var formkey2 = "Form2";
var taxFormkey = "TaxForm";
// Formkeys of result forms
var sumResultKey = "SumResult";
var taxResultKey = "TaxResult";
- formkey1, formkey2 und taxFormkey speichern die Kennungen der Eingabefelder.
- sumResultKey und taxResultKey speichern die Kennungen der Ausgabefelder, in die die Ergebnisse eingefügt werden.
Abrufen von Formularwerten
Die Funktion getFormValue durchläuft Formulare, um ein Formular zu finden, das mit formKey übereinstimmt:
// Function to get the value of a form by its key
function getFormValue(formKey) {
for (let form of forms) {
if (form.GetFormKey() === formKey) {
return parseFloat(form.GetText()) || 0;
}
}
}
- GetText() ruft den Textwert des Formulars ab.
- parseFloat() wandelt den Text in eine Zahl um.
Wenn die Konvertierung fehlschlägt, wird standardmäßig 0 verwendet, um Berechnungsfehler zu vermeiden.
Einfügen von Werten in Formulare
Die Funktion setFormValue sucht nach einem Formularfeld, das mit formKey übereinstimmt. Die Methode SetText() aktualisiert das Feld mit einem formatierten numerischen Wert (2 Dezimalstellen).
// Function to set the value of a result form
function setFormValue(formKey, value) {
for (let form of forms) {
if (form.GetFormKey() === formKey) {
form.SetText(value.toFixed(2));
}
}
}
Hauptberechnung
Innerhalb der Hauptberechnungsfunktion führt man Folgendes aus:
- Ruft Benutzereingabewerte aus Formularfeldern ab.
- Berechnet die Summe aus input1 und input2.
- Berechnet den Steuerbetrag als Prozentsatz der Summe.
- Ruft setFormValue() auf, um die Ergebnisse in die entsprechenden Felder einzufügen.
// Main calculation function
function calculateAndInsert() {
let input1 = getFormValue(formkey1);
let input2 = getFormValue(formkey2);
let taxInput = getFormValue(taxFormkey);
// Perform calculations
var sum = parseFloat(input1) + parseFloat(input2);
var tax = sum * taxInput / 100; // % tax
// Insert results
setFormValue(sumResultKey, sum);
setFormValue(taxResultKey, tax);
}
Der gesamte Makrocode lautet wie folgt:
(function () {
// Get all forms from the document
const document = Api.GetDocument();
let forms = document.GetAllForms();
// Formkeys of input forms
var formkey1 = "Form1";
var formkey2 = "Form2";
var taxFormkey = "TaxForm";
// Formkeys of result forms
var sumResultKey = "SumResult";
var taxResultKey = "TaxResult";
// Function to get the value of a form by its key
function getFormValue(formKey) {
for (let form of forms) {
if (form.GetFormKey() === formKey) {
return parseFloat(form.GetText()) || 0;
}
}
}
// Function to set the value of a result form
function setFormValue(formKey, value) {
for (let form of forms) {
if (form.GetFormKey() === formKey) {
form.SetText(value.toFixed(2));
}
}
}
// Main calculation function
function calculateAndInsert() {
let input1 = getFormValue(formkey1);
let input2 = getFormValue(formkey2);
let taxInput = getFormValue(taxFormkey);
// Perform calculations
var sum = parseFloat(input1) + parseFloat(input2);
var tax = sum * taxInput / 100; // % tax
// Insert results
setFormValue(sumResultKey, sum);
setFormValue(taxResultKey, tax);
}
// Call the calculation function
calculateAndInsert();
})();
Lassen Sie uns nun das Makro ausführen und sehen, wie es funktioniert!
Bei ONLYOFFICE sind wir bestrebt, unseren Benutzern vielseitige, auf ihre Bedürfnisse zugeschnittene Tools bereitzustellen. Makros sind eine leistungsstarke Ergänzung Ihres Werkzeugkastens, und wir hoffen, dass dieses für Sie von Nutzen sein wird.
Wir empfehlen Ihnen außerdem, unsere umfangreiche Bibliothek mit API-Methoden zu erkunden und eigene Makros zu erstellen. Wenn Sie Makros oder Ideen haben, die Sie teilen möchten, melden Sie sich gerne bei uns – wir sind immer offen für Vorschläge und Zusammenarbeit. Viel Erfolg bei Ihren Erkundungsvorhaben!
Erstellen Sie Ihr kostenloses ONLYOFFICE-Konto
Öffnen und bearbeiten Sie gemeinsam Dokumente, Tabellen, Folien, Formulare und PDF-Dateien online.