Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: michael-r am 26.05.11 - 22:54:41
-
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
-
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.
-
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
-
Hi michael-r,
die Script-Variante von meinem Vorredner passt zu 99% immer.
UBound (DeinNotesDocument.DeinItemName) + 1
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
-
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
-
Nochmal eine kleine Frage, ich habe eine Rolle in der DB über den Adminclient ohne Server Zugriff erstellt.
Jetzt soll im Menü nur angezeigt werden wenn der Benutzer die Rolle ADMIN hat: @IsNotMember("[ADMIN]";@UserRoles).
Erkennt das der Client nicht richtig, wenn ich die Rolle nicht über einen Server setze?
MFG Michael
-
Scheint so zu sein, ich habe gerade mit einem Prompt @UserRoles abgefragt und kein Ergebnis zurück erhalten.
Danke.
-
Nochmal eine kleine Frage, ich habe eine Rolle in der DB über den Adminclient ohne Server Zugriff erstellt.
Jetzt soll im Menü nur angezeigt werden wenn der Benutzer die Rolle ADMIN hat: @IsNotMember("[ADMIN]";@UserRoles).
Erkennt das der Client nicht richtig, wenn ich die Rolle nicht über einen Server setze?
MFG Michael
Hä? Kannst Du die Frage bitte nochmal in verständlicher Form formulieren?
Vorab:
Was hat der Admin-Client damit zu tun? ACL ist ACL ist ACL.
Hast Du das in einer lokalen DB gemacht? Wenn ja: Dir ist schon klar, unter welchen Umständen dann nur ACL-Einstellungen greifen?
Bernhard
-
Ja nein, war mit nicht klar... dann muss ich das über einen Server machen.
Der Admin Client hat damit zu tun, dass die DB diese Rolle nicht hatte und der Benutzer genauso wenig ;).
MFG Michael
-
Das musst Du überhaupt nicht über einen Server machen ... Und Du brauchst auch keinen Admin-Client für diesen Stunt. Bitte lies Dir da noch mal die Admin-Basics zum ACL-Management durch.
Lokale DBs verhalten sich hinsichtlich ACL jedoch anders als auf dem Server (magelns Informationen aus dem DD). Du möchtest hierzu auch Infos zur konsistenten ACL einziehen.
Bernhard
-
Hallo,
leider hat da nicht geklappt, aber danke für den Hinweis.
Ich habe die lokal gesetzt wie in der Deisgner Hilfe, auch versucht mit erzwingen der ACLs aber irgendwie bekomme ich immer keinen Wert zurück.
MFG Michael
-
Hallo,
Du hast also in der betreffenden Datenbank die "konsistente ACL" eingeschaltet.
Hast Du Dich dann auch nochmal neu angemeldet?
Und hat der aktuelle Benutzer auch gesetzte Roles?
Und immer dran denken, wenn mehr als 1 Role gesetzt ist, kommt ein Array zurueck und den kannst Du mittels eines @Prompt nicht ausgeben.
Andreas
-
Hi Andreas,
danke schön.
Von neustarten des Clients stand leider nichts drin. Ich habe das nun ein paar mal durchgefürt, setzen und neustarten. Und siehe da es klappt.
MFG Michael
-
Statt neu starten hätte eine Abmeldung der ID ausgereicht. Über die ACL und das Handling von Berechtigungen musst Du Dich echt nochmal gründlich schlau machen, Michael. Nix für ungut ...
Bernhard