Как сделать макрос для выборки из архивной базы (arhdoc)по дате
0 (0)
- Как сделать макрос для выборки из архивной базы (arhdoc)по дате ( Marmelade 17.09.2010 18:17 )5(1)Для печати документов из базы Arhdoc
>> Ответить- по нулевому ключу перебором ( oks2001 22.09.2010 09:44 )5(2)Not specified
>> Ответить- Никогда с таким не сталкивался.. ( Marmelade 22.09.2010 16:37 )5(1)Извиняюсь за бездарность... А как это по нулевому ключу перебором?
>> Ответить- file adoc (arhdoc,"bank.def") key 0; нулевой ключ date_carry ( UAY_SAKH 23.09.2010 06:03 )5(1)
adoc.date_carry = date(1,1,2009) //с первого января 2009
while(next(adoc))
if(adoc.date_carry>31,1,2009))
end;
end;
>> Ответить- проперся ( UAY_SAKH 23.09.2010 06:07 )5(1)Что то в этом духе
adoc.date_carry = date(1,1,2009) //с первого января 2009
if(not getge(adoc))
return;
end;
prev(adoc);
while(next(adoc))
if(adoc.date_carry>date(31,1,2009))
break;
end;
// обработка документов за январь 2009
end;
>> Ответить- Да, код работает, но... ( erix 23.09.2010 11:11 )5(1)Да, код работает (если, конечно, по prev не вывалимся), но обычно чуть-чуть по иному оформляется (просто для единобразия; плюс люблю TbFile для наглядности работы под отладчиком, но можно и FILE юзать):
var arhdoc = TbFile("arhdoc.dbt", "r", 0, "arhdoc.dbt", "bank.def"); var stat:bool = false; arhdoc.rewind(); arhdoc.rec.date_carry = date(1,1,2009); stat = arhdoc.GetGE(); while(stat and (arhdoc.rec.date_carry <= date(31,1,2009))) /* Что-то делаем с документами*/ stat = arhdoc.next(); end;
>> Ответить
- Да, код работает, но... ( erix 23.09.2010 11:11 )
- проперся ( UAY_SAKH 23.09.2010 06:07 )
- file adoc (arhdoc,"bank.def") key 0; нулевой ключ date_carry ( UAY_SAKH 23.09.2010 06:03 )
- Никогда с таким не сталкивался.. ( Marmelade 22.09.2010 16:37 )
- по нулевому ключу перебором ( oks2001 22.09.2010 09:44 )