неа, это текст для строчки фильтра (
» Использование DevExpress (часть 4)
fortezza
(((( тогда только инишкой или переопределением константы
(((( тогда только инишкой или переопределением константы
fortezza
Цитата:
Код: cxSetResourceString(@scxGridGroupByBoxCaption, 'Для группировки перенесите сюда заголовок колонки')
Цитата:
Cryogen2003
или переопределением константы
Код: cxSetResourceString(@scxGridGroupByBoxCaption, 'Для группировки перенесите сюда заголовок колонки')
ок. ещё такой момент. у меня есть фильтрация посредствам FilterRow. Когда задаю фильтр, там где поле строкового типа в конце автоматом добавляется знак '%', как сделать это и для начала строки? в настройках не нашла, если, например, подставлять самой этот знак то в каком событии и как добраться до текста фильтра этой колонки?
fortezza
присоединяюсь к вопросу. Тоже интересует, как можно добраться до фильтра по этой колонке. Требуется чтоб и знак процента проставлялся с обоих сторон текста, да еще чтоб в FilterText попадал текст типа: upper(columnname) like upper('%какой-то текст%')
присоединяюсь к вопросу. Тоже интересует, как можно добраться до фильтра по этой колонке. Требуется чтоб и знак процента проставлялся с обоих сторон текста, да еще чтоб в FilterText попадал текст типа: upper(columnname) like upper('%какой-то текст%')
Цитата:
Я Вам уже сказал, в чем проблема возможно у вас. Вам надо попробовать поставить smartrefresh и указать KeyValue в DataController - если этого не сделать, то любое движение по dataset у вас заставляет заново обновлять весь датасет в памяти. При 100 записях не заметно, при 10000 записях - заметно по полной программе.
т е KeyValue получается в каждом случае - это тот столбец, с которым производятся действия?
у меня основное время занимает коммит ораклянский судя по трейсеру, все остальное мгновенно.
а коммит комитит каждую из 7 тыщ записей по отдельности.
Nejdana
Может быть хватит флудить. DevExpress тут причем?
Может быть хватит флудить. DevExpress тут причем?
Nejdana
понятно, значит проблема не в devExpress, а в самом коде коммита. А поводу keyvalue (точнее KeyFieldNames) - туда ставить надо любое уникальное поле, если есть.
А так, зайди просто в деббаг и посмотри где конкретно тормозит. Я в свое время тоже никак не мог понять, почему на locate в dataset такие дикие тормоза, а потом оказалось, что вызывается datachanged, которое в девках ловиться так же и дополнительно обрабатывается. И если не стояло smartrefresh и KeyFieldNames, запускалось полное обновление внутреннего датасета в гриде.
понятно, значит проблема не в devExpress, а в самом коде коммита. А поводу keyvalue (точнее KeyFieldNames) - туда ставить надо любое уникальное поле, если есть.
А так, зайди просто в деббаг и посмотри где конкретно тормозит. Я в свое время тоже никак не мог понять, почему на locate в dataset такие дикие тормоза, а потом оказалось, что вызывается datachanged, которое в девках ловиться так же и дополнительно обрабатывается. И если не стояло smartrefresh и KeyFieldNames, запускалось полное обновление внутреннего датасета в гриде.
Мой вопрос остается открытым. Еще не могу определить. на какое событие "повесить" обработку выпадающего списка или же написать все в методе, а метод вызвать при загрузке форме?
Пожалуйста, подскажите.
Пожалуйста, подскажите.
NatNiM
Цитата:
Russian please!!! А если косить под ясновидящего, то <OurColumn>.Properties.OnInitPopup
Добавлено:
Cryogen2003
Цитата:
А что тут непонятного? Работа с клиенит-серверным приложением, как с файл-серверным.
Цитата:
Еще не могу определить. на какое событие "повесить" обработку выпадающего списка или же написать все в методе, а метод вызвать при загрузке форме?
Russian please!!! А если косить под ясновидящего, то <OurColumn>.Properties.OnInitPopup
Добавлено:
Cryogen2003
Цитата:
А так, зайди просто в деббаг и посмотри где конкретно тормозит
А что тут непонятного? Работа с клиенит-серверным приложением, как с файл-серверным.
Я так понял NatNiM нужен аналог TcxLookupComboBox в VisualStudio.
NatNiM http://tv.devexpress.com/#XtraGridRepository;XtraGrid+Suite.product;1
NatNiM http://tv.devexpress.com/#XtraGridRepository;XtraGrid+Suite.product;1
Цитата:
Russian please!!! А если косить под ясновидящего
не надо косить, я выше давала описание проблема, просто напомнила, что она осталась не решенной.
В компоненте DevExpress.XtraGrid.GridControl пробую использовать LookUpEdit, который мне необходим для отображения выпадающего списка (этот список - результат запроса), но здесь столкнулась с тем, что полученные данные из запроса не могу отобразить в выпадающем списке. Источник данных подключила.
Может быть, подскажете, как это можно сделать?
NatNiM
Цитата:
Цитата:
X11
И следовало бы изучить вначале компоненты, их свойства, а потом уже начинать с ними работать. Посмотрите примеры, почитатй в справке общую концепцию, почитайте в рунете статьи по DevExpress. Просто Вы забиваете такими простейшими вопросами форум. А ведь на форум подписано очень много людей. Представьте, сколько это трафика из за Вашей лени.
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;
Код:
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;
fortezza
да уж, не айс, но на безрыбье и .....
да уж, не айс, но на безрыбье и .....
Добрый день!
Мне нужна помощь с компонентом csTreeList.
Проблема возникает когда компилируешь Release версию программы и для этого отключаешь опцию "Build with runtime packages" в настройках проекта.
При открытии какой-нибудь формы, содержащей CxTreeList возникает ошибка - "Access violation ... ". С остальными компонентами DevExpress подобных проблем не наблюдалось.
Буду благодарен за помощь!
Мне нужна помощь с компонентом csTreeList.
Проблема возникает когда компилируешь Release версию программы и для этого отключаешь опцию "Build with runtime packages" в настройках проекта.
При открытии какой-нибудь формы, содержащей CxTreeList возникает ошибка - "Access violation ... ". С остальными компонентами DevExpress подобных проблем не наблюдалось.
Буду благодарен за помощь!
Доброго времени суток!
Помогите пожалуйста чайнику. Хочу установить DevExpress v50 на Delphi 2010 но он ругается на то что не может найти dxCoreD14.bpl и что повторная установка может исправить проблему но это повторяется каждый раз. В library Path путь указан. С правами доступа все в порядке. Поскажите в чем дело.
Заранее спосибо
Помогите пожалуйста чайнику. Хочу установить DevExpress v50 на Delphi 2010 но он ругается на то что не может найти dxCoreD14.bpl и что повторная установка может исправить проблему но это повторяется каждый раз. В library Path путь указан. С правами доступа все в порядке. Поскажите в чем дело.
Заранее спосибо
Вопрос:
Как в LookUpEdit подключенного к базе, при выборке данных запретить чтоб он дописывал или добавлял окончание строки?
Например я ввожу Петров - а в базе есть Петрова, соответственно добавляется буква а в конец моего слова и при нажатии на Ентер это слово фиксируется . А мне этого не надо. Нужно чтоб он не добавлял последние подходящие слова . Как это реализовать?
Как в LookUpEdit подключенного к базе, при выборке данных запретить чтоб он дописывал или добавлял окончание строки?
Например я ввожу Петров - а в базе есть Петрова, соответственно добавляется буква а в конец моего слова и при нажатии на Ентер это слово фиксируется . А мне этого не надо. Нужно чтоб он не добавлял последние подходящие слова . Как это реализовать?
IgorLife, новые значения в базу добавляете в событии OnNewLookupDisplayText
Я наверное не так объяснил, я не про запись в базу...
Например в поле ввожу Петр
соответственно открывается список с похожими первыми словами :
Петров
Петрова
Петрович
Петровная
...
ну и так далее
После нажатия на Enter к слову Петр добавиться первая строка из списка , точнее последние буквы ... ов.
А мне надо чтоб не было добавлений. а оставалось в поле ввода только то что я ввел.
Например в поле ввожу Петр
соответственно открывается список с похожими первыми словами :
Петров
Петрова
Петрович
Петровная
...
ну и так далее
После нажатия на Enter к слову Петр добавиться первая строка из списка , точнее последние буквы ... ов.
А мне надо чтоб не было добавлений. а оставалось в поле ввода только то что я ввел.
По "петр" по идее должно "петр" и выдать первым. Или у вас "петр" в базе отсутствует?
Да, отсутствует. Как раз и запнулся я с такой ситуацией. LookUpEdit пытается подставить окончания к короткому слову.
IgorLife
Есть два варианта построения связей таблица-справочник.
первый вариант
Справочник имеет два поля ключ и наисенование. Таблица имет поле ключ, а наименование берет из справочника.
Второй вариант
Справочник имеет одно поле ключ и наисенование совпвдвют. Таблица имет поле ключ-оноже-и-наименование.
Алгоритм для первого варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него. Затем получить созданый ключ и уже его записать в основную таблицую.
Алгоритм для второго варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него и добавить в таблицу.
Подводный камень в интерфейсе:
Вы набрали "Петров", в справочнике его нет и там предлагается активая позиция "Петрова". Как програме понять что по нажатию Enter Вы хотите вести именно "Перов" или Вы всеже хотите ввести предлагаемую "Петрову"?
То есть Вам нужно предоставить два различных механизма отправки команд на редактирование. Как пример по Enter всегда пишем то что в поле, а из справосника выбираем всегда только мышью. Тогда процедуру по первому или второму алгоритму вешаем на обработчик клавиатуры (типа события OnKeyPress)? а для списка обработку клавишь запрещаем. Но я бы сделал по Ctrl+Enter - то что набрано, а по Enter выбраную позицию из справочника.
Есть два варианта построения связей таблица-справочник.
первый вариант
Справочник имеет два поля ключ и наисенование. Таблица имет поле ключ, а наименование берет из справочника.
Второй вариант
Справочник имеет одно поле ключ и наисенование совпвдвют. Таблица имет поле ключ-оноже-и-наименование.
Алгоритм для первого варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него. Затем получить созданый ключ и уже его записать в основную таблицую.
Алгоритм для второго варианта.
Вам надо проанализизовать есть ли введенное значение в таблице справочнике. Ежли нет то добавить в него и добавить в таблицу.
Подводный камень в интерфейсе:
Вы набрали "Петров", в справочнике его нет и там предлагается активая позиция "Петрова". Как програме понять что по нажатию Enter Вы хотите вести именно "Перов" или Вы всеже хотите ввести предлагаемую "Петрову"?
То есть Вам нужно предоставить два различных механизма отправки команд на редактирование. Как пример по Enter всегда пишем то что в поле, а из справосника выбираем всегда только мышью. Тогда процедуру по первому или второму алгоритму вешаем на обработчик клавиатуры (типа события OnKeyPress)? а для списка обработку клавишь запрещаем. Но я бы сделал по Ctrl+Enter - то что набрано, а по Enter выбраную позицию из справочника.
Ну так а как ты хочешь выбрать в БД запись которая отсутствует? Видимо не совсем понимаешь принципе работы DBLookup... если в базе нет записи "петр", то единственный вариант - это добавить ее. Для этого как раз и надо вышеуказанное событие.
Спасибо за ответы.
Скорей всего пойду по алгоритму проверок. Отлавливать буквы которые были введены пользователем и слово которое подставил список.
Если не совпадает то оставлять только то слово которое было введено пользователем.
А по поводу выбрать запись которой нет в базе... Так мне и надо именно внести новую запись которой нет в базе но, просто бывает что получаются совпадения по первым буквам нового слова с уже имеющимися записями и компонент подставляет окончание после завершения ввода, что не нужно.
Просто думал что у DBLookup есть такая возможность как запретить подставлять окончания.)
Скорей всего пойду по алгоритму проверок. Отлавливать буквы которые были введены пользователем и слово которое подставил список.
Если не совпадает то оставлять только то слово которое было введено пользователем.
А по поводу выбрать запись которой нет в базе... Так мне и надо именно внести новую запись которой нет в базе но, просто бывает что получаются совпадения по первым буквам нового слова с уже имеющимися записями и компонент подставляет окончание после завершения ввода, что не нужно.
Просто думал что у DBLookup есть такая возможность как запретить подставлять окончания.)
IgorLife, что то ты не о том.
У тебя DropDownListStyle что стоит?
У меня как раз так работает как ты хочешь. Стиль стоит lsEditList.
Юзер вводит "петр" (которого нет в таблице-справочнике), нажимаешь Enter и выскакивает событие OnNewLookupDisplayText где через AText я и получаю строку "петр", добавляя в справочник.
А у тебя видать стиль стоит lsFixedList... или я опять не понял.
У тебя DropDownListStyle что стоит?
У меня как раз так работает как ты хочешь. Стиль стоит lsEditList.
Юзер вводит "петр" (которого нет в таблице-справочнике), нажимаешь Enter и выскакивает событие OnNewLookupDisplayText где через AText я и получаю строку "петр", добавляя в справочник.
А у тебя видать стиль стоит lsFixedList... или я опять не понял.
DevExpress LookUpEdit для VS 2010 что то не нахожу ни свойство DropDownListStyle не событие OnNewLookupDisplayText.
Драсте...подскажите плз
есть грид и тип колонки ButtonEdit...можно ли как то сделать что бы кнопки всегда были видимыми?а то пока фокус на колонку не наведешь кнопка не появляется
есть грид и тип колонки ButtonEdit...можно ли как то сделать что бы кнопки всегда были видимыми?а то пока фокус на колонку не наведешь кнопка не появляется
mdid
Наверно так <Column>.Options.ShowEditButtons := isebAlways;
Наверно так <Column>.Options.ShowEditButtons := isebAlways;
marser
черт..пардоньте...у мя как то из глаз выпал класс Options я как то на него вообще не обратил внимание
пасиб
черт..пардоньте...у мя как то из глаз выпал класс Options я как то на него вообще не обратил внимание
пасиб
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
Предыдущая тема: Помогите пожалуйста с блокировкой клавиатуры и мышки
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.