OOobbs3/51
質問
お世話になります。 立て続けての投稿をご容赦下さい。 OOobbs3/50にてご教示頂きました下記JavaScript Macro Codeを実行すると、1度目は問題無く実行できますが、Macroにて上書き保存したBase Fileを終了した後に再度、実行するとFreezeします。 以下の2つの環境にて再現性があります。 対策についてご意見を頂けます様お願いします。 [ 確認環境 ] 1) Windows7 Professional 32bit版 / LibreOffice3.3.2 release版 2) WindowsXP Pro SP3 / OpenOffice.org3.3.0 release版 ******** [ Code ] ******** // Base in JavaScript importClass(Packages.javax.swing.JOptionPane); importClass(Packages.com.sun.star.beans.PropertyValue); importClass(Packages.com.sun.star.comp.helper.Bootstrap); importClass(Packages.com.sun.star.comp.helper.BootstrapException); importClass(Packages.com.sun.star.frame.XComponentLoader); importClass(Packages.com.sun.star.lang.XMultiComponentFactory); importClass(Packages.com.sun.star.uno.Exception); importClass(Packages.com.sun.star.uno.UnoRuntime); importClass(Packages.com.sun.star.uno.XComponentContext); // importClass(Packages.com.sun.star.beans.UnknownPropertyException); importClass(Packages.com.sun.star.beans.XPropertySet); importClass(Packages.com.sun.star.lang.WrappedTargetException); importClass(Packages.com.sun.star.sdb.XOfficeDatabaseDocument); importClass(Packages.com.sun.star.sdbc.XDataSource); // importClass(Packages.com.sun.star.frame.XStorable); importClass(Packages.com.sun.star.io.IOException); // try{ xContext = XSCRIPTCONTEXT.getComponentContext(); // xContext = Bootstrap.bootstrap(); //<= OOo3.1.1以前は動作した。 xMultiComponentFactory = xContext.getServiceManager(); xtest = xMultiComponentFactory.createInstanceWithContext("com.sun.star.frame.Desktop", xContext); xcomponentloader = UnoRuntime.queryInterface(XComponentLoader,xtest); // loadURL = "private:factory/sdatabase"; propertyvalue = new Array(); oDoc = xcomponentloader.loadComponentFromURL(loadURL, "_blank", 0, propertyvalue); // xOfficeDatabaseDocument = UnoRuntime.queryInterface(XOfficeDatabaseDocument, oDoc); xDataSource = xOfficeDatabaseDocument.getDataSource(); xPropertySet = UnoRuntime.queryInterface(XPropertySet, xDataSource); xPropertySet.setPropertyValue("URL", "sdbc:embedded:hsqldb"); // oStoreURL = "file:///C:/temp/oBaseMacro3.odb"; xStorable = UnoRuntime.queryInterface(XStorable,oDoc); storeProps = new PropertyValue(); storeProps.Name = "Overwrite"; storeProps.Value = true; xStorable.storeAsURL(oStoreURL,[storeProps]); // JOptionPane.showMessageDialog(null, "Success"); }catch (e){ if (e instanceof WrappedTargetException) { } else if (e instanceof UnknownPropertyException) { } else { } } ********************************* 宜しくご教示頂けます様お願いします。 回答
感想,コメント,メモ
|