AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
26.05.13 - 04:33:29
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 6
| |-+  ND6: Entwicklung (Moderatoren: _Arne_, Axel, eknori, ata, koehlerbv)
| | |-+  Public is not allowed in this module
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Public is not allowed in this module  (Gelesen 1575 mal)
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 102



« am: 30.01.06 - 12:10:58 »

Hallo  Sad,

ich wollte in einer Aktion "schließen" eine Messagebox einbinden, die vorher abfragen soll, ob das Dokument ohne vorheriges Speichern geschlossen werden soll. Da es mit einem einfachen @Command nicht funktioniert. Es handelt sich auch um eine gemeinsame Aktion, die sich auf ganz viele Masken bezieht. In manchen Masken gibt es ein Feld Save Options und in manchen Masken keines! Deshalb wollte ich dieses Problem mit Lotus Script lösen. Aber wenn ich  "%INCLUDE "lsconst.lss" in Declarations einbaue, dann bekomme ich die Fehlermeldung "Public is not allowed in this module"... wie kann ich das Problem lösen  Ahnungslos

Danke Euch

Gruß Sabine
« Letzte Änderung: 30.01.06 - 14:13:11 von Sabine » Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19529



« Antworten #1 am: 30.01.06 - 12:15:59 »

Option Public ist in Modulen wie Schaltflächen tatsächlich nicht erlaubt (es wäre ja auch Quatsch  Grin).

Es gibt mehrere Wege, Dein Problem zu lösen.
Warum benötigst Du überhaupt die ganze LSCONST.LSS? Du kannst Dir ja separat deklarieren, welche Konstanten Du wirklich benötigst - und diese eben nicht Public.
Willst Du trotzdem LSCONST.LSS verwenden, dann erstelle Dir eine ScriptLibrary und binde dort die Konstanten mit %Include ein. In Deiner Aktion verwendest Du dann ein Use "DeineLib".

HTH,
Bernhard
Gespeichert

Pilot's desaster - S-400 is faster ...
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 102



« Antworten #2 am: 30.01.06 - 13:38:43 »

Welche Konstanten würde ich denn bei diesem Script benötigen? Ich habe das mit dem Iclude... noch nie wirklich verstanden :-(

Code:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIdocument
Dim boxType As Long
Dim answer As Integer

Set uidoc = ws.CurrentDocument

boxType& = MB_YESNO + MB_ICONQUESTION
answer% = Messagebox("Wollen Sie das Dokument ohne zu speichern schließen?", boxType&, _
"Schließen?")

Call uidoc.Close

Herzlichen Dank  Smiley
Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2861


« Antworten #3 am: 30.01.06 - 13:43:46 »

Hi,

Folgende Konstanten wuerdest Du benoetigen:

Const MB_YESNO = 4
Const MB_ICONQUESTION = 32

Andreas
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 19529



« Antworten #4 am: 30.01.06 - 13:45:48 »

Wenn ich den Code so sehe, wird eigentlich überhaupt keine Konstante benötigt - die Messagebox-Funktion kann einfach gelöscht werden, da deren Resultat nicht ausgewertet wird.

Bernhard
Gespeichert

Pilot's desaster - S-400 is faster ...
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 102



« Antworten #5 am: 30.01.06 - 13:59:29 »

Danke für den Hinweis mit den Konstanten, habe ich nun auch verstanden... dankeschön *freu* Es klappt auch!

Warum kann sollte das Resultat nicht ausgewertet werden?
« Letzte Änderung: 30.01.06 - 14:03:53 von Sabine » Gespeichert
ascabg
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2861


« Antworten #6 am: 30.01.06 - 14:05:42 »

Ich habe mir jetzt nochmals die Anforderung an Dein Script angesehen.

Dabei habe ich bemerkt, dass Du eine bereits vorhandene Notes-Funktionalitaet nachbilden moechtest.

==> Wieso?

Anderenfalls koennte Dir der folgende kleine Code ein wenig weiterhelfen:

zusaetzlich zu den beiden Konstanten noch die folgende Konstanten definieren.
Const ID_YES = 6


If Msgbox("Wollen Sie das Dokument ohne zu speichern schliessen?", MB_ICONQUESTION + MB_YESNO, "Dokument schliessen") = IDYES Then
  'hier den Code, wenn Dokument ohne Speichern geschlossen wird
Else
  'hier den Code fuer das Speichern
End If

Andreas
Gespeichert
Sabine
Aktives Mitglied
***
Offline Offline

Geschlecht: Weiblich
Beiträge: 102



« Antworten #7 am: 30.01.06 - 14:12:55 »

Ich habe das Problem nun so gelöst... danke für Eure Hilfe hat mir sehr geholfen :-)

Code:
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIdocument
Dim boxType As Long
Dim answer As Integer
Const MB_YESNO = 4
Const MB_ICONQUESTION = 32

Set uidoc = ws.CurrentDocument

If   uidoc.EditMode = True Then

boxType& = MB_YESNO + MB_ICONQUESTION
answer% = Messagebox("Wollen Sie das Dokument ohne zu speichern schließen?", boxType&, _
"Schließen?")

If answer%= 6 Then 'ja
Call uidoc.Close
Else 'nein
Exit Sub
End If
Else
Call uidoc.Close
Exit Sub
End If
Gespeichert
Gregory.Engels
Frischling
*
Offline Offline

Beiträge: 4



WWW
« Antworten #8 am: 20.12.11 - 10:09:55 »

und nun, nach Jahren (*grins*) mal ne richtige Erklärung, die nur auf das ursprüngliche Problem eingeht:

die Zeile "%INCLUDE "LSCONST.LSS" gehört in den (Declarations) Abschnitt des Codes, allerdings nicht in das der Schaltfläche (was die Fehlermelung verursacht, die der OP hatte), sondern in DAS DER MASKE unter (Globals). Da gibt es ebenfalls ein (Declarations) Abschnitt.

P.S: normalerweise würde ich das nicht schreiben, aber dank Randy's Comic "Wisdom of the Ancient" http://xkcd.com/979/ habe ich es mal getan ;-)
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig