Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.02;
Скачать: CL | DM;

Вниз

Определение выделенной строки в DBGrid   Найти похожие ветки 

 
max1991   (2007-07-20 16:12) [0]

Уважаемые мастера, подскажите пожалуйста, как можно опеределить какая строка в сетке выделена


 
stone ©   (2007-07-20 16:18) [1]

а зачем?


 
Ega23 ©   (2007-07-20 16:24) [2]

Это та строка, напротив которой чёрный треугольничек находится.


 
Desdechado ©   (2007-07-20 16:30) [3]

А если несколько, то SelectedRows


 
max1991   (2007-07-20 16:31) [4]

Идея такая, есть SQL-сервер, everest(бывшая AIDA), everest шлёт на сервер отчёты о компьютерах(аппаратные и программные данные), на сервере три таблицы, две из них собственно с данными: в первой имя компьютера, дата и время выполнения отчета и ключевое поле ID, вторая таблица-это все остальнае данные, связь между ними ID->ReportID.
Хотелось бы сделать так, чтобы при выделении в первой таблице опр. строки, отражались записиподчинённой таблицы, но загвоздка в том, что во второй таблице оч. много лишних данных и хотелось бы организовать фильтрацию в ней, но так как в подчиненной таблице filter не работает, скорее всего придётся создавать sql-запросы, содержащие фильтры.
А для всего этого мне нужно определить значение ID выделенной строки.


 
max1991   (2007-07-20 16:32) [5]

Multiselect-а нет, выделяется только одна строка.


 
max1991   (2007-07-20 16:35) [6]

понятно, что та, напротив которй треугольник, но хотелось бы, чтоб вообще без него, неотображался вовсе этот столбец.Как столбец отключить - нашел, а как определить, какая срока в данный момент выделена, не знаю :(.


 
Ega23 ©   (2007-07-20 16:38) [7]

Это называется мастер-детальная связь.
Решается элементарно с указанием подчинённому НД в качестве DataSource - DataSource главного НД.


 
stone ©   (2007-07-20 16:40) [8]

Так тебе в текущая позиция в датасете нужна, грид тут ни при чем.
Не понятно при чем тут фильтрация в дочерних таблицах, когда нужна простая связь Master-Detail на уровне датасетов.


 
Stanislav ©   (2007-07-20 16:50) [9]

Читай про параметрические запросы и связь Master-Detail.


 
max1991   (2007-07-20 17:02) [10]

cсвязь между таблицами есть, если в первой таблице выбрана какая-то строка, то во второй отображаются все данный из второй таблицы, связанные именно с этой записью, проблема в том, что нужно во второй таблице выводить не все строки, а только некоторые, именно строки, т.к. сам everest сваливает на сервер во вторю таблицу всё(параметры железа и параметры программ).
Так вот, есть 2 DBGrid, 2 DataSource, 2 ADOTAble, связанные между собой, образую две тройки. Первая тройка отвечает за загрузку с сервера и отображение первой таблицы, где ключевым явл. поле ID; Вторая тройка - за загрузку связанных с первой таблицей(поле ID) значений  из второй, всё это работает, но в ADOTable подчинённой таблицы нельзя использовать св-во filtered, фильтры не работают, при компиляции вываливается ошибка, а нужно чтобы отображались связанные с первой таблицей только определённые строки, а не все связанные с ней.


 
stone ©   (2007-07-20 17:06) [11]


> но в ADOTable подчинённой таблицы нельзя использовать св-
> во filtered, фильтры не работают

Работают. Но нужно использовать не свойство Filter, а событие OnFilterRecord


 
Stanislav ©   (2007-07-20 17:07) [12]

ниче непонял.


 
max1991   (2007-07-20 17:13) [13]

> stone ©   (20.07.07 17:06) [11]
>
> > но в ADOTable подчинённой таблицы нельзя использовать
> св-
> > во filtered, фильтры не работают
>
> Работают. Но нужно использовать не свойство Filter, а событие
> OnFilterRecord

А можно небольшой пример с использованием этого события или пояснение, т.к как использовать св-во filter понятно: ADOTable2.Filter:="RUser=""ivanov""", а как применить событие-несовсем.


 
max1991   (2007-07-20 17:15) [14]

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


 
stone ©   (2007-07-20 17:20) [15]

в справке пример есть
procedure TForm1.DataSetFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
 Accept := DataSet["AmountOfPurchase"] > StrToInt(Edit1.Text);
end;


 
max1991   (2007-07-20 17:29) [16]

огромное спасибо за помощь, всё работает!



Страницы: 1 вся ветка

Текущий архив: 2007.12.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
15-1193738004
infom
2007-10-30 12:53
2007.12.02
bat файл компиляции проекта


15-1193901454
Игорь Шевченко
2007-11-01 10:17
2007.12.02
Кстати, о расчетах по кредитным картам :)


1-1189687888
Андрей Пл
2007-09-13 16:51
2007.12.02
TDBChart есть ли у компонента метод наподобие Print Preview?


15-1194281177
Slider007
2007-11-05 19:46
2007.12.02
С днем рождения ! 5 ноября 2007 понедельник


15-1193771493
ProgRAMmer Dimonych
2007-10-30 22:11
2007.12.02
Подкиньте, плз, идейку