Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Alles was sich mit dem Thema dynamische XML Formulare auf Basis des LiveCycleDesigners beschäftigt
stefan0815
Beiträge: 8
Registriert: 14.04.2010, 07:02

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von stefan0815 » 03.05.2010, 13:51

Hallo,

 

vielleicht kann mir jmd zu folgendem Problem behilflich sein:

 

2 Tabellen mit jeweils 2 Spalten

Über die Dropdownliste soll ein Wert in Tabelle1-Spalte1 ausgewählt werden, Aus Tabelle2 soll der entprechenden Wert für Spalte2 ausgelesen und in der 1.Tabelle angezeigt werden  (PS: Tabelle 2 wird später ausgeblendet)

SPRICH: Spalte2 in Tabelle1 soll durch den passenden Wert aus Tabelle2-Spalte2 gefüllt werden.

 

Versucht habe ich es über eine for-Schleife
[fontsize=2][fontsize=2]
 
[fontsize=2][fontsize=2]
Formular1.Seite1.Tabelle1.Zeile1.Zelle1::change
[/fontsize]
[/fontsize]

var[/fontsize]
[/fontsize]
[fontsize=2] value [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] this.rawValue;
[/fontsize][fontsize=2][fontsize=2]
for[/fontsize]
[/fontsize]
[fontsize=2] ([/fontsize][fontsize=2][fontsize=2]var[/fontsize][/fontsize][fontsize=2] nCount [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] 0; nCount [/fontsize][fontsize=2][fontsize=2]<[/fontsize][/fontsize][fontsize=2] 3; nCount[/fontsize][fontsize=2][fontsize=2]++[/fontsize][/fontsize][fontsize=2]) {

[/fontsize][fontsize=2][fontsize=2]     if[/fontsize][/fontsize][fontsize=2] (Tabelle2.Zeile[nCount].Zelle1.rawValue [/fontsize][fontsize=2][fontsize=2]==[/fontsize][/fontsize][fontsize=2] value {

         parent.Zelle2.rawValue [/fontsize][fontsize=2][fontsize=2]=[/fontsize][/fontsize][fontsize=2] Tabelle2.Zeile[nCount].Zelle2.rawValue;

     }

}
[/fontsize]
 

 

Die Fehlermeldung lautet: "tabelle2.zeile[nCount] has no properties"

Beipsieldatei angehängt!

Vielen Dank im Voraus!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von yuc2me » 03.05.2010, 18:28

Hallo stefan0815,

könnte man das vielleicht nicht auch anders lösen?

siehe anderes dropdown-thema von heute: http://www.acronaut.de/forum35/1807.html

stefan0815
Beiträge: 8
Registriert: 14.04.2010, 07:02

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von stefan0815 » 04.05.2010, 06:00

Hallo yuc2me,

 

danke für die schnelle Antwort. Das löst so mein Problem nicht.

 

Ich kann die Daten nicht fest im Dokument speichern, so wie in dem Beispiel.

Das Dokument soll zunächst die Daten aus einer DB holen, danach aber komplett offline arbeiten. Die Daten können daher unterschiedlich sein und sind somit nicht einmalig im Dokument hinterlegbar.

 

Deshalb habe ich die 2. Tabelle als "Speicher" verwendet, auf die ich dann nach Auswahl des "Schlüssels" zugreifen will.

 

Gruss

 

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von yuc2me » 04.05.2010, 09:06

Ah, ok.

Ich hatte mich mal fix an deiner PDF versucht, und hab auch nicht das geschafft in der Form wie du es wolltest.

Wichtig ist aber, dass du beim Dropdown das neue Value immer mit xfa.event.newText abfängst, wenn du direkt in diesem Objekt skriptest.
Ich habe daneben ein 2. Beispiel gebaut ohne For-Schleife.
Bei größeren Tabellen muss er ja sonst jedes Feld durchlaufen...
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

stefan0815
Beiträge: 8
Registriert: 14.04.2010, 07:02

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von stefan0815 » 04.05.2010, 12:28

Hi,

 

danke für das Beispiel-PDF. Es sah zunächst gut aus, aber es trifft nicht ganz was ich brauche:

Die IDs sind in desem Beispiel durchnummeriert, es können aber auch nicht-numerische sein, d.h. das funktioniert so dann nicht mehr.

Im Grunde gehts ja um folgenden Aufruf:
[fontsize=2]
Tabelle2.Zeile[0].Zelle2.rawValue

Hierbei kommt die erwähnte Fehlermeldung:

"tabelle2.zeile[0] has no properties

xfa:Formular1[0]:Seite1[0]:Tabelle1[0]:Zeile1[0]:Zelle1[0]:change]"

 

[/fontsize][fontsize=2][fontsize=2] 
[/fontsize]
[/fontsize]

Ich habe festgestell, dass die Fehlermeldung nicht erscheint, wenn ich diese Abfrage im "Calculate"-Ereignis aufrufe.

OK, es kommt die Fehlermeldung, dass ich "dieses Feld nicht bearbeiten darf" ABER der Aufruf des Befehls

Tabelle2.Zeile[0].Zelle2.rawValue

funktioniert!

Was kann ich anders machen?!

 

 

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von yuc2me » 04.05.2010, 12:41

Achso... Na, du kannst den Texten im DropDown auch Werte zufügen ( Hallo=1, Tschüss=2, ...).
Die Werte entsprechen dann der Instanz der Zeilen in Tabelle2
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

stefan0815
Beiträge: 8
Registriert: 14.04.2010, 07:02

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von stefan0815 » 04.05.2010, 13:12

Ja das kenne ich auch. M.E. löst dies aber nicht mein Problem.

 

Dann müsste ich der Tabelle das alles mitgeben, glaub nicht, dass das so einfach geht oder?

 

 

Die Frage ist ja warum kann ich die Zeilen der Tabelle2 nicht mit dem Index ansprechen ...Zeile[1]....Zeile[2]

 

Wenn die Tabellenzeilen nicht den gleichen Namen haben, sprich keinen Index, dann kann ich es ansprechen.

Es geht nur bei dieser speziellen Tabelle mit gleichen Zeilennamen nicht.

 

Aber da ich eine DB-Anbindung habe, mit einer dynamisch wachsenden Tabelle sind nun mal alle Zeilennamen gleich, lediglich durch Index zu unterscheiden.

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von yuc2me » 04.05.2010, 13:30

Das war ja genau die Kuriosität, die ich schon festgestellt habe. Der InstanceManager sagt ja auch immer nur 1, obwohl ich das wiederholen der Zeile erlaubt habe.

Du kannst es auch mit Teilformularen versuchen.

Der Tabelle musst du das nicht mitgeben. Das DropDown muss mit den Daten von unten gefüttert werden. Einmal der Wert aus der Zeile und der dazu gehörige Index.
In etwa:

Code: Alles auswählen

for (var i=0; i<=Tabelle2.Zeile.instanceManger.count-1; i++) {
 Dropdown.addItem(Tabelle2.Zeile[i].Zelle1.rawValue, i);
}

stefan0815
Beiträge: 8
Registriert: 14.04.2010, 07:02

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von stefan0815 » 04.05.2010, 13:50

Ich will ja aber nicht das Dropdown füllen.

 

Das kuriose ist doch aber, dass im calculate-Ereignis der Dropdown-Box der Aufruf der Tabellenzeile mit Index ansprechen kann.

 

warum nicht im change-Ereignis?

 

 

yuc2me
Beiträge: 201
Registriert: 20.01.2010, 17:55

Tabelle mit Daten aus 2. Tabelle füllen (abhängig von der Dropdownauswahl in Tabelle1)

Beitrag von yuc2me » 04.05.2010, 14:19

Sorry, aber solangsam habe ich das Gefühl wir reden an einander vorbei... :)

Irgendwie musst du ja momentan die Tabelle erzeugen und auch das Dropdown mit den Daten aus der Tabelle füllen?!
Ich sage: Erstell die Tabelle und lass danach das Dropdown dynamisch erstellen...

zu deinem Problem: Ich habe es jetzt so gemacht, dass es funktioniert.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Antworten