Autor Thema: Problem mit Schaltfläche in Dialogdokument  (Gelesen 9191 mal)

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Problem mit Schaltfläche in Dialogdokument
« am: 05.02.09 - 12:20:34 »
Hallo zusammen,

ich habe eine Dialogeingabemaske in der ich aufgrund von optischen Gründen eigene Schaltflächen für OK und Abbrechen erstellt habe.

In den Eigenschaften der Schaltfläche habe ich als Typ Abbrechen und OK ausgewählt.

Des weiteren habe ich im queryclose der Makske eine kleine Eingabeprüfung hinterlegt:

if not source.DialogBoxCanceled then
  if source.document.feld1(0)="" then fehler="Kein Inhalt angegeben"
  ....
  if fehler <>"" then
      MessageBox "Folgende Fehler sidn aufgetreten:"+chr$(13)+fehler
      continue = false
 end if


Klicke ich bei leerem Feld1 auf OK kommt die "gewünschte" Fehlermeldung. Bereinige ich den Fehler, passiert gar nichts mehr. Ich kann den Dialog nur durch den Schließen-Button beenden.

Ich muss vielleicht noch dazusagen, dass ich bisher keine Formel bzw. kein Script als Aktion auf die OK-Schaltfläche gelegt habe.

Was mache ich falsch. Als Formel ein  @command([FileCloseWindow]) als Aktion für OK ist auch nicht richtig. Hat jemand eine Idee für mich?

« Letzte Änderung: 05.02.09 - 16:58:09 von 2stupid4this »
Wer Rechtschreibfehler findet, darf diese behalten.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #1 am: 05.02.09 - 12:53:15 »
if fehld1 Richtig?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #2 am: 05.02.09 - 14:59:21 »
Das ist nur ein Ausschnitt aus dem QueryClose-Script.

Somit ist
if source.document.feld1(0)="" then fehler="Kein Inhalt angegeben"
korrekt.

Das funktioniert einwandfrei, kann ich auch testen, indem ich die Standard-Buttons OK und Abbrechen wieder anzeigen lasse.

Mein Problem liegt an den selbst erstellten Schaltflächen.
Wer Rechtschreibfehler findet, darf diese behalten.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #3 am: 05.02.09 - 15:09:10 »
Das beantwortet leider meine Frage nicht.

Ist es Richtig, das im Queryclose als Variablenname fehld1 steht?
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #4 am: 05.02.09 - 15:26:10 »
Sorry, aber beantwortet die Frage, da ich mich im Ursprungslisting nur vertippt habe - siehe letztes Posting

if source.document.feld1(0)="" then fehler="Kein Inhalt angegeben"


Wie bereits erwähnt, wenn die Standardschaltflächen verwendet werden funktioniert alles einwandfrei. Erst wenn ich meine selbst erstellten OK- und Abbrechen-Schaltflächen verwende taucht mein Problem auf.

So wie es für mich aussieht, "merkt" Notes beim ersten anklicken, dass es sich bei der Schaltfläche um eine OK-Schaltfläche handelt. Beim zweiten mal anklicken unterscheiden sich Abbrechen und OK nicht mehr von der Auswirkung.
« Letzte Änderung: 05.02.09 - 15:35:45 von 2stupid4this »
Wer Rechtschreibfehler findet, darf diese behalten.

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #5 am: 05.02.09 - 15:49:53 »
Kannst Du dann bitte den Code im Startposting korrigieren, das irritiert

Mach mal einen Else-Zweig für die DialogboxCanceled und mach ein Print irgendwas darein.
Einfach um mal zu sehen, ob wirklich garnichts passiert, oder die Bedinung falsch ist.
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #6 am: 05.02.09 - 17:04:49 »
Habe nun einen else-Zweig eingebaut und es ist genauso, wie ich es bereits geschildert habe. Beim ersten mal kommt die Prüfung, beim zweiten mal tut sich gar nichts. Es wird auch nicht der else-zweig ausgeführt.

Um es gleich vorne wegzunehmen - nein, ich habe mich beim else-zweig nicht vertan. Die eingebaute Messagebox kommt beim klicken auf "Abbrechen".

Und wenn ich die Standardschaltflächen für OK und Abbrechen einblende funltioniert ja alles.

Wer Rechtschreibfehler findet, darf diese behalten.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #7 am: 05.02.09 - 17:41:53 »
Hast Du immer noch das
Code
if not source.DialogBoxCanceled

im Code der Maske für die Dialogbox? Das gehört da nicht hin, weil eine Dialogbox nicht auf sich selbst reagieren kann.

Bernhard

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #8 am: 05.02.09 - 18:40:27 »
Hallo Bernhard,
ich wiederspreche so aktiven wie Dir nur äußerst ungern, aber dafür ist auch laut Hilfe die Funktion gedacht.

Zitat
You can access this property when the NotesUIDocument processes the QueryClose event from a document that has been brought up in a dialog. 

Wenn ich von "aussen" wissen möchte, ob eine Dialogbox z.B. mit Abbrechen beendet wurde geht das doch über
Code
if not ws.dialogbox("dialodmaske",doc,......) then
oder nicht?

Wie gesagt, über die Standardschaltflächen funktioniert das auch hervorragend. Habe das dialogboxcanceld auch schon in mehreren Datenbanken verwendet, aber immer über die Standardschaltflächen.
Wer Rechtschreibfehler findet, darf diese behalten.

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #9 am: 05.02.09 - 19:15:34 »
Hast Du immer noch das
Code
if not source.DialogBoxCanceled

im Code der Maske für die Dialogbox? Das gehört da nicht hin, weil eine Dialogbox nicht auf sich selbst reagieren kann.

Bernhard

Bernhard, das funktioniert sehr wohl. Im QueryClose-Event der Dialogmaske kannst du damit abfragen, ob die Box mit OK oder Abbrechen beendet wurde. Ich habe das schon mehrfach angewendet. Funktioniert einwandfrei.

@ZuDummFürDas
Ich habe es auf die Schnelle mal nachgebaut und kann das Problem nachvollziehen. Aber eine Lösung habe ich auch nicht dafür gefunden. Ich tippe mal auf einen Bug in der Implementierung. Mach mal einen Call bei IBM auf.

Axel

PS: Du hast doch bestimmt auch einen realen Vornamen, oder? Bitte "unterschreibe" deine Posts mit deinem Vornamen. Dich bei deinem Nicknamen anzusprechen ist so unpersönlich und in deinem Fall schon etqwas krass. Ich halte dich nämlich auf keinen Fall zu dumm für Notes.   ;)


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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #10 am: 05.02.09 - 23:31:17 »
Sorry, ich sehe jetzt aber gar nicht mehr durch, wo jetzt "innen" (Dialogbox") oder "aussen" welche Property abgefragt wird.

Und völlig ohne Frage: "Innen" und "aussen" habe ich gerade selber ganz sauber durcheinander gebracht (obwohl selbst zigfach verwendet). Es gibt halt Postings, die man wirklich nicht "zwischendurch" versuchen sollte zu beantworten.

An den "DafürZuBlöden", den ich ebenfalls herzlich bitte, zumindest mit einem passenderen Namen zu unterschreiben: Wenn Du mir den Code-Teil aufmalst, der nachweislich zum genannten und unerwünschten Ergebnis führt, dann baue ich das am Freitag nach und liefere eine Lösung. Die 7.0x-Version wäre noch interessant.

Bernhard

Offline 2stupid4this

  • Junior Mitglied
  • **
  • Beiträge: 70
  • Geschlecht: Männlich
  • Never touch a running system!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #11 am: 06.02.09 - 12:28:31 »
Hallo Bernhard,

vielen Dank für das Angebot mein Problem nachzustellen.

In einer Maske rufe ich über eine Schaltfläche folgenden Code auf:
Code
        Dim ws           As New NotesUIWorkspace
        Dim session As New NotesSession
        Dim db           As Notesdatabase
        Dim doc           As NotesDocument
        Dim uidoc   As NotesUIDocument
       
            
        Set uidoc = ws.CurrentDocument
       
        Set doc        = uidoc.Document
        Set db = session.CurrentDatabase
       
       
        Dim diadoc As New NotesDocument(db)
        If ws.DialogBox("pv.dialog.vermittler",True,True,True,False,False,False," ",diadoc,True, False) Then
                diadoc.form="pv.form.vermittler"
               Call diadoc.MakeResponse(doc)
                Call diadoc.Save(True,True)
                Call uidoc.Refresh
        End If
end sub

In der aufgerufenen Maske ist das Feld Vermittler enthalten.

Im queryClose der Maske steht folgender Code:
Code
Dim fehler$
        If Not source.DialogBoxCanceled Then
                If source.Document.Vermittler(0)="" Then fehler = fehler + "Es wurde kein Vermittler angegeben."+Chr$(13)
                If fehler <>"" Then
                        Messagebox "Bei der Prüfung der eingegebenen Daten ist/sind folgende(r) Fehler aufgetreten:"+Chr$(13)+fehler+Chr$(13)+Chr$(13)+"Bitte berichtigen Sie Ihre Eingaben oder schließen Sie den Dialog duch 'Abbrechen'"
                        continue = False
                End If
        End If 
Zusätzlich besitzt die Maske innerhalb einer Tabelle zwei Schaltflächen - eine vom Typ Abbrechen, die andere vom Typ OK.

Auf der Abbrechen-Schaltfläche liegt die Formel "@Command([FileCloseWindow])" mit der OK-Schaltfläche habe ich mehrere Varianten im Bereich Script und Formel versucht, jedoch ohne korrektes Ergebnis.

Als Notes-Version ist 7.03 im Einsatz.

Sorry, das ich immer wieder meinen Namen vergesse.



Erik
« Letzte Änderung: 06.02.09 - 12:31:37 von 2stupid4this »
Wer Rechtschreibfehler findet, darf diese behalten.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #12 am: 06.02.09 - 12:34:48 »
Hallo Erik,

erstens: Danke (für den "Erik").
Zweitens: Shit. Nun habe ich Arbeit an der Backe  ;D Ich komme aber erst heute abend oder am Wochenende dazu, aber eine Antwort sei Dir hiermit versprochen (wenn mir nicht jemand zuvor kommt  ;))

Bernhard

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #13 am: 06.02.09 - 13:36:14 »
Erweitere Dein Queryclose der Dialogbox :

if not source.DialogBoxCanceled ...
.
.
.
else
 continue = true
endif





Dim fehler$
        If Not source.DialogBoxCanceled Then
                If source.Document.Vermittler(0)="" Then fehler = fehler + "Es wurde kein Vermittler angegeben."+Chr$(13)
                If fehler <>"" Then
                        Messagebox "Bei der Prüfung der eingegebenen Daten ist/sind folgende(r) Fehler aufgetreten:"+Chr$(13)+fehler+Chr$(13)+Chr$(13)+"Bitte berichtigen Sie Ihre Eingaben oder schließen Sie den Dialog duch 'Abbrechen'"
                        continue = False
                End If
          else
               continue = true
          endif


Halt falsch

So nun im ganzen...  :)




so sollte es klappen

Dim fehler$

        continue = true

        If Not source.DialogBoxCanceled Then
                If source.Document.Vermittler(0)="" Then fehler = fehler + "Es wurde kein Vermittler angegeben."+Chr$(13)
                If fehler <>"" Then
                        Messagebox "Bei der Prüfung der eingegebenen Daten ist/sind folgende(r) Fehler aufgetreten:"+Chr$(13)+fehler+Chr$(13)+Chr$(13)+"Bitte berichtigen Sie Ihre Eingaben oder schließen Sie den Dialog duch 'Abbrechen'"
                        continue = False
                End If
          endif

« Letzte Änderung: 06.02.09 - 13:44:26 von DerAndre »
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #15 am: 06.02.09 - 14:12:16 »
Ich glaube nicht, dass das hilft. Beim zweiten Mal, also nach der Fehlerbehebung, wird QueryClose nicht ausgeführt.


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

Offline cebolina

  • Senior Mitglied
  • ****
  • Beiträge: 386
  • Geschlecht: Männlich
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #16 am: 06.02.09 - 14:25:39 »
Hallo zusammen,

Erik möchte ausdrücklich nicht die Standard-Schaltflächen 'OK' und 'Abbrechen' nutzen.
Die Frage ist doch deshalb:
Was ist bei manuell erstellten Schaltflächen vom Typ 'OK' bzw 'Abbrechen' anders, als bei den Vorgabe-Schaltflächen?

Gruß Stefan
Server: Lotus Domino 9.0.1FP4 HF70
Client: Release 9.0.1FP6

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Problem mit Schaltfläche in Dialogdokument
« Antwort #17 am: 06.02.09 - 15:51:21 »
Die Frage ist doch deshalb:
Was ist bei manuell erstellten Schaltflächen vom Typ 'OK' bzw 'Abbrechen' anders, als bei den Vorgabe-Schaltflächen?

Die Frage ist schon richtig angekommen.

Den Unterschied werden wahrscheinlich nur die entsprechenden Programmierer bei IBM erklären koönnen.


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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz