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

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

Автор: luchammer
Дата сообщения: 03.03.2013 12:47
как в cxGridDBTableView PropertiesValidate событии вытащить/узнать индекс изменненой строки?
как задать поиск только в этом подфоруме?

Добавлено:

Цитата:
как задать поиск только в этом подфоруме?

нашел способ, и сразу нашел ответ ). Вопрос снят.
Автор: BlackVetal
Дата сообщения: 04.03.2013 06:53
neznayka3
Непроще сделать условие выбора по умолчанию - к примеру текущий день, или все данные по текущему объекту - пользователь уже видит что-то, а дальше уже сам настраивает что ему смотреть.
Другой вариант, если все же надо отображать кучу данных - их загрузку в отдельный поток
Автор: X11
Дата сообщения: 04.03.2013 10:34

Цитата:
форма загрузки с кучей условий, но юзеры не хотят напрягаться, грузят все потом фильтруют как в excel.


значит нужно их жёстко ограничить некоторыми условиями, например не грузить архивные записи и грузить только текущего года

второй вариант: переделать форму параметров поиска так, что им было удобно
третий вариант: сообщить руководству о проблеме и пусть покупают более мощные компьютеры и сервер
Автор: neznayka3
Дата сообщения: 04.03.2013 10:56
добавил в настройки грида "быстрый фильтр", который включает GridMode и отключает все остальное, все шустро. если хотят встроенную фильтрацию/сортировку/футер убирают галку.
Автор: eddoc
Дата сообщения: 04.03.2013 10:57
В cxGrid'e есть какая-нибудь готовая опция автоподгона ширины столбцов под общую ширину грида (как в EhGrid) или надо самому обработчик писать?
Автор: marser
Дата сообщения: 04.03.2013 11:17
eddoc
cxGridTableView.ApplyBestFit(), cxGridTableView.OptionsView.ColumnAutoWidth
Автор: Sufferer
Дата сообщения: 06.03.2013 10:38
Доброго времени суток. Имеется cxGrid
Необходимо при модификации значения в первой ячейке произвести изменения в соседней ячейке.
Подвесил обработку изменений на событие в колонке Properties.OnChange. Все нормально изменяется в соседней ячейке, но при этом сбрасывается значение редактируемой ячейки в исходное.
Пляски с BeginUpdate, EndUpdate не помогают. Складывается впечатление, что грид рефрешит всю строку при изменении в любой ячеки.
Что сделать, что-бы такого не происходило?
Автор: marser
Дата сообщения: 06.03.2013 10:55
Sufferer

Цитата:
Складывается впечатление, что грид рефрешит всю строку при изменении в любой ячеки.

Да ничего он не рефрешит, просто не запоминается введенное значение. Попробуйте написать в OnChange: TcxCustomEdit(Sender).PostEditValue
Автор: Sufferer
Дата сообщения: 06.03.2013 12:24
Не, пост не подходит, ибо необходимо вычислять по мере ввода, на лету. Почему я про рефреш-то предположил, там же как только начинаешь что-то вводить/изменять срабатывает событие, и если я в нем меняю значение ячеки через SetValue() или напрямую Value[Y,X], то по выходе из этого события у меня тут-же сбрасываются изменения в редактируемой ячеке и она снова находится в предедитном состоянии.
Автор: marser
Дата сообщения: 06.03.2013 14:07
Sufferer
Набросал Вам работающий пример (TcxGridTableView и две TextEdit колонки):

Код: procedure TForm1.cxGrid1TableView1Column1PropertiesChange(Sender: TObject);
var
AEdit: TcxTextEdit;
begin
AEdit := TcxTextEdit(Sender);
if AEdit.ModifiedAfterEnter then
begin
AEdit.PostEditValue;
cxGrid1TableView1Column2.EditValue := VarToStr(AEdit.EditValue) + 'X';
AEdit.SelStart := Length(AEdit.Text);
AEdit.SelLength := 1;
end;
end;
Автор: Sufferer
Дата сообщения: 07.03.2013 16:41
В общем разобрался с проблемой. Спасибо marser за подсказку, в каком направлении копать.
Автор: vcrank
Дата сообщения: 12.03.2013 15:42
Доброго времени суток. Мой вопрос только частично относится к данным компонентам.
Хочу спросить совета по логике работы/оформления приложения
Условно есть БД. Юзер выбирает из списка нужную таблицу и получает список уникальных дат.
Подскажите, как красиво/быстро сделать выбор этой даты? Выводить списко всех дат в ComboBox - это как-то неправильно. Запросто может быть по 300 дат за 1 год..., а выбирать из этого списка нужную дату (даже из отсортированного списка) достаточно проблемно
Есть идея использовать календарь от DevExpress (TcxDateEdit) и подсвечивать в нём существующие даты из базы. Нашёл пока только такой код:

Код: procedure TForm1.cxDateNavigator1CustomDrawDayNumber(Sender: TObject;
ACanvas: TcxCanvas;
AViewInfo: TcxSchedulerDateNavigatorDayNumberViewInfo;
var ADone: Boolean);
begin
if (AViewInfo.Date = StrToDate('01.03.2013')) or (AViewInfo.Date = StrToDate('05.03.2013')) then
begin
AViewInfo.Bold := True;
ACanvas.Font.Color := clRed;
ACanvas.Brush.Color := clYellow;
end;
end;
Автор: BlackVetal
Дата сообщения: 13.03.2013 06:27
vcrank
Мене кажется не совсем это удобно: чем больше пользователь делает в начале выбора условий отбора - тем больше он будет раздражен, а значит будет негатив от использования программой. Самой оптимальный вариант при загрузке выводить какие-то данные по-умолчанию - в вашем случае логично на последнюю дату с данными. Далее пусть сам пользователь выбирает какие ему данные нужны (на какая дату). Выбор даты - может не самый удобный способ, но мне кажется наглядным будет - список дат в таблицу.
Автор: eddoc
Дата сообщения: 13.03.2013 10:47
vcrank
имхо, без фильтров не обойтись
Автор: Granmer
Дата сообщения: 13.03.2013 14:46
vcrank
Согласен с BlackVetal в случае использования календаря - будет много лишних кликов для перелистывания месяцев, лет. Я бы попробовал сделать выпадающий список с древовидной структурой год-месяц-даты. Не так много занимает места на экране и поиск по сути в три клика к любой дате. В зависимости от остальных условий возможны варианты.
Автор: vcrank
Дата сообщения: 13.03.2013 18:56
Спасибо за советы. Сначала пойду по простому пути - подставление даты/месяца по дефолту.
Потом попробую реализовать дерево
Автор: NatNiM
Дата сообщения: 14.03.2013 09:06
Здравствуйте.
Использую GridControl.
Необходимо внизу создать панель суммы Total, но не привязывать ее к какому-то столбцу, а форматировать с левой стороны грида и растянуть на весь грид. В этот Total будет передаваться переменная.
Подскажите, пожалуйста, можно ли такое сделать?
Автор: AlexPetrovich
Дата сообщения: 14.03.2013 13:49
NatNiM
Прицепи снизу обычную TPanel, выстави ширину, как у грида, и на ней выводи нужную сумму.
Автор: BlackVetal
Дата сообщения: 14.03.2013 13:54
NatNiM
попробуйте посмотреть в сторону эванта CustomDrawFooter у GridView (это для C#, для delphi не знаю).
Более подробно все возможности не могу написать - студии нет подрукой ...
Автор: X11
Дата сообщения: 14.03.2013 17:45
Кто-нибудь пользуется dxLayoutControl?
Оно так и должно тормозить, мелькать и т.д.?
Такое впечатление, что у меня 64мб памяти и процессор PIII ((
И форма не так быстро открывается.
Изменение размеров формы тормознутое.
На dxLayoutControl расположено примерно 85 групп и Item`ов.

Может где-то чего-то подкрутить нужно?
Автор: eddoc
Дата сообщения: 14.03.2013 20:52
камрады:

1. К cxButton никак нельзя cxStyle прикрутить?
2. В cxGrid хидеры никак не меняют цвет текста (задан в соответствующем cxStyle), если выставлено LookAndFeel.NativeStyle = True. Можно как-то выйти из положения (хочется увидеть объемные кнопки, а не плоские)?
Автор: BlackVetal
Дата сообщения: 15.03.2013 05:18
X11
я постоянно пользуюсь, могу только предположить, что слишком перегружено итемами. У меня если в районе 20 шт видно как перерисовывается ...

eddoc
у баттона помоему есть такое свойство ButtonStyle ... но там свои варианты отрисовки кнопки.
потом есть свойство StyleController - задать контроллер через который будет передаваться стиль кнопке.
Ну и собсно :

Код:
simpleButton1.LookAndFeel.Style = DevExpress.LookAndFeel.LookAndFeelStyle.Skin;
simpleButton1.LookAndFeel.SkinName = "Caramel";
Автор: X11
Дата сообщения: 15.03.2013 10:11

Цитата:
В cxGrid хидеры никак не меняют цвет текста (задан в соответствующем cxStyle),


Цвет меняешь свойство Color или TextColor?
Автор: eddoc
Дата сообщения: 15.03.2013 13:14
X11

Цитата:
Цвет меняешь свойство Color или TextColor?

Да для cxStyle

BlackVetal

Цитата:
у баттона помоему есть такое свойство ButtonStyle

нет, вывернулся через CxButton.Colors.NormalText и т.д.

Со StyleController либо не разобрался, либо там только для эдиторов. А шкурки не использую - выкинул на помойку

По поводу второго вопроса, я вот о чем:

так с цветом, но плоско




Код: cxDBGridMaster.OptionsView.LookAndFeel.NativeStyle:= False;
LookAndFeel.Kind:= lfFlat;
Автор: X11
Дата сообщения: 15.03.2013 13:51

Цитата:
Color или TextColor


Цитата:
Да



А можно нормальный ответ?
Автор: eddoc
Дата сообщения: 15.03.2013 16:29
X11

Цитата:
А можно нормальный ответ?



ps. извини за скрин, так быстрее
Автор: X11
Дата сообщения: 15.03.2013 16:50
Вопрос по сохранению и восстановлению dxLayoutControl
Как запретить сохранять/восстанавливать CaptionOptions.Text?


Добавлено:
Странность опять с этими слоями
На форме лежит cxPageControl
На разных страничках лежат dxLayoutControl`ы
На первой страничке удаётся вызвать дизайнер для dxLayoutControl1, а на второй страничке тоже по двойному клику не удаётся вызвать для dxLayoutControl2. Событие просто не наступает.

Код:
procedure Tfmorm1.dxLayoutControl2DblClick(Sender: TObject);
begin
ShowMessage('dxLayoutControl2.Customization := True;');
dxLayoutControl2.Customization := True;
end;
Автор: vcrank
Дата сообщения: 17.03.2013 12:03
Подскажите пожалуйста как в cxGrid сделать фильтрацию по содержимому.
Планируется такая система. На форме лежит грид с 4-5 колонками
Под гридом текстовое поле. Юзер вводит в это поле данные. И, если хоть один из столбцов содержит такой текст, то выводится эта строка. Строки, которые не содержат введённого текста не показываются
Ну и чтобы было регистронезависисмым
Автор: X11
Дата сообщения: 17.03.2013 14:07
http://www.sql.ru/blogs/x11/1336
Автор: vcrank
Дата сообщения: 17.03.2013 17:16
X11
Спасибо, а как сделать фильтр регистронезависимым?


Вот блин Сам спросил - сам ответил

Сейчас вопрос в другом. Как в фильтре по дефолту сделать условие ИЛИ ?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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