Страница 1 из 1

Excel- отчёт из плана с помощью JScript библиотеки

Добавлено: 17 окт 2014, 10:18
zna
Доброй пятницы, коллеги. Есть желание обрадовать пользователей упомянутым отчётом из производственного заказа. В библиотеках JScript обнаружена такая: "Функции для формирования отчетов Excel на основе XLT шаблонов". В описании библиотеки приведён перечень функций, но в каком порядке их применять- неясно. У кого есть пример построения отчёта с помощью этой библиотеки- поделитесь, пож.

Re: Excel- отчёт из плана с помощью JScript библиотеки

Добавлено: 17 окт 2014, 14:06
zna
Подсказали, где лежит пример: ..GalSrv\EXE\ManufExt\SAMPLES\JSCRIPT\MNPLANANDRSVOPER\

Re: Excel- отчёт из плана с помощью JScript библиотеки

Добавлено: 17 окт 2014, 16:59
zna
Вот так отработало из примера

Код: Выделить всё

SpMnPl.toMnPlan(CurPlan());
var FileName;
var XLSFileName;
FileName = "\\\\mks-galaktika2\\galsrv\\SvodPZ_141016.xltm"                  

if (FileName == '')
  XLSFileName = CreateXLT(FileName, false)
else
  XLSFileName = CreateReport(FileName, false);
Debug.print('FileName = '+FileName);
Debug.print('XLSFileName = '+XLSFileName);
CreateVar(XLSFileName);
SetStringVar('DateForm', Cur_Date());
SetStringVar('Title', 'Отчет по производственному заказу');
PublishVar();

CreateTbls(XLSFileName);

CreateTbl('PlanSpec');
CreateTblFld('Nrec');
CreateTblFld('NumberPos');
CreateTblFld('NameMcUsl');
CreateTblFld('OtpEd');
CreateTblFld('StartDate');
CreateTblFld('EndDate');
CreateTblFld('KolPlan');
CreateTblFld('KolFact');
CreateTblFld('KolOtkl');

if (FileName != '')
{
  for (SpMnPl.getFirst(); ResultOfNavigation; SpMnPl.getNext())
  {
    SpMnPlan.setPosition(SpMnPl.cSpMnPlan);

    ClearTblBuffer();
    SetTblStringFldValue('Nrec', SpMnPl.Nrec);
    SetTblStringFldValue('NumberPos', SpMnPlan.PosNum);
    if (SpMnPlan.TypePos == Mc)
    {
      KatMc.setPosition(SpMnPlan.cIzd);
      SetTblStringFldValue('NameMcUsl', KatMc.Name);
    }
    else
      if (SpMnPlan.TypePos == Usl)
      {
        KatUsl.setPosition(SpMnPlan.cIzd);
        SetTblStringFldValue('NameMcUsl', KatUsl.Name);
      }
    OtpEd.setPosition(SpMnPlan.cOtpEd);
    SetTblStringFldValue('OtpEd', OtpEd.Name);

    SetTblDateFldValue('StartDate', SpMnPlan.StartDate);
    SetTblDateFldValue('EndDate', SpMnPlan.EndDate);

    SetTblNumberFldValue('KolPlan', SpMnPl.Pole1);
    SetTblNumberFldValue('KolFact', SpMnPl.Pole3);
    SetTblNumberFldValue('KolOtkl', SpMnPl.Pole5);

    InsTblRow();
  }
}

PublishTbl('PlanSpec');
LoadReport(XLSFileName);
FullFileName = "c:\\GalExpressClient2\\" + XLSFileName + ".xlsx"
Debug.print('FullFileName = '+FullFileName);
SaveReport(XLSFileName, FullFileName);
DisConnectExcel();
После выгрузки в Excel запускается макрос LoadReport().
Может, кому пригодится..