Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Ребят, по-моему, вас не в ту степь понесло!!!
4 мар 19, 15:45    [21824560]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Уважаемый автор
Member

Откуда: Питер
Сообщений: 309
TsYekaterina
Ребят, по-моему, вас не в ту степь понесло!!!

Весна! Жениться хотят!
4 мар 19, 20:52    [21824826]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

Откуда:
Сообщений: 781
TsYekaterina
Ребят, по-моему, вас не в ту степь понесло!!!

Екатерина! - нас, таки да, - вне всякого мнения, понесло.))
Но хоть что-нибудь, в результате, получилось или нет?
4 мар 19, 20:58    [21824828]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

Откуда:
Сообщений: 781
На всякий случай, - я про дело, а не про борщ.))
4 мар 19, 21:09    [21824830]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
Vlad F
Но хоть что-нибудь, в результате, получилось или нет?

Неужели правда интересно?
А если бы подпись была не "Екатерина", а, скажем, "Укладчик шпал" - все равно бы интересовался?
4 мар 19, 21:26    [21824836]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

Откуда:
Сообщений: 781
TsYekaterina,

Хотя, если кто-нибудь из присутствующих сударынь-разработчиков поставит на вид, что борщ нам всем
не менее важен, чем алгоритмы, я покорно сниму шляпу.))
4 мар 19, 21:40    [21824844]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

Откуда:
Сообщений: 781
Фэйтл Эра,

Я как раз не на имя смотрю, а на неофита, на которого вы по привычке (не все), не взирая на пол,
вдруг набросились. Освежи, к слову, на вики по слову "снобизм".
4 мар 19, 21:45    [21824849]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Vlad F,

да, все получилось. использовала union all.
5 мар 19, 09:17    [21825047]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29835

05.03.2019 9:17, TsYekaterina пишет:
> использовала union all.

не верю! (С)

Posted via ActualForum NNTP Server 1.5

5 мар 19, 12:15    [21825213]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

Откуда:
Сообщений: 205
Мимопроходящий,

не удивлена. Ваше право!
5 мар 19, 12:46    [21825271]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Док
Member

Откуда: Казань
Сообщений: 6131
Мимопроходящий
05.03.2019 9:17, TsYekaterina пишет:
> использовала union all.

не верю! (С)

брось, это не тот случай :)
5 мар 19, 13:31    [21825330]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10852
Мимопроходящий
некошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.
Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяца
5 мар 19, 18:58    [21825687]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Arioch
Member

Откуда:
Сообщений: 10807
В общем, задача - полуавтоматические промежуточные totals в dbgrid
Довольно любопытно.

YuRock
Если уж дело принципа, то замени TDBGrid на TStringGrid,


Я ожидал, что Virtual Tree View предложат, но так даже брутальнее

Ну - либо DevExpress, там наверняка уже всё есть
https://www.sql.ru/forum/1242854/cxgrid-kak-sdelat-promezhutochnye-itogi

и заполняй его в цикле while not Eof


....и попадаем на табличку размером гигабайт десять.
Полчаса программа тупо висит, потом падает из-за нехватки памяти.
5 мар 19, 20:13    [21825741]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Arioch
Member

Откуда:
Сообщений: 10807
альзо http://www.delphimaster.net/view/3-1116581962

но CDS тут будет почти как ручной цикл, только сложнее
5 мар 19, 20:15    [21825742]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gator
Member

Откуда: Москва
Сообщений: 14212
_Vasilisk_
Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяца
Кен Хендриксон поможет.
http://mirknig.su/knigi/programming/52523-professionalnoe-rukovodstvo-po-transact-sql.html
5 мар 19, 20:30    [21825745]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3898
Arioch
....и попадаем на табличку размером гигабайт десять.
Полчаса программа тупо висит, потом
Ой, ну не мелочись:)
5 мар 19, 21:31    [21825762]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

Откуда:
Сообщений: 781
TsYekaterina
да, все получилось. использовала union all.

Катерина, а покажи, действительно результирующий запрос, хотя бы схематично.
(видишь, парни все еще хвосты пушат)))
5 мар 19, 21:45    [21825764]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51308
_Vasilisk_
Мимопроходящий
некошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.
Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяца
with data as
(
select 1 s,  {d '2017-01-01'} d union all
select 2 s,  {d '2017-01-15'} d union all
select 2 s,  {d '2017-01-21'} d union all
select -3 s, {d '2017-02-01'} d union all
select 1 s,  {d '2017-03-15'} d
)
select N'док' txt, data.*
 from data
union all
select N'сальдо на '+cast(eoMONTH(d) as varchar(20)) txt,
       sum(sum(s)) over(order by eoMONTH(d)),
       eoMONTH(d)
 from data
 group by eoMONTH(d)
 order by d, txt
txtsd
док12017-01-01 00:00:00.000
док22017-01-15 00:00:00.000
док22017-01-21 00:00:00.000
сальдо на 2017-01-3152017-01-31 00:00:00.000
док-32017-02-01 00:00:00.000
сальдо на 2017-02-2822017-02-28 00:00:00.000
док12017-03-15 00:00:00.000
сальдо на 2017-03-3132017-03-31 00:00:00.000
6 мар 19, 23:28    [21826833]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
istrebitel
Member

Откуда:
Сообщений: 4
Смотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).
29 мар 19, 06:44    [21846725]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51308
istrebitel
Смотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).
а там есть итоги с нарастанием?
29 мар 19, 09:28    [21846785]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
istrebitel
Member

Откуда:
Сообщений: 4
Применение нестандартных алгоритмов для подсчета агрегированных значений.
В режиме группировки данных грид позволяет рассчитывать значение элементов footer’а через события. Это позволяет реализовывать функции агрегации любого уровня сложности. Для каждой записи DataSet’а вызывается событие OnDataGroupFooterAggregateValue, в котором необходимо рассчитать текущее значение агрегированного значения с учетом вызова события для каждой записи DataSet’а. Например, для функции суммирования необходимо прибавить текущее значение поля к счетчику суммы:

procedure TfrMailBox.DBGridEh1Columns5DataGroupFooterAggregateValue(
  Grid: TCustomDBGridEh; Column: TColumnEh;
  GroupFooter: TGridDataGroupFooterEh;
  FooterColumnItem: TGridDataGroupFooterColumnItemEh; var AValue: Variant;
  Node: TGroupDataTreeNodeEh; var Processed: Boolean);
begin
  if VarIsEmpty(AValue) then
  begin
    AValue := VarArrayCreate([0,1], varInteger);
    AValue[0] := 0;
    AValue[1] := 0;
  end;
  if MemTableEh1post_read.AsInteger = 1
    then AValue[0] := AValue[0] + 1
    else AValue[1] := AValue[1] + 1;
  Processed := True;
end;

После всех вызовов события OnDataGroupFooterAggregateValue для каждой записи DataSet’а, процесс вызывает событие окончательного расчета агрегированного значения - ColumnEh.OnDataGroupFooterFinalizeValue. Если реализуемая функция требует заключительного шага для расчета значения, то это можно сделать в этом событии.

Например, для функции расчета среднего значения на шаге заключительного расчета необходимо разделить сумму значений на количество записей - SumValue / RecordsCount.
Для реализации этой функциональности необходимо в переменной расчета хранить два значения: Сумму и Количество записей. Для этого в переменной AValue: Variant можно завести массив из двух значений, а в функции окончательного расчета, делить первый элемент массива (Сумму) на второй элемент (Количество).

При выводе значения ячейки footer’а на экран вызывается событие преобразования значения в текстовое представление OnDataGroupFooterToDisplayText.
3 апр 19, 06:50    [21850811]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
WFcorp
Member

Откуда:
Сообщений: 7
istrebitel
Смотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).

Поддержу данное направление. Можно сделать там связку SQL-DataProvider-MemTable-Grid и настроить группировку. Работает достаточно быстро. (и красиво)
3 апр 19, 13:12    [21851230]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
figli
Member

Откуда:
Сообщений: 74
cxGrid - поле с годом - группировка и итоги по этому полю
3 апр 19, 16:55    [21851504]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51308
селектом намного проще
и его отладить легче - все данные в однем месте - девелопепром выполнил, увидел результат

конечно, там, где его написание допустимо
3 апр 19, 17:52    [21851576]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 51308
andreymx
селектом намного проще
и его отладить легче - все данные в однем месте - девелопепром выполнил, увидел результат

конечно, там, где его написание допустимо
напишите код, который реализует функционал моего селекта
21826833
3 апр 19, 17:54    [21851577]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Delphi Ответить