powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / добавление строк в dbgrid
50 сообщений из 50, показаны все 2 страниц
добавление строк в dbgrid
    #39781755
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
доброго дня! подскажите, пожалуйста, осуществить следующее: с каждой сменой года в дбгриде (именно в гриде, не в базе),
добавлять строку с определенной надписью. в конце также выводить строку с такой же надписью.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781762
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

считывай отсортированные по дате данные ручками в in-memory датасет (в TClientDataSet), при смене дат добавляй нужные строки.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781790
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Построить запрос так, как написано в хотелке
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781828
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
гриде данных НЕТ! (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781845
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийгриде данных НЕТ! (с)Ну правильно, так и речь не о данных - надо строку вставить, а не данные)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781847
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

как это сделать в гриде?
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781848
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
04.03.2019 12:40, YuRock пишет:
> Ну правильно, так и речь не о данных - надо строку вставить, а не данные)

строки в TStrings!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781857
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaYuRock,

как это сделать в гриде?
Возможно, и технологически проще и идеологически выдержаннее будет сделать это не в гриде, а в отчете,
который будет вызываться по кнопке рядом с гридом. Предлагаю подумать именно в эту сторону.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781860
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaYuRock,

как это сделать в гриде?
Вам уже ответили: 21824152
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781864
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vlad F,

есть необходимость в том, чтобы это было осуществлено именно в гриде.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781868
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

Код: sql
1.
2.
3.
select name_klient, doc_klient_mrz.*
from TestFSO.dbo.doc_klient_mrz, TestFSO.dbo.klient where doc_klient_mrz.id_klient=klient.id_klient and kod_oper=0 and 
data_doc between '2017-01-01' and '2019-01-01' and Name_klient='nnnnnnn' order by data_doc


не знаю,как дальше сделать - вставить строку перед 2018 г. и после 2019 г. с надписью "сальдо на"
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781870
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
04.03.2019 12:54, TsYekaterina пишет:
> есть необходимость в том, чтобы это было осуществлено именно в гриде.

иди боршчть вари! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781871
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781873
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaGerasimenko,

Код: sql
1.
2.
3.
select name_klient, doc_klient_mrz.*
from TestFSO.dbo.doc_klient_mrz, TestFSO.dbo.klient where doc_klient_mrz.id_klient=klient.id_klient and kod_oper=0 and 
data_doc between '2017-01-01' and '2019-01-01' and Name_klient='nnnnnnn' order by data_doc


не знаю,как дальше сделать - вставить строку перед 2018 г. и после 2019 г. с надписью "сальдо на"
Можно через хранимку
Код: sql
1.
2.
3.
4.
CREATE TABLE #NameTempTable(...)
INSERT INTO  #NameTempTable(...)

select * from #NameTempTabl(
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781877
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
04.03.2019 13:03, Gerasimenko пишет:
> Можно через хранимку

некошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781880
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий04.03.2019 13:03, Gerasimenko пишет:
> Можно через хранимку

некошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.

По вопросу, ему так проще будет.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781885
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

спасибо! попробую.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781907
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaесть необходимость в том, чтобы это было осуществлено именно в гриде.
Если уж дело принципа, то замени TDBGrid на TStringGrid, и заполняй его в цикле while not Eof вручную, при необходимости - вставляя такие "фейковые" строки.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781940
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хранимка либо execute block с FOR SELECT ... INTO ... DO ...
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781943
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockзамени TDBGrid на TStringGrid, и заполняй его в цикле while not Eof вручную, при
необходимости - вставляя такие "фейковые" строки.

Судя по предыдущим топикам, эти десять строк кода - совершенно непосильная задача для
аффтарши.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781959
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaVlad F,

есть необходимость в том, чтобы это было осуществлено именно в гриде.Тебе уже ответили
- Данные сидят в Dataset, который получается из твоего ЗАПРОСА
- Грид (сетка) это просто витринка на экаране.
Т.е работать надо именно с ДАННЫМИ (датасетом), а не картинкой.

Надо или пустую строку обеспечить (хоть и юнионом) при этом не забыть обеспечить PK (primary)
или сначала вставить новый PK и обновить датасет

Компонентов - как грязи.


Мимопроходящий, Боржч варить ему не доверю. Он компонент (ингредиент добавить не сможет... :)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39781961
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
04.03.2019 14:21, Gator пишет:
> Боржч варить ему не доверю. Он компонент (ингредиент добавить не сможет... :)

а разве он не ОНА?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782011
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий,

ну, фотки нету, иник пола не имеет ;)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782018
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
8 пальцев! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782022
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorМимопроходящий,

ну, фотки нету, иник пола не имеет ;)Маловероятно, что ОН назвал бы себя Екатерина. Хотя..
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782062
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят, по-моему, вас не в ту степь понесло!!!
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782240
Уважаемый автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaРебят, по-моему, вас не в ту степь понесло!!!
Весна! Жениться хотят!
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782242
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaРебят, по-моему, вас не в ту степь понесло!!!
Екатерина! - нас, таки да, - вне всякого мнения, понесло.))
Но хоть что-нибудь, в результате, получилось или нет?
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782244
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай, - я про дело, а не про борщ.))
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782248
Фэйтл Эра
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FНо хоть что-нибудь, в результате, получилось или нет?
Неужели правда интересно?
А если бы подпись была не "Екатерина", а, скажем, "Укладчик шпал" - все равно бы интересовался?
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782252
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Хотя, если кто-нибудь из присутствующих сударынь-разработчиков поставит на вид, что борщ нам всем
не менее важен, чем алгоритмы, я покорно сниму шляпу.))
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782255
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фэйтл Эра,

Я как раз не на имя смотрю, а на неофита, на которого вы по привычке (не все), не взирая на пол,
вдруг набросились. Освежи, к слову, на вики по слову "снобизм".
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782339
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vlad F,

да, все получилось. использовала union all.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782420
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
05.03.2019 9:17, TsYekaterina пишет:
> использовала union all.

не верю! (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782448
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий,

не удивлена. Ваше право!
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782476
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий05.03.2019 9:17, TsYekaterina пишет:
> использовала union all.

не верю! (С)
брось, это не тот случай :)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782676
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящийнекошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяца
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782709
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, задача - полуавтоматические промежуточные totals в dbgrid
Довольно любопытно.

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

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

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

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

....и попадаем на табличку размером гигабайт десять.
Полчаса программа тупо висит, потом падает из-за нехватки памяти.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782710
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
альзо http://www.delphimaster.net/view/3-1116581962

но CDS тут будет почти как ручной цикл, только сложнее
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782712
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяцаКен Хендриксон поможет.
http://mirknig.su/knigi/programming/52523-professionalnoe-rukovodstvo-po-transact-sql.html
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782719
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch....и попадаем на табличку размером гигабайт десять.
Полчаса программа тупо висит, потомОй, ну не мелочись:)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39782720
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaда, все получилось. использовала union all.
Катерина, а покажи, действительно результирующий запрос, хотя бы схематично.
(видишь, парни все еще хвосты пушат)))
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39783284
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_Мимопроходящийнекошерно.
UNION ALL тут нужен.
но без программиста, имхо, не обойтись.Научи как написать UNION ALL для произвольного интервала дат с итогом после окончания каждого календарного месяца
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39793382
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39793416
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
istrebitelСмотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).а там есть итоги с нарастанием?
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39795470
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Применение нестандартных алгоритмов для подсчета агрегированных значений.
В режиме группировки данных грид позволяет рассчитывать значение элементов footer’а через события. Это позволяет реализовывать функции агрегации любого уровня сложности. Для каждой записи DataSet’а вызывается событие OnDataGroupFooterAggregateValue, в котором необходимо рассчитать текущее значение агрегированного значения с учетом вызова события для каждой записи DataSet’а. Например, для функции суммирования необходимо прибавить текущее значение поля к счетчику суммы:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
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.
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39795768
WFcorp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
istrebitelСмотрите в сторону EhLib. В TDbGridEh есть режим работы с группами (DataGrouping).
Поддержу данное направление. Можно сделать там связку SQL-DataProvider-MemTable-Grid и настроить группировку. Работает достаточно быстро. (и красиво)
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39795928
figli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cxGrid - поле с годом - группировка и итоги по этому полю
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39795960
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
селектом намного проще
и его отладить легче - все данные в однем месте - девелопепром выполнил, увидел результат

конечно, там, где его написание допустимо
...
Рейтинг: 0 / 0
добавление строк в dbgrid
    #39795961
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxселектом намного проще
и его отладить легче - все данные в однем месте - девелопепром выполнил, увидел результат

конечно, там, где его написание допустимонапишите код, который реализует функционал моего селекта
21826833
...
Рейтинг: 0 / 0
50 сообщений из 50, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / добавление строк в dbgrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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