Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Использование DevExpress (часть 4)

Автор: projection120
Дата сообщения: 29.11.2010 10:36

Цитата:
projection120
Может так подойдет?
DropDownListStyle=lsEditFixedList

так подойдет, и это уже сделано, но при этом данные в таблицу улиц не сохраняются, а в lookupcomboboxе появляется пустая трока при переходе на следующее поле.
Автор: tanaseduard
Дата сообщения: 29.11.2010 10:51
projection120

Хм. А как привязан Lookup. Параметры плиз. KeyFieldNames и ListFieldNames разные?
Если надо прямо в гриде добавлять новые данные для справочника то юзайте PopupEdit, вяжите туда GroupBox с листом и кнопками добавить новую запись, там же обрабатываете.


Добавлено:
vcrank
Чтоб в DataGrid?
Автор: vcrank
Дата сообщения: 29.11.2010 10:55

Цитата:
Чтоб в DataGrid?

Извиняюсь, но не понял вопроса
Автор: tanaseduard
Дата сообщения: 29.11.2010 10:58
vcrank
Тебе не надо отображать сетку в мастер гриде или в дочернем?
Автор: projection120
Дата сообщения: 29.11.2010 11:31

Цитата:
projection120

Хм. А как привязан Lookup. Параметры плиз. KeyFieldNames и ListFieldNames разные?
Если надо прямо в гриде добавлять новые данные для справочника то юзайте PopupEdit, вяжите туда GroupBox с листом и кнопками добавить новую запись, там же обрабатываете.


лукап он стоит в properties KeyFieldNames там id из таблицы улиц ListFieldNames там name из таблицы улиц.

Lookup нравится тем что там вываливаются все данные и сортировка при вводе в него работает. Хотелось бы после ввода очередной буквы в лукап узнавать количество отсортированных вариантов и если там вариантов нет, то выдавать уже свое окошко для добавления. но вот как узнать сколько осталось там отсортированно не знаю..
Автор: tanaseduard
Дата сообщения: 29.11.2010 11:36
projection120

Посмотри в сторону PopupEdit.
Там ты можешь неплохо пошаманить,+ привязать целый набор редактора к полю.
Автор: vcrank
Дата сообщения: 29.11.2010 12:21

Цитата:
Тебе не надо отображать сетку в мастер гриде или в дочернем?

Мне надо отображать только одну (активную) дочернюю сетку
Автор: tanaseduard
Дата сообщения: 29.11.2010 12:58
vcrank

Чтоб был открыт только 1 уровень всегда?
Если так то в Мастере:
DataController.DataModeController.GridMode=True
Автор: vcrank
Дата сообщения: 29.11.2010 13:14

Цитата:
DataController.DataModeController.GridMode=True

Спасибо. То, что и требовалось
Автор: tanaseduard
Дата сообщения: 29.11.2010 13:23
vcrank
Всегда пожалуйста.
Автор: marser
Дата сообщения: 29.11.2010 13:25
projection120

Цитата:
Хотелось бы после ввода очередной буквы в лукап узнавать количество отсортированных вариантов и если там вариантов нет, то выдавать уже свое окошко для добавления. но вот как узнать сколько осталось там отсортированно не знаю..

Узнать несложно, только на какое событие ты эту узнавалку повесишь. Рекомендую добавить в LookupComboBox еще одну кнопку (Properties.Buttons.Add) и вызывать
"свое окошко для добавления".
Автор: tanaseduard
Дата сообщения: 29.11.2010 13:41
marser

Кстати вариант. Вот только повесить тогда стиль чтоб список не был редактируемый, если надо добавить то пусть жмет на кнопку а там уже диалог вороти.
Автор: TechnoDreamer
Дата сообщения: 29.11.2010 18:12
projection120

Код:
OnNewLookupDisplayText

with DataSet do
begin
Append;
FieldValues['Name'] := AText;
Post;
end;
Автор: tanaseduard
Дата сообщения: 30.11.2010 08:40
TechnoDreamer

Здесь не учтен ключ "ID". А если он генерируется на тороне БД после post?
Тогда как быть?
Автор: kirdub
Дата сообщения: 30.11.2010 09:37
Добрый день.
Есть cxGrid, есть колонка у которого фильтр.
Выпадающий список довольно большой. необходимо отмечать все кроме одной -двух записей.
Отмечать все подряд долго, при нажатие все происходит сброс всех галочек. Не подскажите как выйти из этой ситуации?
Автор: tanaseduard
Дата сообщения: 30.11.2010 09:45
kirdub
Если всего несколько записей то проще нажать построить свой фильтр и там указать что не использовать.
Автор: kirdub
Дата сообщения: 30.11.2010 10:06
А нельзя как нибудь проставить все галочки в фильтре, чтобы можно было потом снять которые не надо?
Автор: Czechoslovak
Дата сообщения: 30.11.2010 11:51
kirdub
Можно добавить в список свой пункт меню и обрабатывать в событии OnUserFilter
Автор: vcrank
Дата сообщения: 30.11.2010 12:59

Цитата:
Чтоб был открыт только 1 уровень всегда?
Если так то в Мастере:
DataController.DataModeController.GridMode=True

Обнаружил, что в таком режиме не работает сортировка по столбцам в главной таблице
Автор: TechnoDreamer
Дата сообщения: 30.11.2010 13:05
tanaseduard, и? В чем проблема? У меня как раз после пост он и генерится на стороне БД...
Автор: X11
Дата сообщения: 30.11.2010 13:26

Цитата:
Обнаружил, что в таком режиме не работает сортировка по столбцам в главной таблице

Ну да, грид ведь пока не получит абсолютно все записи таблицы, не будет знать как правильно отсортировать. А в режиме GridMode грид получает записи порциями.
Т.е. сортировать, группировать и фильтровать нужно в запросе до того, как данные попадут в грид.
Автор: tanaseduard
Дата сообщения: 30.11.2010 13:43
vcrank
Сортируй на стороне БД.

Добавлено:
TechnoDreamer

Проблема например может возникнуть когда юзаеться sequence, который проставляет значение ID в тригере, соответственно тебе нужно будет обновить справочник для Lookup что получить ID-Name.
На момент post и commit твоя программа может не знать о присвоенном коде.
Все зависит от структуры БД.
Автор: marser
Дата сообщения: 30.11.2010 14:16
vcrank

Цитата:
Цитата:Чтоб был открыт только 1 уровень всегда?
Если так то в Мастере:
DataController.DataModeController.GridMode=True

Обнаружил, что в таком режиме не работает сортировка по столбцам в главной таблице

DataController.DataModeController.DetailInSQLMode := True;
DataController.DataModeController.GridMode := False;
и , соответственно, запрос должен быть для режима DataController.DataModeController.DetailInSQLMode := True
Автор: tanaseduard
Дата сообщения: 30.11.2010 15:03
marser
Можно и так но тогда будет долбать базюку при каждом чихе, влючая есил пользователь снова развернет уровень, то пройдет новый запрос к базе.
Автор: sobolenok
Дата сообщения: 01.12.2010 07:39
Добрый день всем! Возник вопрос по фильтрации cxDBPivotGrid:



необходимо отключить встроенную выпадающую фильтрацию (это понятно как сделать) и фильтровать извне по колонкам пайвот грида.
подскажите через какое свойство можно отфильтровать извне колонки. то есть нужен доступ к колонке пивот грида через некую коллекцию?
спасибо!
Автор: Czechoslovak
Дата сообщения: 01.12.2010 09:43
sobolenok
Имеется свойство Filter
В зависимости от типа Filter.FilterType := ftIncluded or ftExcluded;
Включаются или исключаются значения который имеются в наборе
Filter.Values
Значения добавляются или удаляются с помощью методов Add and Remove
Filter.Values.Add()
Filter.Values.Remove()
Автор: sobolenok
Дата сообщения: 01.12.2010 10:30
Czechoslovak

спасибо, все получилось!
Автор: vladman
Дата сообщения: 01.12.2010 14:11
projection120

Цитата:
необходимо чтобы при отсутствии необходимых данных пользователю предлагалось добавить свой варин

Посмотрите в сторону события TcxCustomTextEditProperties.OnNewLookupDisplayText

Добавлено:
vcrank

Цитата:
Можно ли настроить грид так, что бы выделенная сетка не отображалась? (т.е. была видна только одна дочерняя сетка)

Можно. В событии onDetailExpanding вашего грида выполните

Код: begin
if FRowAboutToBeExpanded then Exit;
ADataController.CollapseDetails;
FRowAboutToBeExpanded := true;
try
ADataController.ChangeDetailExpanding(ARecordIndex, True);
finally
FRowAboutToBeExpanded := false;
end;
end;
Автор: tanaseduard
Дата сообщения: 02.12.2010 10:08
Как в DBTreeList сделать быстрый поиск по набираемым символам?
Можно ли добавить в него же строку фильтрации как Grid'e?
Автор: marser
Дата сообщения: 02.12.2010 13:41
tanaseduard

Цитата:
Как в DBTreeList сделать быстрый поиск по набираемым символам?

cxDBTreeList.FindNodeByText

Цитата:
Можно ли добавить в него же строку фильтрации как Grid'e?

Нет

Добавлено
FindNodeByText понимает "%", например:

Код: ANode := FindNodeByText(AText + '%', AItemIndex, AStartNode, False, True, False, tlfmLike, nil, False);
if ANode <> nil then
begin
ANode.MakeVisible;
ANode.Focused := True;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.