Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: axelot am 18.09.06 - 18:11:02

Titel: Kontrollkästchen begrenzen?
Beitrag von: axelot am 18.09.06 - 18:11:02
Hallo zusammen,

ich habe ein Feld (Kontrollkästchen) das 33 Einträge hat, die aktiviert werden können.
Wie verhindere ich, das mehr als 7 angeklickt werden können. Ist eine Lösung mit Optionsflächen besser (obwohl hier nicht mehr als 7 Einträge je Feld stehen dürfen.

Ich hoffe, Ihr habt hier eine gute Idee für. Vielen Dank
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: koehlerbv am 18.09.06 - 18:42:30
Wenn Du begrenzen möchtest, kannst Du das zum Beispiel über das PostRecalc-Event machen:
Für das Feld stellst Du ein, dass die Felder bei Schlüsselwortänderung aktualisiert werden sollen. Jegliche Änderung an den Kontrollkästechen triggert nun das PostRecalc-Event.
Im Event selbst zählst Du die Elemente Deines Kontrollkästchen-Feldes (mit Ubound (DEINFELD)) , bei mehr als 7 gibt es Gemecker.
Du kannst das dann auch noch ausbauen, und zum Beispiel nach dem Gemecker den zuletzt gewählten Wert wieder entfernen (in dem Du Dir im PostRecalc jeweils den letzten Feldinhalt merkst).

HTH,
Bernhard
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: axelot am 20.09.06 - 11:54:12
Hallo Bernhard,

zunächst Danke für Deinen Tipp. Allerdings komme ich hier trotz Notes Hilfe nicht weiter und weis leider nicht wie in

Sub Postrecalc(Source As Notesuidocument)
   UBound ( Dim maxima(2)
   Print Ubound(maxima)
End Sub

die UBound Funktion richtig einsetzten kann. Hier reichen meine Kenntnisse einfach nicht aus. Werde mir dann wohl auf andere Weise helfen müssen...
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: Glombi am 20.09.06 - 12:08:37
Sub Postrecalc(Source As Notesuidocument)

if Ubound( Source.Document.DeinFeldname ) > 6 then
msgbox "Bitte nicht mehr als 7 Optionen wählen!",0+16,"Hinweis"
end if

End Sub


Damit nicht gespeichert werden kann:

Sub Querysave(....)

if Ubound( Source.Document.DeinFeldname ) > 6 then
msgbox "Bitte nicht mehr als 7 Optionen wählen!",0+16,"Hinweis"
continue = false
exit sub
end if

End Sub



Andreas
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: axelot am 20.09.06 - 13:27:22
Hallo Andreas,
nach diesem Hinweis hätte es ja eigentlich klappen müssen, aber es ist mir ja schon fast peinlich.... es funktioniert leider nicht. Nachfolgendes habe ich jetzt eingegeben, aber ich kann immer noch alle 34 Kästchen im Feld Bewertung.... anklicken....
Sub Postrecalc(Source As Notesuidocument)
If Ubound( Source.Document.Bewertung_Faehigkeit1 ) > 6 Then
Msgbox "Bitte nicht mehr als 7 Optionen wählen!",0+16,"Hinweis"
End If
End Sub

und

Sub Querysave(Source As Notesuidocument)
If Ubound( Source.Document.Bewertung_Faehigkeit1 ) > 6 Then
Msgbox "Bitte nicht mehr als 7 Optionen wählen!",0+16,"Hinweis"
continue = False
Exit Sub
End If
End Sub
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: Tode am 21.09.06 - 14:11:29
denen, die hier mitlesen muss es wie eine alte Leier vorkommen, aber ich muss meinem Ruf als "Konservativer Formelverfechter" mal wieder gerecht werden...

Warum nehmt Ihr nicht das genau für sowas vorgesehenen Ereignisse "EingabeValidierung" ?

@If( @Elements( @ThisValue ) > 7 ; @Failure( "Bitte nicht mehr als 7 Optionen wählen" ) ; @Success )

Oder aber ohne Fehlermeldung (so dass man gar nicht erst mehr als 7 auswählen kann) mit Hilfe eines zweiten Feldes und der Eingabeumsetzung:

Feld "alteFaehigkeit" , berechnet beim anlegen, ""

und dann in der Eingabeumsetzung:

@If( @Elements( @ThisValue ) > 7 ; @Return( alteFaehigkeit ) ; "" );

FIELD alteFaehigkeit := @ThisValue ;
@ThisValue

Optional kann man ins Return noch per @Do eine Meldung eintragen: @Prompt( ,..... ) mit "Sie wollen mehr als 7 Werte eintragen, zuletzt gesetzter Wert wird rückgängig gemacht.

Gruß
Tode
Titel: Re: Kontrollkästchen begrenzen?
Beitrag von: axelot am 21.09.06 - 15:03:00
Danke, Danke, Danke.... Vielen Dank!

Hast mir sehr geholfen - viele Grüße aus dem sonnigen Berlin!