Felder miteinander verknüpfen

Grundsätzliche Themen zur Bedienung, Erstellung von Formularen, Datenbankanbindung und Beispiele ...
Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Felder miteinander verknüpfen

Beitrag von FileAffairs » 22.03.2010, 17:10

Hallo watschn,

wäre ganz hilfreich wenn Du das Formular posten könntest. Weiterhin sind die Namen Deiner Felder ungünstig, da dies ja nicht direkt mit der DropDown Liste in Verbindung zu bringen ist aber hier mal ein - ungetesteter! - Code:

Code: Alles auswählen

if (this.rawValue == topmostSubform.Page1.Flaeche1.rawValue) Flaeche.rawValue = topmostSubform.Page1.Flaeche1_Groesse.rawValue;
if (this.rawValue == topmostSubform.Page1.Flaeche2.rawValue) Flaeche.rawValue = topmostSubform.Page1.Flaeche2_Groesse.rawValue;
Gruß
FileAffairs

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Felder miteinander verknüpfen

Beitrag von nele_sonntag » 22.03.2010, 21:00

Oh jeh, FileAffairs war mal wieder schneller..hatte die Diskussion noch in alt auf meinem Desktop und hatte seine Antwort gar nicht gesehen..nun ja, vielleicht hilfts ja trotzdem..viel Erfolg.

Hallo watschn,

hoffe, ich habe Dich richtig verstanden, anbei eine Beispieldatei.

Habe Textfelder (variabler Eintrag 1 + 2) angelegt, mit denen das DropDown befüllt wird.

In den Felder nebendran (zugehörige Größe 1 + 2) wird die zugehörige Größe eingetragen.

Im PRE-OPEN-EREIGNIS des DropDown folgenden Code hinterlegen:

Code: Alles auswählen

this.clearItems();//leeren des DD

//befuellen des DD

ddvar.addItem(varText1.rawValue);

ddvar.addItem(varText2.rawValue);
IM CHANGE-EREIGNIS des DropDown folgenden Code hinterlegen:

Code: Alles auswählen

switch(xfa.event.newText){

case varText1.rawValue:

ausgabe.rawValue=gro1.rawValue;

break;



case varText1.rawValue:

ausgabe.rawValue=gro1.rawValue;

break

}
 
Hoffe, das war in etwas, was Du gesucht hast bzw. Du kannst es Dir nun nach Deinen Ansprüchen anpassen.

Liebe Grüße Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

watschn
Beiträge: 11
Registriert: 16.03.2010, 14:06

Felder miteinander verknüpfen

Beitrag von watschn » 23.03.2010, 07:13

Hallo zusammen,

vielen Dank für die Mühe!

Mandys Formular macht genau das was ich gesucht habe.

Echt stark, so komm ich jetzt gut weiter.

Danke und Gruß!

 

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Felder miteinander verknüpfen

Beitrag von FileAffairs » 23.03.2010, 07:21

Hallo watschn,

noch ein kleiner Tip wenn es mehr Fläche und Grösse Felder werden sollten dann kannst Du die auch mit demselben Namen belegen. Jedes Feld hat dann eine Instanznummer über die es identifizierbar ist. Wenn Du dann die beim Belegen der DropDown Liste die Instanznummer als Wert der DropDown Liste abspeicherst weist Du immer auf welche Instanz Du zugreifen musst. So funktioniert das dann egal ob Du 2 Felder oder 20 hast.

Gruß
FileAffairs

watschn
Beiträge: 11
Registriert: 16.03.2010, 14:06

Felder miteinander verknüpfen

Beitrag von watschn » 23.03.2010, 07:41

Hallo FileAffairs,

prima Tipp. Das werde ich auch so probieren.

Da habt Ihr einem Anfänger echt gut geholfen :D

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Felder miteinander verknüpfen

Beitrag von nele_sonntag » 23.03.2010, 13:01

Hallo watsch,

Hallo FileAffairs,

@FileAffairs:

Blicke bei Deinem Tipp nicht ganz durch. Instanzennummer ist mir klar, aber mit dem Rest weiß ich nicht genau, was Du meinst. Wäre toll, wenn Du es noch ein wenig ausführen könntest.

@watschn:

Prima, das es Dir weiterhilft, aber eigentlich habe ich zu danken :-) Habe nur wegen Deiner Anfrage herumexperimentiert. Bis dato war mir nicht klar, dass man bei 'switch' in der Bedingung auch mit ausgelesenen Feldern arbeiten kann.

Liebe Grüße Mandy

Benutzeravatar
nele_sonntag
Beiträge: 2742
Registriert: 04.05.2009, 15:12
Wohnort: Frankfurt
Kontaktdaten:

Felder miteinander verknüpfen

Beitrag von nele_sonntag » 23.03.2010, 13:16

PS. Habe selbst noch einen Flüchtigkeits-Fehler entdeckt :-( Natürlich muss es bei der zweiten Abfrage auch varText2 und gro2 heißen :-))

Code: Alles auswählen

switch(xfa.event.newText){

//FÜR DIE ZWEITE ABFRAGE:

case varText2.rawValue:

ausgabe.rawValue=gro2.rawValue;

break

}
Anbei das funktionierende Dokument.

Liebe Grüße Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

watschn
Beiträge: 11
Registriert: 16.03.2010, 14:06

Felder miteinander verknüpfen

Beitrag von watschn » 23.03.2010, 13:50

Hallo Mandy,

danke für die Mühe. Den Fehler hatte ich allerdings auch schon selbst entdeckt. Aber ist natürlich besser das korrekte Formular nochmal hier reinzustellen.

Gruß,

Michael

Benutzeravatar
FileAffairs
Beiträge: 372
Registriert: 15.09.2008, 20:14

Felder miteinander verknüpfen

Beitrag von FileAffairs » 23.03.2010, 16:20

Hallo Mandy,

naja - eigentlich recht einfach. Eine DropDown Liste kann ja pro Eintrag 2 Werte aufnehmen - den Display Wert und den Feldwert

Code: Alles auswählen

Dropdownliste.addItem(<displaywert>, <feldwert>)
Angenommen es gibt mehrere Felder mit dem Namen Flaeche so lassen sich sich mittels

Code: Alles auswählen

var oNodes = xfa.resolveNodes("Flaeche[*]")
die entsprechenden Felder "heraussuchen"

Jetzt kannst Du dann mit

Code: Alles auswählen

for (var i=0;i<oNodes.length;i++) {
    Dropdownliste.addItem(oNodes.item(i).rawValue, oNodes.item(i).index);
}
die DropDown Liste befüllen. Und da der Wert den die DropDown Liste beim Verlassen hat ja dem Feldindex entspricht kannst Du dann mit

Code: Alles auswählen

xfa.resolveNode("Groesse["+Dropdownliste.rawValue+"]")
den korrespondieren Wert auslesen, ohne das Du immer individuelle Namen wie "Flaeche1" und "Flaeche2" brauchst. Den Ansatz kannst Du sogar nehmen wenn die Werte in eine dynamische Tabelle/Subform eingetragen werden.

Hoffe jetzt ist ein bisschen klarer geworden was ich meinte.

Lieben Gruß
FileAffairs

BryanCherry
Beiträge: 1
Registriert: 01.06.2010, 15:51

Felder miteinander verknüpfen

Beitrag von BryanCherry » 13.06.2010, 11:51

Hi FileAffairs!

Ich habe das folgende Scipt versucht:

Code: Alles auswählen

if (this.rawValue == "Wert1) Test.rawValue ="Wert1 gewählt"
if (this.rawValue == "Wert2) Test.rawValue ="Wert2 gewählt"
Es funktionierte aber nicht. Habe lange gesucht, dann aber ist mir etwas aufgefallen, was nichts ins System passt (Ich habe keine Ahnung von Javascript):

Du hast " vergessen! Es muss heißen:

if (this.rawValue == "Wert1") Test.rawValue ="Wert1 gewählt"

Nach dem ich das " eingefügt hatte, ging es wunderbar.

Aber noch eine Sache war mir nicht klar: Die anderen Befehle, die du in diesem Post geschrieben hast, braucht man nicht. Man braucht ja keine Meldung über den Wert, den man im Menu ausgewählt hat.

Vielleicht könntest du deinen Post entsprechend ändern, dass es für "die Nächsten" klarer ist.

 

Gruß

BryanCherry

Antworten