Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Norbert20 am 01.03.05 - 09:15:12

Titel: @Prompt([OKCANCELLISTMULT]
Beitrag von: Norbert20 am 01.03.05 - 09:15:12
Hilfe - was mache ich falsch?

Blutiger Anfänger sucht Hilfe!

Ich versuche, über @prompt eine Auswahlliste anzuzeigen und die ausgewählten Einträge in das Feld SendTo übertragen. Es wird jedoch immen nur der erste Eintrag übernommen.

FIELD Empfänger:=@Prompt([OKCANCELLISTMULT]:[NoSort]; "Auswahl der Mailempfänger"; "Wählen Sie einen oder mehrere Namen als Empfänger dieser Anfrage."; "alle"; "Name1":"Name2":"Name3"...:"alle");


@Command([MailComposeMemo]);
@Command([EditGotoField]; "EnterSendTo");
@Command([EditInsertText];Empfänger);
@Command([EditGotoField]; "Subject")
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Axel am 01.03.05 - 09:28:41
Hi,

das Problem liegt hier:

 @Command([EditInsertText];Empfänger);

Dieser Formelbefehl kann nicht mit Listen umgehen, sondern nur mit Text. Daher nimmt er immer nur den ersten Eintrag.

Versuch's mal so:

FIELD Empfänger:=@Prompt([OKCANCELLISTMULT]:[NoSort]; "Auswahl der Mailempfänger"; "Wählen Sie einen oder mehrere Namen als Empfänger dieser Anfrage."; "alle"; "Name1":"Name2":"Name3"...:"alle");


@Command([MailComposeMemo]);
@Command([EditGotoField]; "EnterSendTo");
@SetField("Empfänger";Empfänger);
@Command([EditGotoField]; "Subject")

Axel
 
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: TMC am 01.03.05 - 09:32:36
Genau, Axel.

Alternnativ könnte man ein @Implode(Empfänger; ", ") machen.

Achtung:
Zitat
FIELD Empfänger:=@Prompt

Das FIELD hat hier IMHO nichts zu suchen, da "Empfänger" hier nur eine Variable ist.
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Glombi am 01.03.05 - 09:33:19
So sollte es gehen:

FIELD Empfänger:=@Prompt([OKCANCELLISTMULT]:[NoSort]; "Auswahl der Mailempfänger"; "Wählen Sie einen oder mehrere Namen als Empfänger dieser Anfrage."; "alle"; "Name1":"Name2":"Name3"...:"alle");


@Command([MailComposeMemo]);
@Command([EditGotoField]; "EnterSendTo");
@Command([EditInsertText];@Implode(Empfänger));
@Command([EditGotoField]; "Subject")

Andreas
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Marinero Atlántico am 01.03.05 - 09:55:07
Muss nicht noch -1 abgefangen werden?
Zitat
Wenn der Benutzer "Abbrechen" wählt, wird die Auswertung der Formel gestoppt, außer bei [YesNoCancel]; hier wird -1 zurückgegeben, wenn der Benutzer "Abbrechen" wählt.
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: TMC am 01.03.05 - 10:01:24
Nö, da ja hier [YesNoCancel] nicht verwendet wird  ;)
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Glombi am 01.03.05 - 10:06:34
Da muss noch einiges geändert werden, damit das vernünftig läuft.

Aber das ist ja nicht der Sinn der Übung.

Andreas
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Norbert20 am 01.03.05 - 10:06:46
Vielen Dank für die schnellen Antworten. :D


@axel:  funktionert leider nicht.

Lösung von Andreas funktioniert. Klasse.

Frage: Gibt es noch eine Lösung zwischen den Einträgen ein ";" einzufügen?

Norbert
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: TMC am 01.03.05 - 10:08:13
Frage: Gibt es noch eine Lösung zwischen den Einträgen ein ";" einzufügen?

@Implode(Empfänger; "; ")
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Norbert20 am 01.03.05 - 10:14:56
Vielen Dank.

Klappt wunderbar.

P.S. Habe beim ersten Versuch deiner Lösung die Klammer falsch gesetzt.



Super schnelle Hilfe.

Norbert
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Marinero Atlántico am 01.03.05 - 10:25:57
Hm. Ist jetzt ein Schuss ins blaue, aber da gibt es sehr vermutlich noch ein paar Randbedingungen, die abgefangen werden müssen.
Was ist, wenn der User nix auswählt und per Kreuz schliesst, etc.
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: TMC am 01.03.05 - 10:33:00
Toll abfangen und auswerten wie etwa in LS geht da leider nicht wirklich AFAIK.

User wählt nix aus: da könnte man auf Empfänger = "" prüfen.

Cancel / Kreuz anklicken: Script bricht komplett ab und nichts pasiert mehr.
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: Glombi am 01.03.05 - 10:36:57
So sähe das bspw. bei mir aus:

_Empfaenger := @Prompt([OKCANCELLISTMULT]:[NoSort]; "Auswahl der Mailempfänger"; "Wählen Sie einen oder mehrere Namen als Empfänger dieser Anfrage."; "alle"; "Name1":"Name2":"Name3"...:"alle");

@If(
 _Empfaenger = "" | @Text(_Empfaenger) = "1";
   @Return("");
 ""
);

@Command([MailComposeMemo]);
@Command([EditGotoField]; "EnterSendTo");
@Command([EditInsertText];@Implode(_Empfaenger;";"));
@Command([EditGotoField]; "Subject")


Andreas
Titel: Re: @Prompt([OKCANCELLISTMULT]
Beitrag von: koehlerbv am 01.03.05 - 11:06:12
Das @Implode gefällt mir nicht - da wird ja explizit aus einem Array ein skalarer Wert gemacht, was durchaus zu Problemen führen kann. Warum nicht gleich ein @SetField mit dem _Empfaenger-Werten ?

Bernhard