Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: 7Stein am 13.08.04 - 08:13:11

Titel: Button inaktiv setzen
Beitrag von: 7Stein am 13.08.04 - 08:13:11
Tja, schon wieder eine Frage: ???

Kann ich einen Button inaktiv setzen solange bis alle Feldwerte, die ich benötige eingetragen sind??????????

Kurz zur Erläuterung:
Ich habe einen Dialog, in den Artikelnummer, Bezeichnung, Menge und Preis eingegeben werden müssen. Bezeichnung und Menge sind dabei die beiden wichtigsten Felder. Solange da nichts drinsteht, soll der User die Bestellung auch nicht abschicken können. Also da ich von delphi komme, war das immer möglich den Button enabled = false zu setzen und erst auf true zu setzen, wenn alle Feldwerte vorhanden waren.
Geht das auch mit Lotus???????????
Und wenn ja wäre ich dankbar für ein kleines Beispiel.
Mein Kollege sagt, das geht nicht. Kann ich mir aber nicht wirklich vorstellen.

Danke schonmal für die Hilfe

Gruß 7Stein

Titel: Re:Button inaktiv setzen
Beitrag von: byte am 13.08.04 - 08:33:09
Tja, schon wieder eine Frage: ???

Kann ich einen Button inaktiv setzen solange bis alle Feldwerte, die ich benötige eingetragen sind??????????

Kurz zur Erläuterung:
Ich habe einen Dialog, in den Artikelnummer, Bezeichnung, Menge und Preis eingegeben werden müssen. Bezeichnung und Menge sind dabei die beiden wichtigsten Felder. Solange da nichts drinsteht, soll der User die Bestellung auch nicht abschicken können. Also da ich von delphi komme, war das immer möglich den Button enabled = false zu setzen und erst auf true zu setzen, wenn alle Feldwerte vorhanden waren.
Geht das auch mit Lotus???????????
Und wenn ja wäre ich dankbar für ein kleines Beispiel.
Mein Kollege sagt, das geht nicht. Kann ich mir aber nicht wirklich vorstellen.

Danke schonmal für die Hilfe

Gruß 7Stein



vielleicht hilft dir dieses weiter? if  used im Web !!

http://www.oreilly.de/catalog/designjs2ger/chapter/f_Kapitel04.html#1000004372 (http://www.oreilly.de/catalog/designjs2ger/chapter/f_Kapitel04.html#1000004372)

oder

http://www.drweb.de/formulare/formulare_pruefen.shtml (http://www.drweb.de/formulare/formulare_pruefen.shtml)

hier könnte man  den Status abfragen und dann den button aktivieren, wenn alle erforderlichen  Angaben gemacht wurden.



siehe hier :

http://www.webwork-magazin.net/tricks/artikel/162 (http://www.webwork-magazin.net/tricks/artikel/162)
Titel: Re:Button inaktiv setzen
Beitrag von: Axel am 13.08.04 - 08:39:06
Hi,

einen Button auf disabled setzen geht in Notes nicht. Du kannst ihn höchstens verstecken, so lange die entsprechenden Felder leer sind. Dabei hast du aber das Problem der Aktualisierung. Denn wenn die Felder ausgefüllt sind und du das Dokument nicht aktualisierst, wird auch der Button nicht angezeigt.

Ich würde den Weg gehen, beim absetzen der Bestellung die Felder zu prüfen.
Das ist die sauberste Alternative.

Axel
Titel: Re:Button inaktiv setzen
Beitrag von: byte am 13.08.04 - 08:47:57
geht nicht...  gibt es nicht *ggg*

ich  hab es schon gesehen, daß  es geht, allerdings bin ich  kein Codespezi -   jedoch  mit den entsprechenden mitteln, wie aus den Links sichtbar  -  jedoch im WEB.... ist sowas durchaus machbar... *mundmalvollnehm *ggg*
Titel: Re:Button inaktiv setzen
Beitrag von: 7Stein am 13.08.04 - 08:54:03
und wenn ich den Button verstecke, wie geht das?
Und wann muss ich dann einen Refresh machen? Wie bekomme ich heraus wann der Benutzer einen Wert in das Feld eingegeben hat?
Mache ich das in dem OnExiting Ereignis des Feldes oder wie???
Titel: Re:Button inaktiv setzen
Beitrag von: Axel am 13.08.04 - 09:03:35
Hi,

in der Hide-When-Formel des Buttons trägst du ein

NamedesFeldes = ""

D.h. der Button wird versteckt wenn das Feld NamedesFeldes leer ist. Den Refresh kannst du in Exiting - Event auslösen.

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument

Set uidoc = workspace.CurrentDocument
Call uidoc.Refresh


Axel
Titel: Re:Button inaktiv setzen
Beitrag von: byte am 13.08.04 - 09:05:23
eben mal  gegoogelt...
... dafür wird im Notes die "Feldvalidierung" (zu finden in den Feld- Eigenschaften unter "Eingabevalidierung" ) verwendet.

Ist der Inhalt des Feldes OK, dann muss Deine Formel @Success zurückliefern, ist er nicht ok, dann muss die Rückgabe @Failure( "Fehlermeldung zu diesem Feld" ) lauten.

bevor nicht ALLE Eingabevalidierungen ALLER Felder in einer maske @Success zurückliefern, lässt sich die Maske nicht speichern.

HTH
Tode

den speichern button solange  hidden lassen, bis alle Felder den Status ( nicht sichtbar ) success haben.

think...


http://www.google.de/search?q=cache:vIc1q6RftVYJ:www.spotlight.de/zforen/lts/m/lts-1078921443-18684.html+feldvalidierung+lotus+notes&hl=de (http://www.google.de/search?q=cache:vIc1q6RftVYJ:www.spotlight.de/zforen/lts/m/lts-1078921443-18684.html+feldvalidierung+lotus+notes&hl=de)
Titel: Re:Button inaktiv setzen
Beitrag von: Axel am 13.08.04 - 09:20:11
den speichern button solange  hidden lassen, bis alle Felder den Status ( nicht sichtbar ) success haben.


 ??? ??? ??? ???

Das musst du schon etwas genauer erläutern. Wie willst du denn Hide-When und success mit einander verbandeln?

Axel
Titel: Re:Button inaktiv setzen
Beitrag von: byte am 13.08.04 - 09:34:45
du  gibst jeden Feld ein FLag, ( Hidden )

frägst in der Hide when formel ab, ob Feld 1 - xy  = 1 oder 0

Wenn alle  = 1 dann  button sichtbar

letztes Feld  übergibt die jeweilige Prüfung des Inhaltes eines Vorherigen Feldes.
Wenn  das Vorherige Feld nicht  befüllt wurde, ist ein füllen des nachfolgenden weiteren Feldes nicht möglich, bevor das vorhergehende Feld nicht befüllt ist.. & so on...

Letzes Feld  kippt den Schalter des Buttons, nach "wahr",  wenn  es befüllt wurde... und Button wird sichtbar

( Dominoeffekt )   - erstes Feld.. kritzel...  zweites Feld kritzel..... drittes Feld.. kritzel...  - button sichtbar...

http://www-10.lotus.com/ldd/today.nsf/lookup/hidewhen (http://www-10.lotus.com/ldd/today.nsf/lookup/hidewhen)

den switch könnte man auch  durch ein nicht sichtbares Feld am Ende des Formulares initiieren, daß    den Wert 1 erhält, sobald alles  oder das letze Feld den Wert 1  erreicht oder ausgefüllt wurde...

wie gesagt, ich  bin kein Entwickler...  !

man  könnte den button auch  in eine Section platzieren die hidden ist, bis  feldstatus =1

auslöser würde aber sicher  on exiting sein, jedoch  ist es ein Problem, wenn der User die Maus nicht aus dem Feld bewegt ;-)
Titel: Re:Button inaktiv setzen
Beitrag von: 7Stein am 13.08.04 - 09:51:15
Also so richtig verstanden habe ich da ganze noch nicht. Ich habe einen Dialog, der geöffnet wird um eine Bestellung zu generieren. Auf diesem Dalog ist ein "K" und ein"Abbrechen" Button. Wie habe ich in diesem Dialo Zugriff auf die Button?????????
Der Dialog wird doch generiert mit einer Codezeile :
Code
      OK = ws.Dialogbox( "LieferPosEdit", True, True, False, False, False, False, "Bestellposition bearbeiten", detail )
      
      If OK Then
         Call detail.Save( True, True )
         Call view.Refresh()
         Call uiDoc.Refresh()
      End If

Wie kann ich hier auf den Button mit HIDE-When oder so zugreifen?????????

Das habe ich noch nicht verstanden.
Titel: Re:Button inaktiv setzen
Beitrag von: Axel am 13.08.04 - 10:02:57
Hi,

ah ha. So langsam kommt Licht in die Sache. An die Buttons OK und Abbrechen des Dialoges kommst so nicht ran. Du kannst sie nur generell nicht anzeigen lassen und musst dich dann aber selbst darum kümmern. So 'ne Lösung habe ich irgendwo mal gesehen. Das ist sehr aufwändig gewesen.

Du kannst aber verhindern, dass der Dialog geschlossen werden kann, wenn nicht alle relevanten Felder ausgefüllt sind.

Dazu gibt es die Eigenschaft DialogBoxCanceled in der Klasse NotesUIDocument

Der Code kommt in den Queryclose - Event der Dialogbox-Maske.

Sub Queryclose(Source As NotesUIDocument, Continue As Variant)
    If Not Source.DialogBoxCanceled Then
       'Hier werden dann alle Felder der Reihe nach geprüft
        If Source.FieldGetText("Name des Feldes") = "" Then
             Messagebox "Sie haben das Feld nicht ausgefüllt"
             Continue = False
        End If
    End If  
End Sub

Axel
Titel: Re:Button inaktiv setzen
Beitrag von: 7Stein am 13.08.04 - 10:16:34
Jo, das hat funktioniert.

Danke
Titel: Re:Button inaktiv setzen
Beitrag von: Axel am 13.08.04 - 10:29:44
Hi,

wenn das Problem erledigt ist, setzt du es bitte noch auf "Erledigt".

Danke.


Axel