// Вывод на печать (в Excel)     [на основе sta_00111]  
// - печ форма таблицы "Новые оклады 2015__2"
// 
  int len =256;
  char str[256], arg[256], nnn[256], sss[256];
  string strok;

  int BegStr=14; // 
  int CntStr=0;  // счетчик напечатанных строк
  int ColStr=0;

  char Title01[90];

PrintSumm()
{

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


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

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

  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();              // число рабочих записей в таблице   


  try
  {
   double itog1=0, itog2=0;

//   string dat  = CTabl.TextS("Data",0);
//   int bri     = atoi(CTabl.TextS("NumBri",0));

//   PrnTitle(dat,bri);

   // цикл по записям таблицы
   for (int zap=0; zap<cr; zap++)
   {
     string ord  = atoi(CTabl.TextS("Order",zap));
     string dlg  = CTabl.TextS("FCdolgnost",zap);
     int pod     = atoi(CTabl.TextS("FCpodr",zap));
     string fio  = CTabl.TextS("FIO",zap);
     int tab     = atoi(CTabl.TextS("C_FIO",zap));
     double okl1  = atof(CTabl.TextS("Base",zap));
     double okl2  = atof(CTabl.TextS("BaseN",zap));

     itog1 += okl1;
     itog2 += okl2;

     PrnStr1(ord,fio,dlg,pod,tab,okl1,okl2);
   }

   PrnBot(itog1,itog2);

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

  return 0;
}


PrnBot(aa1,aa2)
{
  CntStr++; ColStr=BegStr+CntStr+2;

  string it = "Итого";
  sprintf(nnn,"B%d",ColStr);
  tWriteStringToCell(nnn,OemToAnsi(it));  tBordersCell(nnn,1,1,1,1,1);

  sprintf(nnn,"F%d", ColStr);    tWriteStringToCell(nnn,aa1);    tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"G%d", ColStr);    tWriteStringToCell(nnn,aa2);    tBordersCell(nnn,1,1,1,1,1);

  string ot = "Начальник ООТиЗ";
  string ok = "Начальник отдела кадров";
  string bz = "Начальник бюро по заработной плате";
  string str11 = "___________________";
  string str22 = "(подпись)";
  string str33 = "      (ФИО)";


  CntStr++; CntStr++; ColStr=BegStr+CntStr+2;
  sprintf(nnn,"B%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(ot));  
  sprintf(nnn,"D%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  

  CntStr++; CntStr++; ColStr=BegStr+CntStr+1;
  sprintf(nnn,"E%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str22));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str33));  

  CntStr++; CntStr++; ColStr=BegStr+CntStr+1;
  sprintf(nnn,"B%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(ok));  
  sprintf(nnn,"D%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  

  CntStr++;  ColStr=BegStr+CntStr+1;
  sprintf(nnn,"E%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str22));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str33));  

  CntStr++; CntStr++; ColStr=BegStr+CntStr+1;
  sprintf(nnn,"B%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(bz));  
  sprintf(nnn,"D%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str11));  

  CntStr++;  ColStr=BegStr+CntStr+1;
  sprintf(nnn,"E%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str22));  
  sprintf(nnn,"G%d",ColStr); tWriteStringToCell(nnn,OemToAnsi(str33));  


}


PrnTitle(aa1,aa2)
{
  // печать заголовка листа

  sprintf(Title01,"      КПЦ_1    Смена_: %s   Дата_: %s",static_cast_to_string(aa2),static_cast_to_string(aa1));   

  ColStr=BegStr+CntStr;
  sprintf(nnn,"B%d",ColStr);
  tWriteStringToCell(nnn,OemToAnsi(Title01));    


  CntStr++; ColStr=BegStr+CntStr+1;
//  sprintf(nnn,"A%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("№_пор"));
//  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"B%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("     Профессия"));
  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"C%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("Разряд"));
  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"D%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("  Ф И О "));
  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"E%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("Тариф"));
  tBordersCell(nnn,1,1,1,1,1);
  sprintf(nnn,"F%d", ColStr);    tWriteStringToCell(nnn,OemToAnsi("Сумма"));
  tBordersCell(nnn,1,1,1,1,1);


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

  //CntStr=CntStr+BegStr;
  //ColStr=BegStr+CntStr;
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;
}


