Autor Thema: Liste berechnen aufgrund Auswahl in Dialogliste  (Gelesen 4003 mal)

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Liste berechnen aufgrund Auswahl in Dialogliste
« am: 24.07.08 - 09:16:40 »
Hallo @Formel-Spezialisten,

in einem Dokument habe ich folgende Felder:

1. Feld "Parameter" (Berechnet beim Anlegen, Mehrfachwerte zulassen) mit folgenden Werten:
"Standort A#Filiale München"
"Standort B#Filiale Stuttgart:Filiale Frankfurt"
"Standort C#Filiale Berlin:Filiale Hamburg"

2. Feld "Auswahl" (Dialogliste, Mehrfachwerte zulassen) mit folgender Formel für die Auswahl:
@Explode(@Left(Parameter ; "#") ; ";")
Damit kann der User einen oder mehrere Standorte auswählen.

So weit so gut. Jetzt zu meinem Problem.

3. Feld "Ergebnis" (Berechnet, Mehrfachwerte zulassen)
Hier möchte ich erreichen, dass im Ergebnis die zugehörigen Werte rechts von "Parameter#" ausgegeben werden.
Also so:
Auswahl = 'Standort A'; Ergebnis = 'Filiale München'.
Auswahl = 'Standort A' und 'Standort B'; Ergebnis = 'Filiale München', 'Filiale Stuttgart' und 'Filiale Frankfurt'
Mit dieser Formel bekomme ich das gewünschte Ergebnis, allerdings nur bei Auswahl eines einzelnen Wertes:
@Explode(@RightBack(Parameter ; Auswahl + "#") ; ":")

Kann mir jemand sagen, wie die Formel aussehen muss, damit sie auch bei Auswahl von Mehrfachwerten funktioniert?

Ich tippe mal auf irgendwas mit @Transform, komme aber leider nicht weiter.

Danke und Gruß
Stefan
« Letzte Änderung: 24.07.08 - 13:39:23 von cebolina »
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #1 am: 24.07.08 - 09:31:31 »
Hallo

Für Deine Auswahlformel im feld "Auswahl" genügt folgendes:

Code
@Left(Parameter ; "#")

(Dort Eigenschaft "Dokument bei Schlüsselwertänderung neu berechnen" [oder so] aktivieren)

Die Formel des feldes "Ergebnis" sollte so aussehen:

Code
@Explode( @Right( Parameter ; Auswahl + "#" ) ; ":" )



Anstelle des Doppelpunktes würde ich ein anderes Trennzeichen verwenden - z.B.: "~"


Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #2 am: 24.07.08 - 09:46:08 »
Hallo Dirk,

Dein Vorschlag für die Ergebnis-Formel
@Explode( @Right( Parameter ; Auswahl + "#" ) ; ":" )
reicht leider nicht.

Es wird nur das Ergebnis für die erste Auswahl berechnet.

Ergebnis:
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #3 am: 24.07.08 - 09:53:56 »
Ist das Ergebnisfeld wirklich ein Mehrfachwerte-Feld?
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #4 am: 24.07.08 - 09:58:39 »
Ja, alle drei Felder sind Mehrfach-Felder.
'Parameter' Typ = Text, Berechnet beim Anlegen, Mehrfachwerte zulassen
'Auswahl' Typ = Dialogliste, Bearbeitbar, Mehrfachwerte zulassen
'Ergtebnis' Typ = Text, Berechnet, Mehrfachwerte zulassen

Edit:
Datenbank angehängt
« Letzte Änderung: 24.07.08 - 10:00:22 von cebolina »
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #5 am: 24.07.08 - 11:47:30 »
Mit dieser Formel funktioniert's erstmal.

result:="";

@Transform(Parameter; "var";
  @For(n:=1; n<=@Elements(Auswahl); n:=n+1;
        tmp:=@Right(var; Auswahl[n] + "#");
        @If(tmp!=""; @Set("result"; result : tmp); ""))
);
@Trim(result)

Das Ganze lässt sich mit Sicherheit noch optimieren, aber dazu fehlt mir im Moment die Zeit.

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

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #6 am: 24.07.08 - 13:22:54 »
So. Hab mir jetzt mal zeit genommen  ;D

Hier die Formel für das Feld "Ergebnis" :

Code
@Explode( @Transform( Parameter ; "_m" ; @If( @Left( _m ; "#" ) *= Auswahl ; @Right( _m ; "#" ) ; @Nothing ) ) ; ":" )


 ^-^
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #7 am: 24.07.08 - 13:36:44 »
Hallo Dirk,

ich versteh' zwar die Formel (noch) nicht ganz, aber sie funktioniert und bringt das gewünschte Ergebnis.

Vielen Dank für Deine Mühe.

Gruß
Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline dirk_2909

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.173
  • Geschlecht: Männlich
  • Expand your Notes Client with ECM functionality..
    • d.velop
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #8 am: 24.07.08 - 13:45:43 »
Ich kann ja mal versuchen die Formel sprechen zu lassen, damit Du sie verstehst:

@Explode( >>> die neue Liste aufteilen (mehrfachwerte)
@Transform(  >>> eine bestehend Liste Transformieren (Designer-Hilfe verwenden!!)
Parameter ;   >>> zu ändernde Liste
"_m" ;  >>> jedes Element der "alten" Liste wird über diese Variable angesprochen
@If( @Left( _m ; "#" ) *= Auswahl  >>> Wenn der Linke-teil des gereade verarbeitenden Elementes in der Auswahlliste vorkommt >>>

; @Right( _m ; "#" ) ;  >>> dann davon den Rechten-teil in die "neue" Liste schreiben (Feld 'Ergebnis')
@Nothing )  >>> Ansonsten nix hinzufügen ....
) ; ":" )  >>> Neu Liste bei ":" aufteilen ....

Hoffe jetzt ist die Formel sprechender
Dirk

[IBM CLP R5]
[IBM CAD 6/6.5]
[IBM CAD 7]
[IBM CAD 8]


"Nein!! … Es genügt nicht Mails in einen anderen Ordner oder Datenbank zu verschieben, um sie zu archivieren!"

   
Disclaimer:
Ich Antworte nach besten Wissen und Gewissen. Sollte sich jemand durch meine Antwort persönlich angegriffen fühlen, ist dies nicht meine Absicht!
Ich bin auch nur ein Mensch, der Fehler machen kann. ....

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #9 am: 24.07.08 - 13:53:46 »
Ich wusste doch, dass es auch einfacher geht.   ;)


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

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #10 am: 24.07.08 - 13:56:29 »
Ich gebe zu, dass ich mit @Transform so meine Probleme habe - aber man lernt ja gerne dazu.
Nochmals vielen Dank für Deine Mühe und Erklärungen.

Mein Tag ist (zumindest vorübergehend) gerettet  ;)

Gruß
Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Maverick

  • Aktives Mitglied
  • ***
  • Beiträge: 150
  • Geschlecht: Männlich
  • New day - same shit
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #11 am: 12.08.08 - 11:10:15 »
Hi Stef,

seit wann habt ihr Filialen in Berlin, Hamburg und München?

*sfg*

Paul
eben war's noch da

Paul    (Server: ja, Clients: zu viele)

Offline Fineas

  • Aktives Mitglied
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
  • PCLP Dev/Admin 5,6,7,8
Re: Liste berechnen aufgrund Auswahl in Dialogliste
« Antwort #12 am: 12.08.08 - 12:45:45 »
Das Explode ist eigentlich überflüssig, wenn man die Eingabe modifiziert.

Parameter:

"Standort A~Filiale München":
"Standort B~Filiale Stuttgart":
"Standort B~Filiale Frankfurt":
"Standort C~Filiale Berlin":
"Standort C~Filiale Hamburg"

Auswahl mit unique:

@Unique(@Left(Parameter; "~"))

Ergebnis ist ein simples Transform der Basisliste:

@Transform( Parameter ; "_TMP" ; @If( @Left( _TMP ; "~" ) = Auswahl ; @Right( _TMP; "~" ) ; @Nothing ) )

Wenn Du dann noch statt der Dialogbox z.B. Kontrollkästchen nimmst, kannst Du die Eingaben auch wieder vernünftig abwählen.

Gruß, Fineas!

« Letzte Änderung: 12.08.08 - 14:07:13 von Fineas »

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz