Durch eine Tabelle interieren um Werte auszulesen

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
zico
Beiträge: 12
Registriert: 29.07.2010, 14:24

Durch eine Tabelle interieren um Werte auszulesen

Beitrag von zico » 28.10.2011, 13:34

Hallo,

ich kämpfe mit einer Funktion die mir nicht wirklich schlüssig ist.

Wie lese ich aus einer Tabelle Werte einzelner Zeilen aus, konkret möchte ich hier alle Emailadressen dieser Tabelle auslesen um sie später als Empfänger beim Erzeugen der Email zu verwenden.

Name    -     Teilnehmerflag    -     Emailadresse

Meier    -               X                -     test.meier@test.de
Mueller    -            X                -     test.mueller@test.de
Schulze    -           X                -     test.meier@test.de


Muss hier hier über den InstanceManager gehen ?

(Datenstruktur Siehe Screenshots)

Wie bekomme ich die 3 Emailadressen ?

Danke und Gruß
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
radzmar
Beiträge: 962
Registriert: 26.10.2011, 10:18

Durch eine Tabelle interieren um Werte auszulesen

Beitrag von radzmar » 28.10.2011, 14:06

Der InstanceManager wäre eine Möglichkeit.
Du kannst aber auch eine rekursive Suche starten und die Ergebnisse in ein Array speichern lassen.

Code: Alles auswählen

// Rekursive Funktion
function findNodes(vNode, nEmails) {
    if (vNode.className === "field" && vNode.ui.oneOfChild.className === "textEdit" && vNode.name === "PART_E_MAIL") {
		nEmails.push(vNode.value.oneOfChild.value);
    }
    for (var i = 0; i < vNode.nodes.length; i++) {
        findNodes(vNode.nodes.item(i), nEmails);
    }
}
// Array für EMail-Adressen
var nEmails = [];
// Funktion aufrufen, Suche bei Node "xfa.form" starten
findNodes(xfa.form, nEmails);
// Array als String speichern 
var ReceiverList = nEmails.join("; ");

xfa.host.messageBox(ReceiverList);

zico
Beiträge: 12
Registriert: 29.07.2010, 14:24

Durch eine Tabelle interieren um Werte auszulesen

Beitrag von zico » 28.10.2011, 15:49

Danke für die Idee !

Ich habe hier folgenden Code angepasst an meine Struktur aus dem SAP Press Buch, das verstehe ich nicht ganz:

var theFields = xfa.resolveNodes("xfa.datasets.data.data.PagePartners_1.SubformParticipantsInternal.IF_ACT_PART_INT.DATA.PART_E_MAIL");
var aString = "";
for ( var i = 0 ; i < theFields.length ; i++ ) {
    aString = aString + theFields.item(i).value;
    if ( i<theFields.length-1) { aString = aString + ", "; }

//Accessing form fields
var theFields = xfa.resolveNodes("xfa.form.data.PagePartners_1.SubformParticipantsInternal.IF_ACT_PART_INT.DATA.PART_E_MAIL");
aString = aString + "\n";
for ( var i = 0 ; i < theFields.length ; i++ ) {
    aString = aString + theFields.item(i).rawValue;
    if ( i<theFields.length-1) { aString = aString + ", ";}
    }

Ist das eine rekursive Suche ?

Ich erhalte hier bei der ersten Suche theFields.length = 0 , bei der 2. nur den ersten Wert der Tabelle.



zico
Beiträge: 12
Registriert: 29.07.2010, 14:24

Durch eine Tabelle interieren um Werte auszulesen

Beitrag von zico » 28.10.2011, 16:04

Jetzt habe ich es verstanden, wunderbar, vielen Dank !!!!



Antworten