Vergleichbar mit Schreibschutz in Word?
Moderator: Moderatoren
Vergleichbar mit Schreibschutz in Word?
Guten Tag,
ich bin neu hier. Nicht ganz so neu wie das OO, das auf meinem Rechner ist.
Jetzt bin ich seit Tagen dabei nach einer entsprechenden Lösung zu suchen und werde einfach nicht fündig.
Zum Glück bin ich bei der Suche auf dieses tolle Forum gestoßen.
Man kann Word einen Schreibschutz einrichten. Beim öffnen des Dokumentes wurde man nach dem Passwort gefragt, bzw. hatte die Möglichkeit das Dok mit schreibschutz zu öffnen.
Dardurch wurde man gezwungen, die Datei nach der Bearbeitung unter anderem Namen abzuspeichern und das Original blieb unversehrt.
Den Bereisschutz in OO habe ich schon in verschiedenen Kombinationen ausprobiert, leider funktionierte nichts davon.
Kann mir bitte jemand behilflich sein.
ich bin neu hier. Nicht ganz so neu wie das OO, das auf meinem Rechner ist.
Jetzt bin ich seit Tagen dabei nach einer entsprechenden Lösung zu suchen und werde einfach nicht fündig.
Zum Glück bin ich bei der Suche auf dieses tolle Forum gestoßen.
Man kann Word einen Schreibschutz einrichten. Beim öffnen des Dokumentes wurde man nach dem Passwort gefragt, bzw. hatte die Möglichkeit das Dok mit schreibschutz zu öffnen.
Dardurch wurde man gezwungen, die Datei nach der Bearbeitung unter anderem Namen abzuspeichern und das Original blieb unversehrt.
Den Bereisschutz in OO habe ich schon in verschiedenen Kombinationen ausprobiert, leider funktionierte nichts davon.
Kann mir bitte jemand behilflich sein.
äh, ja, tschuldigung. Klar ist das da.
Aber, wenn ich das so mache, habe ich beim öffnen der Datei nicht die Option das Dokument auch schreibgeschützt zu öffnen. Ich muss erst das passwort eingeben!?
Ich hätte aber gerne, dass auch die Option besteht, das original zu verändern aber nicht so abspeichern zu können, sondern nur unter anderem Dateinamen....
Ich befürchte fast, das geht garnicht.
Aber, wenn ich das so mache, habe ich beim öffnen der Datei nicht die Option das Dokument auch schreibgeschützt zu öffnen. Ich muss erst das passwort eingeben!?
Ich hätte aber gerne, dass auch die Option besteht, das original zu verändern aber nicht so abspeichern zu können, sondern nur unter anderem Dateinamen....
Ich befürchte fast, das geht garnicht.
Naja, das war hier nicht Thema, aber es geht. Am Einfachsten indem Du im Dateiauswahldialog (Datei-Öffnen) in OOo "nur Lesen" anhakst, oder indem Du zentral für den Dateityp den "-view" Parameter (siehe OOo-Hilfe) für den Dateidefault Öffnen ergänzt, aber auch per Code --> (a)nein das schreibgeschützte Öffnen geht wohl nicht
Thema war eher wie man ein Dokument speichert das es nur schreibgeschützt geöffnet werden kann (nur schreibgeschützt geöffnet werden "kann" ist schon etwas anders als schreibgeschützt öffnen "wollen") und das das geht beweist jedes Base-Formular, was ja seiner Natur nach nichts anderes als ein Textdokument ist. (b)
Zwei Beispiele für *.odt:
(a)
Code: Alles auswählen
Sub schreibgeschuetzt_oeffnen()
Dim auswahl as Object
Dim dateiname As String
auswahl = createunoservice("com.sun.star.ui.dialogs.FilePicker")
With auswahl
.SetMultiselectionMode(False)
.appendFilter("ODT-Dateien (*.odt)","*.odt")
.SetTitle("Wählen Sie eine Datei")
End With
antwort = auswahl.execute
If antwort = 1 Then
Dim Par(0) as new com.sun.star.beans.PropertyValue
Par(0).Name = "ReadOnly"
Par(0).Value = True
datei = ConvertToURL(auswahl.Files(0))
StarDesktop.loadComponentFromURL( datei , "_blank", 0, Par() )
End if
End sub
Code: Alles auswählen
Sub schreibgeschuetzt_speichern()
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter("ODT-Dateien (*.odt)","*.odt")
dialog.SetMultiselectionMode(False)
dialog.setvalue(100,0,true)
antwort = dialog.execute()
If antwort = 1 Then
datei = dialog.Files(0)
x = Thiscomponent.createInstance( "com.sun.star.document.Settings" )
x.LoadReadOnly = True
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
args1(0).Value = "StarOffice XML (Writer)"
Thiscomponent.storeAsUrl(datei, args1())
end if
End Sub
Gruß
Stephan
Also mein Thema ist das Schreibgeschützt öffnen wollen. Dem liegt typischerweise folgendes zugrunde: Im ständigen Schriftverkehr mit demselben Addressaten (oder auch mal beim Standardbrief für mehrere Adressaten) nehme ich eine alte Datei, verändere die um sie unter einem neuen Namen zu speichern. Dabei passiert es mir immer wieder, dass ich vorher auf Speichern klicke und mir damit die alte Datei bzw. deren Originalzustand aus dem Archiv schieße. In MS-Office ist das mit dem Schreibschutz wirklich prima gelöst. Man (jeder) kann die Datei einfach öffnen, nur wenn man Änderungen unter demselben Namen speichern will muss man das Passwort eingeben. Das vermisse ich bei SO/OO wirklich seeeeehr.Stephan hat geschrieben:...
Thema war eher wie man ein Dokument speichert das es nur schreibgeschützt geöffnet werden kann (nur schreibgeschützt geöffnet werden "kann" ist schon etwas anders als schreibgeschützt öffnen "wollen")
Deinen Code lese ich mir erst morgen (ausgeschlafen) durch.
Hallo Zusammen,
vielleicht habe ich hier was überlesen aber ich mache folgendes wenn das
Original immer unter einem anderen Namen abgespeichert werden soll:
Die erstellte Vorlage mit
Datei> Speichern unter>
unten bei Dateityp "OpenDocument Textdokumentvorlage (.ott) auswählen
Dateinamen vergeben und Speichern.
Wenn man dieses Dokument jetzt öffnet wird es als Unbenannt1 geöffnet.
Beim speichern wird der Dialog "Speichern unter" geöffnet.
Man ist also gezwungen einen neuen Dateinamen zu vergeben.
Unter Optionen Laden/Speichern kann man z.B unten rechts auswählen
das Dokumente immer als Dokumentvorlage gespeichert werden sollen.
Ich hoffe das hilft weiter.
Jürgen
vielleicht habe ich hier was überlesen aber ich mache folgendes wenn das
Original immer unter einem anderen Namen abgespeichert werden soll:
Die erstellte Vorlage mit
Datei> Speichern unter>
unten bei Dateityp "OpenDocument Textdokumentvorlage (.ott) auswählen
Dateinamen vergeben und Speichern.
Wenn man dieses Dokument jetzt öffnet wird es als Unbenannt1 geöffnet.
Beim speichern wird der Dialog "Speichern unter" geöffnet.
Man ist also gezwungen einen neuen Dateinamen zu vergeben.
Unter Optionen Laden/Speichern kann man z.B unten rechts auswählen
das Dokumente immer als Dokumentvorlage gespeichert werden sollen.
Ich hoffe das hilft weiter.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Achtung:
Ich hatte gestern fälschlicherweise die Zeilen:
im untenstehenden Code, wo sie nicht hingehören. Der Code ist jetzt (04.02. 11:45) korrigiert.
(In meinem post vom 03.02.07 20:05, wo die 2 Zeilen ebenfalls auftauchen, sind diese aber korrekt.)
(Nö, wirklich Sorry, nur "schreibgeschützt" ist Selbiges und nicht 'änderbar aber nicht speicherbar'. Was MS hier betreibt ist die Vermischung von Vorlage und Dokument, schade wenn das als Normalzustand angesehen wird.)
Aber das geht auch in OOo, wenn Deine Ansprüche nur so sind wie beschrieben (also nur Fehlbedienung ausschließen und keine Sicherheit gegen mutwillige Änderungen) sogar recht leicht, ist nur für mich etwas viel Schreibarbeit:
Kopiere den Code in eine der OOo-Bibliotheken, z.B. Standard, Lösche das Speichern-Symbol in der Symbolleiste (Extras-Anpassen) und weise das Makro "Sub speichern_abfrage()" der Symbolleiste zu und weise das ursprüngliche Speichern-Symbol als 'Icon' zu. Sieht dann aus wie vorher, bewirkt aber genau was Du wolltest:
Du kannst beliebge *.odt öffnen, Änderungen machen und wenn Du auf das neue Speichern-Symbol klickst erscheint ein Dialog und wenn Du dort nur auf Speichern klickst erhält Du automatisch das Datei-Fenster zur Eingabe eines neuenDatei-Namens. Gibst Du hingegen erst ein Passwort ein (ich habe hier "Speichern" als Passwort vorgegeben) und klickst dann speichern, werden die Änderungen in der Orginaldatei gespeichert.
Meiner Meinung nach also, das was Du wolltest.
(Allenfalls müßte man das noch auf weitere Dateitypen erweitern, dann sage welche.)
Gruß
Stephan
Ich hatte gestern fälschlicherweise die Zeilen:
Code: Alles auswählen
x = Thiscomponent.createInstance( "com.sun.star.document.Settings" )
x.LoadReadOnly = True
(In meinem post vom 03.02.07 20:05, wo die 2 Zeilen ebenfalls auftauchen, sind diese aber korrekt.)
Dann verstehe ich die Frage nicht, bzw. kann nur nochmals darauf verweisen das das beim Öffnen durch das Setzen der Option "Nur Lesen" möglich ist.Also mein Thema ist das Schreibgeschützt öffnen wollen.
Nur ist das kein schreibgeschütztes Öffnen, sondern 'schreibgeschütztes Öffnen ála MS'.Dem liegt typischerweise folgendes zugrunde:
(Nö, wirklich Sorry, nur "schreibgeschützt" ist Selbiges und nicht 'änderbar aber nicht speicherbar'. Was MS hier betreibt ist die Vermischung von Vorlage und Dokument, schade wenn das als Normalzustand angesehen wird.)
Aber das geht auch in OOo, wenn Deine Ansprüche nur so sind wie beschrieben (also nur Fehlbedienung ausschließen und keine Sicherheit gegen mutwillige Änderungen) sogar recht leicht, ist nur für mich etwas viel Schreibarbeit:
Code: Alles auswählen
Dim oDlg As Object
Sub speichern_abfrage()
Dim se(1)
oDlgModel = createUnoService( "com.sun.star.awt.UnoControlDialogModel" )
With oDlgModel
.setPropertyValue("Width", 100)
.setPropertyValue("Height", 47)
.setPropertyValue("Title","Passwort?")
End With
oDlg = createUnoService( "com.sun.star.awt.UnoControlDialog" )
oDlg.setModel(oDlgModel)
oListenerNext = CreateUnoListener("end_", "com.sun.star.awt.XActionListener")
se(0) = oDlgModel.createInstance("com.sun.star.awt.UnoControlButtonModel")
With se(0)
.setPropertyValue("PositionX",20)
.setPropertyValue("PositionY",25)
.setPropertyValue("Width",60)
.setPropertyValue("Height",17)
.setPropertyValue("Label","Speichern")
End With
oDlgModel.insertByName("se0", se(0))
se(1) = oDlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")
With se(1)
.setPropertyValue("PositionX",10)
.setPropertyValue("PositionY",5)
.setPropertyValue("Width",80)
.setPropertyValue("Height",15)
End With
oDlgModel.insertByName("se1", se(1))
oControl = oDlg.getControl("se0")
oControl.addActionListener(oListenerNext)
fenster = CreateUnoService("com.sun.star.awt.Toolkit")
oDlg.CreatePeer(fenster, Null)
oDlg.execute
End Sub
sub end_actionPerformed(oEvent)
If oDlg.Model.getByName("se1").Text = "Speichern" Then
oDlg.endexecute
Thiscomponent.store()
Else
oDlg.endexecute
arg = Array(com.sun.star.ui.dialogs.TemplateDescription.FILESAVE_AUTOEXTENSION)
dialog = CreateUnoService("com.sun.star.ui.dialogs.FilePicker")
dialog.Initialize(arg())
dialog.appendFilter("ODT-Dateien (*.odt)","*.odt")
dialog.SetMultiselectionMode(False)
dialog.setvalue(100,0,true)
antwort = dialog.execute()
If antwort = 1 Then
datei = dialog.Files(0)
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "FilterName"
args1(0).Value = "StarOffice XML (Writer)"
Thiscomponent.storeAsUrl(datei, args1())
end if
End If
End Sub
Du kannst beliebge *.odt öffnen, Änderungen machen und wenn Du auf das neue Speichern-Symbol klickst erscheint ein Dialog und wenn Du dort nur auf Speichern klickst erhält Du automatisch das Datei-Fenster zur Eingabe eines neuenDatei-Namens. Gibst Du hingegen erst ein Passwort ein (ich habe hier "Speichern" als Passwort vorgegeben) und klickst dann speichern, werden die Änderungen in der Orginaldatei gespeichert.
Meiner Meinung nach also, das was Du wolltest.
(Allenfalls müßte man das noch auf weitere Dateitypen erweitern, dann sage welche.)
Gruß
Stephan
Hallo Stephan!
Zunächst viiiiielen Dank für Deine Mühe!
Dann weiß ich schon nicht mehr weiter.
Zunächst viiiiielen Dank für Deine Mühe!
Damit meinst Du: "Extras" => "Makros" => "Makros verwalten" => "OpenOffice.org Basic..." => "Makros aus" => "Bibliotheken hinzufügen" => "Standard"?Stephan hat geschrieben:Kopiere den Code in eine der OOo-Bibliotheken, z.B. Standard, ...
Dann weiß ich schon nicht mehr weiter.
Die Suchfunktion des Forums benutzen? Ich bin zuversichtlich es ist hier mindestens ein halbes dutzend Mal beschrieben. Google nutzen?Dann weiß ich schon nicht mehr weiter.
Nö, Sorry, ich schreibe es auch nochmals hin, nur es wäre schon fair sich selbst zu bemühen. Ich behaupte nicht das Du das hier im Forum in 2 Minuten finden kannst, nur Viele hier im Forum (so auch ich) opfen einen Großteil ihrer Freizeit um Fragen zu beantworten und schaffen doch nicht alles und es ist nicht schön wenn die ohnehin schon knappe Zeit dann immer damit verplämpert werden muß Standardarbeitsschritte wieder und wieder erneut zu beschreiben.
Da wäre es schon verhältnismäßig selbst einmal eine halbe Stunde Suchaufwand auf sich zu nehmen, da es mich hier bestimmt eine Stunde gekostet hat die 3 Makros zu schreiben und zu testen ...
Somit:
*Extras-Makros-Makros verwalten-OpenOffice.org Basic ...
*Suche im linken Fensterbereich unter "Makros aus" unterhalb "Meine Makros" die Bibliothek "Standard" und doppelklicke sie um deren Module anzuzeigen
*wähle eines der dort vorhandenen Module indem Du es durch Einfachklick markierst aus(*)
*klicke nun im rechten Fensterteil "Vorhandene Makros in" auf einen der Einträge (zumindest der Eintrag "Main" ist in jedem Fall vorhanden
*klicke rechts auf "Bearbeiten"
*Setze im erscheinenden Fenster (Basic-IDE) den Cursor ganz ans Ende, hinter evtl. schon vorhandenen Quelltext und füge dort den hier im post stehenden Quellcode mit Copy-Paste ein
*drücke zur Sicherheit die Speichern Schaltfläche in der iobrigen Symbolleiste, schließe dann die Basic-IDE mit Klick auf [x]
*Klicke an der rechten Seite der Standardsymbolleiste auf das kleine Dreieck und wähle Symbolleiste anpassen
* in der Mitte des erscheinenden Dialog sind alle Einträge der Symbolleiste sichtbar, entferne den Haken vor dem Eintrag "Speichern"
*markiere jetzt den Eintrag Speichern (achte darauf das der Haken nicht wieder gesetzt wird) und wähle rechts "Hinzufügen"
*im erscheinenden Fenster scrolle links bis nach unten, doppelklicke OpenOffice.org Makros, doppelklicke "Meine Makros" und doppelklicke "Standard"
*suche unterhalb von Standard das Modul in das Du vorher den Code kopiert hast (mutmaßlich heißt das auch "Standard") markiere es und markiere dann im rechten Fensterteil den Eintrag "speichern_abfrage"
*Klicke "Hinzufügen"
*achte darauf das das gerade hinzugefügte Makro markiert ist (im ersteren Fenster) und Klicke auf Ändern-Symbol austauschen
*Suche das Speicher-Symbol, markiere es und Klicke OK
*klicke im ersteren Dialog OK
Fertig.
Öffne in Folge Deine Dokumente, klicke auf das (neue) Speichern-Symbol und:
*klicke im erscheinenden Dialog auf "Speichern" ohne ein Passwort einzugeben und der Speichern-Dialog erscheint, damit Du die geänderte Datei unter neuem Namen Speichern kannst
oder:
*klicke auf das Speichern-Symbol und gib im erscheinenden Dialog erst das Passwort "Speichern" ein und klicke dann auf Speichern um die Änderungen dirkt in der geöffneten Datei zu speichern
Gruß
Stephan
(*)
Es sollte ein Modul namens Module1 bereits vorhanden sein, falls nicht füge zunächst Eines hinzu indem Du die Bibliothek "Standard" markiert lässt und dann rechts auf Schaltfläche "Neu" klickst
Hallo HUrst,
Wieso legst Du nicht einfach Deinen Brief als Dokumentvorlage ab, dann kannst Du Deinen neuen Brief auf Basis der Vorlage erstellen und beim Speichern wird in jedem Fall ein Dateiname angefordert vom System und Du kannst in keinem Fall versehentlich Deine Vorlage oder Dein Archiv überschreiben. Die Lösung funktioniert übrigens in Word ebenso und exakt auch für solche Fälle existieren Vorlagen. Zumindest wenn man häufig neue Varianten eines sonst ähnliches Textes erstellen will, ist das alle male schneller und einfacher, als jedesmal einen passenden alten Text zu suchen und anzupassen ...
Es gäbe auch die Lösung mit den Textbausteinen, je nach Anwendungsziel kann das sogar noch einfacher und zugleich flexibler sein.
Wenn Du nur alle paar Tage das Problem hast, sollte Dich auch die tägliche Datensicherung vorm Verlust überschriebener Dokumente bewahren.
Ich hoffe, ich konnte Dir einen Ausweg bieten, der zudem auf Dauer einfacher und sparsamer im Aufwand ist als Deine aktuelle "Lösung".
MfG
Drachen
Edit: Beim Weiterblättern gesehen, daß turtle47 Dir gestern schon den gleichen Rat gegeben hat
Für mich klingt das nach einem Denkfehler im Verfahren, nicht nach einem technischen Problem.HUrst hat geschrieben: Also mein Thema ist das Schreibgeschützt öffnen wollen. Dem liegt typischerweise folgendes zugrunde: Im ständigen Schriftverkehr mit demselben Addressaten (oder auch mal beim Standardbrief für mehrere Adressaten) nehme ich eine alte Datei, verändere die um sie unter einem neuen Namen zu speichern. Dabei passiert es mir immer wieder, dass ich vorher auf Speichern klicke und mir damit die alte Datei bzw. deren Originalzustand aus dem Archiv schieße. In MS-Office ist das mit dem Schreibschutz wirklich prima gelöst. Man (jeder) kann die Datei einfach öffnen, nur wenn man Änderungen unter demselben Namen speichern will muss man das Passwort eingeben. Das vermisse ich bei SO/OO wirklich seeeeehr.
Wieso legst Du nicht einfach Deinen Brief als Dokumentvorlage ab, dann kannst Du Deinen neuen Brief auf Basis der Vorlage erstellen und beim Speichern wird in jedem Fall ein Dateiname angefordert vom System und Du kannst in keinem Fall versehentlich Deine Vorlage oder Dein Archiv überschreiben. Die Lösung funktioniert übrigens in Word ebenso und exakt auch für solche Fälle existieren Vorlagen. Zumindest wenn man häufig neue Varianten eines sonst ähnliches Textes erstellen will, ist das alle male schneller und einfacher, als jedesmal einen passenden alten Text zu suchen und anzupassen ...
Es gäbe auch die Lösung mit den Textbausteinen, je nach Anwendungsziel kann das sogar noch einfacher und zugleich flexibler sein.
Wenn Du nur alle paar Tage das Problem hast, sollte Dich auch die tägliche Datensicherung vorm Verlust überschriebener Dokumente bewahren.
Ich hoffe, ich konnte Dir einen Ausweg bieten, der zudem auf Dauer einfacher und sparsamer im Aufwand ist als Deine aktuelle "Lösung".
MfG
Drachen
Edit: Beim Weiterblättern gesehen, daß turtle47 Dir gestern schon den gleichen Rat gegeben hat

Ach Du Sch... das muss ich mal mit einem Kollegen besprechen, der Fitter in VBA ist, ich komm da nicht mehr mit.
Vielen Herzlichen Dank für Eure große Mühe!!!
Ich geb jetzt mein bestes um die Vorschläge umzusetzen und möchte nochmal betonen, dass es eher um ausschließung einer Fehlbedienung, als um das mutwillige zerstören einer Datei.
Vielen Dank nochmal
Vielen Herzlichen Dank für Eure große Mühe!!!
Ich geb jetzt mein bestes um die Vorschläge umzusetzen und möchte nochmal betonen, dass es eher um ausschließung einer Fehlbedienung, als um das mutwillige zerstören einer Datei.
Vielen Dank nochmal
Hallo und entschuldigung für meine späte Rückmeldung.
Zugeben bin ich nicht darauf gekommen die entsprechenden Dateien einfach als Vorlage zu speichern.
@Stephan
Ich hoffe das Einfügen von Code durch Deine schöne Anleitung verstanden zu haben, jedenalls hat es prima geklappt. Danke nochmal!
Leider verstehe ich nicht schon den VB-Code sonderen erst/nur Deine Beschreibung, bzw. deren erfolgreiche Umsetzung.
Zugeben bin ich nicht darauf gekommen die entsprechenden Dateien einfach als Vorlage zu speichern.
@Stephan
Ich hoffe das Einfügen von Code durch Deine schöne Anleitung verstanden zu haben, jedenalls hat es prima geklappt. Danke nochmal!
Leider verstehe ich nicht schon den VB-Code sonderen erst/nur Deine Beschreibung, bzw. deren erfolgreiche Umsetzung.