ONLYOFFICE Version 8.0 beherrschen: Entdeckung der neuen Document Builder API-Formularmethoden

12 Februar 2024By Vlad

Mit der Veröffentlichung von Version 8.0 wurde eine Reihe neuer Document Builder API-Methoden eingeführt. In diesem Blogbeitrag werden wir uns mit zwei dieser Methoden beschäftigen und zeigen, wie sie in zwei neue ONLYOFFICE-Makros integriert werden können, um die Arbeit mit Formularvorlagen zu vereinfachen.

Mastering ONLYOFFICE version 8.0: Unveiling new Document Builder API form methods

Über die neuen Methoden

  • GetFormsData

Die Methode GetFormsData ruft ein Array ab, das die Formulardaten für alle Formularelemente im Dokument enthält.

expression.GetFormsData();

Die Variable expression vertritt die Klasse ApiDocument.

Mit dieser Methode können Sie gezielt Daten aus Formularen in einem Dokument abrufen und so Formulare auf der Grundlage ihrer Typen und Eigenschaften dynamisch ändern.

  • SetFormsData

Im Gegensatz zu der früheren Methode gibt SetFormsData keine Daten zurück. Sie ermöglicht es uns jedoch, den Wert der Formularelemente festzulegen.

expression.SetFormsData();

Die Variable expression vertritt die Klasse ApiDocument.

Die Methodenparameter werden im Format des FormData-Arrays

übergeben, in dem der Schlüssel und der Wert des Formulars angegeben sind. Zusätzlich gibt es die Möglichkeit, den Formulartyp anzugeben.

Mit dieser Methode können Sie auf einfache Weise Standardwerte für alle relevanten Formularelemente definieren und so die dynamische Dokumentenbearbeitung automatisieren.

Makro zum Ändern von Textfeldern: Implementierung von GetFormsData

Dieses nützliche Makro bietet die Möglichkeit, alle Textfelder in einem Dokument zu ändern. Es kann auch für Änderungen an anderen Formulartypen angepasst werden.

Zunächst zielen wir auf das aktive Dokument:

const oDocument = Api.GetDocument();

Dann wird ein Array(aForms) abgerufen, das alle Formularelemente des Dokuments enthält.

const aForms = oDocument.GetAllForms();

Danach sammeln wir Daten über alle Formulare im Dokument und speichern sie in der Variablen formsData:

const formsData = oDocument.GetFormsData();

Dann fügen wir eine Schleife hinzu, die jedes Formularelement im Array durchläuft:

for (let i = 0; i < aForms.length; i++) {
}

Wir prüfen, ob der Typ des aktuellen Formulars “text” ist. Wenn ja, werden in den folgenden Zeilen Änderungen an den Formularelementen vorgenommen:

if (formsData[i]["type"] == "text") {
  //aForms[i].SetBackgroundColor(205, 0, 0); // <---- Sets/Changes the Background Color of all the form elements.
  //aForms[i].SetBorderColor(205, 0, 0);       //<---- Unccomment if you want to set/change the border color for all the form elements.
  //aForms[i].SetPlaceholderText("Placeholder Text");       //<---- Unccomment if you want to set/change the Placeholder Text for all the form elements.
  //aForms[i].SetRequired(true);          //<---- Unccomment if you want to set/change the 'required' property for all the form elements.
  //aForms[i].SetTipText("Tip Text");       //<---- Unccomment if you want to set/change the Tip Text for all the form elements.
}

Hier wird jede Zeile mit einer Beschreibung der Aktion kommentiert, die sie ausführt.

Der gesamte Makrocode ist:

(function() {
  const oDocument = Api.GetDocument();
  const aForms = oDocument.GetAllForms();
  const formsData = oDocument.GetFormsData();

  for (let i = 0; i < aForms.length; i++) {
    if (formsData[i]["type"] == "text") {
      // Uncomment the following lines based on your preferences:
      // aForms[i].SetBackgroundColor(205, 0, 0); // Sets/Changes the Background Color of all the form elements.
      // aForms[i].SetBorderColor(205, 0, 0);     // Uncomment if you want to set/change the border color for all the form elements.
      // aForms[i].SetPlaceholderText("Placeholder Text"); // Uncomment if you want to set/change the Placeholder Text for all the form elements.
      // aForms[i].SetRequired(true);        // Uncomment if you want to set/change the 'required' property for all the form elements.
      // aForms[i].SetTipText("Tip Text");   // Uncomment if you want to set/change the Tip Text for all the form elements.
    }
  }
})();

Makro zum Festlegen der Standardwerte für Formulare: Implementierung von SetFormsData

Mit dem zweiten Makro können wir die Werte der Zielformulare einfach und nahtlos anpassen. Das Makro ist recht einfach und kann in wenigen Schritten ausgeführt werden.

Zuerst rufen wir das aktive Dokument ab:

const oDocument = Api.GetDocument();

Als Nächstes wenden wir die Methode SetFormsData an, wobei wir den Elementschlüssel und den gewünschten Standardwert in den Methodenparametern festlegen:

oDocument.SetFormsData([
  {key: "CompanyName", value: "OnlyOffice"}
]);

Der gesamte Makrocode ist:

The entire macro code is the following:
const oDocument = Api.GetDocument();
oDocument.SetFormsData([
  {key: "CompanyName", value: "OnlyOffice"}
]);

Wir hoffen, dass sich die vorgestellten Methoden und Makros für Sie als nützlich erweisen und den Dokumenten-Workflow rationalisieren. Makros sind leistungsstarke Werkzeuge, und unsere umfangreiche API-Bibliothek bietet eine Vielzahl von Möglichkeiten zur Automatisierung verschiedener Aufgaben.

Probieren Sie unsere API aus und erstellen Sie individuelle Makros, die die robusten Funktionen der Dokumentenverarbeitung nutzen. Melden Sie sich bei uns und teilen Sie uns Ihre Ideen mit. Wir freuen uns über offene Diskussionen und Zusammenarbeit. Viel Erfolg!