Показать сообщение отдельно
Старый 20.06.2007, 12:24   #28  
romeo is offline
romeo
Участник
Аватар для romeo
 
564 / 10 (2) +
Регистрация: 31.03.2004
Цитата:
Сообщение от VasVovec Посмотреть сообщение
Чтото я не очень понял реализацию:

Вот у меня сейчас сделано так:
Код:
OnPreDataItem ()
SETFILTER ("Posted Date", '<=%1', CALCDATE('<CM>-5<Y>', RepDateS)); // - чтобы ограничить диапазон выборки допустим 5 лет

OnAfterGetRecord ()
EntryMonth:=DATE2DMY("Posted Date",2);
IF EntryMonth <> (RepMonth+1) THEN CurrReport.SKIP; // - +1 потому что выпадающий список с месяцами: январь - 0 и т.д.
{
Обработка нужных записей
}
Более изящно получается не сделать?
Почему не получается. Получается ..
В предложенном варианте записей будет в разы больше отсеяно, чем обработано. Вернее обработаются все, но куча из них - впустую. Лучше взять снаружи цикл по годам. Внутри цикл по определенному месяцу. В этом случае обрабатываться будут только полезные записи. Лишний датаайтем сверху по вирт таблице Дата, ограниченной интервалом в пять (или сколько вам угодно) лет. И все дела )