Autor Thema: Button inaktiv setzen  (Gelesen 5685 mal)

7Stein

  • Gast
Button inaktiv setzen
« 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


Offline byte

  • Aktives Mitglied
  • ***
  • Beiträge: 158
  • Geschlecht: Männlich
  • Pillenausgabe geschwänzt ^^
Re:Button inaktiv setzen
« Antwort #1 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

oder

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
« Letzte Änderung: 13.08.04 - 08:48:40 von byte »
egal ist auch wurschd ^^

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Button inaktiv setzen
« Antwort #2 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline byte

  • Aktives Mitglied
  • ***
  • Beiträge: 158
  • Geschlecht: Männlich
  • Pillenausgabe geschwänzt ^^
Re:Button inaktiv setzen
« Antwort #3 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*
egal ist auch wurschd ^^

7Stein

  • Gast
Re:Button inaktiv setzen
« Antwort #4 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???

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Button inaktiv setzen
« Antwort #5 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline byte

  • Aktives Mitglied
  • ***
  • Beiträge: 158
  • Geschlecht: Männlich
  • Pillenausgabe geschwänzt ^^
Re:Button inaktiv setzen
« Antwort #6 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
egal ist auch wurschd ^^

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Button inaktiv setzen
« Antwort #7 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline byte

  • Aktives Mitglied
  • ***
  • Beiträge: 158
  • Geschlecht: Männlich
  • Pillenausgabe geschwänzt ^^
Re:Button inaktiv setzen
« Antwort #8 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

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 ;-)
« Letzte Änderung: 13.08.04 - 09:49:12 von byte »
egal ist auch wurschd ^^

7Stein

  • Gast
Re:Button inaktiv setzen
« Antwort #9 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.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Button inaktiv setzen
« Antwort #10 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
Ohne Computer wären wir noch lange nicht hinterm Mond!

7Stein

  • Gast
Re:Button inaktiv setzen
« Antwort #11 am: 13.08.04 - 10:16:34 »
Jo, das hat funktioniert.

Danke

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Button inaktiv setzen
« Antwort #12 am: 13.08.04 - 10:29:44 »
Hi,

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

Danke.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz