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.
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
FieldSetText ist nicht für Checkboxen geeignet. An dieser Stelle musst Du mit der Backendmethode arbeiten:
Call uidoc.Document.Replaceitemvalue( "Checkbox2","1,0" )
'- Evtl: Call uidoc.Reload()
Call uidoc.Refresh
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 ...
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
Also doch nur so:
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
Bei mir geht es so
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
doc.Checkbox2 = Split ("1,0", ":")
Call uidoc.Refresh