Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Fragen und Antworten rund um das Thema JavaScript im LiveCycleDesigner
Antworten
sauermachtlustig
Beiträge: 20
Registriert: 07.08.2010, 12:24

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von sauermachtlustig » 04.10.2010, 13:02

Halloho,

hier mal ein -hoffentlich für euch interessanter- Fall:

In einer Tabelle mit verschiedenen Spalten bestehend u.a. aus einem DropdownFeld soll in Abhängigkeit von dem dort ausgewählten Wort Teilformulare "addinstanced" werden :dude:.

Ich hänge hier mal die Datei zu:

Die Zeilen in der Tabelle innerhalb des Teilformulars Coachee werden durch die Button  +Zeile/-Zeile generiert. Funzt :)

Die anderen Zeilen der folgenden Tabellen sollen sich aber nicht bei dem "+Zeilen-Button" generieren, sondern erst, wenn der Status "anwesend" gewählt ist, generieren. Welche Zeilen das sind, sieht man in meinem Versuch. D.h. sind in der ersten Tabelle 4 Zeilen generiert und 2mal steht im Status "anwesend", dann gibt es auch nur zwei Zeilen in den restlichen Tabellen.

Meine Vorgehensweise, wenn ich sie realisieren könnte, wäre:

Zählen der "anwesend" und dann sagen "Wenn 2 mal anwesend, dann bitte einmal noch die Zeilen von Tabelle xy adden"; "Wenn 4 mal anwesend, dann 3mal adden" usw.

Was meint ihr?

Die Franzi

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

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von nele_sonntag » 04.10.2010, 15:54

Hallo Franzi,

funktioniert es so?

Habe erst mal ein anderes Skript in das CHANGE-Ereignis Deines DD gelegt. Wenn man jetzt anwesend auswählt, erscheint eine Zeile. Du solltest DDs immer mit SWITCH im CHANGE auslesen.

Code: Alles auswählen

switch (xfa.event.newText)
{
    case "anwesend":
    Formular1.Qualifizierung.Analyse.Tabelle3.Zeile1.instanceManager.addInstance(1);
    //Formular1.Qualifizierung.frühe_Quali.Tabelle4.Zeile1.instanceManager.addInstance(1);
    //Formular1.Qualifizierung.Seminaranmeldung.Tabelle5.Zeile1.instanceManager.addInstance(1);
    //Formular1.Rahmenbedingungen.Tabelle6.Zeile1.instanceManager.addInstance(1);
    break;
}
LG Mandy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

sauermachtlustig
Beiträge: 20
Registriert: 07.08.2010, 12:24

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von sauermachtlustig » 04.10.2010, 16:45

Hallo Mandy,
wie schön, von dir zu lesen :-)

Ja,also die Richtung stimmt schon mal.
Allerdings möchte ich es von der Handhabung idiotensicher machen. Wenn man also zuerst anklickt "anwesend" danach aber merkt "hupps-nee,doch nicht" und auf "Urlaub" geht, sollte die Zeile verschwinden.

Lautet die Syntax dann so:

switch (xfa.event.newText)
{case "Urlaub":
Formular1.Qualifizierung.Analyse.Tabelle3.Zeile1.instanceManager.removeInstance(...index);
//Formular1.Qualifizierung.frühe_Quali.Tabelle4.Zeile1.instanceManager.removeInstance(...index);
//Formular1.Qualifizierung.Seminaranmeldung.Tabelle5.Zeile1.instanceManager.removeInstance(...index);
//Formular1.Rahmenbedingungen.Tabelle6.Zeile1.instanceManager.removeInstance(...index);
break;
}
?

Ich probiere das gleich mal morgen in der Arbeit aus und werde berichten.

Aber noch eine Sache: Momentan ist die Voreinstellung ja so, dass man die ersten Zeilen aller Tabellen sehen kann-unabhängig davon, wie der Status gesetzt ist. D.h. habe ich zwei mal "anwesend", gibts die Zeilen dreimal,anstatt nur zweimal. Muss ich die ersten Zeilen auf presence "hidden" setzen? Wird janz schön kompliziert,oder? Ich weiß wohl auch, dass man die Anzeige auf "Wiederholen des Teilformulars" auf ein Minimum von 0 setzen kann. Allerdings wird die Zeile ja dann trotzdem in der Voreinstellung gezeigt...hm...weißte,was und wie ich es meine?

Einen schönen Abend wünsche ich dir noch!
Franzi

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

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von nele_sonntag » 04.10.2010, 20:25

Ja, freut mich auch :-)

Ich habe vergessen, die Kommentarzeichen "//" bei Dir rauszunehmen. Ich wollte erst mal probieren, ob es bei der einen Tabelle geht.

Mit dem CASE-Block hast Du recht. Nomalerweise wird so jeder Eintrag des DD abgefangen und gesagt, was jeweils zu tun ist.

CASE-Blöcke sind beliebig hinzuzufügen.

Code: Alles auswählen

switch (xfa.event.newText)
{
case "1. Eintrag DD":
objekt.presence="hidden";
break;

case "2. Eintrag DD":
objekt.presence="visible";
break;

...usw.
}
Das andere hatte ich noch nicht, muss ich mal schauen.

LG einstweilen,
Mandy

sauermachtlustig
Beiträge: 20
Registriert: 07.08.2010, 12:24

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von sauermachtlustig » 05.10.2010, 10:05

Huhu,

also soweit so gut-dass mit dem case habsch hin bekommen :-)

Wie gesagt, jetzt ist nur das Problem, dass schon bei erster Zeile "anwesend" zwei Zweilen in den anderen Tabellen entstehen...

Zum Weiterarbeiten reichts :-)

DAHANKE!

Franzi

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

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von nele_sonntag » 05.10.2010, 11:04

Freut mich sehr, leider habe ich noch keine Idee für das Von-Anfang-An-Eine-Zeile-Schon-Da-Problem.

Mit min:0 gehts gar nicht?

sauermachtlustig
Beiträge: 20
Registriert: 07.08.2010, 12:24

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von sauermachtlustig » 05.10.2010, 12:03

..neee,leider nich :(

Auch mit "Anfangszahl=0" nich ...

Ich wühl mal hier im Forum noch ein wenig...

sauermachtlustig
Beiträge: 20
Registriert: 07.08.2010, 12:24

Addinstance in Abhängigkeit von Anzahl bestimmter Wörter

Beitrag von sauermachtlustig » 07.10.2010, 10:45

...so, bin jetzt mal den umständlichen Weg gegangen und habe mit "hidden" und "visible" anstelle mit "add/removeinstance" gearbeitet.

So ists zwar nicht programmier- , aber benutzerfreundlich :-)

Antworten