11.
Pim
186
13.06.09 10:47
Сейчас в теме
Штука-то полезная, но как задать парметры печати в openoffice из 1с? У меня формируется табель в Calc и надо сразу задать формат А3 и пр...
() Вот примерчик:
BDPath = IBDir() + "ExtForms\PrnForms\табель.xls";
BDPath = "file:///" + StrReplace(BDPath, "\", "/");
scr = CreateObject("MSScriptControl.ScriptControl");
scr.language = "javascript";
scr.eval("Массив=new Array()");
Массив = scr.eval("Массив");
scr.AddCode("function SetItem(ind,val){Массив[ind]=val}");
ServiceManager = CreateObject("com.sun.star.ServiceManager");
scr.AddObject("ServiceManager", ServiceManager);
scr.eval("Массив[0]=ServiceManager.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
scr.eval("Массив[0].Name='AsTemplate'");
scr.eval("Массив[0].Value=true");
Desktop = ServiceManager.createInstance("com.sun.star.frame.Desktop");
Document = Desktop.LoadComponentFromURL(BDPath, "_blank", 0, Массив);
Sheets = Document.getSheets();
// Sheets.isVisible = 0;
Sheet = Sheets.getByIndex(0);
Sheet.getCellByPosition(1, 3).String = TrimAll(Константа.НазваниеОрганизации);
....
///=============================================================================
procedure FormatOOoRange(scr, Sheet, begCol, begRow, endCol, endRow, HoriJustify, Height, Type, Color, Merge = 0)
Range = Sheet.getCellRangeByPosition(begCol, begRow, endCol, endRow);
Range.merge(Merge);
Range.HoriJustify = HoriJustify; // 1 - left, 2 - center
range.CharHeight = Height; // размер шрифта
range.CharWeight = Type; // 100 - обычный, 150 - жирный
//Row = Sheet.Rows(5);
//Row.Height = 0; //автоподгон высоты строки
scr.eval("border=ServiceManager.Bridge_GetStruct('com.sun.star.table.BorderLine')");
Border = scr.eval("border");
Border.lineDistance = 0;
Border.innerLineWidth = 0;
Border.outerLineWidth = 1;
Range.SetPropertyValue("TopBorder", Border);
Range.SetPropertyValue("BottomBorder", Border);
Range.SetPropertyValue("LeftBorder", Border);
Range.SetPropertyValue("RightBorder", Border);
range.CellBackColor = Color;
endProcedure //FormatOOoRange