Autor Thema: Lotus Script If bei einer Messagebox  (Gelesen 11489 mal)

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Lotus Script If bei einer Messagebox
« am: 15.04.14 - 08:54:07 »
Hallo Community,

ich habe einen Button der mit LS programmiert wurde.

Wenn man auf den Button drück kommt ein Promt Feld mit Ok Abbrechen. Wenn man jetzt Ok drückt soll eine Mail verschickt werden. (Das Funktioniert auch)

Wenn ich auf Abbrechen drücke, wird die Mail auch verschickt.

Einfach gesagt, was für einen Code/Syntax muss ich verwenden, das es die Mail nur verschickt wenn ich bei dem Promt Feld auf Ok geklickt habe?

Danke

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus Script If bei einer Messagebox
« Antwort #1 am: 15.04.14 - 08:57:50 »
Falscher Ansatz: Zeig uns Deinen Code, und wir sagen Dir, was falsch daran ist.... Dann kann nämlich de rnächste, der hier drüber stolpert auch noch was aus dem Thread lernen.

Ausserdem: Falsches Unterforum, das gehört in die Entwicklung, nicht in die Administration...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Glombi

  • Gast
Re: Lotus Script If bei einer Messagebox
« Antwort #2 am: 15.04.14 - 10:10:12 »
Wenn Du die LS Prompt Funktion mit PROMPT_YESNO verwendet hast, kannst Du das Ergebnis abfragen:

PROMPT_YESNO, returns 1 if you select Yes. If you select No, returns 0.

Bspw so
dim ret as integer
...
ret = ws.Prompt(PROMPT_YESNO ,...)
if ret = 0 then
exit sub
end if


oder

if ret = 1 then
'mach was, bspw. Mail senden
end if
...und weiter im Code

Andreas

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #3 am: 15.04.14 - 10:59:59 »
Das ist der Code:

      Messagebox "...", 1, "Unterschrift"
      
      TmpMA = "Name"
      
      Dim TmpEditor As New NotesName(WSession.UserName)
      TmpUnterschrift = TmpEditor.common + " - " + Cstr(Date+Time)
      
      TmpMailBetreff = "..."
      macro$=|@explode("|+TmpMA+|";",")|
      TmpSendTo = Evaluate (macro$)
      Set WDocument2=New NotesDocument(WDatabase)   
      Set Wrtitem=New NotesRichTextItem(WDocument2, "Body")
      Call Wrtitem.AppendText( "...," )
      Call Wrtitem.Appendtext( "..." )
      WDocument2.Subject = TmpMailBetreff
      WDocument2.SendTo= TmpSendTo
      Call WDocument2.Send(False)
         
      ' Sysdoc => neue Nr. schreiben
      WSysDoc.Sys_PB_Nr=Cstr(TmpNeueNr)
      success =  WSysDoc.ComputeWithForm( False, False )
      Call  WSysDoc.Save( True, True )         
      
      ' UI-Doc
      WUiDoc.Save
      WUiDoc.Close
      
      Messagebox  "...", 64, "Info"
      
      Else
      End If

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Lotus Script If bei einer Messagebox
« Antwort #4 am: 15.04.14 - 11:05:37 »
Hallo,

Die Meessagebox liefert Dir ja auch ein "Ergebnis" zurueck.

Siehe hierzu auch die Datei "lsconst.lss" im Programmverzeichnis von Notes (wo sich die Notes.exe befindet)

Code
If Messageboc("Text", 32, "Titel") = IDYES Then

    ' Anwender hat mit OK geantwortet
    ' mach was

End If


Andreas

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #5 am: 15.04.14 - 11:33:33 »
Ich habe jetzt diesen Code:

If Messagebox("...", 32, "...") = IDYES Then
     
      TmpMA = "Name"
     
      Dim TmpEditor As New NotesName(WSession.UserName)
      TmpUnterschrift = TmpEditor.common + " - " + Cstr(Date+Time)
     
      TmpMailBetreff = "..."
      macro$=|@explode("|+TmpMA+|";",")|
      TmpSendTo = Evaluate (macro$)
      Set WDocument2=New NotesDocument(WDatabase)   
      Set Wrtitem=New NotesRichTextItem(WDocument2, "Body")
      Call Wrtitem.AppendText( "...," )
      Call Wrtitem.Appendtext( "..." )
      WDocument2.Subject = TmpMailBetreff
      WDocument2.SendTo= TmpSendTo
      Call WDocument2.Send(False)
         
      ' Sysdoc => neue Nr. schreiben
      WSysDoc.Sys_PB_Nr=Cstr(TmpNeueNr)
      success =  WSysDoc.ComputeWithForm( False, False )
      Call  WSysDoc.Save( True, True )         
     
      ' UI-Doc
      WUiDoc.Save
      WUiDoc.Close
     
      Messagebox  "...", 64, "Info"
     
      End If

End Sub

Wenn ich speichern will kommt jetzt die Meldung: Unexpected Sub | Expected If

Was muss ich jetzt machen?

Ach und "ascabg", bei deinem Code hast Du "Messageboc" geschrieben.(:

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Lotus Script If bei einer Messagebox
« Antwort #6 am: 15.04.14 - 11:47:36 »
Hallo,

Ist das der ganze Code?


Andreas

P.S.:
Zitat
Ach und "ascabg", bei deinem Code hast Du "Messageboc" geschrieben.(:
Eine Goldwaage steht aber nicht auf Deinem Tisch?  ;D

Offline thkn777

  • Aktives Mitglied
  • ***
  • Beiträge: 176
Re: Lotus Script If bei einer Messagebox
« Antwort #7 am: 15.04.14 - 11:52:27 »
@Haku
Wenn das der ganze Code ist, dann fehlt sowas wie

Code
Sub MeineTolleProzedur (parameter as String)

vor dem ersten IF  ;)

Zu Deiner eigentlichen Frage:
In der Lotus Notes Hilfe unter "MessageBox function and statement" ist das ziemlich genau beschrieben. Falls Du die Developer-Hilfe gerade nicht als Notes-DB zur Hand hast, kannst Du auch hier gucken: http://www-12.lotus.com/ldd/doc/domino_notes/rnext/help6_designer.nsf/f4b82fbb75e942a6852566ac0037f284/427aacc7d5a2bf6385256c54004c612f?OpenDocument

Wenn Du also an das %INCLUDE denkst oder bei Deiner IF Messagebox... Abfrage statt IDYES die passende Zahl zur Abfrage verwendest, bist Du wieder einen Schritt weiter.

Viel Erfolg,
Th.

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #8 am: 15.04.14 - 11:54:44 »
Nein, der ganze Code hat 250 Zeilen, und ich dachte es reicht erstmal den Teil zu schreiben der nicht funktioniert.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Lotus Script If bei einer Messagebox
« Antwort #9 am: 15.04.14 - 12:04:47 »
Wenn ich speichern will kommt jetzt die Meldung: Unexpected Sub | Expected If

Was muss ich jetzt machen?
Du zählst die Ifs und End Ifs durch, da fehlt Dir wenigstens ein End If

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #10 am: 16.04.14 - 09:38:42 »
Ich habe den Button jetzt "fast" hinbekommen, ich hätte noch eine Frage zu der "Return value".

Mein Code lautet jetzt:

If Messagebox("Frage?", 32, "Unterschrift") = IDYES Then
'Sendet Mail
End if

Wenn ich jetzt die Messagebox bestätige oder das Fenster schieße ignoriert der Button die Befehle, allerdings soll der Button die Befehle durchführen wenn ich die Frage bestätige.

Ich habe auch schon "<>" probiert, dort werden die Befehle immer ausgeführt.

Hoffe mein Problem ist für Euch verständlich, und vielen Dank für die Hilfe:)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Lotus Script If bei einer Messagebox
« Antwort #11 am: 16.04.14 - 09:52:22 »
... du hast die Konstanten vermutlich nicht eingebunden - daher kann er nicht richtig entscheiden.
Lass die den Rückgabewert der Messagebox ausgeben und nimm ihn als Zahl

ret = Messagebox("Frage?", 32, "Unterschrift")
Print "Rückgabe = " & ret

da müsste dann in der Statusleiste eine Zahl erscheinen - je nach OK oder Cancel. Diese Zahl nimmst du dann anstelle der Konstanten.


Das ist doch die falsche Ziffer - mit 32 erhälst du kein ja oder Nein - sondern nur OK

Toni
« Letzte Änderung: 16.04.14 - 10:02:14 von ata »
Grüßle Toni :)

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: Lotus Script If bei einer Messagebox
« Antwort #12 am: 16.04.14 - 10:01:31 »
... die richtige Ziffer ist 36 - und die Rückgabe für Ja ist dann 6

Toni ;-)
Grüßle Toni :)

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Lotus Script If bei einer Messagebox
« Antwort #13 am: 16.04.14 - 10:10:27 »
Tut euch und ggf. dem nächsten Entwickler einen Gefallen und verwendet keine Zahlen sondern die Konstanten aus der lsconst.lss  ;D

MB_ICONQUESTION + MB_YESNO = 36


Ausschnitt:
Code
'-----------------------------------------------------------------------------
' MsgBox parameters
'-----------------------------------------------------------------------------

Public Const MB_OK = 0                 ' OK button only
Public Const MB_OKCANCEL = 1           ' OK and Cancel buttons
Public Const MB_ABORTRETRYIGNORE = 2   ' Abort, Retry, and Ignore buttons
Public Const MB_YESNOCANCEL = 3        ' Yes, No, and Cancel buttons
Public Const MB_YESNO = 4              ' Yes and No buttons
Public Const MB_RETRYCANCEL = 5        ' Retry and Cancel buttons

Public Const MB_ICONSTOP = 16          ' Critical message
Public Const MB_ICONQUESTION = 32      ' Warning query
Public Const MB_ICONEXCLAMATION = 48   ' Warning message
Public Const MB_ICONINFORMATION = 64   ' Information message

Public Const MB_APPLMODAL = 0	       	' Application Modal Message Box
Public Const MB_DEFBUTTON1 = 0	      ' First button is default
Public Const MB_DEFBUTTON2 = 256       ' Second button is default
Public Const MB_DEFBUTTON3 = 512       ' Third button is default
Public Const MB_SYSTEMMODAL = 4096     ' System Modal

'-----------------------------------------------------------------------------
' MsgBox return values
'-----------------------------------------------------------------------------

Public Const IDOK = 1                  ' OK button pressed
Public Const IDCANCEL = 2              ' Cancel button pressed
Public Const IDABORT = 3               ' Abort button pressed
Public Const IDRETRY = 4               ' Retry button pressed
Public Const IDIGNORE = 5              ' Ignore button pressed
Public Const IDYES = 6                 ' Yes button pressed
Public Const IDNO = 7                  ' No button pressed


Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Lotus Script If bei einer Messagebox
« Antwort #14 am: 16.04.14 - 10:16:10 »
Ein einfaches Option Declare hätte zudem einen solchen Basisfehler gleich angezeigt.

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #15 am: 16.04.14 - 10:26:44 »
Mein Code lautet jetzt:

If Messagebox("Report versenden?", 32, "Unterschrift") = 36 Then
'Mail senden
End if

Stimmt das überhaupt so? Entschuldigung, aber ich kenne mich mit LS fast nicht aus.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Lotus Script If bei einer Messagebox
« Antwort #16 am: 16.04.14 - 10:31:37 »
Nein, wenn Du die Konstanten ignorierst, muss es so lauten

If Messagebox("Report versenden?", 32 + 4, "Unterschrift") = 6 Then
'Mail senden
End if

Offline Haku

  • Frischling
  • *
  • Beiträge: 15
Re: Lotus Script If bei einer Messagebox
« Antwort #17 am: 16.04.14 - 10:36:06 »
Vielen Dank es geht!:)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz