Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress

Модерирует : ShIvADeSt

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

golkanavt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DevExpress

Обмен опытом, обсуждение нюансов и решение проблем возникающих при использовании библиотеки компонент Developer Express




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имею БД: ADO (*.mdb, драйвер Microsoft.Jet.OLEDB.4.0) + cxGrid (DevExpress ExpressQuantumGrid Suite 5.14). Запускаю приложение. При попытке ввести данные в поле "Дата" (в Access (MS Office 2003 SP1) формат поля "Дата" установлен как "Дата/Время") возникает ошибка:
 
"Project Project 1.exe raised exception class EVariantOverflowError with message 'Overflow while converting variant of type (Integer) into type (Date)'. Process stopped. Use Step or Run to continue."
 
В настройках cxGrid формат поля "Дата" установил на "DateTime", но ошибка не исчезает. Удалил cxGrid, поставил стандартный DBGrid - ошибки нет, всё пучком.
 
Вопрос: как при таком раскладе настроить cxGrid?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 20:09 23-03-2006
mln141



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
См стр 18-19 там это обсуждалось. В новой версии (март) это вроде вылечено (протестировать до конца не успел)

Всего записей: 86 | Зарегистр. 18-05-2005 | Отправлено: 09:38 24-03-2006
oly

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gpi, vshersh
я использую cxGridDBBandedTableView...
если поля Наименование товара, план и факт сделать Column, то получается шапка в виде
-------------------------------------  
|<пустой band>|  Кол-во        |  
|------------------|----------------|  
|Наименование |          |         |
|товара            |план   | факт |  
-------------------------------------  
как тогда избавится от <пустой band>?
 
а если поля Наименование товара, план и факт сделать Band, то тогда теряем функциональность колонок (

Всего записей: 4 | Зарегистр. 23-03-2006 | Отправлено: 10:25 24-03-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mln141
Сделал всё так, как сказал VadimLou, но всё равно не помогло (((

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 11:30 24-03-2006
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
to oly
А что если сделать требуемую шапку используя band а колонки снизу оставить, только не дублировать в них названия а скажем просто пронумировать
-------------------------------------  
|                      |  Кол-во        |  
|Наименование |----------------|  
| товара           |          |         | - band  
|                      |план   | факт |  
-------------------------------------  
|         1           |   2      |   3    | - колонки
-------------------------------------
Громоздко конечно, но функционал сохранится
 
Ну или наконец убрать колонки и самому написать по клику на band требуемый функционал.

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 11:50 24-03-2006 | Исправлено: Dennica, 11:52 24-03-2006
SerjP75

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток. У TcxGridDBColumn выставлено properties ExtLookupComboBox. На OnCloseUp стоит обработчик, как определить, закрылось окно выбора с возвратом результата или нет(например по Esc). Обработчик на EditValueChanged не подходит по некоторым причинам

Всего записей: 18 | Зарегистр. 17-02-2006 | Отправлено: 13:05 24-03-2006
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
to SerjP75  
Почему интересно нельзя воспользоваться EditValueChanged которая и предназначена для определения реакции на изменение значения?
Если обязательно нужно использовать OnCloseUp, то мне кажется без доп переменной не обойтись. Можно сделать примерно так
unit Unit1;
type
  TForm1 = class(TForm)
  ...
  private
    OValue: Variant;
  end;
...
procedure TForm1.cxGrid1DBTableView1id_platformPropertiesCloseUp(
  Sender: TObject);
begin
  if OValue <> TcxLookupComboBox(Sender).EditValue then
    showmessage('pruved');
end;
procedure TForm1.cxGrid1DBTableView1id_platformPropertiesInitPopup(
  Sender: TObject);
begin
  OValue := TcxLookupComboBox(Sender).EditValue;
end;
end.
Ну плюс мож нужно будет добавить проверку на null

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 14:43 24-03-2006
mln141



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
А версия какая? Я, например, использовал прошлогоднюю (то-ли май, то-ли март - не помню). Там все с датой ОК. Потом пошли глюкавые версии. На новую (мартовскую) думаю перекомпилить готовую программу на след. неделе. Но пробовал тестовую написать - вроде не ругается. БД у меня тоже на Аксессе (правда 2002).

Всего записей: 86 | Зарегистр. 18-05-2005 | Отправлено: 17:27 24-03-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mln141
5.14 (вроде как последняя, более свежей я ещё не видел).
 
Проблема до сих пор не решена. Все методы и решения, предложенные мне и опубликованные здесь, - не работают.
 
ОС: XP+SP2,
DELPHI (ent): 6+SP1+SP2
 
 
Блин, очень жаль, грид ведь действительно суперский, но этот глюк, чтоб его...
В основном, юзал ehlib'овскую библиотеку, но после dev'а на другое даже смотреть не хочется (((

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 18:47 24-03-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
Как совсем экстремальный вариант - используй ADOQuery и для поля с датой преобразуй его в строку вида '2006-03-24 09:00:55'. А гриде самостаятельно преобразовуй эту строку в DateTime и обратно. А вообще по опыту, ADO Access и Delphi - это полная задница: разные версии MS DAC и ОС приводят к СОВСЕМ разному поведению приложения на клиентских машинах.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 20:08 24-03-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так, трабл с датой разрешён, всем спасибо!
 
Новый интерес:
есть три поля в cxGrid. Допустим, поля и данные выглядят таким образом:
 
____________________
Дата | Имя | Заметки
____________________
 
1979 | ФИО | лысый
----------------------------
1992 | ФИО | холост
 
 
В правом углу каждого поля есть выпадающее мини-меню (фильтр) с пунктами "Все", "Выбор..." и данными, забитыми в ячейки поля (для более быстрой выборки, как я понял).
Внимание, вопрос )))
 
Например, я вызвал меню поля "Дата", выбрал в списке фильтра "1979". Но вызвав вслед за этим меню поля "Заметки" и выбрав в фильтре "холост", - я никаких данных получить не смогу - грид как не догоняет, что ему нужно искать среди всех записей, а не только среди тех, которые начинаются на "1979" ((( Приходится вручную "сбрасывать" результаты предыдущей фильтрации путём выбора в фильтре значения "Все"...
 
Какой опцией можно сделать так, чтобы грид в режиме фильтра постоянно искал запросы среди всех записей (всегда, как при первом запуске фильтра)?

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 21:46 25-03-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну только если так:
 
procedure TForm8.cxGrid1DBTableView1DataControllerFilterBeforeChange(Sender: TcxDBDataFilterCriteria;
  ADataSet: TDataSet; const AFilterText: string);
var
  i: Integer;
  Item: TcxFilterCriteriaItem;
  ItemLink: TObject;
  OperatorKind: TcxFilterOperatorKind;
  Value: Variant;
  DisplayValue: string;
begin
  if (Tag = 1) then Exit;
  Tag := 1;
  try
    Item := Sender.Root.Items[Sender.Root.Count-1] as TcxFilterCriteriaItem;
    ItemLink := Item.ItemLink;
    OperatorKind := Item.OperatorKind;
    Value := Item.Value;
    DisplayValue := Item.DisplayValue;
    Sender.Root.Clear;
    Sender.Root.AddItem(ItemLink, OperatorKind, Value, DisplayValue);
  finally
    Tag := 0;
    ADataSet.Filter := AFilterText;
    ADataSet.Filtered := True;
  end;
end;
 
Хотя конечно это решение через задницу. Но по-другому не выйдет. Корректней все-таки сначала сбрасывать фильтр вручную хотябы через специальную кнопочку.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 22:09 26-03-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ёпрст...
У тебя-то этот код пашет, нет?
 
Блин, я просто думал, что это где-то в опциях спрятано...
 
Ок, сегодня попробую...

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 22:31 26-03-2006
vshersh



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
reenoip
Попробуй выставить свойство AutoDataSetFilter в False
(свойство находится в DataController.Filter.AutoDatasetFilter)

Всего записей: 506 | Зарегистр. 12-01-2006 | Отправлено: 10:44 27-03-2006
UNHELPMAN



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я извиняюсь - если не туда попал . Но вроде как  больше и некуда .  Суть вопроса -  
Имеем DevExpress ExpressWeb Framework 1.6.0 - D7. Устанавливается за счёт  своего инсталятора. При запуске  ЛЮБОГО демо , при попытке рассмотреть HTML (cxWebPageModule свойство DesignerID = HTML)  получаем ассес виоленшн, с криками не верной версии mshtml.dll. При переключении DesignerID = Form  работает . Проверялось с различными версиями Framework - (начиная с 1.*) Всё это происходит на ХР pro + 2 sp + "pre SP3" (заплатки различные.) Кто сталкивался и чем залечил ????

Всего записей: 209 | Зарегистр. 28-11-2004 | Отправлено: 18:25 27-03-2006
reenoip



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vshersh
Стоит в "False" - эффект нулевой.
Думаю, эта фишка не лечится: всю ночь с опциями копался (широкий грид, однако)))), но нужную так и не нашёл...
 
Фак, фак, фак...

Всего записей: 1768 | Зарегистр. 10-03-2006 | Отправлено: 19:34 27-03-2006
xokc

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
У тебя-то этот код пашет, нет?  

Ну если бы не пахал - я бы не писал
 

Цитата:
Попробуй выставить свойство AutoDataSetFilter в False  

Это не из той оперы.
 

Цитата:
Думаю, эта фишка не лечится

Я же сразу сказал - очевидного решения нет. Впрочем, и не очевидное кривовато.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 19:47 27-03-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
олучаем ассес виоленшн, с криками не верной версии mshtml.dll

Попробуй обновить МС парсер ХМЛ, вот например у меня с Д2006 есть пакет, msxml.exe, 5 289 984
 
 
Добавлено:
Парни помогите!
У меня есть грид (grid)
у него есть 2 уровня- level, slavelevel.
У каждого уровня по банду - BandedView, SlaveBandedView
Сделано это для реализации мастер детаила.
Все работает, все отлично.
 
Но есть проблема - у каждого из бандов свой скролбар. Когда я скролю нижний (мастер) то скролится только мастер банда, а когда верхний (детаил) скролится детаил.
Я хочу что бы при скролинге мастера скролился и детаил. Кол-во колонок одинаковое.
Я пытаюсь с реализовать все это дело.
 
Нашел событие скрола BandedViewLeftPosChanged
нашел как узнать текущую позицию скрола  
TcxGridTableView(Grid.FocusedView).Controller.LeftPos
теперь если я делаю так например с кнопки
TcxCustomGridTableView(Grid.FocusedView).Controller.Scroll(sbHorizontal, scLineDown, 0);
то все круто мастер банд скролится.
 
а мне надо скролить детаил! у меня не получается потому что я немогу достучатся правельно до детаил банда. Если делаю так, то получаю индекс за пределами
TcxCustomGridTableView(SlaveBandedView).Controller.Scroll(sbHorizontal, scLineDown, 0);
TcxCustomGridTableView(grid.Views[1]).Controller.Scroll(sbHorizontal, scLineDown, 0);
 
как решить пою задачу? В идеале просто хотелось бы что бы главный скрол был синхронизирован с детаил.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 07:15 28-03-2006
Alex47



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ArtemiyUO
 
А так не прокатит ( вместо TcxCustomGridTableView(SlaveBandedView).Controller.Scroll(sbHorizontal, scLineDown, 0);):
 
var
Index: Integer;
ARecord: TcxCustomGridRecord;
RelIndex: Integer;
DetailDataController: TcxCustomDataController;
 
begin
 
 ARecord := cxGrid1MasterView1.Controller.FocusedRecord;
 Index := ARecord.RecordIndex;
 RelIndex := ARecord.ViewData.DataController.
               GetDetailActiveRelationIndex(Index);
 DetailDataController := cxGrid1DBTableView1.DataController.
                           GetDetailDataController(Index,RelIndex);
 TcxGridDBDataController(DetailDataController).Controller.Scroll((sbHorizontal, scLineDown, 0);
...

Всего записей: 366 | Зарегистр. 20-03-2003 | Отправлено: 12:10 28-03-2006
ArtemiyUO

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex47
Спасибо за помощь, но не получается.
несовсем понял что есть cxGrid1MasterView1, я написал BandedView (т.е. вив мой мастер)
это тоже не понял что есть  
cxGrid1DBTableView1, написал SlaveBandedView
и такого типа тоже нет TcxGridDBDataController
и помоему сдесь нужен не контроллер а именно View, потому что метод скрол именно его.
 
Вообщем если не сложно уточни.

Всего записей: 539 | Зарегистр. 12-12-2005 | Отправлено: 12:55 28-03-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru