Autor Thema: Formelsprache: Eine Art Zählschleife  (Gelesen 6434 mal)

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Formelsprache: Eine Art Zählschleife
« am: 05.08.04 - 08:33:13 »
Servus,

ist es möglich irgendwie ohne Lotus Script in der Formelsprache nen Ablauf zusammenzuwurschteln, dass ich den Effekt einer Zählschleife habe  ???
« Letzte Änderung: 05.08.04 - 08:33:28 von Nexus »

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:Formelsprache: Eine Art Zählschleife
« Antwort #1 am: 05.08.04 - 08:34:41 »
Hi,

meines Wissens nicht. Schleifenfunktionen gibt's erst ab Version 6


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #2 am: 05.08.04 - 11:03:32 »
Ohne mehr über das angestrebte Ziel zu wissen, bleibt nur die Standard-Antwort: Nein, die R5-Formelsprache erlaubt keine Schleifen.
Wenn Du aber sagst, was Du erreichen willst, fällt uns aber vielleicht ein Workaround ein.

Bernhard

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re:Formelsprache: Eine Art Zählschleife
« Antwort #3 am: 05.08.04 - 12:42:03 »
Ich hab hier versucht einen Zähler zu bauen. Welcher ne art Zählschleife emulieren soll. Aber irgendwie zählt er nicht... verstehs nicht :(

FIELD Speicher2 := Testfeld1 ;"";


@Replace(Speicher2; "; "; " : " );
FIELD Speicher1 := @Elements(Speicher2);
@If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
   Zaehler + "1" &
   @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
      Zaehler + "1" &
      @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
         Zaehler + "1" &
         @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
            Zaehler + "1" &
            @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
               @Prompt([OK];"Warnung"; Zaehler))
            )
         )
      )
)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #4 am: 05.08.04 - 12:52:47 »
Deine Formel ist ... sagen wir mal "abenteuerlich" ...

Code
@If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
Soweit ist es noch okay: Wenn Dein Feld Zaehler @Elements ... entspricht, gib' 'nen Prompt aus.
Jetzt kommt der "sonst"-Teil:

Code
Zaehler + "1" &
   @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
Jetzt versuchst Du, zur Zahl "Zaehler" den Text "1" zu addieren und eone LOGISCHE VERKNÜPFUNG mit dem Ergebnis der nächsten If-Abfrage zu machen ...

Beantworte lieber meine Frage, die ich oben gestellt habe: Was willst Du erreichen ?

Bernhard
« Letzte Änderung: 05.08.04 - 13:00:37 von koehlerbv »

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:Formelsprache: Eine Art Zählschleife
« Antwort #5 am: 05.08.04 - 12:53:53 »
Hi,

du "addierst" Strings. Das kann nicht gehen.

Versuch's mal so:

Zaehler := 0;

FIELD Speicher2 := Testfeld1 ;"";


@Replace(Speicher2; "; "; " : " );
FIELD Speicher1 := @Elements(Speicher2);
@If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
   @Set("Zaehler"; Zaehler  + 1) &
   @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
      @Set("Zaehler"; Zaehler  + 1) &
      @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
         @Set("Zaehler"; Zaehler  + 1) &
         @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
            @Set("Zaehler"; Zaehler  + 1) &
            @If(speicher1 = Zaehler; @Prompt([OK];"Ausgabe"; @Max(Zaehler;Speicher2));
               @Prompt([OK];"Warnung"; Zaehler))
            )
         )
      )
)

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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #6 am: 05.08.04 - 12:58:56 »
Die Sache wird ja noch verrückter:
Erst heisst es:
Code
@Replace(Speicher2; "; "; " : " );

Speicher2 enthält also einen String oder eine StringListe.
Dann kommt aber:
Code
@Max(Zaehler;Speicher2)

Wie soll denn das Maximum aus einer Zahl und einer Textliste ermittelt werden ?

Bernhard

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:Formelsprache: Eine Art Zählschleife
« Antwort #7 am: 05.08.04 - 13:04:54 »
Uupps.

Hab ich doch glatt übersehen.

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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #8 am: 05.08.04 - 13:08:18 »
Ging mir auch so. Aber wenn man länger schaut ...

Code
@Prompt([OK];"Warnung"; Zaehler))

Das gibt 'ne leere Massage-Box, da Zaehler nicht in Text umgewandelt wurde.  ;D

Bernhard

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re:Formelsprache: Eine Art Zählschleife
« Antwort #9 am: 05.08.04 - 13:24:36 »
Ich trage eine Anzahl von Namen ein. Diese sollen ermittelt werden also die Anzahl. Dann soll eine Schleife jeden Namen einzel heraus nehmen und in ein Feld speichern. Die Schleife soll solange laufen, bis die Anzahl der Namen erreicht ist.

Glombi

  • Gast
Re:Formelsprache: Eine Art Zählschleife
« Antwort #10 am: 05.08.04 - 13:29:16 »
Ich trage eine Anzahl von Namen ein.
=> Wo werden die Eingetragen? In ein Feld?

Diese sollen ermittelt werden also die Anzahl. Dann soll eine Schleife jeden Namen einzel heraus nehmen und in ein Feld speichern.
=> in EIN Feld oder pro Name ein Feld?

Wir brauchen schon mehr Infos.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #11 am: 05.08.04 - 13:30:00 »
 ???
Du hast ein Feld A mit n Namen. n ist Dir zur Laufzeit unbekannt.
Die n Namen sollen dann in ein Feld B geschrieben werden.
 ???

So habe ich das jetzt verstanden. Aber das kann es ja nicht sein, denn dann wäre ja
FIELD B := A;

 ???
Bernhard

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:Formelsprache: Eine Art Zählschleife
« Antwort #12 am: 05.08.04 - 13:33:36 »
Hi,

meines Erachtens ist das mit der Formelsprache nicht zu machen, da ja die Anzahl der Namen unterschiedlich sein kann.


Mit fällt auf kein Würkaround ein, sei er selbst noch so gewürkt.

Da wirst du wohl an Script ran müssen.


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

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re:Formelsprache: Eine Art Zählschleife
« Antwort #13 am: 05.08.04 - 13:34:08 »
Namen werden ausgewählt bzw. eingetragen in einem Dialoglisten Feld.

Als ergebnis soll jeder Namen in einem eigenen Feld eingetragen werden. Bzw. übermittelt in eine Feld als eigner Datensatz.

So dass in einer Ansicht, welche eine Spalte hat mit der Beschriftung Namen ( Eindeutige Namen ) diese auflistet, als jeweiliges Dokument.

Glombi

  • Gast
Re:Formelsprache: Eine Art Zählschleife
« Antwort #14 am: 05.08.04 - 13:34:38 »
???
Du hast ein Feld A mit n Namen. n ist Dir zur Laufzeit unbekannt.
Die n Namen sollen dann in ein Feld B geschrieben werden.
 ???

So habe ich das jetzt verstanden. Aber das kann es ja nicht sein, denn dann wäre ja
FIELD B := A;

 ???
Bernhard
;) Das war genau mein Gedankengang.

Bin gespannt, wie sich das entwickelt...

Andreas
« Letzte Änderung: 05.08.04 - 13:35:03 von Glombi »

Glombi

  • Gast
Re:Formelsprache: Eine Art Zählschleife
« Antwort #15 am: 05.08.04 - 13:36:48 »
"Als ergebnis soll jeder Namen in einem eigenen Feld eingetragen werden. Bzw. übermittelt in eine Feld als eigner Datensatz.

So dass in einer Ansicht, welche eine Spalte hat mit der Beschriftung Namen ( Eindeutige Namen ) diese auflistet, als jeweiliges Dokument. "
==> Pro Name als ein Dokument,

Sowas hatten wir doch erst hier, oder?
Sei es drum, es geht nur mit Script.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #16 am: 05.08.04 - 13:36:57 »
;) Das war genau mein Gedankengang.

Bin gespannt, wie sich das entwickelt...

Andreas

Zum massiven Baldriankonsum !

Offline Nexus

  • Junior Mitglied
  • **
  • Beiträge: 82
  • Geschlecht: Männlich
  • Lotus Notes Rulez !
Re:Formelsprache: Eine Art Zählschleife
« Antwort #17 am: 05.08.04 - 13:38:13 »
Da wirst du wohl an Script ran müssen.

Axel


Mh... keine Ahnung, wie ich das mit dem Script machen soll :(
Bin nicht so der Notes Spezialist.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Formelsprache: Eine Art Zählschleife
« Antwort #18 am: 05.08.04 - 13:41:00 »
Mh... keine Ahnung, wie ich das mit dem Script machen soll :(
Bin nicht so der Notes Spezialist.
Das hätten wir jetzt gar nicht gemerkt ...

Schreib' doch mal genau auf, was Du machen willst - und schreibe sauber und nicht sowas wie "soll jeder Namen in einem eigenen Feld eingetragen werden. Bzw. übermittelt in eine Feld als eigner Datensatz" (zwischen "Feld" und "Dokument" besteht schon ein klitzekleiner Unterschied.

Vielleicht lässt sich das ganze ja auch ganz anders lösen.

Bernhard

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:Formelsprache: Eine Art Zählschleife
« Antwort #19 am: 05.08.04 - 13:46:20 »
Hi,

ich denke mal das Ganze soll beim Speichern des Dokumentes erfolgen, oder ?

So könnte das aussehen.  Die Feldnamen und den Maskennamen musst du natürlich anpassen.

Sub Querysave(Source As Notesuidocument, Continue As Variant)

Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim docThis As NotesDocument
Dim docNew As NotesDocument
Dim idx as Integer

Set db = session.CurrentDocument
Set docThis = source.Document

For i = 0 to Ubound(docThis.Dialogliste)
  Set docNew = New NotesDocument(db)
  docNew.Form = "Name der Maske"
  docNew.FeldfürName = docThis.Dialogliste(idx)
  Call docNew.Save(True, False)
Next

...


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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz