Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet 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
-
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
-
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...
-
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
-
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
-
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
-
Danke, Danke, Danke.... Vielen Dank!
Hast mir sehr geholfen - viele Grüße aus dem sonnigen Berlin!