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

» Использование DevExpress 2

Автор: Alkatraz
Дата сообщения: 01.03.2007 22:31
Спасибо всем за ответы. Еще вопрос...

Проблемма такая - есть таблица городов, улиц (с составным ключем - код улицы и код города) и таблица адресов, где также указан город и улица. В Master стоит таблица городов с ключем Code? d Вуефшд стоят таблицы улиц и адресов. Проблемма в таблице адресов - код улицы для LookUpComboBox'а составной - код города и улицы. Как настроить LookUp так, что бы в выпадающем списке были только улицы текущего города (того, что в MasterView)?

Если задавать в Keyfield только код улицы, то сами понимаете, что в списке оказываются все улицы. Составного ключа он не понимает (или просто у меня руки кривые )...

В хелпах еще покапаюсь, но надо срочно, поэтому спрашиваю здесь...
Автор: Shadi
Дата сообщения: 02.03.2007 08:04
All, привет!

Есть проблема... Установил инсталл Дяди Феди от декабря и такая же беда в февральском инсталле...

Выкидывается ошибка следующего содержания...


Цитата:
OverFlow while converting variant of type(Integer) into type(Date)


Ясно, что это проблема с конвертацией даты. Если ставлю ДисплейФормат = dd.mm.yyyy
у датаСета то на ReadOnly все пучком, но при редактировании снова таже ошибка...
Причем без указания в DataSate DisplayFormat=dd.mm.yyyy приложение вообще не запускается.. ((

Это только у меня??? Ставил и на работе и дома, та же хрень....
Может как то можно это победить???
Автор: Widoms
Дата сообщения: 05.03.2007 09:09
ребята подскажите можно ли с CxGrid экспорт в Excel сделать ?
Автор: mcdie
Дата сообщения: 05.03.2007 09:44
Widoms

Можно: (unit cxExportGrid4Link) для 5-го грида...
procedure ExportGrid4ToExcel(const AFileName: string; AGrid: TcxGrid; AExpand: Boolean = True; ASaveAll: Boolean = True; AUseNativeFormat: Boolean = True; const AFileExt: string = ‘xls’);

для 6-го грида: (unit cxGridExportLink)
procedure ExportGridToExcel(const AFileName: string; AGrid: TcxGrid;
AExpand: Boolean; ASaveAll: Boolean; AUseNativeFormat: Boolean; const AFileExt: string);


Добавлено:
Alkatraz

У тебя же для одного города улицы не повторяются вот и лови:


Код:
Лови по событию OnInitPopup:
Query1.sql = SELECT * FROM Table1 WHERE КодГорода = Твой код города;
Query1.datasource = Datasource1

Lookup1:
KeyField = Код улицы
ListSource - DataSource1
Автор: ArtemiyUO
Дата сообщения: 05.03.2007 13:13
Парни, кто разбирается в масках regexp?
Читаю мануал но до меня тяжело доходит это.
Нужны макси на http, ftp, email адреса.
Нашел в демках но там запрещены символы "-" а я не могу поправить. Подскажите кто знает или скажите где можно найти примеров масок побольше.
Автор: jicoff
Дата сообщения: 05.03.2007 13:29
ArtemiyUO

Вообще регулярные выражения они и в Африке регулярные. Беглый просмотр хелпа не выявил никаких специальных отклонений, но возможно что-то и пропустил.

Вот пример для email: [_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)

Проверь, должно сработать.
Автор: ArtemiyUO
Дата сообщения: 05.03.2007 14:57
Спасибо а как в этой маске разрешить использование "-"
http\:\/\/(\w+(\.\w+)*@)?\w+\.\w+(\.\w+)*(/(\w+(/\w+)*/?)?)?
Автор: Dennica
Дата сообщения: 05.03.2007 16:40
ArtemiyUO
явно укажи.. Тебе помоему для маски что ты привел не помешает также ввод и цифр. Получается в тех местах где у тебя стоит "\w+" ставиш "\w[\w\d\-]*" это значит разрешон ввод латинских букв, цифр и "-", причем слово должно начинаться с буквы
Автор: jicoff
Дата сообщения: 05.03.2007 18:15
ArtemiyUO
Dennica

Это вопрос, может ли быть ссылка такого вида: http://www.microsoft.com/isapi/redir.dll?prd=ie&pver=5.0&ar=IStart

В таком случае вы забыли ., ~, %, +, !, (, ), #, может еще чего.

Добавлено:
Вообще-то говоря все это уже не по теме, но мне не нравится конструкция ArtemiyUO, больно тяжеловесная.
Автор: bodomus
Дата сообщения: 06.03.2007 09:40
О cxExtLookupComboBox

Уважаемые профи. Есть проблемка. Вкратце предисторию.
В моем проекте реализован грид в Unbound режиме при помощи DevExpress.
Каждой ячейке в одной из колонок предоставляются динамически свои редакторы в зависимости от условия. Одним из типов редакторов который я использовал был сабж.
Подключение редакторов происходит в событии колонки GetProperties.
После создания сабжа в его свойстве OnPopupInit зависимостит от значений в других колонках я динамически формирую разные запросы и отображаю их в сабже.
Так вот, быстро набросав формирование запросов и подключение их сабжу я думал порадоваться. Фиг. запросы формируются, отображаются данные в выпадающем сабже, после закрытия значение вставляется, НО как только моя ячейка теряет фокус поле очищается.
Ладно, от такой наглости я опешил. вроде все делал правильно. Решил вместо динамики использовать статическое связывание (то есть в инспекторе свойств связываю все свойства и использую один запрос). Все заработало на ура. Начал копать дальше. В общем заюзал CodeSite. Все классы как при статике так и при динамике одинаковы. (Или просто я не увидел различий) Тут я малехо абалдел. То есть теоретически все правильно. В общем докопался вот до чего. Поведение сабжа изменяется после того как я у класса TcxGridDBTableView который связывается с сабжем при формировании новых колонок удаляю все и заново формирую новые.
Удаление колонок :

TcxGridDBTableView(VRTV).ClearItems;

Добавление колонок:
Делал так и так

for I := 0 to tbl.FieldCount - 1 do
begin
col := TcxGridDBTableView(VRTV).CreateColumn;
col.Name :=tbl.Fields[i].FieldName;
col.DataBinding.FieldName :=tbl.Fields[i].FieldName;
end;

// второй вариант
VRTV.DataController.CreateAllItems();

Если у кого то есть мысли по этому поводу плиз выскажетесь.

PS Время поджимает я конечно все сделал по другому но разобраться надо.
PSS Исходники тестового ( то есть вырезал части кода и скинул все на маленькую формочку могу выслать на почту, так как мы за стеной сидим) В примере стандартное подключение через БДЕ в проекте СКЛ сервак.
Автор: ArtemiyUO
Дата сообщения: 06.03.2007 14:58
Может попробовать повесить на EditValueChanged ?
BandedView.Controller.EditingController.Edit.PostEditValue;


Добавлено:
Может попробовать повесить на EditValueChanged ?
BandedView.Controller.EditingController.Edit.PostEditValue;
Автор: Alkatraz
Дата сообщения: 07.03.2007 07:02
mcdie
Да, это самый простой способ, но я думал, что в таком навороченном гриде есть связывание по множественным ключам, как это реализовано в EhLib'е...

Я сделал по другому - создал специальный справочный View, где улицы сгруппированы по городам. Во View с улицами сделал ExLookupComboBox, на закрытие которого инициализирую код города и улицы из справочного View...

Все-равно, хотелось бы по-больше функциональности...
Автор: waik
Дата сообщения: 09.03.2007 18:29
Добрый день!
Неожиданно столкнулся с неработой проекта на NT4. Не работает только тот проект который использует Devexpress/ Требует наличия gdiplus.dll. Я думал что это только у TMS такое требование но вот оказалось по другому. Редистрибутивный инсталятор есть здесь http://download.microsoft. com/download/platformsdk/redist/3097/W98NT42KMeXP/EN-US/gdiplus_dnld.exe но не могу скачать по причине непроходимости теста Windows Genuine Advantage. Знаю что есть метода облома, но вдруг есть у кого уже скачанный? Киньте на шару какую-нито за большое спасибо.
Автор: HamilcarBarkaRU
Дата сообщения: 12.03.2007 10:53
Всем доброе время суток!

Есть проблема с QuantumGrid.

Есть большая выборка(сравнительно) - порядка 50000 записей с которой работает грид.
Если я начинаю править запись и потом пытаюсь отменить изменения происходит довольно-таки ощутимая задержка. При этом проц. загружен на все 100%. Казалось бы, что тут криминального, обычный Cancel?!

Кто-нибудь знает в чём проблема и как её решить?

Спасибо.
Автор: yuish
Дата сообщения: 12.03.2007 11:27
Есть cxDBTreeList, в нем поля 1. ImageComboBox, 2. текст
Как сделать что бы при отображении, если в 1 нет картинки (значение равно 0), поле не отображалось совсем, а было только поле 2?
А то получается что при раскрытии списка все текстовые поля выравниваются и там где картинок нет огромное пустое место.

Добавлено:
HamilcarBarkaRU
реально работать в гриде с 50000 записей практически никогда и не надо то. оптимизируй запросы, что бы не выводить такое кол-во. данная тема кажется уже не раз обсуждалась на форуме. Ведь как я понимаю, ты хочешь сделать какой то анализ в этой куче записей, ну вот и делай его в запросе. А версия и тип грида тут ни при чем. При подобных кол-вах все будет тормозить (для примера попробуй всю эту кучу просто в браузер вывести простым текстом - тоже замрет)
Автор: VikLabel
Дата сообщения: 12.03.2007 13:50
Всем привет!
Как у cxPageControl установить другой цвет за закладками?
И другие цвета: цвет фрейма, цвет границы закладки?
Автор: iogun
Дата сообщения: 12.03.2007 13:58
в компоненте TVerticalGrid есть строка cxDBVerticalGrid1DBEditorRow2, св-во properties.EditProperties: TcxButtonEditProperties. Как мне программно получить доступ к значению этого поля вне процедуры клика по кнопке этого компонента. Допустим при закрытии формы хотелось бы проверять значение этого поля, но не используя DataController. Я попробовал так
...
TcxButtonEdit(cxDBVerticalGrid1DBEditorRow2.Properties.EditProperties).Text...
...
вываливается исключение "несоответствие типов" TcxButtonEdit и TcxButtonEditPropertis.
Подскажите как мне получить доступ к нужным мне свойствам, ведь они есть и редактируются?
Автор: jicoff
Дата сообщения: 12.03.2007 14:16
iogun

Уже писалось об этом, и хотя бы смотреть надо иногда в хелп. TcxButtonEdit и TcxButtonEditPropertis - это совершенно разные типы данных, один от другого не наследует. Любой edit, в данном случае TcxButtonEdit, появляется в момент активизации ячейки. Не факт, что при закрытии у тебя вообще есть активный редактор в гриде. Попробуй посмотреть по аналогии с TcxGridTableView.Controller.EditingController.
Автор: yuish
Дата сообщения: 12.03.2007 15:13
VikLabel
На сколько я понял (правда разбирался уже давно) там можно выбрать только стиль закладок а их цвета она берет из настроек винды
Кстати, очень легко любые необходимые цвета выставляются в JvgPageControl (JEDI)
Автор: iogun
Дата сообщения: 12.03.2007 19:43
jicoff
дело в том, чт хелпы веся 30мб, дорого качать их
а проблему я решил так
cxDBVerticalGrid1DBEditorRow2.value
Автор: HamilcarBarkaRU
Дата сообщения: 13.03.2007 09:01
Добавлено:
<b>yuish</b>
В принципе да, работа с большим количеством записей - это не совсем правильно, но мне это необходимо (как один из режимов работы программы - как говорится на страх и риск пользователя). Есть у меня и фильтрация, но иногда всё-таки требуется и отображение не отфильтрованного списка. В других гридах подобных проблем не возникает(TDBGrid, TDBGridEh) - я ведь говорил не о получении данных с сервера, а о работе с уже полученными данными.

Кстати, заметил, что у TcxGrid'а проблемы возникают не только при отмене, но и при любой операции, связанной с выходом из режима редактировния/вставки(dsInsert, dsEdit) в режим просмотра(dsBrowser). Плюс, время "ступора" TcxGrid'а зависит от количества отображаемых в нём столбцов. Если отображается один-два столбца, то даже на больших датасетах всё проходит нормально (с небольшой задержкой, едва улавливаемой), а когда столбцов становится больше 5-ти(примерно) начинаются проблемы.

Ещё раз уточню:
1. Данные уже получены(порядка 50000 записей, хотя проблемы возникали и при 10000 записях).
2. Я начинаю править или добавлять строку (переходим в режим dsInsert or dsEdit).
3. Я либо сохраняю (Post), либо отменяю изменения (Cancel) -> загрузка проца на 100% на ощутимый период.
Автор: OXDBA
Дата сообщения: 13.03.2007 11:25
HamilcarBarkaRU
Хочешь как TDBGrid, TDBGridEh - ставь GridMode в True
Автор: infomSB
Дата сообщения: 13.03.2007 12:49

Цитата:
щё раз уточню:
1. Данные уже получены(порядка 50000 записей, хотя проблемы возникали и при 10000 записях).
2. Я начинаю править или добавлять строку (переходим в режим dsInsert or dsEdit).
3. Я либо сохраняю (Post), либо отменяю изменения (Cancel) -> загрузка проца на 100% на ощутимый период.

Советовать здесь бесполезно потомучто проблемы могут быть в самом гриде и исправить их простым исправлением пару строк не возможно, отсюда вывод....переделывать в другом месте.
1 совет, никогда не использовать режим редактирование в гридах где более 1000 записей, предлагаю отдельно использовать форму редактирования или редактировать рядом с гридом.
2 совет использовать SDAC для того чтобы можно было обновлять только одну строку, и вообще попробовать использовать SDAC или ODAC ...
Автор: kooxymooxy
Дата сообщения: 13.03.2007 13:09
День добрый!
наверное глупый вопрос, но... какой комбинацией клавиш в cxDBTreeList вставить дочерний нод?
я даже в демках не могу почему-то ... (
Автор: HamilcarBarkaRU
Дата сообщения: 13.03.2007 13:29

Цитата:
OXDBA


Цитата:
HamilcarBarkaRU
Хочешь как TDBGrid, TDBGridEh - ставь GridMode в True


Спасибо за помощь, хотя я и сам уже нашёл ответ. Жаль что теперь не будет автосортировка работать.

Автор: Dronton2
Дата сообщения: 13.03.2007 13:30
waik
пару лет назад в такой ситуации я копировал gdiplus.dll со своего компьютера на компьютер пользователя в папку, в которой расположена программа, требующая gdiplus.dll
Автор: waik
Дата сообщения: 13.03.2007 13:51
Dronton2

Да так и сделал. Спасибо за совет. Теперь хотя бы запускается... Правда на тулбаре кнопки без картинок - пустые квадратики. правда там ещё заглушка стоит на библиотеку msimg.dll -пустая(функции описал но они ничего не делают). А вообще есть способ нормально запустить на NT4 программы написанные с использованием наворотов devexpress?
Автор: iogun
Дата сообщения: 13.03.2007 14:45
использую cxDBVerticalGrid
строка cxDBVerticalGrid1DBEditorRow2.EditProperties =LookupComboBox
мне нужно передать в отчет значение отображаемого текста (а не значение поля) которое выбирается из списка. Не могу понять как это можно сделать. Смотрел это:

Цитата:

VoodooSV

1. Key Value это
TcxDBLookUpComboBox(sender).EditValue
в EditValueChanged event
2. Displayed value это TcxDBLookUpComboBox(sender).Text


обработка события EditValueChanged event не подходит, т.к. значение в записях уже выбрано мне нужно просто получить отображаемое значение передать его в отчет
Автор: jicoff
Дата сообщения: 13.03.2007 17:10
iogun

Не пробовал такой подход к решению задачи:

TcxCustomRow -> ViewInfo -> RowValueInfo[ARecordIndex, ACellIndex: Integer] -> DisplayValue
Автор: VikLabel
Дата сообщения: 13.03.2007 18:23
yuish
Тащить ещё пакет JEDI!

Код:
procedure TForm1.cxPageControl1DrawTab(AControl: TcxCustomTabControl;
ATab: TcxTab; var DefaultDraw: Boolean);
begin
if ATab.IsMainTab then
ATab.Color := clWhite
else
ATab.Color := clBlack;
end;

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

Предыдущая тема: Язык программирования на русском языке


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