Autor Thema: Dialogliste und Mehrfachwerte  (Gelesen 1534 mal)

Offline heidiweber

  • Aktives Mitglied
  • ***
  • Beiträge: 162
Dialogliste und Mehrfachwerte
« am: 03.05.07 - 13:31:11 »
Hallo

ich habe auf einer Maske mehrere Dialoglisten, die aufeinander aufbauen.
Z.B.:
Wird in der ersten Dialogliste ein Wert ausgewählt, so werden in den nachfolgenden Dialoglisten nur Werte angezeigt, die dem Wert der ersten Dialogliste entsprechen.

Die Eingaben der Dialogliste hole ich mir aus einer anderen Maske mit "geschachtelten" Masken, die eben auch wieder aufeinander aufbauen.

Die Formel für die erste (oberste) Dialogliste (drv_collection) lautet:
@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*";2)

Die Formel für die zweite Dialogliste (drv_subpop) lautet:
@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection;2)

Die Formel für die dritte Dialogliste (drv_basicYear) lautet:
unid:=@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop;2);
@If(@IsError(unid);"";unid)

Die Formel für die vierte Dialogliste (drv_statistic) lautet:
unid:=@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear;2);
@If(@IsError(unid);"";unid)


Die Formel für die fünfte Dialogliste (drv_productSubrange) lautet:
unid:=@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear+"*"+drv_statistic;2);
@If(@IsError(unid);"";unid)


Bei allen Dialoglisten sind keine Mehrfachwerte zugelassen. --> Somit funktioniert das auch wunderbar.

Jetzt möchte ich aber bei der dritten Dialogliste (drv_basicYear) Mehrfachwerte zulassen. Wählt man nun mehrere Werte aus (z.B. 2002, 2003, 2004), so funktioniert noch die vierte Ebene (drv_statistic).
Aber bei der fünften Ebene (drv_productSubrange) werden nur Werte angezeigt, die sich "unter" 2002 befinden. Die Werte unter 2003 bzw. 2004 werden nicht angezeigt.

Es ist mir eigentlich auch klar warum. Bei der Formel:
unid:=@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear+"*"+drv_statistic;2);
@If(@IsError(unid);"";unid)

steht in der Variablen drv_basicYear nur 2002 drinnen. 2003 und 2004 werden nicht beachtet.

Kann man die Formel zu umstellen bzw. eine ForAll-Schleife um die Formel stellen, mit der das dann geht? Oder wie kann man sowas machen? Ich hoffe ihr kommt mit meinen Ausführungen klar:)

Vielen Dank
cu
Heidi


Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Dialogliste und Mehrfachwerte
« Antwort #1 am: 03.05.07 - 15:51:01 »
hallo,
ich denke das liegt daran, das @dblookup nur einen wert und kein array als suchstring verarbeiten kann und du hast deine frage eigentlich schon beantwortet, mit einer @for schleife sollte das gehen.
mal so aus der kalten:

@for( a:= 1; a<=drv_basicYear; a:=a+1,
unid:=unid : @DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear[a];2);
);
@If(@IsError(unid);"";@trim(unid))


mhmm probier das mal ;)
der bubble
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline heidiweber

  • Aktives Mitglied
  • ***
  • Beiträge: 162
Re: Dialogliste und Mehrfachwerte
« Antwort #2 am: 04.05.07 - 16:47:29 »
Hallo bubble,

ich habe das jetzt so probiert:

@For( a:= 1; a<=drv_basicYear; a:=a+1;
unid:=unid : @DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear[a]+"*"+drv_statistic;2)
);
unid

Aber keine Chance, es wird nie etwas angezeigt. Funktioniert vielleicht eine For-Schleife in einer Dialogliste im Feld "Formel für Auswahl verwenden" nicht?

@For( a:= 1; a<=drv_basicYear; a:=a+1; --> Was steht im Ausdruck "a<=drv_basicYear" in der "Variablen" drv_basicYear ?

Ist das auch korrekt: unid:=unid : @DbLookup...  ?

Wenn ich das so probiere:
unid:=@DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear[1]+"*"+drv_statistic;2);
@If(@IsError(unid);"";unid)

werden Werte angezeigt.

Ich finde leider sonst keinen Fehler in der Formel. Durchtracen kann man ja leider auch nicht:(
Wo könnte der Fehler liegen?

Vielen Dank an euch
cu
Heidi

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Dialogliste und Mehrfachwerte
« Antwort #3 am: 04.05.07 - 18:20:08 »
So auf die Schnelle betrachtet, kann die @For-Schleife so nicht funktionieren.

Meines Erachtens müsste das so aussehen:

@For( a:= 1; drv_basicYear[a] != ""; a:=a+1;...

oder so

@For( a:= 1; a<=@Elements(drv_basicYear); a:=a+1;...


Zitat
@For( a:= 1; a<=drv_basicYear; a:=a+1;

Das sollte so funktionieren.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline heidiweber

  • Aktives Mitglied
  • ***
  • Beiträge: 162
Re: Dialogliste und Mehrfachwerte
« Antwort #4 am: 05.05.07 - 12:27:53 »
Hallo ihr Notes-Profis,

vielen Dank für eure Hilfe:) Ich habs endlich hinbekommen:) Wenn man weiß wie´s geht, ist es voll einfach....

Hier die Lösung:

_var="";
@For( a:= 1; a <= @Elements(drv_basicYear); a:=a+1;
@Do(
unid:= @DbLookup("";"";"viewKonfigMtdKatZugEingebettet";"*"+drv_collection+"*"+drv_subpop+"*"+drv_basicYear[a]+"*"+drv_statistic;2);
@If(@IsError(unid);"";_var:=_var:unid)
)
);
@If(@IsError(_var);"";@Trim(_var))

Wünsche euch ein wunderschönes Wochenende
Bis dann
cu
Heidi

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz