Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите плиз как сделать красиво и без лишней мутотени по полчаса / 12 сообщений из 12, страница 1 из 1
09.04.2020, 17:05
    #39945474
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
Код: 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.
63.
64.
65.
66.
procedure TForm_stat.LoadVT;
var
  SumCheck : Integer;
  SumSum, SumSkidki : Currency;
  Day_prew, Day_next,day : TDate;
  dayfrom,dayto:string;
begin
  try
  frmMessage.lblMessage.Caption := 'Формирование отчета ...';
  frmMessage.Show();
  application.ProcessMessages;

  SumCheck := 0;
    SumSum := 0;

  VT.Clear;
  VT.NodeDataSize := SizeOf(TSrCheckData);

  if not trRead.InTransaction then
    trRead.StartTransaction;
  day:=date.Date;
  dayfrom:=datetostr(day)+' 00:00:00';
  dayto :=datetostr(day)+' 23:59:59';

  readQ.SQL.Clear;
  readQ.SQL.Add ('select extract(hour from datedoc) as d,sum(summa) as summa, count(*) as kolvo ' +
' from alljournaldoc' +
' where datedoc >= '+quotedstr(dayfrom)+' and datedoc <= '+quotedstr(dayto)+'  and id_typedoc=4 and proveden =1 ' +
' group by d');

  readQ.ExecQuery;

  VT.BeginUpdate;

  while not readQ.Eof do
  begin
    Node := VT.AddChild(nil);
    T := VT.GetNodeData(Node);
    T.ID := VT.TotalCount;
    T.data := datetostr(day);
    T.KCheck := readQ.FieldByName('kolvo').AsInteger;
    T.Summ := - readQ.FieldByName('SUMMA').AsCurrency;
    T.interval := readQ.FieldByName('d').Asstring+':00-' +readQ.FieldByName('d').Asstring+':59' ;
    SumCheck := SumCheck + T.KCheck;
    SumSum := SumSum + T.Summ;

    readQ.Next;
  end;
  Node := VT.AddChild(nil);
  T := VT.GetNodeData(Node);
  T.ID := VT.TotalCount;
  T.interval := 'Всего по аптеке: ';
  T.KCheck := SumCheck;
  T.Summ := SumSum;


  readQ.Close;
  if trRead.InTransaction then
    trRead.Rollback;

  VT.EndUpdate;

  finally
  frmMessage.Close;
  end;
end;

...
Рейтинг: 0 / 0
09.04.2020, 17:08
    #39945475
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
арт2010,

для начала начать использовать параметры запроса.
...
Рейтинг: 0 / 0
09.04.2020, 17:12
    #39945480
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
Симонов Денис, имеется в виду, сделат интервал не по часу, а по полчаса.
Есть функция типа half hour или что-то подобное?
...
Рейтинг: 0 / 0
09.04.2020, 17:14
    #39945482
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
Тут программист нужен. Или кто-то с железными шарами вместо глаз, ибо от такой
неформатированной портянки они кровоточат.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.04.2020, 17:17
    #39945487
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
Dimitry Sibiryakov, ок, можн окак нибудь сделать
вместо
авторselect extract(hour from datedoc) as d
вот так
авторselect extract(half hour from datedoc) as d
стандартными функциями без лишнего геморроя?
...
Рейтинг: 0 / 0
09.04.2020, 17:24
    #39945495
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
арт2010стандартными функциями без лишнего геморроя?

Можно. Подсказка: полчаса это 30 минут.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.04.2020, 17:34
    #39945503
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
арт2010,

вот для начала:

Код: sql
1.
select extract(hour from datedoc) as d, iif(extract(minute from datedoc)<31, 0, 1) as m, sum(summa) as summa, count(*) as kolvo 


group by по d,m.
...
Рейтинг: 0 / 0
09.04.2020, 17:45
    #39945511
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
А сразу m поделить на 30?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
09.04.2020, 18:18
    #39945542
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
Dimitry Sibiryakov,

можно и поделить, да. Перестраховался от вещественного числа.
...
Рейтинг: 0 / 0
09.04.2020, 23:33
    #39945637
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
KreatorXXI,

int / int даст int

select 3/2 from rdb$database
...
Рейтинг: 0 / 0
10.04.2020, 11:09
    #39945738
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
DarkMaster,

не во всех ЯП это так. Пользуюсь не одним, перестраховываюсь уже на автомате.
...
Рейтинг: 0 / 0
10.04.2020, 13:16
    #39945814
арт2010
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите плиз как сделать красиво и без лишней мутотени по полчаса
KreatorXXI и всех благодарю за помощь
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Подскажите плиз как сделать красиво и без лишней мутотени по полчаса / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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