0
Отвечен

Наличие вида НУ в ЛС

mid2018 2 года назад обновлен Гашков Николай (Эксперт) 2 года назад 3

Добрый день!

Существует ли такая ф-ция,  которая определяла бы наличие определённого вида в ЛС на расчётный месяц,  или же всё-таки надо анализировать даты действия строки?

Речь идёт не о расчёте вида в ЛС  а о расчётах из таблицы.

Добрый день!

Речь идёт не о расчёте вида в ЛС а о расчётах из таблицы.

Можно подробнее описать задачу?

Можно использовать что то такое:

GetValidNuList(m,stolb,Simv)
{  
  var map=CreateObject("MapString");map.Clear();
  var db=KDateFromInt_WithDay(1,m); //первое    число mrasch
  var de=KDateFromInt_LastDay(m);   //последнее число mrasch
  for (int i=0 ; i < cntplus ; i++)
  {
    char Sim[2];Sim[1]=0;
    Sim[0]=Sim_For_Intern_Cod(kodnu1[i],stolb-1);  //определяем символ в ТВХ
    if ( IsSubStrPresent(Simv,"*")&&(Sim!="0") || IsSubStrPresent(Simv,Sim))
    {
      int rowkod[ROWMAX];//массив с номерами строк
      var Prop=GetCommonProp(CMN_SRC_COUNT_LS);//определяем атрибуты глобального фильтра
      int cntrow=poiskosnkodProp(kodnu1[i],rowkod,0,Prop);//получаем список строк с внутренним кодом==kodnu1[i]
      for (int row=0; row < cntrow; row++)                    //перебираем все строки
      {
        var dbRow = KDateFromD(GetBegDate(rowkod[row]));
        var deRow = KDateFromD(GetEndDate(rowkod[row]));
        //фильтр на действующие строки
        if (( dbRow.IsValid() && dbRow.GT(de))|| //дата_начала вида больше даты окончания периода
          (deRow.IsValid() && deRow.LT(db)) )   //дата_окончания вида меньше даты начала период
        continue; 
        map.Add(to_string(GetCode(rowkod[row])),"");
      }
    }      
  }
  return map;
}

Использовать в таблице так:

return GetValidNuList(mtek,25,"1").Size()>0;

з.ы. еще есть поставочная poisk_row

Использовать так:

double dmonth = KDateFromInt(month).GetDouble();
if (poisk_row(code,0, dmonth,0) == EOF) //вид с вн.кодом code не нашли, переходим к следующему


Спасибо!

Тему можно закрывать.

Сервис поддержки клиентов работает на платформе UserEcho