|
|
|
|
#1 |
|
Участник
|
может приведете код, который вы портировали?
можете его портировать на VBS или JS? не может быть что вы перепутали с количеством аргументов? нет ли в классе COMVariant статического метода, который создает нужный вам массив? |
|
|
|
|
#2 |
|
Участник
|
Вот два варианта кода один для
1С: Код: OpenOffice = СоздатьОбъект("com.sun.star.ServiceManager");
scr=СоздатьОбъект("MSScriptControl.ScriptControl");
scr.language="javascript";
scr.eval("Массив=new Array()");
Массив=scr.eval("Массив");
scr.AddObject("OpenOffice",OpenOffice);
scr.eval("Массив[0]=OpenOffice.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Массив[0].Name='Hidden'");
scr.eval("Массив[0].Value=false");
DeskTop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop");
Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, Массив);Код: ServiceManager = CreateOleObject("com.sun.star.ServiceManager");
Desktop = ServiceManager.OleFunction("createInstance","com.sun.star.frame.Desktop");
Document = Desktop.OleFunction("LoadComponentFromURL", "private:factory/scalc", "_blank", 0, VariantArray ); |
|
|
|
|
#3 |
|
Участник
|
Получилось...
X++: static void Job2(Args _args) { COM OpenOffice; COM DeskTop; COM Document; COMVariant arg; Array arr = new Array(Types::String); //Создание экземпляра OpenOffice.org OpenOffice = new Com("com.sun.star.ServiceManager"); DeskTop = OpenOffice.CreateInstance("com.sun.star.frame.Desktop"); // create and initialize a COMVariant object arg = COMVariant::createFromArray(arr); //Создание документа Document = DeskTop.LoadComponentFromURL("private:factory/scalc", "_blank", 0, arg); } |
|
|
|
| За это сообщение автора поблагодарили: belugin (14), _AnK_ (1). | |
| Теги |
| openoffice, интеграция, экспорт |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|