Seite 1 von 2

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 27.05.2014, 13:29
von tobias_d
Hallo zusammen,
ich habe mich schon durch einige interessante Beiträge und Diskussionen gelesen. Leider habe ich bisher noch keine passende, oder für mich verständliche, Hilfestellung für mein Problem gefunden. Auch wenn ich denke, dass es wahrscheinlich relativ trivial zu lösen ist und vermutlich auch der ein oder andere schon mal das gleiche Problem hatte, ist es für mich als vollkommener Laie im Moment eine Sackgasse. Deshalb hoffe ich, dass ihr mir weiterhelfen könnt!
Mein Problem:
Ich habe eine dynamische Tabelle mit zwei Spalten, in die Abteilungen eingetragen werden sollen. In die eine Spalte kommt die Abkürzung der Abteilung, in die andere der vollständige Name der Abteilung. Nun habe ich eine dynamische Tabelle angelegt, in die Stakeholder eingetragen werden. Unter anderem ist dort für den Stakeholder eine Dropdown-Liste hinterlegt, wo die Abkürzung, der für ihn passenden Abteilung ausgewählt werden soll. Ich muss also meine Dropdown-Liste mit der Spalte der dynamischen Tabelle der Abteilungen verknüpfen, sodass die eingetragenen Abteilungsabkürzungen in die Dropdown-Liste übernommen werden und für den Stakeholder zur Auswahl stehen.
Herzlichen Dank schon mal im Voraus und viele Grüße,
Tobias

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 27.05.2014, 13:36
von nele_sonntag
Hallo Tobias,

zunächst erst einmal herzlich willkommen!!

Generell wäre es schön, wenn Du schon mal Deine ersten Ergebnisse hochladen würdest, dann kann man erstens am lebenden Objekt helfen und zweitens unter Umständen Deine Frage besser verstehen. :)

LG Mandy

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 27.05.2014, 16:52
von armine
Hallo Tobis,

wer oder was ist den ein Stakeholder?

Sollte es bei dir um zwei verbundene DDLs in einer dyn. Tabelle gehen? Kein Problem.

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 27.05.2014, 17:13
von tobias_d
Hallo,
ich habe nun die relevanten Teile des Objektes in der angehängten Datei eingefügt. Dann wird es wahrscheinlich wirklich leichter meine Frage zu verstehen :)
Viele Grüße,
Tobias

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 27.05.2014, 17:18
von tobias_d
Es soll nun darum gehen, dass die Abkürzungen der Abteilungen, die vom Ausfüllenden des Fragebogens eingetragen werden, in der Stakeholdertabelle in der Zeile Abteilung in die Dropdown-Liste übernommen werden, damit der Ausfüllende  für den Stakeholder die jeweilige Abteilung auswählen kann.
Vielen Dank für Eure Hilfe,
Tobias

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 28.05.2014, 00:47
von armine
Hallo Tobias,

"Stakeholder" sind also die Problemfälle, die in eine Liste eingetragen werden und bei denen "Interesse am Projekt", "Einfluss auf Projekt" und "Begeisterungsfähigkeit für Neues" gemäß DDL-Vorschlag mit "sehr gering" bewertet werden kann. Hab’ ich das nun verstanden? Man lernt nicht aus!
Die DDL mit den Abkürzungen der Abteilungsnamen zu befüllen ist dagegen ein Kinderspiel.

vg armine

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 28.05.2014, 23:26
von tobias_d
Hallo armine,
super, die DDL mit den Abkürzungen der Abteilungsnamen zu füllen, wie du es gemacht hast, ist genau das, was ich gebraucht habe!
Könntest du mir erklären, wie das Vorgehen dabei ist (am besten für blutige Anfänger :D)? Ich habe nämlich die gleiche Problematik noch einmal, wo ich Daten allerdings nicht in eine DDL überführen muss, sondern in ein Listenfeld. Ich denke, dass dies kaum ein Problem sein wird, wenn ich verstanden habe, wie es mit der DDL funktioniert.
Vielen Dank für Deine Mühen und einen schönen Feiertag,
Tobias

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 29.05.2014, 07:45
von armine
Hallo Tobias,

weil zu jeder Zeit eine Abkürzung eingegeben werden kann, werden die Daten für die DDL beim „enter“ der DDL neu aufbereitet und weil es die DDL mehrfach geben kann, wird der Code in eine Funktion ausgelagert. Die Funktion steckt in einem Skript-Objekt (hier „Skripte“, in der Hierarchie fast ganz unten zu finden). Aufgerufen wird die Funktion mit

Formular1.Inhalt.Stakeholder.Tabelle2.Zeile1.Tabelle3.Zeile2.Abkürzung::enter - (JavaScript, client)
Skripte.loadDDL(this)

„this“ wird als Parameter übergeben, damit die Funktion weiß, wo sie die Daten einschreiben soll. Der Code der Funktion ist

Formular1.#variables[0].Skripte - (JavaScript, client)

function loadDDL(Objekt) {
var Arr = [] ;
for (i = 0; i < Inhalt.Abteilungen.Tabelle1._Zeile1.count; i++) {
if (xfa.resolveNode("Inhalt.Abteilungen.Tabelle1.Zeile1[" + i + "]").Abkürzung.rawValue) Arr.push(xfa.resolveNode("Inhalt.Abteilungen.Tabelle1.Zeile1[" + i + "]").Abkürzung.rawValue)
}
Arr.sort() ;
Objekt.clearItems() ;
for (i = 0; i < Arr.length; i++) {
Objekt.addItem(Arr) ;
}
return
}

function loadDDL(Objekt) // Name der Funktion und in Klammern die Paramenter, die sie erwartet
var Arr = [] ; // deklariere ein Array
for (i = 0; i < Inhalt.Abteilungen.Tabelle1._Zeile1.count; i++) { // grase deine Datenquelle ab
if (xfa.resolveNode("Inhalt... // wenn es einen Eintrag gibt, schreibe ihn ins Array
Arr.sort() ; // sortiere das Array alphabetisch
Objekt.clearItems() ; // bevor da etwas reingeschrieben wird, muss erst mal altes Zeug gelöscht werden
for (i = 0; i < Arr.length; i++) { // schreibe die Daten aus dem Array in die DDL
return // Schluss der Vorstellung

alles klar?
armine

P.S.: Ich sehen gerade, dass der Code hier trotz kopierens falsch wiedergegeben wird. Im PDF stimmte er natürlich.

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 04.06.2014, 14:20
von tobias_d
Hallo armine,
sorry für die späte Antwort. Die Funktion habe ich größtenteils verstanden.
Wenn ich ein Skript-Objekt einfüge, dann wird dieses ja automatisch an die richtige Stelle im XML-Code eingefügt. Wenn ich es richtig verstanden habe, muss ich zudem noch den Befehl Skripte.loadDDL(this) an der richtigen Stelle nach der DDL einfügen, damit diese als "this" an die Funktion gegeben wird und die Abkürzungen somit in sie übertragen werden. Allerdings weiß ich nicht genau, wo ich diesen Befehl einfügen muss. Mit der folgenden Zeile weiß ich leider nichts anzufangen:
Formular1.Inhalt.Stakeholder.Tabelle2.Zeile1.Tabelle3.Zeile2.Abkürzung::enter - (JavaScript, client)
Ich könnte mir vorstellen, dass dort gesagt wird, wo er einzufügen ist, indem man dem eingegebenen "Pfad" folgt oder mit dem Befehl sogar automatisch an der richtigen Stelle eingefügt wird. Aber was genau mache ich mit dieser Zeile? So eine ähnliche gibt es ja auch vor dem Skript:
Formular1.#variables[0].Skripte - (JavaScript, client).
Sorry falls die Frage eventuell "dumm" wirkt, aber ich bin in dem Gebiet ein völliger Neuling.
Viele Grüße,
Tobias

Eingegebene Daten in einer dynamischen Tabelle übernehmen in eine Dropdown-Liste

Verfasst: 04.06.2014, 17:33
von armine
Hallo Tobi,

die beiden von dir zitierten Zeilen stellen keinen Code dar sondern sind nur dazu da, dass du siehst, welchem Objekt sie zuzuordnen sind.

Du wirst alles besser verstehen, wenn du nicht den obersten Knoten in der Hierarchie markierst und durch den Skript-Editor irrst, sondern die einzelnen Objekte markierst und dir dann im Skript-Editor ansiehst, welcher Code diesen zuzuordnen ist.

Zum Thema „script object“ liest du am Besten
http://help.adobe.com/en_US/livecycle/9 ... 00819.html und
http://help.adobe.com/en_US/livecycle/9 ... 00818.html
nach, da wird alles besser erklärt, als ich das könnte.
Ein dort hinterlegter Code kann von überall her aufgerufen werden.

Zur Frage, wo den die Funktion aufgerufen werden soll sagt das Muster-PDF

Formular1.Inhalt.Stakeholder.Tabelle2.Zeile1.Tabelle3.Zeile2.Abkürzung::enter - (JavaScript, client)
Skripte.loadDDL(this)

Die Funktion wird im „enter“ aufgerufen, weil dann die Auswahl gebraucht wird.

Alles klar?
armine