Autor Thema: Checkbox im Frontend mit Script setzen  (Gelesen 4530 mal)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Checkbox im Frontend mit Script setzen
« 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
Domino, Notes, Sametime

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Checkbox im Frontend mit Script setzen
« Antwort #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
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... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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.
Domino, Notes, Sametime

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.696
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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
Domino, Notes, Sametime

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Checkbox im Frontend mit Script setzen
« Antwort #5 am: 15.11.18 - 11:37:12 »
nö...
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... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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.

Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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.

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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. :-(
Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #10 am: 15.11.18 - 15:01:18 »
Leere DB erstellt und getestet. Geht genauso wenig. :-(
Hänge die DB mal hier an.
Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Checkbox im Frontend mit Script setzen
« Antwort #12 am: 15.11.18 - 15:38:27 »
jupp, hier die gleiche Meldung
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... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #13 am: 15.11.18 - 15:58:00 »
Komisch. Erstellt mit Notes 9. Hier nochmal an 8er.
Domino, Notes, Sametime

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.870
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Checkbox im Frontend mit Script setzen
« Antwort #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...
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... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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
Domino, Notes, Sametime

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #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 »

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 482
  • Geschlecht: Männlich
Re: Checkbox im Frontend mit Script setzen
« Antwort #17 am: 15.11.18 - 18:12:06 »
Kurz und knackig. ;-)

Vielen Dank für Eure Hilfe. Das mache ich jetzt so.
Domino, Notes, Sametime

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz