Seite 1 von 1
[gelöst]Externes Formular, unerwünschte Sicherheitsabfrage
Verfasst: Fr, 03.08.2012 16:25
von beat4u
Hallo Forum
Ich konnte leider in diversen Foren zu diesem Thema nichts finden.
Ich habe mehrere externe Formulare entwickelt für die interne HSQL-DB, die funktionieren prächtig.
Aber sobald ich im geöffneten Formular nur einen Datensatzwechsel vornehme - also ohne irgendwelche Änderungen an den Inhalten oder am Layout, indem ich nur auf den Datensatznavigator zum nächsten Satz klicke - und danach das Formular schliessen will, kommt die Sicherheitsabfrage "Das Dokument "Dokuname.odt" wurde geändert. Sollen die Änderungen abgespeichert werden?".
Es geht also offensichtlich nicht um eine Änderung der Daten, sondern um eine Änderung am Formular selbst, obwohl nichts daran geändert worden ist.
Es ist kein Makro in diesem Dokument. Das passiert auch bei ganz einfachen Formularen ohne Subformular.
Ist dieses Problem bekannt?
Wie kann ich diese unerwünschte Sicherheitsabfrage verhindern oder ausschalten?
Gruss und Dank
Beat
oo3.3, Windows XP
Ich verwende ganz bewusst oo3.3, da der Formularstart beim Öffnen eines Formulars mit vielen Checkbox-Feldern um ein Vielfaches schneller abläuft als bei den neuen Versionen, sowohl LO wie AO.
Re: Externes Formular, unerwünschte Sicherheitsabfrage
Verfasst: So, 05.08.2012 10:07
von F3K Total
Hi,
warum das so ist, kann ich nicht sagen, ich halte es für einen Fehler.
Du kannst Dir zwischenzeitlich mit einem kleinen Makro helfen:
Code: Alles auswählen
Sub set_not_modified
odoc = thiscomponent
oform = odoc.drawpage.forms.getbyname("DeinFormular")
if oform.ismodified = false then
odoc.Modified = false
endif
End Sub
Das hängst Du im Formularentwurfsmodus an das Formular-Ereignis "nach dem Datensatzwechsel"
So wird das Dokument, wenn es nicht modifiziert wurde, als "nicht modifiziert" gekennzeichnet und die Sicherheitsabfrage bleibt aus.
Gruß R
Re: Externes Formular, unerwünschte Sicherheitsabfrage
Verfasst: So, 12.08.2012 12:53
von beat4u
Danke F3K, gute Idee, ich werd's ausprobieren und meine Frage dann als gelöst kennzeichnen.
Gruss Beat
Re: [gelöst]Externes Formular, unerwünschte Sicherheitsabfra
Verfasst: Di, 23.10.2012 11:47
von juetho
Zusätzlicher Hinweis nicht genau genug, Lösung unbrauchbar (siehe übernächsten Beitrag von DPunch): (nachträgliche Anmerkung, Jürgen)
Diese Lösung enthält eine logische Ungenauigkeit. Wenn bei einem Datensatz tatsächlich eine Änderung vorgenommen wurde und beim nächsten Datensatz nur weitergeblättert wird, erhält das Dokument dennoch den Status "nicht modifiziert". Die Abfrage ist deshalb zu ergänzen:
Code: Alles auswählen
if not oform.ismodified then
odoc.Modified = odoc.Modified or false
endif
Damit werden andere Änderungen im Dokument weiterhin erkannt. Jürgen
Re: [gelöst]Externes Formular, unerwünschte Sicherheitsabfra
Verfasst: Di, 23.10.2012 17:17
von beat4u
Hallo Jürgen
Bei mir läuft die Lösung von F3K bestens. Wenn ich am Dokument selber etwas ändere, dann läuft sowieso kein Makro und ich speichere die Änderung manuell ab. Diesen Fall muss ich also nicht abfragen.
Frage an dich: läuft deine Version bei dir einwandfrei?
Gruss
Beat
Re: [gelöst]Externes Formular, unerwünschte Sicherheitsabfra
Verfasst: Di, 23.10.2012 23:12
von DPunch
Servus
juetho hat geschrieben:Die Abfrage ist deshalb zu ergänzen(...)
Code: Alles auswählen
if not oform.ismodified then
odoc.Modified = odoc.Modified or false
endif
Welchen tieferen Sinn hat diese Zuweisung?
"oDoc.isModified or false" wird immer gleich "oDoc.isModified" sein, wodurch die Zuweisung immer lautet "oDoc.Modified = oDoc.isModified", was nichts anderes ist als "5 = 5".
Mir erschließt sich nicht, was Du damit bezweckst.
Re: [gelöst]Externes Formular, unerwünschte Sicherheitsabfra
Verfasst: Mi, 24.10.2012 09:06
von juetho
DPunch hat geschrieben:Mir erschließt sich nicht, was Du damit bezweckst.
juetho hat geschrieben:Wenn bei einem Datensatz tatsächlich eine Änderung vorgenommen wurde und beim nächsten Datensatz nur weitergeblättert wird, erhält das Dokument dennoch den Status "nicht modifiziert".
Aber ich gebe zu, dass mein Code das Problem auch nicht löst. Ich werde ihn als unbrauchbar kennzeichnen. Jürgen
Re: [gelöst]Externes Formular, unerwünschte Sicherheitsabfra
Verfasst: Mi, 24.10.2012 12:33
von DPunch
Servus
juetho hat geschrieben:Wenn bei einem Datensatz tatsächlich eine Änderung vorgenommen wurde und beim nächsten Datensatz nur weitergeblättert wird, erhält das Dokument dennoch den Status "nicht modifiziert".
Das hatte ich schon gelesen, nur wird bei der Zuweisung "oDoc.Modified = oDoc.isModified or false" nie eine Änderung eintreten können, Modified wird vor und nach der Zuweisung immer den gleichen Wert aufweisen.
Daher hatte ich mich gefragt, ob dahinter etwas anderes steckt, was nicht direkt ersichtlich ist.