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

Откуда:
Сообщений: 205
доброго дня! подскажите, пожалуйста, осуществить следующее: с каждой сменой года в дбгриде (именно в гриде, не в базе),
добавлять строку с определенной надписью. в конце также выводить строку с такой же надписью.

К сообщению приложен файл. Размер - 16Kb
4 мар 19, 10:33    [21824104]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Фэйтл Эра
Member

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

считывай отсортированные по дате данные ручками в in-memory датасет (в TClientDataSet), при смене дат добавляй нужные строки.
4 мар 19, 10:42    [21824116]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
DimaBr
Member

Откуда:
Сообщений: 10922
Построить запрос так, как написано в хотелке
4 мар 19, 11:25    [21824152]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

гриде данных НЕТ! (с)

Posted via ActualForum NNTP Server 1.5

4 мар 19, 12:20    [21824202]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3825
Мимопроходящий
гриде данных НЕТ! (с)
Ну правильно, так и речь не о данных - надо строку вставить, а не данные)
4 мар 19, 12:40    [21824227]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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

как это сделать в гриде?
4 мар 19, 12:42    [21824229]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

04.03.2019 12:40, YuRock пишет:
> Ну правильно, так и речь не о данных - надо строку вставить, а не данные)

строки в TStrings!

Posted via ActualForum NNTP Server 1.5

4 мар 19, 12:42    [21824230]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Vlad F
Member

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

как это сделать в гриде?

Возможно, и технологически проще и идеологически выдержаннее будет сделать это не в гриде, а в отчете,
который будет вызываться по кнопке рядом с гридом. Предлагаю подумать именно в эту сторону.
4 мар 19, 12:52    [21824245]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gerasimenko
Member

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

как это сделать в гриде?

Вам уже ответили: 21824152
4 мар 19, 12:53    [21824249]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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

есть необходимость в том, чтобы это было осуществлено именно в гриде.
4 мар 19, 12:54    [21824253]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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

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 г. с надписью "сальдо на"
4 мар 19, 13:00    [21824259]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

04.03.2019 12:54, TsYekaterina пишет:
> есть необходимость в том, чтобы это было осуществлено именно в гриде.

иди боршчть вари! (С)

Posted via ActualForum NNTP Server 1.5

4 мар 19, 13:00    [21824261]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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


К сообщению приложен файл. Размер - 7Kb
4 мар 19, 13:00    [21824262]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gerasimenko
Member

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

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 г. с надписью "сальдо на"

Можно через хранимку
CREATE TABLE #NameTempTable(...)
INSERT INTO  #NameTempTable(...)

select * from #NameTempTabl(
4 мар 19, 13:03    [21824267]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

04.03.2019 13:03, Gerasimenko пишет:
> Можно через хранимку

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

Posted via ActualForum NNTP Server 1.5

4 мар 19, 13:10    [21824274]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gerasimenko
Member

Откуда:
Сообщений: 4446
Мимопроходящий
04.03.2019 13:03, Gerasimenko пишет:
> Можно через хранимку

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

По вопросу, ему так проще будет.
4 мар 19, 13:12    [21824278]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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

спасибо! попробую.
4 мар 19, 13:14    [21824284]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3825
TsYekaterina
есть необходимость в том, чтобы это было осуществлено именно в гриде.

Если уж дело принципа, то замени TDBGrid на TStringGrid, и заполняй его в цикле while not Eof вручную, при необходимости - вставляя такие "фейковые" строки.
4 мар 19, 13:42    [21824326]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Василий 2
Member

Откуда:
Сообщений: 433
Хранимка либо execute block с FOR SELECT ... INTO ... DO ...
4 мар 19, 14:08    [21824373]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47064

YuRock
замени TDBGrid на TStringGrid, и заполняй его в цикле while not Eof вручную, при
необходимости - вставляя такие "фейковые" строки.

Судя по предыдущим топикам, эти десять строк кода - совершенно непосильная задача для
аффтарши.

Posted via ActualForum NNTP Server 1.5

4 мар 19, 14:10    [21824377]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gator
Member

Откуда: Москва
Сообщений: 14084
TsYekaterina
Vlad F,

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

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

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


Мимопроходящий, Боржч варить ему не доверю. Он компонент (ингредиент добавить не сможет... :)
4 мар 19, 14:21    [21824399]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

04.03.2019 14:21, Gator пишет:
> Боржч варить ему не доверю. Он компонент (ингредиент добавить не сможет... :)

а разве он не ОНА?

Posted via ActualForum NNTP Server 1.5

4 мар 19, 14:24    [21824403]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Gator
Member

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

ну, фотки нету, иник пола не имеет ;)
4 мар 19, 15:04    [21824473]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
Мимопроходящий
Member

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

8 пальцев! (С)

Posted via ActualForum NNTP Server 1.5

4 мар 19, 15:07    [21824484]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
YuRock
Member

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

ну, фотки нету, иник пола не имеет ;)
Маловероятно, что ОН назвал бы себя Екатерина. Хотя..
4 мар 19, 15:08    [21824489]     Ответить | Цитировать Сообщить модератору
 Re: добавление строк в dbgrid  [new]
TsYekaterina
Member

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

не верю! (С)

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

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

Откуда:
Сообщений: 10598
В общем, задача - полуавтоматические промежуточные 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

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

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

Откуда: Москва
Сообщений: 14084
_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

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

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

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

Откуда: Запорожье
Сообщений: 50276
_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]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Delphi Ответить