powered by simpleCommunicator - 2.0.34     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport: Странное поведение between (PascalScript)
2 сообщений из 2, страница 1 из 1
FastReport: Странное поведение between (PascalScript)
    #39967932
Mulber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Странным образом ведет себя 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
FastReport: Странное поведение between (PascalScript)
    #39967947
Mulber
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, разобрался.
Using-BETWEEN-with-DATETIMEs-in-SQL
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / FastReport: Странное поведение between (PascalScript)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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