2017-01-30 7 views
0

Ich entwickle eine Lotus Notes-Anwendung. Ich frage mich, wie man einzelne Checkbox-Optionen aus der Checkbox-Liste checkt/deaktiviert und aktiviert/deaktiviert. Dies ist, wie ich eine Arbeit um tat es zu überprüfen, irgendwie:Wie mit Checkbox-Liste in Lotusscript arbeiten?

Dim CheckListInitiator As String 
CheckListInitiator = doc.CheckListInitiator(0)  ''get the checked items text in a variable. 

''append the content of the required checkbox to the list. This will check it. 

If CheckListInitiator = "" Then  ''if nothing checked, means the list is empty. 
    CheckListInitiator = "Allotment Approval attached"   
Else ''the list has one or more options checked, so append the content. 
    CheckListInitiator = CheckListInitiator + "; Allotment Approval attached"   
End If 

Ich bin mir nicht sicher, ob dies der richtige Weg, dies zu tun. Außerdem kann ich einzelne Elemente aus der Liste nicht aktivieren und deaktivieren.

Kann jemand helfen, wie man das macht?

Danke!

Antwort

1

Ich würde eine Array-Variante verwenden, um es einfach zu halten. Was Sie erstellen müssen, ist ein mehrwertiges Feld und keine Zeichenfolge mit Semikolons.

Dim checkListValues as Variant 
    'turn this into a variant array 
checkListValues = split("") 
    'add the values currently selected and remove the blank 
checkListValues = FullTrim(arrayappend(checkListValues, doc.CheckListInitiator)) 
    'add the value you want to add 
checkListValues = ArrayAppend(checkListValues, "Allotment Approval attached") 
    'return this list to the document 
doc.CheckListInitiator = checkListValues 

Es gibt andere Wege, dies zu tun, mit dem richtigen Arrays und so weiter, aber für mich, das ist der einfachste Weg, in LotusScript-.

Es ist auch sehr einfach in @Formula Sprache.

@Setfield("CheckListInitiator"; CheckListInitiator : "Allotment Approval attached") 
+0

Verwenden Sie FullTrim() anstelle von Trim() ... –

+0

@ D.Bugger Absolut korrekt. Ein dummer Fehler, möglicherweise verursacht durch zu viel Formel Formel in letzter Zeit zu schreiben. Bearbeitet und korrigiert –

0

Sie können die ausgewählten Werte durch doc.getitemvalue erhalten ("[CheckBoxName]") diese gibt ein Array. Um das Kontrollkästchen zu aktivieren, führen Sie einfach einen doc.replaceItemvalue ("[CheckBoxName]", "[CheckBoxValue]") oder doc.replaceItemValue ("[CheckBoxName]", [checkBoxValues]) aus, um mehrere Werte gleichzeitig festzulegen.

Welche Werte in einem Kontrollkästchen verfügbar sind, wird im Formular Notizen in den Kontrollkästcheneigenschaften definiert. Diese

0

ist, wie ich es tat, und es scheint zu funktionieren:

die entsprechende Checkbox Um zu überprüfen:

Dim checkListValues As Variant 
'Turn this into a variant array 
checkListValues = Split("") 

checkListValues = Fulltrim(Arrayappend(checkListValues, doc.GetItemValue("CheckListInitiator"))) 
checkListValues = Arrayappend(checkListValues, "Allotment Approval attached") 

Call doc.ReplaceItemValue ("CheckListInitiator", checkListValues) 
Call doc.Save(True, False) 

die entsprechende Checkbox, um nicht angehakt:

Dim checkListValues As Variant 
''Turn this into a variant array 
checkListValues = Split("") 

''Build array from the checkbox list, then remove the respective array element to update the list. 
checkListValues = Fulltrim(Arrayappend(checkListValues, doc.GetItemValue("CheckListInitiator")))  
checkListValues = Fulltrim(Replace(checkListValues, "Allotment Approval attached","")) 
Call doc.ReplaceItemValue ("CheckListInitiator", checkListValues) 
Call doc.Save(True, False) 

Jetzt der letzte Punkt: Ich muss das entsprechende Kontrollkästchen aktivieren/deaktivieren. Ich habe keine Ahnung, wie ich das erreichen kann. Ist es möglich?

+0

Hilfe zum Deaktivieren einzelner Kontrollkästchen? –

+0

Sie können einzelne Kontrollkästchen ein- oder ausblenden, indem Sie die Schlüsselwörter ändern. Sie können jedoch einzelne Kontrollkästchen in Notes, soweit ich weiß, nicht aktivieren/deaktivieren. –