1 (edited by datrav 2014-08-22 13:27:02)

Topic: Решение проблемы отображения информации по клику

Доброго времени суток. Есть маленькая загвоздка. Суть в чем:

Есть таблица,к примеру с информацией о клиентах, и рядом с таблицей есть панелька на которую вынесены несколько editов. Вопрос: как так сделать, чтобы при клике на одну из записей таблицы, значения зразу же отражались в editах? надеюсь объяснил ситуацию доступно. Заранее спасибо.

Re: Решение проблемы отображения информации по клику

Приветствую,


Для этого придется воспользоваться скриптом, и это можно реализовать двумя способами, с помощью SQL запроса получать данные из базы, либо получать необходимый текст непосредственно из компонента TableGrid, для этого необходимо создать событие OnCellClick у компонента TableGrid в который выводится список клиентов


пример (второй способ закомментирован):

procedure Form1_GridEmployees_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
     //First method
     Form1.Edit1.Text := SQLExecute('SELECT lastname FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID));
     Form1.Edit2.Text := SQLExecute('SELECT firstname FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID));

     //Second method
     //Form1.Edit1.Text := Form1.GridEmployees.Cells[0, ARow];
     //Form1.Edit2.Text :=Form1.GridEmployees.Cells[1, ARow];
end;

К сообщение прилагаю проект с данной реализацией

Post's attachments

Attachment icon From Table to Edit.zip 1.02 mb, 533 downloads since 2014-08-22 

Dmitry.

Re: Решение проблемы отображения информации по клику

Спасибо огромное) очень помогло)

Re: Решение проблемы отображения информации по клику

Вопрос по этой же теме. Как  передавать данные формата дата\время?

Пробовал по аналогии
Form1.DateTimePicker1.Datetime:= SQLExecute('SELECT date FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID));

но ругается на несовпадение типов.

Re: Решение проблемы отображения информации по клику

последние две строки отвечают за работу с датой

procedure Form1_GridEmployees_OnCellClick (Sender: string; ACol, ARow: Integer);
var
   s: string;
begin
     //First method
     Form1.Edit1.Text := SQLExecute('SELECT lastname FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID));
     Form1.Edit2.Text := SQLExecute('SELECT firstname FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID));

     s := SQLExecute('SELECT dateofbirth FROM employees WHERE id = ' + IntToStr(Form1.GridEmployees.dbItemID)); 
     if s <> '' then Form1.DateTimePicker1.Date := SQLDateTimeToDateTime(s) else Form1.DateTimePicker1.Checked := False;
end;

в данном примере используется функция SQLDateTimeToDateTime, которая появилась только в бета версии 1.43
скачать ее можете здесь
https://www.dropbox.com/s/4qdlk4pouldrz … 201.43.zip

Dmitry.

Re: Решение проблемы отображения информации по клику

Еще раз спасибо)

Re: Решение проблемы отображения информации по клику

А как помимо текста и даты вывести изображение?

Re: Решение проблемы отображения информации по клику

Niema
Скачайте данный проект с примером, как это сделать
http://myvisualdatabase.com/forum/misc. … download=1

Dmitry.

Re: Решение проблемы отображения информации по клику

Спасибо)