Top > OOobbs3 > 50

OOobbs3/50 Edit

  • サマリ: JavaScript Macroにて、任意の名前を付けて上書き保存する方法について
  • 環境: Other
  • 状態: 解決
  • 投稿者: new_OOo3?
  • 投稿日: 2011-03-27 (日) 10:49:22

質問 Edit

お世話になります。 JavaScript Macroにおいて、任意の名前を付けて上書き保存する為に下記Codeを試みましたが、保存が出来ません。 つきましては、任意の名前で上書き保存する方法をご教示頂けます様お願いします。

************ [ 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);	// <= 本Lineにて処理がStopします。
//
	JOptionPane.showMessageDialog(null, "Success");
}catch (e){
	if (e instanceof WrappedTargetException) {
	} else if (e instanceof UnknownPropertyException)
	 {
	} else {
	}
	}

回答 Edit

  • xStorable.storeAsURL(oStoreURL,[storeProps]); -- はにゃ? 2011-03-27 (日) 17:55:05

感想,コメント,メモ Edit

  • ご指摘通りで動作しました。本当にありがとうございます。 -- new_OOo3 2011-03-27 (日) 18:45:24


Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes