Domino 9 und frühere Versionen > ND8: Entwicklung

Feldwerte zählen

(1/3) > >>

michael-r:
Hi,

wie kann ich Feldwerte in einem Textfeld zählen und in ein berechnendes Feld packen?
Also Im Text Feld werden Namen nach Zeilen gelistet. Pro Zeile ein Name >> Wenn ich 3 Einträge habe will ich in einem neuen Feld 3 drin stehen haben.
Muss glaub ich eine @function sein.

Ich glaube ich mache schon zu lange ich stehe irgendwie neben mir ;).

MFG Michael

koehlerbv:
Wenn es ein Mehrfachwerte-Feld ist: @Elements.

Und bitte beachte: Es ist schei**egal, wie Du im Frontend (Maske) Deine Einzelwerte trennen lässt (Komma, Semikolon, neue Zeile or whatever - es zählt, was im Item selber drin steht.

Bernhard

PS: Wenn Du es in LotusScript brauchst:
UBound (DeinNotesDocument.DeinItemName) + 1

unter der Massgabe, dass ein "leeres" Feld auch "zählt". Wenn nicht, dann etwas aufwändiger - aber das bekommst Du einfach selber heraus.

michael-r:
Hi,

dank dir. War gestern doch zu spät, ich habe vergessen, das Feld muss ja auch als Zahl deklariert sein. Anderfalls kommt eine Fehlermeldung.

Klappt wunderbar.

MFG Michael

ghostmw:
Hi michael-r,

die Script-Variante von meinem Vorredner passt zu 99% immer.


--- Zitat ---UBound (DeinNotesDocument.DeinItemName) + 1
--- Ende Zitat ---

Um aber auch zuverlässig in "schrägen" Umgebungen zu funktionieren, wäre folgendes die 100%ige Lösung.
"Schräg" bedeutet hier, wenn man eine andere Basis für Arrays als "default" 0 nimmt.
Das kann man mit dem Befehl "option base 1" tun.

Damit fangen Arrays bei Index 1 und nicht 0 an und der Code liefert falsche Werte, z.B. bei einem Array mit 1 Eintrag liefert es dann 2 statt 1.

Nur der Vollständigkeit halber der präzisere Code ...  ;)

UBound (DeinNotesDocument.DeinItemName) - LBound (DeinNotesDocument.DeinItemName) + 1

koehlerbv:
Aber wer macht denn sowas schräges, Marco?

Option Base kann man ja auf sonst was setzen, aber wo immer ich das bisher in Fremdcode gesehen habe, kam es an anderen Stellen zu Konflikten (da haben die "Entwickler" dann selber nicht mehr daran gedacht, was sie an anderer Stelle an Murks gemacht haben) und schon schepperte es.

Man einigt sich auf eine prinzipielle Option Base. Und da kann man es dann gleich bei der 0 belassen.

Prinzipiell hast Du aber natürlich vollkommen Recht! Man muss auf diese Falle gefasst sein.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln