Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.12.02;
Скачать: [xml.tar.bz2];

Вниз

Определение выделенной строки в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.048 c
8-1170238744
Alek_1
2007-01-31 13:19
2007.12.02
делаем видео происходящего на экране


2-1194647842
artkil
2007-11-10 01:37
2007.12.02
Соединение с Internet


4-1179517041
YARA
2007-05-18 23:37
2007.12.02
Рабочий стол


15-1193855197
xayam
2007-10-31 21:26
2007.12.02
Кто-нибудь пользовался в mysql 5 fulltext ом?


2-1194412928
DevilDevil
2007-11-07 08:22
2007.12.02
Как правильно блокировать/разблокировать поток?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский