1 (edited by Новичок 2023-08-19 19:34:18)

Topic: Помощь с проектом для Новичка

Добрый вечер!
Помогите пожалуйста мне с проектом, кому не сложно, буду очень благодарен.

- При добавлении новой записи в проект и выбора объекта необходимо что бы поле предыдущих показаний подтягивалось с базы.
- Отображение на главной форме последних показаний по трем объектам (Дата, Имя и текущее показание).

Post's attachments

Attachment icon Proj1.zip 386.78 kb, 67 downloads since 2023-08-19 

2 (edited by Новичок 2023-08-19 19:43:11)

Re: Помощь с проектом для Новичка

Не получается вставить изображение в описание.
Чет я не понимаю как это сделать

Post's attachments

Attachment icon 002.png 55.31 kb, 21 downloads since 2023-08-19 

Re: Помощь с проектом для Новичка

Новичок wrote:

Добрый вечер!

- При добавлении новой записи в проект и выбора объекта необходимо что бы поле предыдущих показаний подтягивалось с базы.
- Отображение на главной форме последних показаний по трем объектам (Дата, Имя и текущее показание).

Вроде так

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Label1.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=1');
  Form1.Label7.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=2');
  Form1.Label9.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=3');

  Form1.Label2.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=1');
  Form1.Label8.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=2');
  Form1.Label10.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=3');

  Form1.Edit1.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=1');
  Form1.Edit2.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=2');
  Form1.Edit3.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=3');
end;
Post's attachments

Attachment icon test.rar 57.12 kb, 54 downloads since 2023-08-19 

4 (edited by Новичок 2023-08-19 20:57:30)

Re: Помощь с проектом для Новичка

pavlenko.vladimir.v wrote:
Новичок wrote:

Добрый вечер!

- При добавлении новой записи в проект и выбора объекта необходимо что бы поле предыдущих показаний подтягивалось с базы.
- Отображение на главной форме последних показаний по трем объектам (Дата, Имя и текущее показание).

Вроде так

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Label1.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=1');
  Form1.Label7.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=2');
  Form1.Label9.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date)) FROM indication WHERE id_object=3');

  Form1.Label2.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=1');
  Form1.Label8.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=2');
  Form1.Label10.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=3');

  Form1.Edit1.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=1');
  Form1.Edit2.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=2');
  Form1.Edit3.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=3');
end;

Ага работает, спасибо за быстрый ответ! smile smile smile
При добавлении новой записи в базу данных можно сделать автозаполнение в Form2 - ПРЕДЫДУЩЕЕ ПОКАЗАНИЕ
При изменении записей не верно отображается поле ИМЯ

Видео по ссылке: cloud.mail.ru/public/yPEC/ahs9va9KG

5 (edited by Новичок 2023-08-19 20:40:07)

Re: Помощь с проектом для Новичка

У меня не получается изменить порядок даты в отображении
Как сделать дату в формате: 01.12.2023

Form1.Label1.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date,"%d.%m.%Y")) FROM indication WHERE id_object=1');
Post's attachments

Attachment icon 898.png 44.86 kb, 21 downloads since 2023-08-19 

Re: Помощь с проектом для Новичка

Новичок wrote:

У меня не получается изменить порядок даты в отображении
Как сделать дату в формате: 01.12.2023

Form1.Label1.Caption :=  SQLExecute('SELECT Date(MAX(Ind_date,"%d.%m.%Y")) FROM indication WHERE id_object=1');
procedure Form2_ComboBox1_OnChange (Sender: TObject);
begin
  if (Form2.dbAction = 'NewRecord') then
    if (Form2.ComboBox1.ItemIndex > -1) then
       Form2.Edit2.Text := SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object='+IntToStr(Form2.ComboBox1.ItemIndex));
end;

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Label1.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(MAX(Ind_date))) FROM indication WHERE id_object=1');
  Form1.Label7.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(MAX(Ind_date))) FROM indication WHERE id_object=2');
  Form1.Label9.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(MAX(Ind_date))) FROM indication WHERE id_object=3');

  Form1.Label2.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=1');
  Form1.Label8.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=2');
  Form1.Label10.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=3');

  Form1.Edit1.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=1');
  Form1.Edit2.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=2');
  Form1.Edit3.Text :=  SQLExecute('SELECT MAX(Ind_num2) FROM indication WHERE id_object=3');
end;
Post's attachments

Attachment icon test.rar 57.61 kb, 74 downloads since 2023-08-19 

Re: Помощь с проектом для Новичка

Новичок wrote:

Видео по ссылке: cloud.mail.ru/public/yPEC/ahs9va9KG

Вы таблицу по дате отфильтровали.. Скрипты пофиг фильтр, он всегда берет записи внесенные последними, а это в БД фиксируется по id записи.

8 (edited by Новичок 2023-08-19 21:14:00)

Re: Помощь с проектом для Новичка

pavlenko.vladimir.v wrote:
Новичок wrote:

Видео по ссылке: cloud.mail.ru/public/yPEC/ahs9va9KG

Вы таблицу по дате отфильтровали.. Скрипты пофиг фильтр, он всегда берет записи внесенные последними, а это в БД фиксируется по id записи.


Не получится менять имена? Я не понимаю.
Просто если изменить имя на цифры и латиницу все норм а кириллицей не все получается.

Или я что-то не догоняю...

9 (edited by pavlenko.vladimir.v 2023-08-19 21:23:48)

Re: Помощь с проектом для Новичка

Новичок wrote:

[

Не получится менять имена? Я не понимаю.
Просто если изменить имя на цифры и латиницу все норм а кириллицей не все получается.

Или я что-то не догоняю...

здесь только Сергей не совпадает, видимо глюк в БД, попробуйте создать новую
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9792&download=0

Post's attachments

Attachment icon 2023-08-20_02-13-31.png 270.69 kb, 22 downloads since 2023-08-19 

Re: Помощь с проектом для Новичка

pavlenko.vladimir.v wrote:
Новичок wrote:

[

Не получится менять имена? Я не понимаю.
Просто если изменить имя на цифры и латиницу все норм а кириллицей не все получается.

Или я что-то не догоняю...

здесь только Сергей не совпадает, видимо глюк в БД, попробуйте создать новую
http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=9792&download=0


Кажется заработала, пересоздал базу.

http://myvisualdatabase.com/forum/img/avatars/98415.jpg
Владимир

Спасибо огромное, Вы очень мне помогли! smile
https://san2.ru/smiles/yahoo.gif

11 (edited by Новичок 2023-08-19 22:26:56)

Re: Помощь с проектом для Новичка

Я кажется понял
После редактирования записи, имя отобразится по алфавиту (по возрастанию)


Если ввести данные по Объекту 1:

01.01.2000 Женя
02.01.2000 Алиса
03.01.2000 Вика
04.01.2000 Юля

И потом изменить последнюю запись Юля на Аню, то высветится максимальное по алфавиту значение Женя.


Подскажите.
Может тут что-то не правильно?

Form1.Label2.Caption :=  SQLExecute('SELECT MAX(Ind_name) FROM indication WHERE id_object=1')

Re: Помощь с проектом для Новичка

Новичок wrote:
SELECT MAX(Ind_name) FROM indication WHERE id_object=1

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

13 (edited by pavlenko.vladimir.v 2023-08-19 22:47:44)

Re: Помощь с проектом для Новичка

вот так

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Label1.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Label7.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Label9.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1');

  Form1.Label2.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Label8.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Label10.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1 ');

  Form1.Edit1.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Edit2.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Edit3.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1');
end;

Re: Помощь с проектом для Новичка

pavlenko.vladimir.v wrote:

вот так

procedure Form1_TableGrid1_OnChange (Sender: TObject);
begin
  Form1.Label1.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Label7.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Label9.Caption :=  SQLExecute('SELECT  STRFTIME("%d.%m.%Y",Date(Ind_date)) FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1');

  Form1.Label2.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Label8.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Label10.Caption :=  SQLExecute('SELECT Ind_name FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1 ');

  Form1.Edit1.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=1 ORDER BY id DESC LIMIT 1');
  Form1.Edit2.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=2 ORDER BY id DESC LIMIT 1');
  Form1.Edit3.Text :=  SQLExecute('SELECT Ind_num2 FROM indication WHERE id_object=3 ORDER BY id DESC LIMIT 1');
end;

Я изменил на Ваш новый код.
Это точно работает, даже с существующей базой данных.

Спасибо огромное smile