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

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

Автор: BlackVetal
Дата сообщения: 22.08.2012 05:20
neznayka3
зачем на группу? допустим в группе 10 кнопарей (контролов) - каждый в ручную включать/выключать? непроще сразу проверить права и всю группу одной строкой скрыть? Ну ладно - это вопрос философии, а нереализации ...
Автор: exteris
Дата сообщения: 22.08.2012 06:54

Цитата:
поищите по файлам *reg.pas и там будет что-то, например

Я так понял, что у автора на руках исходники программы. Самим Девов, в ней использованных, нет. Так что, думаю никак.
Автор: AlexCoRu
Дата сообщения: 22.08.2012 09:14
При старте приложения с главной формой TdxRibbonForm с TdxRibbon на ней, сначала случается событие TdxRibbon.OnTabChanging, затем TdxRibbon.OnTabChanged и только потом TdxRibbonForm.OnCreate и TdxRibbonForm.OnShow.
По-моему нелогично. Сначала форму нужно создать, а затем уж производить какие-либо манипуляции на ней. Как можно сделать такой порядок:
TdxRibbonForm.OnCreate > TdxRibbon.OnTabChanging > TdxRibbon.OnTabChanged > TdxRibbonForm.OnShow?
Хочу по событию TdxRibbonForm.OnCreate коннектится к БД, по событям TdxRibbon.OnTabChanging и TdxRibbon.OnTabChanged, взависимости от активной закладки, открывать/закрывать датасеты.
Автор: mdid
Дата сообщения: 22.08.2012 09:43
AlexCoRu
в OnCreate присвойте обработчики этим событиям...а в дизайнтайме их уберите
Автор: SevereK20
Дата сообщения: 23.08.2012 16:16
как в grid'е сделать чтоб цифры отображались слева?
Автор: tanaseduard
Дата сообщения: 23.08.2012 16:27
SevereK20
Установи TextEdit на колонку и там Alignment.
Автор: SevereK20
Дата сообщения: 23.08.2012 16:30
Через cxEditRepository ... разобрался сам.
Автор: neznayka3
Дата сообщения: 24.08.2012 09:56
подписка на девок
Автор: neznayka3
Дата сообщения: 24.08.2012 13:01
про TdxLayoutItem. если CaptionOptions.ImageIndex<>-1 как повесить хинт на рисунок?
Автор: drunk2
Дата сообщения: 25.08.2012 14:46
neznayka3
K18412
Автор: neznayka3
Дата сообщения: 25.08.2012 23:40
про TdxLayoutControl. после применения скинов на формах появляются полосы прокрутки. как это отследить и сделать размеры подходящими?
Автор: tanaseduard
Дата сообщения: 27.08.2012 10:31
neznayka3
AutoSize для Layout и Form проставьте.
Автор: SevereK20
Дата сообщения: 28.08.2012 11:09
Имеется cxGrid...требуется раскрашивать значение только одной колонки...

Код:
procedure TFGeneral.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if (AViewInfo.GridRecord.Values[5]=1)then
ACanvas.Font.Color := clRed;
end;
Автор: X11
Дата сообщения: 28.08.2012 11:18
Лучше использовать событие OnGetContentStyle


Код:
if AItem.Index = dbgApartREGION_NAME.Index then
if not VarIsNull(ARecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ID_REGION').Index]) then
begin
if not Assigned(AStyle) then
AStyle := TcxStyle.Create(Sender);

AStyle.TextColor := GetColorByRegionId(ARecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('ID_REGION').Index]);
end;
Автор: SevereK20
Дата сообщения: 28.08.2012 11:22

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


Цитата:
if (AViewInfo.GridRecord.Values[5]=1)then

Автор: mdid
Дата сообщения: 28.08.2012 12:01
SevereK20
как правильно подсказали лучше юзать стили...но раз старая привычка не дает покоя то нужно юзать CustomDrawCell не вьюхи а колонки
Автор: SevereK20
Дата сообщения: 28.08.2012 12:03

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

Да, я уже разобрался. Спасибо Мжно примерчик со стилями для решения данной проблемы?
Автор: mdid
Дата сообщения: 28.08.2012 12:48
SevereK20
версия для печати->поиск по GetContentStyle->и первый пример вы увидите от X11
Автор: SevereK20
Дата сообщения: 29.08.2012 09:27
Господа, еще вопрос...
в cxGrid-е... при фильтрации столбцов группирует не все значения.

почему здесь две единицы? двойка одна... хотя записей с двойкой несколько, также как и записей с единицей... как убрать дубли?
с несоставными полями все в порядке - показывает только уникальные значения..
Автор: X11
Дата сообщения: 29.08.2012 09:39
Может там не "1", а "1 "?
Автор: SevereK20
Дата сообщения: 29.08.2012 09:43
X11
Проверял уже 10 раз...
Собственно говоря...
В грид попадают записи с таблицы WORKS, в этой таблице есть поле ITEM, оно является FK - к таблице ITEMS, в таблице ITEMS есть поле MODEL, которое является FK к таблице MODEL_APARAT, в которой есть поле TYPE_APARAT вот оно и есть 1 или 2.
Двойки не группирует потому что в записях таблицы WORKS одно и то же изделие, а вот единица - изделия разные, но MODEL у них одинаковая, соответственно, TYPE_APARAT тоже..
Автор: mdid
Дата сообщения: 29.08.2012 10:00
SevereK20
прицепитесь к событию DataControllerFilterGetValueList и в полученном списке проверьте значения(ибо дубликатов в фильтре грида не замечал)...сложно что то говорить не видя запроса....может у вас там идет union с другой таблицей и идет приведение типов к стрингам..хз...всякое бывает...
Автор: SevereK20
Дата сообщения: 29.08.2012 10:08
mdid
Запрос главного датасета обычный - 'SELECT * FROM WORKS'
все остальные поля уже добавлены в Field editor этого dataset'а..
тип стоял FBInteger, сейчас поменял на Integer - ничего не поменялось.


Добавлено:
SevereK20
поля Lookup имеется ввиду...
Автор: mdid
Дата сообщения: 29.08.2012 10:43
SevereK20
вы DataControllerFilterGetValueList проверяли? какого типа у вас это колонка в базе? попробуйте на новом приложении только с одним гридом на форме
Автор: SevereK20
Дата сообщения: 29.08.2012 10:53

Цитата:
вы DataControllerFilterGetValueList проверяли?

Я не понимаю как ....

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

в базе - integer
сейчас в IBExperte запрос написал руками -

Код: SELECT * FROM WORKS
LEFT JOIN IZDELIA on WORKS.item = IZDELIA.izd_id
left join model_aparat on izdelia.izd_id = model_aparat.model_id
where model_aparat.type_id = 1
Автор: mdid
Дата сообщения: 29.08.2012 10:58

Цитата:
SevereK20:
Я не понимаю как ....

блин...DataControllerFilterGetValueList это полный путь к событию...расшифровываю
1. давим на вьюху
2. в диспетчере объектов переходим на вкладку Events
3. раскрываем события класса DataController
4. раскрываем события класса Filter
5. обрабатываем событие OnGetValueList
ПС
таким образом можно как добавлять свой фильтр так и удалять
ПСС
вроде
Автор: SevereK20
Дата сообщения: 29.08.2012 11:06
mdid
разобрался и что там проверять?
AItemIndex, AValueList....
формируются при нажатии на значек группировки..
Автор: mdid
Дата сообщения: 29.08.2012 11:16
SevereK20
ну вы и ленивый...это событие срабатывает при формировании списка фильтра...то есть в момент нажатия в заголовке колонки на значок фильтра...

вам надо проверить на идентичность AValueList.Items[2] и AValueList.Items[3]
0 и 1 это стандартные значения
Автор: SevereK20
Дата сообщения: 29.08.2012 11:21
mdid
Они не идентичны. Это я давно понял - выводятся же разные записи..


и почему так..........

Добавлено:
Еще раз напомню... что в таблице works есть поле ITEM.... которое является внешнеим ключиком и ссылается на таблицу IZDELIA, в ней есть поле MODEL, ссылающееся на таблицу MODEL_APARAT.. и уже в этой таблице есть поле Type_ID (к которому я и применяю фильтр).
На картинках, которые я выложил выше - 2 записи, в которых выбраны 2 разных IZDELIA, но с одинаковым MODEL (соответственно и TYPE_ID у них одинаковый).
А вот двойка в филтре - выводит правильно 3 записи (во всех трех записях используется одно и то же IZDELIE). Т.е. такое чувство что проблема в том, что для фильтра он берет полный путь... т.е. такое-то изделие, такой-то тип.. а не только тип..
Автор: mdid
Дата сообщения: 29.08.2012 11:28
сколько не прошу у деда мороза терпения на новый год - вечно меня игнорит
SevereK20
то что они не одинаковы - это понятно...задача была сравнить эти 2 значения...и глянуть что выдает отладчик на первой единице и на второй...программно(после открытия кверины) пройдитесь по полям грида и проверьте тип данной колонки (99% тип string или если совсем все плохо float с кривым округлением)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211

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


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