Topic: свести значения из разнгых таблиц в один грид

Добрый день.
Делаю проект, но не могу реализовать таким образом, что-бы значения, которые заносятся в разные таблицы в итоге сводились в одyjм гриде на общем окне. (вкладка first)
И после ввода нового значения, после нажатия на кнопку СОХРАНИТЬ - добавляет  еще одно значение (по сути тоже самое что уже біло ввдено, но с исправлениями, если что-то менял)
И как мне сделать, что-бы автоматом обновлялась таблица? а то она обновляется тьолько тогда, когда вновь запускаю программу
прикладывю проект.

Post's attachments

Attachment icon test.zip 339.54 kb, 276 downloads since 2019-01-08 

2 (edited by sibprogsistem 2019-01-08 17:00:58)

Re: свести значения из разнгых таблиц в один грид

stas.kodpi wrote:

Добрый день.
Делаю проект, но не могу реализовать таким образом, что-бы значения, которые заносятся в разные таблицы в итоге сводились в одyjм гриде на общем окне. (вкладка first)
И после ввода нового значения, после нажатия на кнопку СОХРАНИТЬ - добавляет  еще одно значение (по сути тоже самое что уже біло ввдено, но с исправлениями, если что-то менял)
И как мне сделать, что-бы автоматом обновлялась таблица? а то она обновляется тьолько тогда, когда вновь запускаю программу
прикладывю проект.

сводим значения таблиц в грид SQL запросом Так:
 
разместите на форме кнопку- выбирите действие (SQL запрос)
 

select 
       table1.value1,
       table1.value2,
       table2.value1,    
       table2.value2
       
from  table1,          
         table2
      
where  table1.id = table2.id_table1
 

https://downloader.disk.yandex.ru/preview/ca017a09adb8a03746836bb68d67a739d37e616e8da1ff4550747b94149d53f0/5c34fd54/wen71ENjM59wrRqPBbBXugqKjuNM9WvHPptQtVwyuUzeiP9AiH8fzGrNYSy1OoF0QL2Vxs8ThTni2OqxbyObGg%3D%3D?uid=0&filename=wer.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=2048x2048

для постоянно обновления грида можно сделать таймер при загрузке формы
 

procedure first_OnShow (Sender: TObject; Action: string);
var
Timer1: TTimer;
begin
Timer1 := TTimer.Create(first); 
   Timer1.OnTimer :=@rrr;// вызов процедуры
   Timer1.Interval := 200;// время срабатывания
   Timer1.Enabled := True;
end;

procedure rrr ;
begin
   first.TableGrid1.dbUpdate;
end;
stas.kodpi wrote:

И после ввода нового значения, после нажатия на кнопку СОХРАНИТЬ - добавляет  еще одно значение (по сути тоже самое что уже біло ввдено, но с исправлениями, если что-то менял).

не понятно

3 (edited by stas.kodpi 2019-01-09 11:43:47)

Re: свести значения из разнгых таблиц в один грид

код с таймером не работает  - постоянно пишет ошибку на значение begin а также на ; вконце

я все таки не пойму, как будет грид собирать знаечния введенные во вкладках?
я добавил названия  таблиц и строкк в код...

но есть 4 вкладки, в них по 2 строки

мне нужно будет сделать связи между таблицами?

каждый с каждым? или как?

грид как поймет что ему в себе отображать?

select 
       portal.fio_portal,
       portal.date_portal,
       ecp.fio_ecp,    
       ecp.date_ecp
       
from  portal,          
         ecp
      
where  portal.id = ecp.id_portal    

4 (edited by sibprogsistem 2019-01-09 13:41:48)

Re: свести значения из разнгых таблиц в один грид

сделал постоянный  клик кнопки

procedure first_OnShow (Sender: TObject; Action: string);
var
Timer1: TTimer;
begin
first.Button2.Click ; // первый клик на кнопку sql запроса
Timer1 := TTimer.Create(first);
   Timer1.OnTimer :=@rrr;// вызов процедуры
   Timer1.Interval := 200;// время срабатывания
   Timer1.Enabled := True;
end;

procedure rrr ;
begin
   first.Button2.Click ;   // клик на кнопку sql запроса
end;

 
 
попробуте теперь
   
 
Так же в таблице ecp отсутствовала связь id_portal

связываете таблицы через ключ где  id_portal указывает на номер  ключа таблицы portal

Post's attachments

Attachment icon test.rar 6.82 kb, 291 downloads since 2019-01-09 

5 (edited by stas.kodpi 2019-01-10 10:32:54)

Re: свести значения из разнгых таблиц в один грид

Доброе утро.
Все равно в общем гриде не отображается ни одна запись.
Может быть мне в настрйках грида надо какие-то значения забивать (поля из таблиц)?
Да, и еще момент - у меня в дизайнере отчета какждая  строка получается на своем  листе. Старнно как-то. Хоотя должны ыбыть на одном.
У кого есть идеи? может кто сталкивался. Вроде все пересмотрел

Post's attachments

Attachment icon test.zip 340.28 kb, 264 downloads since 2019-01-10 

6 (edited by sibprogsistem 2019-01-10 10:40:44)

Re: свести значения из разнгых таблиц в один грид

если вы добвили в таблицу связь, то  файл  sqlite в карневой папке проекта нужно  удалить а потом заново заполнить, ведь на данный момент в поле

 id_portal

значений нет
и какова логика записи (как эти таблицы связываются)?

7 (edited by stas.kodpi 2019-01-10 12:08:11)

Re: свести значения из разнгых таблиц в один грид

всмысле как?
логика такова, что когда человек будет заносить значения в один или несколько табов под названиями портал, ецп, и т.д. - эти введенные данные должны будут отображаться в общей (сводной) таблице. т.е.в том гриде.
а на данный момент грид не отрабатывает то что должен. ни sql скрипт , ни грид не срабатывают. Пустышка и все.
да и файл sqlite.db также нельзя удалять,т.к. в нем, я так понимаю хранятся все введенные данные?
с отчетом немного разобрался.

8 (edited by sibprogsistem 2019-01-10 20:49:58)

Re: свести значения из разнгых таблиц в один грид

в Вашем случае будет так

SELECT fio_portal, date_portal, fio_ecp, date_ecp

FROM portal, ecp 

но в итоге вы все равно получте проблемы

самый лучший вариант выглядит всетаки так

SELECT fio_portal, date_portal from portal
union
select fio_ecp, date_ecp from ecp 
 

просто добавьте еще поле в таблицы с именем формы

Re: свести значения из разнгых таблиц в один грид

Спасибо, этот код работает.
Но: оно пишется в строки.
Т.е. в гриде нету рспределения по необходимым колонкам
Например, должны быть 2 колонки в гриде - портал и ецп.
И данные, которые занесены в табе портал, должны отобразиться в двух колонках грида, связанных с порталом.
Другие две записи из таба ЕЦП, должны быть записаны в грид в другие две колонки с названием ЕЦП.
Т.е. должны быть распределение.
А така, как в настроках грида ничего нету, т.е. просто туда все ссыпается - это неправильно.

Post's attachments

Attachment icon 111.jpg 98.95 kb, 152 downloads since 2019-01-11 

Re: свести значения из разнгых таблиц в один грид

stas.kodpi wrote:

Спасибо, этот код работает.
Но: оно пишется в строки.
Т.е. в гриде нету рспределения по необходимым колонкам
Например, должны быть 2 колонки в гриде - портал и ецп.
И данные, которые занесены в табе портал, должны отобразиться в двух колонках грида, связанных с порталом.
Другие две записи из таба ЕЦП, должны быть записаны в грид в другие две колонки с названием ЕЦП.
Т.е. должны быть распределение.
А така, как в настроках грида ничего нету, т.е. просто туда все ссыпается - это неправильно.

SELECT fio_portal, date_portal, fio_ecp, date_ecp

FROM portal, ecp 

Re: свести значения из разнгых таблиц в один грид

вот что получилось

Post's attachments

Attachment icon 111.jpg 260.42 kb, 154 downloads since 2019-01-11 

Re: свести значения из разнгых таблиц в один грид

stas.kodpi wrote:

вот что получилось

выведите  таблицу в отдельном гриде, простым просмотром и проверьте имеются ли там такие же записи

Re: свести значения из разнгых таблиц в один грид

вот в том гриде, изначально как и должно быть

Post's attachments

Attachment icon 111.jpg 65.87 kb, 152 downloads since 2019-01-11 

Re: свести значения из разнгых таблиц в один грид

к сожалению с NULL я не селен, это как раз та проблема про которую я вам писал выше

Re: свести значения из разнгых таблиц в один грид

ну а все-таки может будут какие идеи?

Re: свести значения из разнгых таблиц в один грид

stas.kodpi wrote:

ну а все-таки может будут какие идеи?

могу лишь предложить в форме first отобразить 3 грида, каждый под свою таблицу...
ну как обновлять Вы уже знаете

Re: свести значения из разнгых таблиц в один грид

дак я тоже думал над этим.
А в один отчет я смогу их объединить затем?

Re: свести значения из разнгых таблиц в один грид

stas.kodpi wrote:

дак я тоже думал над этим.
А в один отчет я смогу их объединить затем?

в отчет тоже можно как разные таблицы отправить а в дизайнере их просто вывести на страницу

Re: свести значения из разнгых таблиц в один грид

добрый вечер.
Скажите, пожалуйста - а как мне сделать напоминания на ближайшее событие?
Например, когда остался месяц до события, что-бы выскакивало сообщение каждый день, к примеру