![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Добрый день, уважаемые знатоки!
Возникла передо мной нетипичная задача - переделать код формирования отчета. Условия: Каждое утро происходит формирование отчета о потреблении электроэнергии в период с 00:00 01 числа текущего месяца по 00:00 сегодняшнего дня. 30 апреля произойдет формирование отчета в период 00:00 01.04.2015г по 00:00 30.04.2015. А 1 мая отчет не сформируется, т.к. "dtStart = dtEnd then Exit; end;". А есть желание, чтобы 1 мая отчет сформировался за 00:00 01.04.2015 - 00:00 01.05.2015г. Даю вводные: Код:
var dtStart, dtEnd, dtTemp, dtStamp: DateTime; var dtDay, dtMonth, dtYear:integer; begin iParam := GetParameter(2); - параметр по данным, которые характеризуют потребление электроэнергии (устанавливаются программно) dtEnd := GetParameter(11); - дата назначаемая программно (текущая дата) DecodeDate (dtEnd, dtYear, dtMonth, dtDay); dtStart := EnCodeDate(dtYear, dtMonth, 1)+0; if dtStart = dtEnd then Exit; Код:
DecodeDate (dtEnd, dtYear, dtMonth, dtDay); if dtDay = 1 then inDay (-1) dtStart := EnCodeDate(dtYear, dtMonth, 1)+0; if dtStart = dtEnd then Exit; Подскажите, подправьте порядок слов, букв, цифр. Заранее, спасибо! Последний раз редактировалось Admin, 13.04.2015 в 19:26. |
#2
|
|||
|
|||
![]() Разве никто не может подсказать?
|
#3
|
||||
|
||||
![]() Ну не все сидят тут на форуме постоянно.
Вот так можно попробовать: Код:
if dtMonth = 1 then dtStart := EnCodeDate(dtYear-1, 12, 1) else dtStart := EnCodeDate(dtYear, dtMonth-1, 1); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
![]() Страдаецъ, спасибо, буду пробовать. В начале следующего месяца отпишусь))
|