AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
21.01.19 - 18:38:49
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Checkbox im Frontend mit Script setzen
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Checkbox im Frontend mit Script setzen  (Gelesen 584 mal)
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« am: 15.11.18 - 10:23:10 »

Hallo allerseits,

Ich habe zwei Checkboxen.

Erste Checkbox hat einen Wert: Aktivieren
Zweite Checkbox hat 4 Werte: 0,25 / 0,5 / 0,75 / 1,0
Keine Alias verwendet

Sobald in der ersten Checkbox der Haken "Aktivieren" gesetzt wird, soll in der zweiten Checkbox der Haken bei "1,0" gesetzt werden und all anderen Werte gelöscht werden.

Dazu nutze ich das OnChange-Event der ersten Box.

Code:
Call uidoc.fieldsettext("Checkbox2","1,0")
Call uidoc.Refresh

Leider bleibt die Checkbox 2 leer bzw. falls vorher Werte gesetzt waren werden die gelöscht aber der Wert "1,0" nicht gesetzt.

Getestet habe ich das mit zwei Checkboxen mit Einfachwerten, da klappt das. Aber warum nicht bei Mehrfachwerten?

Sebastian
Gespeichert

Domino, Notes, Sametime
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6122


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #1 am: 15.11.18 - 10:43:41 »

FieldSetText ist nicht für Checkboxen geeignet. An dieser Stelle musst Du mit der Backendmethode arbeiten:

Code:
Call uidoc.Document.Replaceitemvalue( "Checkbox2","1,0" )
'- Evtl: Call uidoc.Reload()
Call uidoc.Refresh
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #2 am: 15.11.18 - 10:53:26 »

Code:
Call uidoc.Document.Replaceitemvalue( "Checkbox2","1,0" )
'- Evtl: Call uidoc.Reload()
Call uidoc.Refresh

Im Backend geht das leider so auch nicht. Weder mit Reload noch ohne.

Ich sehe im Debugger schön, wie die Checkbox2(0) den Wert "1,0" bekommt aber mit uidoc.Refresh wird Checkbox wieder geleert.
Gespeichert

Domino, Notes, Sametime
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 3666


« Antworten #3 am: 15.11.18 - 11:02:47 »

Hallo,

Ich bin nun nicht der Spezialist in der Programmierung.

Aber.
Die 2. Checkbox beinhaltet doch wohl, so verstehe ich es, die 4 Werte (0,25 - 0,5 - 0,75 und 1,0)

Sollte also die Eigenschaft "Mehrfachwerte" besitzen. Und diese Mehrfachwerte werden doch durch ein Komma betrennt.
(konnte man hier bei diesem Feldtyp nicht ändern)

Eventuell liegt das Problem ja darin beründet.


Andreas
Gespeichert
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #4 am: 15.11.18 - 11:23:18 »

Danke Andreas ein Wink in die richtige Richtung. Obwohl im Debugger nur ein Wert angezeigt wird, muss man wohl eine Liste in die Checkbox schreiben.

Also so ...

Code:
Dim liste(0 To 3) As String
liste(0) = ""
liste(1) = ""
liste(2) = ""
liste(3) = "1,0"

Call uidoc.Document.Replaceitemvalue( "Checkbox2", liste)
Call uidoc.Refresh
Gespeichert

Domino, Notes, Sametime
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6122


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #5 am: 15.11.18 - 11:37:12 »

nö...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #6 am: 15.11.18 - 12:22:37 »

nö...

Hmm, Dein Vorschlag geht aber bei mir nicht. Und einstellen kann man ja bei zwei Checkboxen auch nicht so viel.

Gespeichert

Domino, Notes, Sametime
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2564



« Antworten #7 am: 15.11.18 - 12:57:42 »

...
Ich sehe im Debugger schön, wie die Checkbox2(0) den Wert "1,0" bekommt aber mit uidoc.Refresh wird Checkbox wieder geleert.
Dann hast Du bestimmt irgendwo etwas eingebaut, dass diese Leerung verursacht. Schau mal im Queryrecalc oder Postrecalc, oder irgendwo in den Eigenschaften des Feldes (Eingabevalidierung usw.). Da wird bestimmt der erste Wert auf Leer geprüft, und wenn der nicht leer ist, wird gelöscht. Dadurch, dass Du eine Liste da hineinschreibst, ist der erste Wert leer und die Leerung erfolgt nicht.


nur so aus dem Bauch. Grundsätzlich funktioniert das sehr gut, Checkboxen per Script zu belegen.
Gespeichert
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #8 am: 15.11.18 - 14:32:41 »

Alles durchgeschaut, nirgends steht irgendwas. Weder im Reclam des Dokuments noch im Recalc des Feldes. Im Gegenteil, alle Eigenschaften des Feldes sind leer und im Dokument steht nur was im Postopen.

Ändere ich das Feld in eine Dialogliste, funktioniert übrigens die Belegung. :-(
Gespeichert

Domino, Notes, Sametime
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2564



« Antworten #9 am: 15.11.18 - 14:45:57 »

Kannst Du das Problem in einer Testbank mit einer Maske und einem Feld rekonstruieren?

Falls ja, hänge doch mal diese Testdatenbank hier an
Gespeichert
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #10 am: 15.11.18 - 15:01:18 »

Leere DB erstellt und getestet. Geht genauso wenig. :-(
Hänge die DB mal hier an.
Gespeichert

Domino, Notes, Sametime
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2564



« Antworten #11 am: 15.11.18 - 15:15:03 »

Unter 8 sagt er, falsche Version, unter 9 Ungültiges oder nicht vorhandenes Dokument. Ist das mit 10 erstellt? Speicher die Datenbank bitte mal als test.ns8
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6122


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #12 am: 15.11.18 - 15:38:27 »

jupp, hier die gleiche Meldung
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #13 am: 15.11.18 - 15:58:00 »

Komisch. Erstellt mit Notes 9. Hier nochmal an 8er.
Gespeichert

Domino, Notes, Sametime
Tode
Moderatoren
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 6122


Geht nicht, gibt's (fast) nicht... *g*


« Antworten #14 am: 15.11.18 - 16:31:21 »

Ok. Es liegt also wirklich an dem Komma... sobald man versucht, ein Checkbox- Feld mittels script auf einen Wert zu setzen, der ein Komma enthält, geht es nicht mehr. Kann daher kommen, dass man das "Komma" in diesem Feldtypen nicht als trennzeichen deaktivieren kann...Das würde ich tatsächlich als Bug ansehen...
Gespeichert

Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...

Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #15 am: 15.11.18 - 16:33:54 »

Also doch nur so:

Code:
Dim liste(0 To 3) As String
liste(0) = ""
liste(1) = ""
liste(2) = ""
liste(3) = "1,0"

Call uidoc.Document.Replaceitemvalue( "Checkbox2", liste)
Call uidoc.Refresh
Gespeichert

Domino, Notes, Sametime
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2564



« Antworten #16 am: 15.11.18 - 17:37:05 »

Bei mir geht es so

Code:
Dim liste As Variant
Redim liste (0)
liste (0) = "1,0"
doc.Checkbox2 = liste
Call uidoc.Refresh

Wichtig ist vermutlich, dass es ein Array ist, wenn auch nur mit einem Element

EDIT:

Alternative, um es kurz zu halten

Code:
doc.Checkbox2 = Split ("1,0", ":")
Call uidoc.Refresh
« Letzte Änderung: 15.11.18 - 17:49:52 von Peter Klett » Gespeichert
theBastian
Senior Mitglied
****
Offline Offline

Geschlecht: Männlich
Beiträge: 459



« Antworten #17 am: 15.11.18 - 18:12:06 »

Kurz und knackig. ;-)

Vielen Dank für Eure Hilfe. Das mache ich jetzt so.
Gespeichert

Domino, Notes, Sametime
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: