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

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

Автор: fortezza
Дата сообщения: 03.05.2011 14:31
неа, это текст для строчки фильтра (
Автор: Cryogen2003
Дата сообщения: 03.05.2011 14:33
fortezza
(((( тогда только инишкой или переопределением константы
Автор: marser
Дата сообщения: 03.05.2011 14:49
fortezza

Цитата:
Cryogen2003
или переопределением константы

Код: cxSetResourceString(@scxGridGroupByBoxCaption, 'Для группировки перенесите сюда заголовок колонки')
Автор: fortezza
Дата сообщения: 03.05.2011 15:40
ок. ещё такой момент. у меня есть фильтрация посредствам FilterRow. Когда задаю фильтр, там где поле строкового типа в конце автоматом добавляется знак '%', как сделать это и для начала строки? в настройках не нашла, если, например, подставлять самой этот знак то в каком событии и как добраться до текста фильтра этой колонки?
Автор: Cryogen2003
Дата сообщения: 03.05.2011 15:45
fortezza
присоединяюсь к вопросу. Тоже интересует, как можно добраться до фильтра по этой колонке. Требуется чтоб и знак процента проставлялся с обоих сторон текста, да еще чтоб в FilterText попадал текст типа: upper(columnname) like upper('%какой-то текст%')
Автор: Nejdana
Дата сообщения: 04.05.2011 06:19

Цитата:
Я Вам уже сказал, в чем проблема возможно у вас. Вам надо попробовать поставить smartrefresh и указать KeyValue в DataController - если этого не сделать, то любое движение по dataset у вас заставляет заново обновлять весь датасет в памяти. При 100 записях не заметно, при 10000 записях - заметно по полной программе.


т е KeyValue получается в каждом случае - это тот столбец, с которым производятся действия?
у меня основное время занимает коммит ораклянский судя по трейсеру, все остальное мгновенно.
а коммит комитит каждую из 7 тыщ записей по отдельности.
Автор: marser
Дата сообщения: 04.05.2011 07:19
Nejdana
Может быть хватит флудить. DevExpress тут причем?
Автор: Cryogen2003
Дата сообщения: 04.05.2011 08:12
Nejdana
понятно, значит проблема не в devExpress, а в самом коде коммита. А поводу keyvalue (точнее KeyFieldNames) - туда ставить надо любое уникальное поле, если есть.
А так, зайди просто в деббаг и посмотри где конкретно тормозит. Я в свое время тоже никак не мог понять, почему на locate в dataset такие дикие тормоза, а потом оказалось, что вызывается datachanged, которое в девках ловиться так же и дополнительно обрабатывается. И если не стояло smartrefresh и KeyFieldNames, запускалось полное обновление внутреннего датасета в гриде.
Автор: NatNiM
Дата сообщения: 04.05.2011 08:48
Мой вопрос остается открытым. Еще не могу определить. на какое событие "повесить" обработку выпадающего списка или же написать все в методе, а метод вызвать при загрузке форме?
Пожалуйста, подскажите.
Автор: marser
Дата сообщения: 04.05.2011 09:10
NatNiM

Цитата:
Еще не могу определить. на какое событие "повесить" обработку выпадающего списка или же написать все в методе, а метод вызвать при загрузке форме?

Russian please!!! А если косить под ясновидящего, то <OurColumn>.Properties.OnInitPopup

Добавлено:
Cryogen2003

Цитата:
А так, зайди просто в деббаг и посмотри где конкретно тормозит

А что тут непонятного? Работа с клиенит-серверным приложением, как с файл-серверным.
Автор: linker_2009
Дата сообщения: 04.05.2011 09:28
Я так понял NatNiM нужен аналог TcxLookupComboBox в VisualStudio.
NatNiM http://tv.devexpress.com/#XtraGridRepository;XtraGrid+Suite.product;1
Автор: NatNiM
Дата сообщения: 04.05.2011 09:50

Цитата:
Russian please!!! А если косить под ясновидящего


не надо косить, я выше давала описание проблема, просто напомнила, что она осталась не решенной.
В компоненте DevExpress.XtraGrid.GridControl пробую использовать LookUpEdit, который мне необходим для отображения выпадающего списка (этот список - результат запроса), но здесь столкнулась с тем, что полученные данные из запроса не могу отобразить в выпадающем списке. Источник данных подключила.
Может быть, подскажете, как это можно сделать?
Автор: marser
Дата сообщения: 04.05.2011 10:04
NatNiM

Цитата:
X11
И следовало бы изучить вначале компоненты, их свойства, а потом уже начинать с ними работать. Посмотрите примеры, почитатй в справке общую концепцию, почитайте в рунете статьи по DevExpress. Просто Вы забиваете такими простейшими вопросами форум. А ведь на форум подписано очень много людей. Представьте, сколько это трафика из за Вашей лени.
Автор: fortezza
Дата сообщения: 04.05.2011 16:47
Cryogen2003, пока делаю так но не айс..


Код:
procedure TAddVetForm.cxGGWHTVEditChanged(Sender: TcxCustomGridTableView;
AItem: TcxCustomGridTableItem);
var i : integer;
begin
if TcxGridDBTableView(TcxGridDBColumn(AItem).GridView).ViewData.FilterRow.Focused then
with TcxGridDBColumn(AItem).DataBinding do
if (ValueType = 'String') then
if Length(VarToStr(TcxGridDBColumn(AItem).EditValue)) > 0 then
if VarToStr(TcxGridDBColumn(AItem).EditValue)[1] <> Filter.PercentWildcard then
begin
TcxGridDBColumn(AItem).EditValue := Filter.PercentWildcard +
TcxGridDBColumn(AItem).EditValue;

i := Length(VarToStr(TcxGridDBColumn(AItem).EditValue));
TcxCustomTextEdit(TcxGridDBTableView(TcxGridDBColumn(AItem).GridView).Controller
.EditingController.Edit).SetSelection(i, i);
end;
end;
Автор: Cryogen2003
Дата сообщения: 04.05.2011 16:52
fortezza
да уж, не айс, но на безрыбье и .....
Автор: frx_user
Дата сообщения: 05.05.2011 12:51
Добрый день!

Мне нужна помощь с компонентом csTreeList.
Проблема возникает когда компилируешь Release версию программы и для этого отключаешь опцию "Build with runtime packages" в настройках проекта.
При открытии какой-нибудь формы, содержащей CxTreeList возникает ошибка - "Access violation ... ". С остальными компонентами DevExpress подобных проблем не наблюдалось.

Буду благодарен за помощь!
Автор: mansurnosirov
Дата сообщения: 06.05.2011 08:34
Доброго времени суток!

Помогите пожалуйста чайнику. Хочу установить DevExpress v50 на Delphi 2010 но он ругается на то что не может найти dxCoreD14.bpl и что повторная установка может исправить проблему но это повторяется каждый раз. В library Path путь указан. С правами доступа все в порядке. Поскажите в чем дело.

Заранее спосибо
Автор: IgorLife
Дата сообщения: 07.05.2011 18:07
Вопрос:
Как в LookUpEdit подключенного к базе, при выборке данных запретить чтоб он дописывал или добавлял окончание строки?
Например я ввожу Петров - а в базе есть Петрова, соответственно добавляется буква а в конец моего слова и при нажатии на Ентер это слово фиксируется . А мне этого не надо. Нужно чтоб он не добавлял последние подходящие слова . Как это реализовать?
Автор: TechnoDreamer
Дата сообщения: 07.05.2011 20:35
IgorLife, новые значения в базу добавляете в событии OnNewLookupDisplayText
Автор: IgorLife
Дата сообщения: 07.05.2011 22:18
Я наверное не так объяснил, я не про запись в базу...

Например в поле ввожу Петр
соответственно открывается список с похожими первыми словами :
Петров
Петрова
Петрович
Петровная
...
ну и так далее
После нажатия на Enter к слову Петр добавиться первая строка из списка , точнее последние буквы ... ов.
А мне надо чтоб не было добавлений. а оставалось в поле ввода только то что я ввел.


Автор: TechnoDreamer
Дата сообщения: 07.05.2011 23:45
По "петр" по идее должно "петр" и выдать первым. Или у вас "петр" в базе отсутствует?
Автор: IgorLife
Дата сообщения: 08.05.2011 00:08
Да, отсутствует. Как раз и запнулся я с такой ситуацией. LookUpEdit пытается подставить окончания к короткому слову.
Автор: V1s1ter
Дата сообщения: 08.05.2011 00:34
IgorLife
Есть два варианта построения связей таблица-справочник.
первый вариант
Справочник имеет два поля ключ и наисенование. Таблица имет поле ключ, а наименование берет из справочника.
Второй вариант
Справочник имеет одно поле ключ и наисенование совпвдвют. Таблица имет поле ключ-оноже-и-наименование.

Алгоритм для первого варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него. Затем получить созданый ключ и уже его записать в основную таблицую.

Алгоритм для второго варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него и добавить в таблицу.

Подводный камень в интерфейсе:
Вы набрали "Петров", в справочнике его нет и там предлагается активая позиция "Петрова". Как програме понять что по нажатию Enter Вы хотите вести именно "Перов" или Вы всеже хотите ввести предлагаемую "Петрову"?
То есть Вам нужно предоставить два различных механизма отправки команд на редактирование. Как пример по Enter всегда пишем то что в поле, а из справосника выбираем всегда только мышью. Тогда процедуру по первому или второму алгоритму вешаем на обработчик клавиатуры (типа события OnKeyPress)? а для списка обработку клавишь запрещаем. Но я бы сделал по Ctrl+Enter - то что набрано, а по Enter выбраную позицию из справочника.
Автор: TechnoDreamer
Дата сообщения: 08.05.2011 00:36
Ну так а как ты хочешь выбрать в БД запись которая отсутствует? Видимо не совсем понимаешь принципе работы DBLookup... если в базе нет записи "петр", то единственный вариант - это добавить ее. Для этого как раз и надо вышеуказанное событие.
Автор: IgorLife
Дата сообщения: 08.05.2011 13:28
Спасибо за ответы.
Скорей всего пойду по алгоритму проверок. Отлавливать буквы которые были введены пользователем и слово которое подставил список.
Если не совпадает то оставлять только то слово которое было введено пользователем.

А по поводу выбрать запись которой нет в базе... Так мне и надо именно внести новую запись которой нет в базе но, просто бывает что получаются совпадения по первым буквам нового слова с уже имеющимися записями и компонент подставляет окончание после завершения ввода, что не нужно.

Просто думал что у DBLookup есть такая возможность как запретить подставлять окончания.)
Автор: TechnoDreamer
Дата сообщения: 08.05.2011 22:19
IgorLife, что то ты не о том.
У тебя DropDownListStyle что стоит?
У меня как раз так работает как ты хочешь. Стиль стоит lsEditList.
Юзер вводит "петр" (которого нет в таблице-справочнике), нажимаешь Enter и выскакивает событие OnNewLookupDisplayText где через AText я и получаю строку "петр", добавляя в справочник.
А у тебя видать стиль стоит lsFixedList... или я опять не понял.
Автор: IgorLife
Дата сообщения: 10.05.2011 07:25
DevExpress LookUpEdit для VS 2010 что то не нахожу ни свойство DropDownListStyle не событие OnNewLookupDisplayText.
Автор: mdid
Дата сообщения: 10.05.2011 08:08
Драсте...подскажите плз
есть грид и тип колонки ButtonEdit...можно ли как то сделать что бы кнопки всегда были видимыми?а то пока фокус на колонку не наведешь кнопка не появляется
Автор: marser
Дата сообщения: 10.05.2011 09:47
mdid
Наверно так <Column>.Options.ShowEditButtons := isebAlways;
Автор: mdid
Дата сообщения: 10.05.2011 10:27
marser
черт..пардоньте...у мя как то из глаз выпал класс Options я как то на него вообще не обратил внимание
пасиб

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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