Код: Выделить всё
cmDoMarkUnMark:
{
  if (curTable = #tabl_schet)
  {
  if tabl_schet.pik = 'V'
  then tabl_schet.pik := '-'
  else tabl_schet.pik := 'V';
  update current tabl_schet;
  ReReadRecord;
  }
  else
  {
  if tabl_kontr.pik = 'V'
  then tabl_kontr.pik := '-'
  else tabl_kontr.pik := 'V';
  update current tabl_kontr;
  ReReadRecord;
  }
}
cmOK:
{
  stmt := sqlAllocStmt;
  sqlBindCol(stmt, 1, kol1);
  sqlBindCol(stmt, 2, kol2);
  sqlBindCol(stmt, 3, kol3);
  sqlBindCol(stmt, 4, kol4);
  sqlBindCol(stmt, 5, kol5);
  sqlBindCol(stmt, 6, kol6);
  sqlBindParam(stmt, 1, d_n);
  sqlBindParam(stmt, 2, d_k);
  sqlAddStr(query,'select distinct a.nodok,a.datvip,a.name,a.namepl1,a.sumplat,a.co,a.name1,a.schet1 from (');     
  sqlAddStr(query,'select distinct plpor.nrec,plpor.nodok,plpor.datvip,katorg.name name,plpor.namepl1,plpor.sumplat,katbank.name name1,katbank.schet1, ');
  sqlAddStr(query,'fpco.name co from plpor ');
  sqlAddStr(query,'inner join katorg on plpor.cpol=katorg.nrec ');
  sqlAddStr(query,'inner join katbank on plpor.cbankplat=katbank.nrec ');
  sqlAddStr(query,'left join fpco on plpor.cwaymove=fpco.nrec ');
  sqlAddStr(query,'where plpor.tidkgal=1 ');
  sqlAddStr(query,'and (plpor.datvip between ? and ?) ');
  // если по выбранным счетам
  str_bank:='';
  vib_bank:=false;
  PushPos(#tabl_schet);
  _loop tabl_schet
    {
      if tabl_schet.pik = 'V'
      then begin
           if vib_bank=false then sqlAddStr(query,'and (') else sqlAddStr(query,' or ');
           sqlAddStr(query,'((katbank.name='#39+tabl_schet.name+''#39+') and (katbank.schet1='#39+tabl_schet.schet1+''#39+'))');
           vib_bank:=true;
           str_bank:=str_bank+'Р/c № '+tabl_schet.schet1+' в '+tabl_schet.name+', ';
           end;
    }
  if vib_bank=true then sqlAddStr(query,') ');
  PopPos(#tabl_schet);
  //
  // если по выбранным контрагентам
  vib_org:=false;
  PushPos(#tabl_kontr);
  _loop tabl_kontr
    {
      if tabl_kontr.pik = 'V'
      then begin
           if vib_org=false then sqlAddStr(query,'and (') else sqlAddStr(query,' or ');
           sqlAddStr(query,'(katorg.shortname='#39+tabl_kontr.name+''#39+')');
           vib_org:=true;
           end;
    }
  if vib_org=true then sqlAddStr(query,') ');
  PopPos(#tabl_kontr);
  //
  sqlAddStr(query,') a left join nalogfin on a.nrec=nalogfin.csoprdoc ');
  sqlAddStr(query,'order by a.name,a.schet1,a.datvip,a.nodok');
  k_osh:=sqlPrepare(stmt,query);
  if k_osh>0 then message('sqlPrepare. Ошибка '+k_osh);
  k_osh:=sqlExecute(stmt);
  if k_osh>0 then message('sqlExecute. Ошибка '+k_osh);
  if k_osh=0 {
  xlCreateExcelWithTemplate(TranslatePath('%StartPath%')+'RESRAB\Платёжные документы\Платёжки.xlsx', true);  
  xlSetActiveWorkBookByName('1');            
  xlSetActiveSheetByName('Лист 1');    
      
  xlSetCellStringValue(sGetTune('Boss'), 2, 5, 2, 5);
  i:=10;
  sum_sum:=0;
  while sqlFetch(stmt) = tsOk do
  {
    ++i;
    xlSetCellStringValue(i-10, i+3, 1, i+3, 1);
    xlSetCellStringValue('Плат.пор. №'+kol1+' от '+DateToStr(kol2, 'DD.MM.YYYY'), i+3, 2, i+3, 2);
    xlSetCellStringValue(kol3, i+3, 3, i+3, 3);
    xlSetCellStringValue(kol4, i+3, 4, i+3, 4);
    xlSetCellStringValue(kol5, i+3, 5, i+3, 5);
    xlSetCellStringValue(kol6, i+3, 6, i+3, 6);
    sum_sum:=sum_sum+kol5;
  }
  xlSetCellStringValue('Итого по документам:', i+4, 4, i+4, 4);
  xlSetCellStringValue(sum_sum, i+4, 5, i+4, 5);
  
  xlFrameCells(59, 2,1,1, 14, 1, i+3, 7);
  sqlFreeStmt(stmt);
  sqlFreeStr(query);
  xlKillExcel;  }         
}
end;