Гость
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport: Странное поведение between (PascalScript) / 2 сообщений из 2, страница 1 из 1
10.06.2020, 16:21
    #39967932
Mulber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport: Странное поведение between (PascalScript)
Доброго времени суток. Странным образом ведет себя between в FastScript (либо я чего намудрил 🙂).



Собственно имеется код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
var
 BegDate : TDateTime;
 EndDate : TDateTime;    
  
procedure ReportOnStartReport(Sender: TfrxComponent);
begin
 DateEdit1.Date := Now;
 DateEdit2.Date := Now;
end;

procedure Button1OnClick(Sender: TfrxComponent);
var 
 s : string;            
begin
 Set('FilterPeriod', '''' + 'Период: ' + FormatDateTime('dd.mm.yyyy', DateEdit1.Date) + ' - ' + FormatDateTime('dd.mm.yyyy', DateEdit2.Date) + '''');

 BegDate := StrToDateTime(Copy(DatetimeToStr(DateEdit1.Date), 1, 10) + ' 00:00:00');
 EndDate := StrToDateTime(Copy(DatetimeToStr(DateEdit2.Date), 1, 10) + ' 23:59:59');    

// ShowMessage(BegDate < EndDate);                       
 s := 'select'#13 +
    ' u.*, s.*, st.name as statname'#13 +       
    'from'#13 +        
    ' user u, sdmsg s, sdstatus st'#13 +        
    'where'#13 +
    ' u.userid = s.usermsgid and'#13 +
    ' (s.datemsg between :p1 and :p2) and'#13 +
    ' s.statusid = st.statusid and'#13 +              
    ' u.depwpid in'#13 +       
    ' ('#13 +       
    ' select'#13 +       
    '  d.parentid'#13 +       
    ' from'#13 +          
    '  tmpdepartm t'#13 +       
    ' inner join departm d on (t.depwpid = d.depwpid)'#13 +       
    ' )'#13 +             
   'order by u.name, s.sdmsgid, s.sdlistid';
                           
 with ADOQuery1 do 
 begin
  Close;
  SQL.Text := s;
                  
  with Params.Items[0] do
  begin
   DataType := ftDateTime;
   Value := BegDate;                       
  end;
    
  with Params.Items[1] do
  begin
   DataType := ftDateTime;
   Value := EndDate;
  end;
                       
  Open;
 end;     
end;

begin

end.



Фильтрую по дате 10.06.2020 - 10.06.2020. Отчет возвращается пустой (хотя нужные записи есть)

Фильтрую по дате 09.06.2020 - 09.06.2020. Отчет возвращается пустой (хотя нужные записи есть)

Если установить фильтр 09.06.2020 - 10.06.2020. Отчет формируется корректно, записи есть. Укажите, где я перемудрил? Вроде с DateTime все корректно сделал.

Спасибо!
...
Рейтинг: 0 / 0
10.06.2020, 16:56
    #39967947
Mulber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FastReport: Странное поведение between (PascalScript)
Извиняюсь, разобрался.
Using-BETWEEN-with-DATETIMEs-in-SQL
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport: Странное поведение between (PascalScript) / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]