Autor Thema: Edit Modus nur über Button ermöglichen  (Gelesen 3898 mal)

Offline snore

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Edit Modus nur über Button ermöglichen
« am: 28.11.14 - 15:28:14 »
Ja - sorry, das Thema ist nicht ganz neu ...aber ich komm' echt nicht weiter!

Habe über Querymodechange und Postmodechange den Doppelklick unterbunden, wenn im Feld "Doppelklick" der Wert "X" steht.
Möchte aber, dass das Dokument über einen Button editierbar gemacht werden kann.

D.h. ich muss mir einen Button mit Script erstellen, welcher mir der Wert "X" im Feld "Doppelklick" löscht.... aber wie .. im Lesemodus ?!

DANKE
snore

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Edit Modus nur über Button ermöglichen
« Antwort #1 am: 28.11.14 - 16:20:24 »
Postmodechange ist zu spät: querymodechange und queryopen sind die richtigen events... Aber unabhängig davon klappt das setzen eines feldes im lesemodus nur für "Berechnet zur Anzeige" Feldern. Deshalb würde ich es über ein Profil oder umgebungsvariable machen:

X = ses.Getenvironmentstring("alloweditmode")
Call ses.setenvironmentvar("alloweditmode","")
If x <>"1" then continue = false

Und im button: @Environment("alloweditmode";"1"); @Command([EditDocument])
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)

Offline snore

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Re: Edit Modus nur über Button ermöglichen
« Antwort #2 am: 30.11.14 - 11:12:11 »
Super! - funktioniert wunderbar..
Vielen Dank für Deine Hilfe
Gruß
snore


in der Maske:
...
   m1 = session.Getenvironmentstring("SperreDoppelklick")
   Call session.setenvironmentvar("SperreDoppelklick","")
   If m1 <>"1" Then
      Messagebox "Doppelklick wurde deaktivert!" & Chr$ (10) & "Bitte w/ hinterlegten Formeln über den Button bearbeiten....." & Chr$ (10) & Chr$ (10) &_
      "Bei technischen Problemen, wenden Sie sich bitte an die IT-Orga"
      continue = False
   End If
End Sub


..im Button:
@Do(
@Environment("SperreDoppelklick";"1");
@PostedCommand([EditDocument]; "1");
@PostedCommand([ViewRefreshFields]);
@PostedCommand([ToolsRunMacro];"(Vorgaben setzen)"))


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Edit Modus nur über Button ermöglichen
« Antwort #3 am: 30.11.14 - 22:18:10 »
Zwei Fragen:
1) Welche Events verwendest Du nun jetzt? Ob Du die richtigen erwischt hast, kannst Du einfach prüfen, wenn Du aus einer Ansicht heraus ein Dokument mit Strg-B (deutscher Client) bzw. Ctrl-E (englischer Client) direkt im EditMode öffnen willst.
2) Stellst Du absolut sicher, daß Dein Agent dann auch die Environment-Variable wieder zurücksetzt? Das sollte dort der allererste reale Code sein, sonst kannst Du irgendwann, eventuell erst in vielen Monaten, mal ganz merkwürdige Effekte erhalten, weil Der Agent eben nicht zur Dokumentänderung aufgerufen wird, weil ein User direkt in den EditMode gelangen kann.

Bernhard (spricht aus Erfahrung)

Offline diali

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.023
  • Geschlecht: Männlich
Re: Edit Modus nur über Button ermöglichen
« Antwort #4 am: 01.12.14 - 06:27:52 »
Was passiert, wenn mehrere Dokumente geöffnet werden?

Wenn du sowieso schon ein Feld in dem Dokument hast, dann kannst du dieses im Backend verändern und dann das Dokument im Frontend im Editmode öffnen.

Das Feld Doppelklick muss beim Speichern und beim Schließen ggf. wieder mit einem "X" versehen werden.

Gruß
Dirk
Gruß
Dirk

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Edit Modus nur über Button ermöglichen
« Antwort #5 am: 01.12.14 - 07:31:45 »
Man könnte die Abfrage auch über eine globale Script-Variable der Maske steuern - dann spart man sich den Umweg über Felder oder ini-Variablen und auch bei mehreren offenen Dokumenten gibt es keine Probleme.

Gruß

André

Offline Sven Hasselbach

  • Senior Mitglied
  • ****
  • Beiträge: 316
  • Geschlecht: Männlich
    • blog@hasselba.ch
Re: Edit Modus nur über Button ermöglichen
« Antwort #6 am: 01.12.14 - 12:03:03 »
Alternativ ganz ohne Environment-Variablen mit reinem Öffnen und Schließen des UI Docs per LS-Button

Code
Dim uiws As New NotesUIWorkspace
Dim uiDoc As NotesUIDocument
Dim doc As NotesDocument

' aktuelles UI Doc holen	
Set uiDoc = uiws.CurrentDocument
Set doc = uiDoc.Document

' UI Doc schliessen & Feld löschen
uiDoc.Close
doc.Doppelklick = ""

' UI Doc erneut öffnen	
uiws.EditDocument True, doc
Delete uiDoc

' Das X wieder setzen	
Set uiDoc = uiws.CurrentDocument
Set doc = uiDoc.Document
doc.Doppelklick = "X"

Offline snore

  • Aktives Mitglied
  • ***
  • Beiträge: 107
Re: Edit Modus nur über Button ermöglichen
« Antwort #7 am: 03.12.14 - 15:31:48 »
..zu den Fragen:

1) Strg-B, fang ich über Queryopen ab...


Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   If (Source.EditMode = True)  Then
      Source.EditMode = False
   End If
   If (IsNewDoc = True)  Then
      Source.EditMode = True
   End If
End Sub

..o.K. sieht blöd' aus - funktioniert aber !


2) im Querymodechange, steht der Rest wie bereits gepostet

3) beim Öffnen mehrerer Dokument gibt's keine Probleme (aktuell!)

Gruß
snore






Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Edit Modus nur über Button ermöglichen
« Antwort #8 am: 08.06.15 - 11:19:51 »
Hey Snore,

da mich diese Funktion auch interessiert, habe ich mal deine Funktionen eingebastelt, also im Queryopen:

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
   If (Source.EditMode = True)  Then
      Source.EditMode = False
   End If
   If (IsNewDoc = True)  Then
      Source.EditMode = True
   End If
End Sub

und im Querymodchange

  m1 = session.Getenvironmentstring("SperreDoppelklick")
   Call session.setenvironmentvar("SperreDoppelklick","")
   If m1 <>"1" Then
      Messagebox "Doppelklick wurde deaktivert!" & Chr$ (10) & "Bitte w/ hinterlegten Formeln über den Button bearbeiten....." & Chr$ (10) & Chr$ (10) &_
      "Bei technischen Problemen, wenden Sie sich bitte an die IT-Orga"
      continue = False
   End If
End Sub


Dabei erhalte ich jedoch wenn ich das Dokument bearbeite den Fehler "Variant does not contain an object". Das Dokument wechselt anschließend übrigens trotz Doppelklick immer noch in den Bearbeitungsmodus. Oder habe ich was falsch verstanden?


Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Edit Modus nur über Button ermöglichen
« Antwort #9 am: 08.06.15 - 11:35:15 »
Du solltest Session vielleicht auch füllen ....
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Edit Modus nur über Button ermöglichen
« Antwort #10 am: 08.06.15 - 11:36:58 »
Du solltest Session vielleicht auch füllen ....

Kannst du das bitte erklären. Danke

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Edit Modus nur über Button ermöglichen
« Antwort #11 am: 08.06.15 - 11:42:51 »
Dim session as New Notessession ....

Ohne das wird Session immer NULL sein.
Und dann vielleicht auch M1 deklarieren. Als String.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline manboo8000

  • Junior Mitglied
  • **
  • Beiträge: 61
Re: Edit Modus nur über Button ermöglichen
« Antwort #12 am: 08.06.15 - 11:52:25 »
Vielen Dank!
Sorry, Script ist noch nicht so meins. Hatte bislang mein Seminar noch nicht, versuche es aber zu verstehen :-)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz