JavaScript-Beispiele

Anhand dieser Beispiele werden die in dieser Skriptumgebung unterstützten Eigenschaften und Methoden erläutert.

Referenzieren von Objekten

Diese Beispiele erklären, wie auf ein Objekt verwiesen werden kann.

Achten Sie beim Zugriff auf eine bestimmte Instanz eines Objekts auf die Anzahl der Vorkommnisse des Objekts im Speicherort des Skripts. Das Skript gibt das Objekt mit derselben Anzahl von Vorkommnissen zurück wie das Objekt im Speicherort des Skripts. Es sind zum Beispiel drei Schaltflächen mit demselben Namen (Taste1[0], Taste1[1] und Taste1[2]) und drei Textfelder mit demselben Namen (TF1[0], TF1[1] und TF1[2]) vorhanden. Wenn das Skript der Schaltfläche1[2]xfa.host.messageBox(TF1.rawValue) ist, ist das ErgebnisTF1[2].rawValue und nicht TF1[0].rawValue.

Skripten

Zugreifen auf die erste Instanz eines Textfelds

// Access a sibling field using the field name. 
// Access the first instance of TextField1.  
TextField1.rawValue = "Hello";

Zugreifen auf die erste Instanz eines Textfelds

// Access the first instance of TextField1. When scripting with JavaScript, use 
// xfa.resolveNode to start the search at the top and move down the form  
// hierarchy. 
xfa.resolveNode("TextField1").rawValue = "Hello"; 
xfa.resolveNode("TextField1[0]").rawValue = "Hello";

Zugreifen auf ein Feld mit Akzessoren

// When scripting with JavaScript, use the resolveNode() method to access a 
// field with a SOM expression that contains a # or [] operator. When searching 
// with this.resolveNode, the search starts at the current object and moves up 
// the form hierarchy.  
this.resolveNode("Subform2[1].NumericField4").rawValue = 25;

Zugreifen auf ein Teilformular mit Indexnummer

// Access a subform with an index number. When using xfa.resolveNode,the search 
// starts at the top of the form hierarchy and moves down.  
var nIndex = 2; 
var sSOM = "Subform2[" + nIndex + "]"; 
var oSubform = xfa.resolveNode(sSOM); 
oSubform.NumericField4.rawValue = "25";

Zugreifen auf eine Feldeigenschaft

// Access a field property using a property name and value. 
// Change the field properties of a specific subform. 
// Use the [] operator to access an object's property. 
var sProperty = "access"; 
var sValue = "readOnly"; 
 
// First, get the subform nodes. 
    var oNodes = Subform2.nodes; 
    var nNodesLength = oNodes.length; 
 
    // Loop through the subform's nodes and look for fields. 
    for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount ++) { 
        // Set the field property. 
        if (oNodes.item(nNodeCount).className == "field") { 
            oNodes.item(nNodeCount)[sProperty] = sValue; 
        } 
    }

Zählen der in einem Dokument enthaltenen Textfelder

// Count the number of text fields in a document.  
// Get the field containers from each page. 
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
 
    var oFields = xfa.layout.pageContent(nPageCount, "field"); 
    var nNodesLength = oFields.length; 
    var nCount = 0; 
 
    for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
 
        if (oFields.item(nNodeCount).ui.oneOfChild.className == "textEdit") { 
            nCount++; 
        } 
    } 
    TextField1.rawValue = nCount; 
}

Zugreifen auf Felder mit Hilfe von Teilobjektnamen

// Access fields using partial object names. 
// Get the field containers from each page. 
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
 
    var oFields = xfa.layout.pageContent(nPageCount, "field"); 
    var nNodesLength = oFields.length; 
 
    for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
        if (oFields.item(nNodeCount).name.substr(0,2) == "Te") { 
            xfa.host.messageBox(oFields.item(nNodeCount).name); 
        } 
    } 
}

Zugreifen auf einen Auswahllistenwert

// Use the newText or prevText property to access the choice list value before 
// or after the value changed. 
// Trigger the script on a change event. 
TextField1.rawValue = xfa.event.prevText; 
TextField2.rawValue = xfa.event.newText;

Zugreifen auf ein Feld in einem Teilformular

// Access a field nested inside a sibling subform by prefixing the field name 
// with its parent name. 
Subform2.TextField3.rawValue = "Hello";

Zugreifen auf Felder in einem Teilformular

// Access the first-level fields nested inside a subform. 
Subform1.resoveNodes("#field[*]")

Abrufen von Feldern der einzelnen Seiten

// Get the field containers from each page. 
for (var i = 0; i < xfa.host.numPages; i++) { 
 
var oFields = xfa.layout.pageContent(i, "field"); 
var nodesLength = oFields.length; 
 
// Set the access type. 
for (var j = 0; j < nodesLength; j++) { 
 
        var oItem = oFields.item(j); 
 
        if (oItem != this) { 
 
        oItem.access = "readOnly"; 
        } 
    } 
}

Erstellen von Nodes im Datenmodell

Dieses Beispiel erklärt, wie eine neue Datenmodell-Node erstellt oder geklont wird.

Skript

Erstellen von Daten-Nodes

// Display the number of child nodes under the rootNode (xfa.record). 
// rootNode is the data file's root node. 
xfa.host.messageBox("Initial number of nodes under rootNode: " + xfa.record.nodes.length); 
// Create a node of type dataGroup. 
var oGroupNode = xfa.datasets.createNode("dataGroup", "NewGroupNode"); 
 
// Append the data group node to an existing data model node. 
xfa.record.nodes.append(oGroupNode); 
 
// Display the number of child nodes under rootNode. 
xfa.host.messageBox("Number of nodes under rootNode after first append: " + xfa.record.nodes.length); 
 
// Create a node of type dataValue. 
var oValueNode = xfa.datasets.createNode("dataValue", "NewValueNode"); 
 
// Set the value of the new data value node. 
oValueNode.value = "The item value"; 
 
// Append the data value node to the data group created above. 
xfa.record.NewGroupNode.nodes.append(oValueNode); 
 
// Get the value from the data model. 
TextField1.rawValue = xfa.record.NewGroupNode.NewValueNode.value; 
 
// Append a cloned data group node. 
xfa.record.nodes.append(xfa.record.NewGroupNode.clone(1)); 
 
// Display the number of child nodes under rootNode. 
xfa.host.messageBox("Number of nodes under rootNode after appending clone: " + xfa.record.nodes.length); 
 
// Set the value of the new data value node. 
xfa.resolveNode("xfa.record.NewGroupNode[1].NewValueNode").value = "The clone value"; 
 
// Get the value of the cloned data value node. 
TextField2.rawValue = xfa.resolveNode("xfa.record.NewGroupNode[1].NewValueNode").value; 
 
// Remove the cloned data group from the node list. 
var oRemoveNode = xfa.resolveNode("xfa.record.NewGroupNode[1]"); 
xfa.record.nodes.remove(oRemoveNode); 
 
// Display the number of child nodes under rootNode. 
xfa.host.messageBox("Number of nodes under rootNode once clone node removed: " + xfa.record.nodes.length);

Bearbeiten von Instanzen eines Teilformulars

Diese Beispiele erklären, wie zur Laufzeit Instanzen eines Teilformulars hinzugefügt oder entfernt werden.

Ändern Sie die Seiten eines Formulars mit festem Layout mit dem Instanzmanager. Jede Seite ist ein Teilformular. Wird ein Teilformular hinzugefügt oder entfernt, ist es so, als ob eine Seite hinzugefügt oder entfernt werden würde. Sie können jedoch das Layout eines Formulars mit festem Layout nicht zur Laufzeit ändern. Sie können mit dem form:ready-Ereignis Instanzen hinzufügen und löschen. Ist das Skript jedoch ein Laufzeitereignis wie click, geschieht nichts.

Skripten

Hinzufügen von Instanzen durch Aufrufen des Instanzmanagers

// Add an instance of a subform by using the underscore syntax to invoke the 
// instance manager directly. 
// Forms rendered in a web browser do not support the underscore syntax. 
// However, the underscore syntax is supported if the script runs at the 
// server. 
_Subform2.addInstance(1);

Hinzufügen von Instanzen durch Aufrufen der instanceManager-Eigenschaft

// Add an instance of a subform by invoking the instanceManager property. Be 
// careful to ensure that adding a subform will not violate the max occur 
// value. 
Subform2.instanceManager.addInstance(1);

Entfernen von Instanzen

// Remove an instance of a subform. Set the min occur value only if removing an 
// instance will violate it. For example, set the min occur to 0 if you want to 
// remove the last, or the only, instance of a subform.  
// Forms rendered in a web browser do not support the underscore syntax. 
// However, the underscore syntax is supported if the script runs at the 
// server.  
Subform2.occur.min = "0"; 
_Subform2.removeInstance(0);

Entfernen des übergeordneten Teilformulars

// Remove the parent subform. 
parent.occur.min = "0"; 
parent.instanceManager.removeInstance(parent.index);

Einstellen der Anzahl der Instanzen

// Set the number of instances of a subform. 
var oSubform = xfa.resolveNode("Subform2"); 
oSubform.instanceManager.setInstances(5);

Einfügen einer neuen Teilformularinstanz

// Insert a new subform instance. This script will not work with a static form. 
// The script is invoked by a button, named Insert Subform, that is nested 
// inside a repeating subform. The new subform is inserted below the current 
// subform.  
var oSubform = this.resolveNode("Subform2"); 
var oNewInstance = oSubform.instanceManager.addInstance(1); 
var nIndexFrom = oNewInstance.index; 
var nIndexTo = this.parent.index + 1; 
// Invoke the instanceManager to insert the subform below the current one. 
oSubform.instanceManager.moveInstance(nIndexFrom, nIndexTo);

Hinzufügen und Entfernen von Teilformularen

// Invoke the instance manager to add and remove the comments subform. 
if (fComments.value == "0") { 
// In this example, fComments is a document variable used as a flag. 
// The fComments variable equals 1 when the comments subform is displayed. 
_comments.setInstance(1);  
// Add the comments subform. Change the button's caption. 
this.resolveNode("caption.value.#text").value = "Clear Comments";  
// Set the flag value. 
fComments.value = "1";  
} 
else { 
// Remove the comments subform. 
_comments.setInstance(0);  
// Change the button's caption. 
this.resolveNode("caption.value.#text").value = "Add Comments";  
// Reset the flag value. 
fComments.value = "0"; 
}

Abrufen oder Einstellen von Objektwerten

Diese Beispiele erklären, wie ein Wert für ein Objekt abgerufen oder eingestellt wird.

Verwendet

Skripten

Arbeiten mit rawValue

// Use the rawValue property to set and get a field's raw value. 
TextField1.rawValue = "K1V1W3"; // Set the field's raw value. 
TextField2.rawValue = TextField1.rawValue // Get the field's raw value. 

Arbeiten mit value

// Use the value property to set and get the field's raw value. 
TextField1.rawValue = "k1V1W3"; 
TextField2.rawValue = TextField1.value.oneOfChild.value

Arbeiten mit formattedValue

// Use the formattedValue property to set and get the field's formatted value. 
// Use the value property to set and get an object's value (picture). 
TextField1.rawValue = "K1V1W3"; // Set the field's raw value. 
TextField1.format.picture.value = "A9A 9A9"; // Set the field's display picture format. 
TextField2.rawValue = TextField1.formattedValue; // Get the field's formatted value. 

Einstellen von Datenobjektwerten

// Use the value property to set and get a data object's value. 
// In this script, groupNode is a data group and addressL1 is a data value in 
// the data file. 
TextField1.rawValue = xfa.record.groupNode.address.line1.value;

Einstellen von Dokumentvariablenwerten

// Use the value property to set and get the document variable's value. 
TextField1.rawValue = docVar.value;

Arbeiten mit Seitenzahlen und Seitenanzahlen

Diese Beispiele erklären, wie der Host und Layoutmodelle für das Arbeiten mit Seitenzahlen und Seitenanzahlen verwendet werden.

Der Host und die Layoutmodelle besitzen verschiedene Eigenschaften und Methoden, die sich für die Arbeit mit Seitenzahlen und Seitenanzahlen eignen. Die zu verwendenden Eigenschaften und Methoden hängen davon ab, was das Skript macht und wann es ausgeführt wird.

Viele der Hosteigenschaften und -methoden sind nicht auf dem Server verfügbar. Verwenden Sie die Hosteigenschaften und -methoden zum Einstellen oder Abrufen von Seitenzahlen zur Laufzeit.

Keine der Layoutmethoden legt die Seitenzahl fest. Verwenden Sie die Layoutmethoden zum Abrufen der aktuellen Seite auf layout:ready oder zur Anzeige der Seitenzahlen am Seitenende. Die Seitenzahl wird angezeigt, wenn Sie auf einem Client ein Formular öffnen.

Skripten

Abrufen von Seitenzahlen

// Use the page layout methods to get the current page number. 
TextField1.rawValue = xfa.layout.page(this); // 1-based. 
TextField2.rawValue = xfa.layout.absPage(this); // 0-based. 

Abrufen der Seitenanzahl mit der pageCount-Methode

// Use the layout pageCount methods to get the number of pages in a document. 
TextField1.rawValue = xfa.layout.pageCount(); // Get the logical number of pages. 
TextField2.rawValue = xfa.layout.absPageCount(); // Get the physical number of pages. 

Formatieren der Paginierung

// Use the layout page and pageCount methods to format the pagination. 
TextField1.rawValue = "Page " + xfa.layout.page(this) + " of " + xfa.layout.pageCount();

Abrufen und Einstellen der aktuellen Seitenzahl

// Use the host currentPage property to get and set the current page number at // run time. 
// This script cannot be used during a layout:ready, form:ready, or initialize // event. However, it will work if the script is on a button. 
xfa.host.currentPage = 1; // Go to page 2 (0-based). 

Abrufen der Seitenanzahl mit der numPages-Eigenschaft

// Use the host numPages property to get the number of pages in a document. 
TextField1.rawValue = xfa.host.numPages; // Get the number of pages. 

Navigieren mit „Seite nach unten“ in einem Dokument

// Use the host pageDown() method to navigate through a document. 
xfa.host.pageDown(); // Go to the next page. 

Navigieren mit „Seite nach oben“ in einem Dokument

// Use the host pageUp() method to navigate through a document. 
xfa.host.pageUp(); // Go to the previous page. 

Verketten von Datenwerten

Dieses Beispiel erklärt, wie Datenwerte zu einem Adressblock verkettet werden und sichergestellt wird, dass keine leeren Zeilen vorhanden sind.

Verwendet

Eigenschaften

Methoden

multiLine

oneOfChild

rawValue

value

record

Skript

Verketten von Datenwerten

// Get the values from the data model. 
var sName = xfa.record.groupNode.address.line1.value; 
var sPostbox = xfa.record.groupNode.address.line2.value; 
var sStreet = xfa.record.groupNode.address.line3.value; 
var sCity = xfa.record.groupNode.address.line4.value; 
var sRegion = xfa.record.groupNode.address.line5.value; 
var sCountry = xfa.record.groupNode.address.line6.value; 
var sPostcode = xfa.record.groupNode.address.line7.value; 
var addressArray = new Array(sName,sPostbox,sStreet,sCity,sRegion,sCountry,sPostcode); 
 
var sAddressBlock = ""; 
 
// Don't display the postbox if the value is not provided. 
if (addressArray[1] == null) { 
        sAddressBlock = addressArray[0] + "\n" + addressArray[2] + "\n" + addressArray[3] + "\n"; 
} else { 
        sAddressBlock = addressArray[0] + "\n" + addressArray[1] + "\n" + addressArray[3] + "\n"; 
} 
 
// Do not display the region if the value is not provided.  
if (addressArray[4] == null) { 
sAddressBlock = sAddressBlock + addressArray[5] + " " + addressArray[6]; 
} else { 
sAddressBlock = sAddressBlock + addressArray[4] + ", " + addressArray[5] + " " + addressArray[6]; 
} 
TextField2.rawValue = sAddressBlock; 
// Make sure the field is set to display a multiple line value. To set the 
// multiLine property programmatically, add the following line: 
        TextField2.ui.oneOfChild.multiLine = "1";

Berechnen von Summen

Dieses Beispiel erklärt, wie die Summen berechnet werden.

Verwendet

Eigenschaften

Methoden

length

rawValue

resolveNodes

Skript

Berechnen von Summen

// Access a field in a repeating subform by looping through the node list. 
var oFields = xfa.resolveNodes("Subform2[*].NumericField4"); 
var nNodesLength = oFields.length; 
var nSum = 0; 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
    nSum += oFields.item(nNodeCount).rawValue; 
} 
TextField1.rawValue = nSum;

Ändern der Hintergrundfarbe

Diese Beispiele erklären, wie die Hintergrundfarbe eines Teilformulars oder Feldes geändert wird.

Sie können in einem Formular mit flexiblem Layout die Hintergrundfarbe des gesamtes Felds, einschließlich des Beschriftungs- und Feldbereichs zur Laufzeit ändern. In einem Formular mit festem Layout können Sie jedoch nur die Hintergrundfarbe des Feldbereichs zur Laufzeit ändern.

Skripten

Ändern der Hintergrundfarbe eines Teilformulars

// Alternate the background color of a repeating subform. 
var oNodes = xfa.resolveNodes("Subform2[*]"); 
var nNodesLength = oNodes.length; 
 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
    if (oNodes.item(nNodeCount).index%2 != 0) { 
        oNodes.item(nNodeCount).border.fill.color.value = "200,200,250"; 
    } else { 
        oNodes.item(nNodeCount).border.fill.color.value = "200,150,250"; 
    } 
}

Ändern der Hintergrundfarbe eines Felds

// Alternate the background color of the NumericField4 field. 
// Before running this script, set a background color or set the 
// border.fill.presence property to visible. 
var oNodes = xfa.resolveNodes("Subform2[*]"); 
var nNodesLength = oNodes.length; 
var sFillColor; 
 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
 
    if (oNodes.item(nNodeCount).index%2 != 0) { 
        sFillColor = "200,200,250"; 
 
    } else { 
        sFillColor = "200,150,250"; 
 
    } 
    oNodes.item(nNodeCount).NumericField4.fillColor = sFillColor; 
}

Ändern der Hintergrundfarbe von Zeilen in einem Teilformular

// Reset the fields of the current subform. 
var dString = "xfa.form.form1.dtls[" + this.parent.index + "]"; 
var oDetails = xfa.form.resolveNode(dString); 
var sDtlFields; 
 
// Build the string of field names to reset. 
for (var i = 0; i < oDetails.nodes.length; i++) { 
    sDtlFields = sDtlFields + "," + dString + "." + oDetails.nodes.item(i).name; 
} 
// Pass the string variable as a parameter. 
xfa.host.resetData(sDtlFields); OR  
// Alternate the background color of the repeating rows. 
if (this.index%2 != 0)  this.border.fill.color.value = "255,255,255"; else  this.border.fill.color.value = "201,201,146";

Ausfüllen von Dropdown-Listen

Diese Beispiele erklären, wie Listenelemente einer Dropdown-Liste hinzugefügt oder entfernt werden.

Speichern Sie die Elementliste, bevor Sie eine Dropdown-Liste zur Laufzeit ausfüllen, da anderenfalls die Elemente verloren gehen. In den Daten wird nur der Wert gespeichert.

Skripten

Ausfüllen von Dropdown-Listen aus einem Webdienst

// Populate the drop-down list with values from a web service. 
// The web service used in this example is fictional.  
SOAP.wireDump = false; 
var oListURL = "http://www.webservice.net/wsdl/query.wsdl"; 
var e; 
try 
{ 
    xfa.host.messageBox("Starting list retrieval."); 
     
    var service = SOAP.connect(oListURL); 
 
    if(typeof service != "object") { 
        xfa.host.messageBox("Couldn't get List object."); 
    } 
    if(service.getAllServiceNames == "undefined") { 
        xfa.host.messageBox("Couldn't get getAllServiceNames Call."); 
        } 
     
    // Start the query 
    var oItems = service.getAllServiceNames(); 
    if(oItems == null) { 
        xfa.host.messageBox("List empty."); 
        } 
var nCount = 0; 
    var nLimit = 10; 
     
    for(var nItemCount in oItems)  
    { 
        for(var nItemNode in oItems[nItemCount]) 
        { 
            if (nItemNode == "name") 
                DropDownList1.addItem(oItems[nItemCount][nItemNode]); 
        } 
        if (++nCount >= nLimit) 
            break; 
    } 
} 
catch(e) 
{ 
    xfa.host.messageBox("Problem with list Call: " + e); 
}

Löschen von Dropdown-Listen

// Clear the items in a drop-down list. 
DropDownList1.clearItems();

Ausfüllen von Dropdown-Listen aus einer Datendatei

// Populate the drop-down list with values from a data file. 
var oItems = xfa.resolveNode("xfa.record.groupNode.list"); 
var nItemsLength = oItems.nodes.length; 
 
for (var nItemCount = 0; nItemCount < nItemsLength; nItemCount++) { 
    DropDownList1.addItem(oItems.nodes.item(nItemCount).value); 
} 
DropDownList1.rawValue = "Second item in list";

Speichern der Werte einer Dropdown-Liste in einem anderen Feld

// Access the items in a drop-down list box and save their values in a separate 
// field. 
var oItems = xfa.resolveNode("DropDownList1.#items"); 
var nItemsLength = oItems.nodes.length; 
 
for (nItemCount = 0; nItemCount < nItemsLength; nItemCount++){ 
 
    if (TextField2.rawValue == null) { 
        TextField2.rawValue = oItems.nodes.item(nItemCount).value; 
    } else { 
        TextField2.rawValue = TextField2.rawValue + "\n" + oItems.nodes.item(nItemCount).value; 
    } 
}

Zugreifen auf den Wert einer Dropdown-Liste mit der Eigenschaft newText oder prevText

// Use the newText or prevText properties to access a drop-down list value 
// before or after the value changes. 
// Execute the script on a change event. 
TextField1.rawValue = xfa.event.prevText; 
TextField2.rawValue = xfa.event.newText;

Speichern von Formularen

Diese Beispiele erklären, wie Daten aus einem Formular exportiert werden und das Formular gespeichert wird.

Verwendet

Eigenschaften

Methoden

target

exportData

Skripten

Exportieren von Formulardaten ohne Angabe eines Dateinamens

// Export a form's data without specifying a file name. The end user is 
// prompted to provide the file name. 
xfa.host.exportData();      // Will generate data in XDP format. 
xfa.host.exportData("", 0); // Will generate data in XML format. 

Exportieren von Formulardaten unter Angabe eines Dateinamens

// If you specify a file name, the script must run on a certified form. 
xfa.host.exportData("filename.xdp");    // Will generate data in XDP format. 
xfa.host.exportData("filename.xml", 0); // Will generate data in XML format. 

Speichern von Formularen

// Saving the form is done at the application level, so you need to invoke the 
// Acrobat app model. 
App.executeMenuItem("SaveAs"); // The end user will be prompted to specify a 
// file name.  
// However, you must save the form silently if the form needs to be certified 
// and the certificate must be trusted for privileged JavaScript. 
var mydoc = event.target; 
mydoc.saveAs();

Anzeigen oder Ausblenden von Objekten

Dieses Beispiel erklärt, wie ein Objekt angezeigt oder ausgeblendet wird. Ist die Schaltfläche „Drucken“ ausgeblendet, kann der Benutzer das Formular nicht ausdrucken.

Das prePrint-Ereignis wird sofort ausgelöst, bevor das Formular zum Drucker geschickt wird. Ebenso wird das postPrint-Ereignis sofort nach Ausdruck des Formulars ausgelöst.

Verwendet

Eigenschaften

presence

relevant

Skripten

Anzeigen oder Ausblenden von Feldern

// If a field is visible, make it invisible and vice versa. 
if(Field1.presence == "visible") 
{ 
    Field1.presence = "invisible"; 
} 
else 
{ 
    Field1.presence = "visible"; 
}

Sichtbarmachen einer Schaltfläche, aber nichtdruckend

// Set a button to be visible but non-printing at design time.  
Button1.relevant="-print"

Arbeiten mit Optionsfeldern und Kontrollkästchen

Diese Beispiele erklären, wie Optionsfelder und Kontrollkästchen ausgewählt und gelöscht werden.

Verwendet

Eigenschaften

Methoden

rawValue

messageBox

resolveNodes

Skripten

Auswählen von Optionsfeldern

// Select the first radio button. 
RadioButtonList.rawValue = '1'; 
xfa.host.messageBox('Value of RadioButtonList: ' + RadioButtonList.rawValue); 
 
// Select the second radio button. 
RadioButtonList.rawValue = '2'; 
xfa.host.messageBox('Value of RadioButtonList: ' + RadioButtonList.rawValue);

Zugreifen auf Optionsfelder

// Access the radio buttons. 
RadioButtonList.resolveNodes("#field[*]")

Löschen von Optionsfeldern

// Clear a RadioButtonList value. Any invalid value will clear the list. 
RadioButtonList.rawValue = '3'; 
xfa.host.messageBox('Value of RadioButtonList: ' + RadioButtonList.rawValue);

Auswählen von Kontrollkästchen

// Select a check box. 
CheckBox1.rawValue = 1; 
xfa.host.messageBox('Value of checkbox: ' + CheckBox1.rawValue);

Deaktivieren von Kontrollkästchen

// Deselect a check box. 
CheckBox1.rawValue = 0; 
xfa.host.messageBox('Value of checkbox: ' + CheckBox1.rawValue);

Ermitteln, ob sich ein Formular geändert hat

Dieses Beispiel erklärt, wie festgestellt werden kann, ob sich ein Formular geändert hat.

Verwendet

Eigenschaften

Methoden

rawValue

messageBox

saveXML

Skript

Ermitteln, ob sich ein Formular geändert hat

// Save a copy of the original XML file. 
var sOriginalXML = xfa.data.saveXML(); 
 
// Change the form data. 
TextField1.rawValue = "changed"; 
 
// Determine whether the form data has changed. 
if(sOriginalXML == xfa.data.saveXML()) 
{ 
    xfa.host.messageBox("Form has not changed."); 
} 
else 
{ 
        xfa.host.messageBox("Form has changed."); 
}

Deaktivieren aller Formularfelder

Dieses Beispiel erklärt, wie alle Felder eines Formulars deaktiviert werden.

Verwendet

Skript

Deaktivieren aller Formularfelder

// Get the field containers from each page. 
for (var nPageCount = 0; nPageCount < xfa.host.numPages; nPageCount++) { 
var oFields = xfa.layout.pageContent(nPageCount, "field"); 
var nNodesLength = oFields.length; 
 
// Set the field property. 
for (var nNodeCount = 0; nNodeCount < nNodesLength; nNodeCount++) { 
oFields.item(nNodeCount).access = "readOnly"; 
} 
}