подскажите как программно определить какие строки выделены в таблице
» Вопросы по Ehlib
iogun
Наверное вопрос неправильно поставлен: Как программно пройти по выделенным в гриде строкам?
Используем в гриде мультиселект.
with grid.SelectedRows do
if Count > 0 then
begin
for x := 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
grid.Datasource.Dataset.Bookmark := Items[x];
// что-то делаем с выбранной строкой
end;
end;
end;
Наверное вопрос неправильно поставлен: Как программно пройти по выделенным в гриде строкам?
Используем в гриде мультиселект.
with grid.SelectedRows do
if Count > 0 then
begin
for x := 0 to Count - 1 do
begin
if IndexOf(Items[x]) > -1 then
begin
grid.Datasource.Dataset.Bookmark := Items[x];
// что-то делаем с выбранной строкой
end;
end;
end;
подскажите как очистить выделение в гриде не перемещая на него фокус
свойство dghClearSelection=false
свойство dghClearSelection=false
iogun
Grid1.SelectedRows.Clear;
Grid1.SelectedRows.Clear;
Grid.SelectedRows.Clear разве не подходит?
Добавлено:
Сорри, не видел сообщения RostY когда начал писать...
Добавлено:
Сорри, не видел сообщения RostY когда начал писать...
RostY
я так и делал, но этот метод работает тогда, когда фокус на этом гриде
я так и делал, но этот метод работает тогда, когда фокус на этом гриде
iogun
ну тогда можно запомнить на чем фокус, переместить фокус на грид, убрать выделение, а потом вернуть фокус где было.
ну тогда можно запомнить на чем фокус, переместить фокус на грид, убрать выделение, а потом вернуть фокус где было.
RostY
я так и сделал
Цитата:
я так и сделал
Цитата:
но этот метод работает тогда, когда фокус на этом гриде
помогите разобраться с проблемой...
есть
adoquery1>datasource1>grideh
(id,name,id_part)
adoquery2>datasource2
(id_part,name_part)
никак не могу в гриде на поле id_part сделать lookup поле из 2го запроса...
есть
adoquery1>datasource1>grideh
(id,name,id_part)
adoquery2>datasource2
(id_part,name_part)
никак не могу в гриде на поле id_part сделать lookup поле из 2го запроса...
1. вместо adoquery, наверное, лучше использовать adodatаset
Вариант 1
2. adodatаset1 - FieldsEditor - Add all fields
3. adodatаset1 - New Field - FieldType = Lookup и установить нужные значения
Вариант 2
в GridEh.Column[..] программно заполнить KeyList значениями id_part и PickList значениями name_part
Добавлено:
Цитата:
Вариант 1
2. adodatаset1 - FieldsEditor - Add all fields
3. adodatаset1 - New Field - FieldType = Lookup и установить нужные значения
Вариант 2
в GridEh.Column[..] программно заполнить KeyList значениями id_part и PickList значениями name_part
Добавлено:
Цитата:
datasource2здесь не нужен
RostY
спасибо! отработало. хотя никогда adodatаsetами не пользоватся - попробую сейчас
спасибо! отработало. хотя никогда adodatаsetами не пользоватся - попробую сейчас
Долго пользовался EhLib 3.6b , недавно попробовал версию 4.2.12. Столкнулся со следующей проблемой:
Есть DBGridEh соединенный с DataSet , в гриде имеется несколько столбцов, разных по цвету, есть однострочный футер, количество записей в таблице меньше, чем грид способен отобразить, т.е. между ячейками данных и ячейками футера есть свободное пространство. Так вот, в версии 3.6 эта область заливалась цветом соответствующей колонки и колонки разделялись линиями. В версиях 4.xx (пробовал несколько билдов - везде одинаково) эта область тупо заливается цветом фона грида и нет разделения столбцов, что жутко неудобно, если в таблице одна запись, таблица на весь экран, а столбцов много - визуально быстро сопоставить, какая ячейка футера какому столбцу принадлежит проблематично.
Работаю под C++Builder 5, пробовал под C++Builder 6 - то же самое. На Дэльфях не пробовал, но думаю будет то же самое.
Есть ли у кого соображения по этому поводу?
Есть DBGridEh соединенный с DataSet , в гриде имеется несколько столбцов, разных по цвету, есть однострочный футер, количество записей в таблице меньше, чем грид способен отобразить, т.е. между ячейками данных и ячейками футера есть свободное пространство. Так вот, в версии 3.6 эта область заливалась цветом соответствующей колонки и колонки разделялись линиями. В версиях 4.xx (пробовал несколько билдов - везде одинаково) эта область тупо заливается цветом фона грида и нет разделения столбцов, что жутко неудобно, если в таблице одна запись, таблица на весь экран, а столбцов много - визуально быстро сопоставить, какая ячейка футера какому столбцу принадлежит проблематично.
Работаю под C++Builder 5, пробовал под C++Builder 6 - то же самое. На Дэльфях не пробовал, но думаю будет то же самое.
Есть ли у кого соображения по этому поводу?
andy2002ua
Пока у меня только одно соображение: такой фичи больше нет... Хотя на самом деле было удобно. Может просто не нашли как теперь её включить.
Пока у меня только одно соображение: такой фичи больше нет... Хотя на самом деле было удобно. Может просто не нашли как теперь её включить.
Пытаюсь собрать дерево через свой любимый ado...
adoquery>datasetdriver>memtable>datasource>grideh
у memtable прописал treelist - не собирает дерево, хоть тресни!
и ключевое поле в datasetdriver выставлял, и передергивал treelist после открытия, и иные цепочки (типа adodataset) пробовал - ничего не выходит
при открытиии таблицы из absolute database дерево строит... что может быть?
добавлено:
извиняюсь за глупый вопрос - разобрался...
все дело в ноборе данных - нет родителя-нет и дерева
adoquery>datasetdriver>memtable>datasource>grideh
у memtable прописал treelist - не собирает дерево, хоть тресни!
и ключевое поле в datasetdriver выставлял, и передергивал treelist после открытия, и иные цепочки (типа adodataset) пробовал - ничего не выходит
при открытиии таблицы из absolute database дерево строит... что может быть?
добавлено:
извиняюсь за глупый вопрос - разобрался...
все дело в ноборе данных - нет родителя-нет и дерева
Подскажите пожалуйста, как определить что TDBLookupComboboxEh в настоящий момент отображает DropDownBox?
Точно не помню, билдер на работе стоит, но вроде можно перехватывать события OnDropDown и OnCloseUp и самому устанавливать флажок.
andy2002ua
Цитата:
Ну, да, так можно, только не совсем удобно. Выкрутился добавлением public свойства в классе TCustomDBEditEh в модуле DBCtrlsEh.pas
Код:
property DroppedDown: boolean read FDroppedDown;
Цитата:
вроде можно перехватывать события OnDropDown и OnCloseUp и самому устанавливать флажок.
Ну, да, так можно, только не совсем удобно. Выкрутился добавлением public свойства в классе TCustomDBEditEh в модуле DBCtrlsEh.pas
Код:
property DroppedDown: boolean read FDroppedDown;
В DBGridEh есть возможность экспорта через класс TDBGridEhExportAsXLS в Excel.
Однако есть несколько траблов:
- не экспортируется многострочные заголовки в том виде, как в Grid-e
- поля типа Дата экспортируется как строка (дальше в формулах не работает)
Кто-нить лечил подобные симптомы или знает как их можно побороть?
Однако есть несколько траблов:
- не экспортируется многострочные заголовки в том виде, как в Grid-e
- поля типа Дата экспортируется как строка (дальше в формулах не работает)
Кто-нить лечил подобные симптомы или знает как их можно побороть?
Не думал, что столкнусь с такой траблой...
Может кто подскажет, как организовать экспорт данных в .dbf?
Буду очень благодарен.
Может кто подскажет, как организовать экспорт данных в .dbf?
Буду очень благодарен.
Rounder2000
Это скорее вопрос не по теме
Есть множество вариантов
через BDE - плохой вариант, но зачастую нормально
самому написать класс, благо доки по формату DBF в нете более чем
либо же юзать какую нить либу
из бесплатных TDBF
Это скорее вопрос не по теме
Есть множество вариантов
через BDE - плохой вариант, но зачастую нормально
самому написать класс, благо доки по формату DBF в нете более чем
либо же юзать какую нить либу
из бесплатных TDBF
хочу организовать lookup поле и список доступных для него значений, но список должен состоять из нескольких колонок, одна из которых является ключом, в демке видел есть такое, но там все сделано ч.з. MemTableEh и SQLDriverEh ..., может есть др. способ? А сесли нет подскажите как работать с этими компонентами для решения такой задачи?
Добрый день.
Вот такая проблема.
Пытаюсь установить EhlLib для BDS 2006.
Перехожу в папку BDS2006.Vcl
и собираю ehlib2006.dpk
Он собирается нормально.
Потом пытаюсь собрать EhLibDataDrivers100.dpk и получаю следующую ошибку.
[Pascal Fatal Error] EhLibDataDrivers100.dpk(43): F2051 Unit IBXDataDriverEh was compiled with a different version of IBStoredProc.TIBStoredProc
Как от нее избавится?
Вот такая проблема.
Пытаюсь установить EhlLib для BDS 2006.
Перехожу в папку BDS2006.Vcl
и собираю ehlib2006.dpk
Он собирается нормально.
Потом пытаюсь собрать EhLibDataDrivers100.dpk и получаю следующую ошибку.
[Pascal Fatal Error] EhLibDataDrivers100.dpk(43): F2051 Unit IBXDataDriverEh was compiled with a different version of IBStoredProc.TIBStoredProc
Как от нее избавится?
Как убрать с заголовков (Title) колонок EhGrid контекстное меню (PopUp)?
Пробовал так :
procedure TFormMain.GridTitleClick(Column: TColumnEh);
begin
Grid.PopupMenu:=nil;
end;
Но оно срабатывает только тогда, когда сначала нажать на заголовках ЛЕВОЙ кнопкой миши.
Тоесть нужено обработать событие GridTitleRightClick.
P.S. Задача - на строчках грида PopUp нужен, а в заголовках - нет.
Пробовал так :
procedure TFormMain.GridTitleClick(Column: TColumnEh);
begin
Grid.PopupMenu:=nil;
end;
Но оно срабатывает только тогда, когда сначала нажать на заголовках ЛЕВОЙ кнопкой миши.
Тоесть нужено обработать событие GridTitleRightClick.
P.S. Задача - на строчках грида PopUp нужен, а в заголовках - нет.
попробуй вручную меню пупупить
Господа! У мен в проекте TDBGridEh создается динамически, для каждой вкладки, датасет для всех гридов один, при переходе по вкладкам меняется только его параметры. Так вот, вермя от времени начинает сходит сума SumListProducer сыплет AV - путается в евентах... проблему решил путем ручного суммирования. Может есть варианты решения?
SumList глючит при уничтожении. Когда-то этот вопрос проскакивал на yahoo-форуме.
Цитата:
но так и не помню был ли ответ как исправить
Цитата:
После закрытие моей программы постоянно появляется окно 'Ошибка приложения': Исключительная ситуация EAccessViolation в модуле xxx.exe по адресу 000сс63с. Нарушение доступа по адресу 004сс63с в модуле 'xxx.exe'. Запись по адресу 00c0aaa8.
Ошибка находится в TDBSumListProducer.ReturnEvents файла
Ehlib 4.0\DBSumLst.pas.
Указывает на строку 319: 'FDataSet.AfterEdit := OldAfterEdit;'
но так и не помню был ли ответ как исправить
RostY попробуй вручную меню пупупить
А можно поподробней?
А можно поподробней?
Цитата:
А можно поподробней?
в событии мыши
PopupMenu.Popup(mousePos.CursorPos.x,mousePos.CursorPos.y);
Добрый день.
Возник вопросик. Компонент TDBGridEh из пакета EhLib. Необходимо для DBGridEh.Columns[1].Title.Caption записать довольно длинную строку в несолько строк и чтобы она отображалась вертикально. С вертикальностью все понятно, а вот записать одну длинную строку несколькими короткими не могу. Запись в Caption строки вида '123'+#13+#10+'qwe' не помогает. Как это можно сделать ?
Возник вопросик. Компонент TDBGridEh из пакета EhLib. Необходимо для DBGridEh.Columns[1].Title.Caption записать довольно длинную строку в несолько строк и чтобы она отображалась вертикально. С вертикальностью все понятно, а вот записать одну длинную строку несколькими короткими не могу. Запись в Caption строки вида '123'+#13+#10+'qwe' не помогает. Как это можно сделать ?
maxxsnake
к сожалению под рукой нет Дельфи... попробуйте поставить в caption, где надо перевод строки символ | или символы ||
к сожалению под рукой нет Дельфи... попробуйте поставить в caption, где надо перевод строки символ | или символы ||
Страницы: 1234567891011121314151617181920212223
Предыдущая тема: Конвертация char в ASCII код; c
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.