![]() |
![]() |
![]() |
|
OpenOffice + 1C8, открытие и печать файла, COMSafeArray. Как? | ☑ | ||
---|---|---|---|---|
0
vs84
11.01.08
✎
11:57
|
есть код, который работает
scr = Новый COMОбъект("MSScriptControl.ScriptControl"); scr.language = "javascript"; scr.eval("Массив=new Array()"); Массив = scr.eval("Массив"); scr.AddCode("function SetItem(ind,val){Массив[ind]=val}"); ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); scr.AddObject("ServiceManager",ServiceManager); StarDesktop = ServiceManager.createInstance( "com.sun.star.frame.Desktop" ); Document = StarDesktop.LoadComponentFromURL(ПреобразоватьВURL(СокрЛП(путь)), "_blank", 0, Массив); Но в 8-ке же есть ComSafeArray. Кто нибуди его использовал? Если да, покажите плиз :) |
|||
1
ЫЫЫЫ
11.01.08
✎
12:07
|
ПараметрыПечати = Новый COMSafeArray("VT_VARIANT", 2);
ПараметрыПечати.SetValue(0, ПрисвоитьЗначениеСвойству(ServiceManager, "Name", "<" + ИмяПринтера + ">")); ПараметрыПечати.SetValue(1, ПрисвоитьЗначениеСвойству(ServiceManager, "Wait", Истина)); |
|||
2
vs84
11.01.08
✎
12:15
|
ПрисвоитьЗначениеСвойству(ServiceManager, "Wait", Истина) это что?
|
|||
3
vs84
14.01.08
✎
12:24
|
может кому пригодиться
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager"); StarDesktop = ServiceManager.createInstance( "com.sun.star.frame.Desktop" ); ПараметрыОткрытия = Новый COMSafeArray("VT_VARIANT", 1); ПараметрыОткрытия.SetValue(0, ПрисвоитьЗначениеСвойству(ServiceManager, "Hidden", Истина)); Document = StarDesktop.LoadComponentFromURL(ПреобразоватьВURL(СокрЛП(ФайлПечатнойФормы)), "_blank", 0, ПараметрыОткрытия); ПараметрыПечати = Новый COMSafeArray("VT_VARIANT", 2); ПараметрыПечати.SetValue(0, ПрисвоитьЗначениеСвойству(ServiceManager, "Hidden", Истина)); ПараметрыПечати.SetValue(1, ПрисвоитьЗначениеСвойству(ServiceManager, "Wait", Истина)); Document.Print(ПараметрыПечати); Document.Close(Истина); StarDesktop.Terminate(); Функция ПрисвоитьЗначениеСвойству(Объект, ИмяСвойства, ЗначениеСвойства) Свойства = Объект.Bridge_GetStruct("com.sun.star.beans.PropertyValue"); Свойства.Name = ИмяСвойства; Свойства.Value = ЗначениеСвойства; Возврат Свойства; КонецФункции |
|||
4
smaharbA
14.01.08
✎
12:42
|
фигня получится... разово пойдет, с многоразовым сомнения берут...
|
|||
5
smaharbA
14.01.08
✎
12:42
|
+(4) разово == параметр с одним значением свойств
|
|||
6
dk
14.01.08
✎
12:57
|
Можно поизвращаться с vbs:
Function MakePropertyValue(cName, uValue) Set oSM = CreateObject(""com.sun.star.ServiceManager"") Set oPropertyValue = oSM.Bridge_GetStruct(""com.sun.star.beans.PropertyValue"") oPropertyValue.Name = cName oPropertyValue.Value = uValue Set MakePropertyValue = oPropertyValue End Function OpenOffice пример выгрузки в формат Excel (зарплата на карту Альфа-Банка) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |