Hallo Herr Seidel, mit dieser Mail schiebe ich das mal auf users@de.openoffice.org - die Argumentation, warum öffentlich besser ist als privat, muß ich vermutlich nicht wiederholen :)
so, bin mal dazu gekommen, es auszuprobieren ... > Also, mit derm unten eingefügten Code beende ich meine Anwendung und > schließe die Datenbank. In der Version 2.3 waren dann alle Änderungen > der Datenbank gesichert, in 2.4 sind alle Änderungen, z.B. eingefügte > Datensätze, gelöscht. Was hat sich den hier geändert? Kann ich nicht nachvollziehen - was an der Unterspezifizierung des Szenarios liegen mag. Was ich getan habe: - ein DB-Dokument öffnen - eine Tabelle per Doppelklick öffnen - einen neuen Datensatz eintragen - Das Makro "programmEnde" ausführen (den Test aufknowhowOffice im Titel hab' ich rausgenommen) => alle Fenster wurden geschlossen (wobei das "Start-Modul" offen blieb - das ist vermutlich nicht so gewollt? - Start-Modul geschlossen, also OOo beendet - OOo neu gestartet - Datenbank geöffnet => der neue Datensatz war da Wie also genau ist Ihr Szenario, und worin unterscheidet es sich von meinem obigen? > In der Linuxversion ist mir zudem aufgefallen, dass Dialoge teilweise > in Phantasiegrößen angezeigt werden, nach Ändern des Codes war die > Anzeige einmal normal und dann wieder in der Phantasiegröße ... Ich habe irgendwo schon was über Probleme mit der Größe programmatisch angelegten Dialoge gelesen, kennen aber keine Details. Das Makro unten zitiere ich der Vollständigkeit halber für Neu-Leser. > Sub programmEnde > REM Anwendung nach Sicherheitsabfrage beenden > REM Autor: Helmut Seidel > > Dim oFrames As Object, oFrame As Object > Dim oDispatcher As Object > Dim i As Integer > > ' Sicherheitsabfrage ausgeben > If MsgBox("Möchten Sie die Arbeit KnowHow-Office beenden?", 292, _ > "KnowHow-Office") = 6 Then > ' Fehler abfangen - Datenbankdatei könnte schon geschlossen sein > on Error resume next > > ' Zugriff auf alle Frames > oFrames = StarDesktop.getFrames() > ' Frames durchlaufen > For i = 0 To oFrames.getCount - 1 > ' Zugriff auf aktuellen Frame > oFrame = oFrames.getByIndex(i) > ' Testen, ob aktueller Frame der gesuchte ist > If Ucase(Left(oFrame.Title, Len("knowhowOFFICE"))) = > "KNOWHOWOFFICE" Then > ' Dispatcher erstellen > oDispatcher = > createUnoService("com.sun.star.frame.DispatchHelper") > ' Datenbank sichern > oDispatcher.executeDispatch(oFrame, > ".uno:Save", "", 0, Array()) > ' Frame schließen > oDispatcher.executeDispatch(oFrame, > ".uno:CloseDoc", "", 0, Array()) > End If > Next i > > ' Startformular schließen > oStart.endExecute() > ' Fehlerbehandlung ausschalten > on Error goto 0 > ' Basic-Routine beenden > End > End If > End Sub Ciao Frank -- - Frank Schönheit, Software Engineer [EMAIL PROTECTED] - - Sun Microsystems http://www.sun.com/staroffice - - OpenOffice.org Base http://dba.openoffice.org - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]