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ß
Durch eine Tabelle interieren um Werte auszulesen
Durch eine Tabelle interieren um Werte auszulesen
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Durch eine Tabelle interieren um Werte auszulesen
Der InstanceManager wäre eine Möglichkeit.
Du kannst aber auch eine rekursive Suche starten und die Ergebnisse in ein Array speichern lassen.
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);
Durch eine Tabelle interieren um Werte auszulesen
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.
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.
Durch eine Tabelle interieren um Werte auszulesen
Jetzt habe ich es verstanden, wunderbar, vielen Dank !!!!