-- Шаблон создан мастером бланков
-- 18.07.2014 14:06:39
--
БланкСШаблоном "Вспомогательные инструменты для экспорта при помощи XLWT";



Func КонвертФормат(ТБФмт:S):S;
var i,z:I;
var res, res_:S;
--Конвертация формата ТБ для клетки в формат Excel
  if Pos(',',ТБФмт)<>0:
     --Конвертируем разделитель групп разрядов
     res = '';
     ТБФмт = Раб.Бюджет2005.ЗАМЕНИТЬРАЗДЕЛИТЕЛЬВНАБОРЕСЛОВ(ТБФмт,",","");
     i = 0;
     while ТБФмт<>'' do
         z = Pos(';',ТБФмт);
         if z=0:
            res_ = ТБФмт;
            ТБФмт = '';
         else
            res_ =  Substr(ТБФмт, 1, z-1);
            ТБФмт = Substr(ТБФмт, z+1, 255);
         fi;
         z = Pos('.',res_);
         if res_ = '':
            res_ = res_; --тривиальный случай
           |res_ = '-':
            res_ = res_; --тривиальный случай
           |z>0 and z<=4 and Substr(res_,1,1) = "#":
            res_ = "#," + repStr("#",z-4) + res_;
           else
            Trace("Не удалось отконвертировать форматную строку '"+ТБФмт+"'");
            return '';
         fi;
         if res = '': res = res_;
            else res = res + ';' + res_;
         fi;
     od;
    else
     res = ТБФмт;
  fi;
  --res = Раб.Бюджет2005.ЗАМЕНИТЬРАЗДЕЛИТЕЛЬВНАБОРЕСЛОВ(res,".","\.");
  return res;
end;

Proc ВзятьСтильКлетки(Obj:Object; i:I; j:I; pyvar:S);
--Записывает параметры стиля клетки с шаблона в стиль xlwt
--'Obj' - секция, 'i', 'j' - координаты клетки

--Python и xlwt должны быть инициализированы
--Переменная с именем 'pyvar' в Python - содержать стиль xlwt
var tmpS:S;
var tmpI:I;
  tmpS=AsString(Obj.Cell(i, j, CellBorder, ''));
  --"ЛеваяТолщина, ВерхняяТолщина, ПраваяТолщина, НижняяТолщина
  --1 - тонкий в ТБ, тонкий в Excel
  --2 - толстый в ТБ, средный в Excel (по толщине примерно как толстый ТБ)
  Раб.Python.EXEC(pyvar + ".borders.left=" + ExtractWord(1, tmpS, ',') +
        chr(10) + pyvar + ".borders.top=" + ExtractWord(2, tmpS, ',') +
        chr(10) + pyvar + ".borders.right=" + ExtractWord(3, tmpS, ',') +
        chr(10) + pyvar + ".borders.bottom=" + ExtractWord(4, tmpS, ','));

  --Выравнивание
  tmpI=AsInteger(Obj.Cell(i, j, CellAlignment, ''));
  if tmpI = 0:
     Раб.Python.EXEC(pyvar + ".alignment.horz="+pyvar+".alignment.HORZ_LEFT");
    |tmpI = 1:
     Раб.Python.EXEC(pyvar + ".alignment.horz="+pyvar+".alignment.HORZ_RIGHT");
    |tmpI = 2:
     Раб.Python.EXEC(pyvar + ".alignment.horz="+pyvar+".alignment.HORZ_CENTER");
  fi;
  if AsLogical(Obj.Cell(i, j, CellWrap, '')):
     Раб.Python.EXEC(pyvar + ".alignment.wrap=0x01");
    else
     Раб.Python.EXEC(pyvar + ".alignment.wrap=0x00");

  fi;

end;

Конец
