// Вывод на печать (в Excel)      
// - печ форма таблицы "Спр о ср зп КБМ"    на основе kbm_ndfl6_e
// 

char nnn[90];

PrintIt()
{
  var File;                             //  привет
  File = CreateObject("CurPrnFile");    //        от 
  File.SetFlagBrowse(0);                //          Вита
  File.SetFlag_Print(0);                //              лия


  char Dir[128];                              // строка для текущей директории
  GetCurrentDirectory(128,Dir);               // получаем текущую директорию (это корень каталога ZPL из которого запустили АМБу)
  string nm="kbm_srzp_e.xlt";                 // имя Excel'евского файла
  var WorkDir = Dir + "\\TAB_LS\\";      

  tPrepereOfficeForWork(); // определяем работать на Excel или на Calc (определяем какой из офисов (MS Office или OpenOffice) установлен и какой предпочтительнее)
  tCreateXlsObjects(WorkDir+nm,"НДФЛ_6"); // создание основных объектов

  int n_wsh = 1;
  tGetWshByIndex(1);   // получаем ссылку на лист (worksheet)
  tWshSelect();

  var CMsg = 0;        // Процент выполненной работы
  int bTime = false;   // false-показывать процент,
                       // true-показывать оставшееся время
  CMsg=CreateObject("ProgressBar");
  CMsg.Initial(0,100,1);
  CMsg.SetShowTime(static_cast_to_int(bTime));



  var CTabl=CreateObject("CurPrnTbl");   // объект класса для работы с текущей таблицей
  int cr=CTabl.Count_Rcr();              // число рабочих записей в таблице   
  //vse_ls = cr;

  try
  {

   double sumIt = 0.0;
   string fio   = CTabl.TextS("FIO",0);
   string dattek = CTabl.TextS("dattek",0);
   //int mon_beg  = atoi(CTabl.TextS("AbsMon",0));
   int monIt  = 0;


   // цикл по записям таблицы
   for (int zap=0; zap<cr; zap++)
   {

     string month = CTabl.TextS("Month",zap);
     double sum   = atof(CTabl.TextS("Sum",zap));    
     string mes   = CTabl.TextS("Mes",zap);
     int mon      = atoi(CTabl.TextS("Mon",zap));  

     sumIt += sum;
     monIt++;

     string god = substr(month,3,4);

     PrnStr(mes, mon, god, sum, zap);
   }

   PrnIt(sumIt, monIt, fio,  dattek);    //PrnBot(itog1,itog2);

   tWshCellSelect(1,1);   // чтобы не было выделенной строки после всех манипуляций с копированием  выделим отдельную ячейку.  
  }
  catch(object err)
  {
     SayError(err);
  }
  catch(...)
  {
     ;
  }
  tEndXlsWork(1); // делаем форму видимой

  return 0;
}

PrnStr(ms, mn, gd, sm, zp)
{
  //ColStr=BegStr+CntStr+2;
  //string it = "Коломна";
  //sprintf(str,"Коломна (%i чел)",prz_1);

  if(zp < 6 )   //if(mn < 7 )
  {
   sprintf(nnn,"A%d",zp+12);  tWriteStringToCell(nnn,OemToAnsi(ms));  //tBordersCell(nnn,1,1,1,1,1);
   sprintf(nnn,"B%d",zp+12);  tWriteStringToCell(nnn,OemToAnsi(gd));  //tBordersCell(nnn,1,1,1,1,1);
   sprintf(nnn,"C%d",zp+12);  tWriteStringToCell(nnn,OemToAnsi(sm));  //tBordersCell(nnn,1,1,1,1,1);
  }
  else
  {
   sprintf(nnn,"E%d",zp+6);  tWriteStringToCell(nnn,OemToAnsi(ms));  //tBordersCell(nnn,1,1,1,1,1);
   sprintf(nnn,"F%d",zp+6);  tWriteStringToCell(nnn,OemToAnsi(gd));  //tBordersCell(nnn,1,1,1,1,1);
   sprintf(nnn,"G%d",zp+6);  tWriteStringToCell(nnn,OemToAnsi(sm));  //tBordersCell(nnn,1,1,1,1,1);
  }

  return 0;
}


PrnIt(si, mi, fi, dt)
{
   char dat[90]; sprintf(dat,"%s",to_string(dt));
   R_DATA_PROPIS(dat,dat,20,0);  dat += "г.";
   sprintf(nnn,"A%d",2);  tWriteStringToCell(nnn,OemToAnsi(dat));  //tBordersCell(nnn,1,1,1,1,1);

   char f1[90];
   sprintf(f1,"Дана  гр.  %s",to_string(fi));
   sprintf(nnn,"A%d",7);  tWriteStringToCell(nnn,OemToAnsi(f1));  //tBordersCell(nnn,1,1,1,1,1);

   sprintf(nnn,"D%d",11);  tWriteStringToCell(nnn,OemToAnsi(mi));  //tBordersCell(nnn,1,1,1,1,1);

   double i2 = si / mi;
   round2(i2,1,0,i2);
   sprintf(nnn,"G%d",19);  tWriteStringToCell(nnn,OemToAnsi(si));  //tBordersCell(nnn,1,1,1,1,1);
   sprintf(nnn,"G%d",20);  tWriteStringToCell(nnn,OemToAnsi(i2));  //tBordersCell(nnn,1,1,1,1,1);

   int k1 = (i2 - atoi(i2)) * 100; 
   char Buf[250];
   propisi(i2,1,Buf);
   sprintf(Buf,"( %s руб.  %s коп.)",to_string(Buf),to_string(k1));
   sprintf(nnn,"A%d",21);  tWriteStringToCell(nnn,OemToAnsi(Buf));  //tBordersCell(nnn,1,1,1,1,1);
}


PrnBot(aa1,aa2)
{

}


PrnTitle(aa1,aa2)
{
return 0;
}


PrnStr1(a1,a2,a3,a4,a5,a6,a7)
{
  // печать очередной строки

  string blank = "   ";

  CntStr++; ColStr=BegStr+CntStr+1;
  sprintf(nnn,"A%d", ColStr);    tWriteStringToCell(nnn,a1);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"B%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi(a2));  tBordersCell(nnn,1,1,1,1,1);
//  sprintf(nnn,"C%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi(a3));  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"D%d", ColStr);    tWriteStringToCell(nnn,a4);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"E%d", ColStr);    tWriteStringToCell(nnn,a5);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"F%d", ColStr);    tWriteStringToCell(nnn,a6);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"G%d", ColStr);    tWriteStringToCell(nnn,a7);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"H%d", ColStr);    tWriteStringToCell(nnn,blank);    tBordersCell(nnn,1,1,1,1,1);


  //CntStr++; ColStr=BegStr+CntStr;

  //CntStr=CntStr+BegStr;
  //ColStr=BegStr+CntStr;


return 0;
}


