Autor Thema: Textmarkierung im gesperrten Abschnitt möglich?  (Gelesen 2040 mal)

Offline arieger

  • Aktives Mitglied
  • ***
  • Beiträge: 169
  • Geschlecht: Männlich
Textmarkierung im gesperrten Abschnitt möglich?
« am: 29.04.13 - 10:10:25 »
Hallo,

in einer Maske ist ein zugriffsgeschützter Abschnitt, in dem sich ein Ricktextfeld befindet.
Dieser Abschnitt ist "berechnet" und mit einer Rolle "Ersteller" versehen.
Der Anwender sollte seither hier nur lesen können.
In diesem Richtextfeld befinden sich Text und Bilder.

Nun besteht der Wunsch, das die Anwender Textpassagen markieren und dann in die Zwischenablage  kopieren können. Wie gesagt, ein Lesen ist für den Anwender möglich, jedoch kein markieren und kopieren.

Gibt es eine Möglichkeit, wenn jemand nicht der Rolle angehört , hier einen Text zu markieren und kopieren? Hat jemand schon mal so eine Anforderung gehabt? Über eine Dialogbox gehts nicht und mit "Compose" befürchte ich Konfliktdokumente (auch wenn saveoption = 0)! Hat Java hier was zu bieten?

Vielen Dank im Vorraus für einen guten Tipp?

Viele Grüße
Anton
Das Nasshorn und das Trockenhorn, spazierten durch die Wüste,
da stolperte das Trockenhorn uns Nasshorn sagte – siehste!

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Textmarkierung im gesperrten Abschnitt möglich?
« Antwort #1 am: 29.04.13 - 19:35:42 »
Hallo Anton,

ich würde eine neue (Kopier-)Maske erstellen, in der (evtl. nur) das Richtextfeld enthalten ist. Das Richtextfeld in der Maske ist berechnet, Formel ist der eigene Feldname (z.B. Body).

In die Originalmaske kommt ein Button, der das Dokument schließt, im geschlossenen Dokument die Form auf die Kopiermaske ändert und dann das Dokument erneut nur lesend öffnet. Das Script könnte so aussehen (habe es gerade probiert, um nicht irgendwelchen Mist zu schreiben):

Code
Sub Click(Source As Button)
	Dim workspace As New NotesUIWorkspace
	Dim uidoc As NotesUIDocument
	Set uidoc = workspace.CurrentDocument
	Dim doc As NotesDocument
	Set doc = uidoc.Document
	Dim db As NotesDatabase
	Set db = doc.ParentDatabase
	Dim id As String
	id = doc.UniversalID
	Call uidoc.Close (True)
	Delete doc
	Set doc = db.GetDocumentByUnid (id)
	doc.Form = "NameDerKopiermaske"
	Call workspace.EditDocument (False, doc, True)
End Sub

In dem dann geöffneten Dokument kann der Inhalt des Richtextfeldes beliebig kopiert werden. Da das Dokument nicht gespeichert werden kann (geöffnet mit ReadOnly), kann es auch keine Replizierkonflikte geben.

In dem Beispiel gehe ich von einem Dokument im Lesemodus aus, sollte das Dokument im Bearbeitenmodus sein, musst Du noch entsprechend darauf reagieren, z.B. das Dokument (nach Abfrage) zwingend speichern o.ä..

In der neuen Maske sollte noch ein Button eingebaut werden, der das Dokument wieder schließt und mit der alten Form wieder öffnet.

WICHTIG: Die Änderung der Maske in die Kopiermaske erfolgt im geschlossenen Dokument. Das Dokument wird NIEMALS mit der geänderten Maske gespeichert, alles passiert nur im Arbeitsspeicher.

EDIT: In der Kopiermaske gibt es natürlich KEINEN kontrollierten Abschnitt!
« Letzte Änderung: 29.04.13 - 19:40:18 von Peter Klett »

Offline arieger

  • Aktives Mitglied
  • ***
  • Beiträge: 169
  • Geschlecht: Männlich
Re: Textmarkierung im gesperrten Abschnitt möglich?
« Antwort #2 am: 30.04.13 - 12:01:41 »
Hallo Peter,

perfekt, tut alles wie gewünscht.

1000-Dank

Gruß Anton
Das Nasshorn und das Trockenhorn, spazierten durch die Wüste,
da stolperte das Trockenhorn uns Nasshorn sagte – siehste!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz