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

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

Автор: mcdie
Дата сообщения: 27.10.2014 08:30
Vadim153
у меня 12.1.6, поэтому не знаю, поможет ли обнoвление до более свежей версии.
Автор: dimm78
Дата сообщения: 27.10.2014 10:27
Vadim153
mcdie

Свойство EditMask у TcxButtonEditProperties не зависит от версии DevExpress.
Хотя если я правильно понял исходный вопрос

Цитата:
В самой ячейке должны отображаться данные в денежном формате, например: 100.00р.

то EditMask никак не влияет на отображение. Для этого нужно использовать свойство DisplayFormat, которое также есть у TcxButtonEditProperties, но доступно только в рантайме.

Автор: mcdie
Дата сообщения: 27.10.2014 13:26
Vadim153
ну свойство DisplayFormat есть у TIntegerField и TFloatField. В случае если грид подключается к БД, в с этом свойстве филдов целесообразнее хранить денежный формат.
Автор: Vadim153
Дата сообщения: 27.10.2014 23:45

Цитата:
то EditMask никак не влияет на отображение.


Влияет. Например, можно добавить к значению денежный формат.
Исключительно в целях отображения.

Добавлено:

Цитата:
ну свойство DisplayFormat есть у TIntegerField и TFloatField. В случае если грид подключается к БД, в с этом свойстве филдов целесообразнее хранить денежный формат.


По ряду причин не хотелось бы обрабатывать события полей таблицы.
Решил вопрос в рамках Грида.
В любой ячейке можно отрисовать любые атрибуты данных.
Например: есть Float 100,00. Можно отрисовать 100,00р. в OnGetDataText:

Код:
procedure TClientForm.cxGridDBClientSaleListInputPrice_pcsGetDataText(
Sender: TcxCustomGridTableItem; ARecordIndex: Integer; var AText: string);
begin
if (Sender.DataBinding.GridView.DataController.Values[ARecordIndex,Sender.Index]<>NULL) then
AText := FormatCurr('#,##0.00', Sender.DataBinding.GridView.DataController.Values[ARecordIndex,Sender.Index]) + 'р.';
end;
Автор: X11
Дата сообщения: 03.11.2014 10:10

Цитата:
Как можно организовать поиск по полям cxGrid/cxDBGrid?
В EhLib, например, Ctrl+F и выпадает специальное окно поиска.
Как поиск в DevExpress организован?


я не знаю, может что-то добавилось в новых версиях, но до этого каждый писал свой лисапед
http://www.sql.ru/blogs/x11/1324

т.е. нормального встроенного поиска у cxGrid нет
Автор: AnGo
Дата сообщения: 04.11.2014 08:41
Hi, all!

Вот такой вопрос. При установке фокуса на некоторую ячейку грида cxGrid, цвет её фона изменяется с цвета Selection на прежний цвет фона строки. Как был, например, белым так и остался им. Можно ли каким либо способом поменять его, допустим, на красный? Т.е. привыюоре строки вся строка в цвете Selection, ячейка с фокусом - белая, а сделать так: вся строка по-прежнему в цвете Selection, а ячейка с фокусом - красная? Изменить основной цвет фона строки не предлагать!
Что-то не нашел я где и как это можно сделать.
Автор: X11
Дата сообщения: 04.11.2014 10:18
Что у тебя что в OptionsSelection.InvertSelect

а ещё есть событие OnGetContentStyle
Автор: makz
Дата сообщения: 04.11.2014 13:04
AnGo
В редактируемой ячейке менять надо цвет у inplace editor'a, в onInitEdit:
AEdit.Style.Color:=clRed;
Автор: AlexCoRu
Дата сообщения: 06.11.2014 13:44
Грид с двумя вьюхами на двух уровнях, настроен мастер-деталь, обе вьюхи default data loading mode соеденены с TIBCQuery. Скажите, всегда так было, если мастер-запись в режиме редактирования, то при перемещении на деталь-запись мастер выполняет post?
Надо сделать, чтобы изменения в обоих датасетах сохранялись при перемещении на другую мастер-запись или по нажатию TButton и отмена изменений в обоих датасетах также происходила при нажатии другой TButton. Казалось бы чего проще: детальный датасет CachedUpdates = True, при изменении в детальном датасете переводим мастер в режим редактироавния, но не получается так. Получается, что оба датасета не могут одновременно находится в режиме правки.
Автор: X11
Дата сообщения: 06.11.2014 14:03
Что там с транзакциями?
По идее, тебе нужно ручное управлениями транзакциями.
Т.е. отключить, так называемый, AutoCommit. И подтверждать уже по кнопке, когда закончил редактирование.

При чём здесь DevExpress?

Добавлено:

Цитата:
Получается, что оба датасета не могут одновременно находится в режиме правки.


Когда грид теряет фокус, он вызывает Post или Cancel.

Добавлено:

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


Подключи оба НД (набора данных TIBQuery) к одной и той же транзакции. И ручками рули подтверждение или откат изменений.
Автор: AlexCoRu
Дата сообщения: 06.11.2014 14:37
X11, спасибо. TIBCTransaction.StartSavepoint/TIBCTransaction.ReleaseSavepoint.
Автор: AnGo
Дата сообщения: 06.11.2014 16:20
X11

Цитата:
Что у тебя что в OptionsSelection.InvertSelect

true

makz

Цитата:
AEdit.Style.Color:=clRed;


Немного не то. Здесь меняется цвет когда становишься на ячейку курсором, чтобы поредактировать.
Просто фокус на ячейку ничего не меняет.
Автор: makz
Дата сообщения: 08.11.2014 09:59
AnGo
Ну через канву покрасить:
if (AViewInfo.Focused) then
ACanvas.FillRect(AViewInfo.Bounds, clRed);
Автор: mdid
Дата сообщения: 08.11.2014 19:03
народ, а девки под мобильные устройства будут что то делать?
Автор: ivan76
Дата сообщения: 09.11.2014 16:12
Эксперты, подскажите плиз, а то голова взорвется.
Есть cxDateNavigator, в нем реализован мультивыбор дат.
Как узнать какие именно даты выбраны(отмечены)

Автор: X11
Дата сообщения: 09.11.2014 16:19
а SelectedDays не?

Добавлено:
cxDateNavigator1.SelectedDays.Items[0] - первая выделенная дата

cxDateNavigator1.SelectedDays.Items[cxDateNavigator1.SelectedDays.Count-1] - последняя выделенная дата

Добавлено:
Так есть событие SelectionChanged
Автор: ivan76
Дата сообщения: 09.11.2014 16:28

Цитата:
а SelectedDays не?


Огромное человеческое спасибо!
Очень признателен.
Автор: svs123456789
Дата сообщения: 16.11.2014 09:47
а кто может кинуть ссылку на файл INI с русскими ресурсами для TcxLocalizer ?
Автор: X11
Дата сообщения: 16.11.2014 09:58
https://www.google.com.ua/search?q=TcxLocalizer+%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox-a&channel=fflb&gfe_rd=cr&ei=9VhoVKKaBbOt8wf6vYHQAw#rls=org.mozilla:ru:official&channel=fflb&q=devexpress%20%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F

Добавлено:
локализация (ini-файл) есть в обменнике
Автор: svs123456789
Дата сообщения: 16.11.2014 17:45
создал в гриде поле с параметром look up (для заполнение поля из другой таблицы - "словаря") , ну как бы без особых проблем , да и не в первый раз...))))
НО
у компонента - вертикальный грид из той же библиотеки, с теми же датасетами и тоже поле отказывается работать... как будто не хватает параметров
Автор: Shepot
Дата сообщения: 17.11.2014 23:19
svs123456789, если у вас два разных грида используют один и тот же редактор (неважно, lookup или какой-то другой вид), правильнее всего будет где-нибудь в модуле данных поместить компонент TcxEditRepository, в нем создать нужный вам редактор с нужными вам настройками, а в гридах уже заполнять у столбца не Properties, а RepositoryItem. Тогда можно быть уверенным, что редактор одинаковый во всех местах где он используется. Опять же, если вдруг понадобится поменять одно из свойств редактора, это нужно будет сделать только в EditRepository, а не в каждом гриде.

P.S. А lookup отказывается работать скорее всего потому, что в форме с вертикальным гридом не открыт набор данных - справочник.
Автор: X11
Дата сообщения: 24.11.2014 08:49
Подскажите, у DevExpress VCL есть что-то для синхронизации TcxScheduler с Google Calendar? В .NET версии что-то там есть.
Автор: Dauren111
Дата сообщения: 24.11.2014 09:16
Всем Привет!

Ребят подскажите, как в гриде в ячейках определённых колонок контролировать ввод... нужны только числа...
на ум приходит только событие OnEditKeyPress...в любом случае я не знаю как определить колонку редактируемой ячейки... подскажите куском кода... спасибо заранее.
Автор: X11
Дата сообщения: 24.11.2014 09:26
Просто выбери тип колонки SpinEdit
Автор: V1s1ter
Дата сообщения: 24.11.2014 10:40
Dauren111
или CurrencyEdit, если не нужны кнопки, да формат задать можно более гибко.
А вообще начните с знакомство с обработчика события OnValidate.
Автор: makz
Дата сообщения: 24.11.2014 14:43

Цитата:
Подскажите, у DevExpress VCL есть что-то для синхронизации TcxScheduler с Google Calendar? В .NET версии что-то там есть.

Пробуй экспорт/импорт в ics.
Автор: X11
Дата сообщения: 24.11.2014 15:07
Не-не. Нужен не просто импорт, а онлайн-доступ (синхронизация)
Автор: Shepot
Дата сообщения: 24.11.2014 15:31
X11, вот тут довольно подробно разобрано как раз то, о чем ты спрашиваешь - взаимодействие DevExpress и Google Calendar.
Автор: X11
Дата сообщения: 24.11.2014 15:45
Довольно подробно? А Вы сами-то почитали? Как раз там только "вступление". Там автор забросил статью ещё года 2 назад, так и не дописав её и сам же в комментариях об этом признаётся.
Автор: mcdie
Дата сообщения: 24.11.2014 16:17
X11, там есть продолжение

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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