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

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

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

ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

   

ShIvADeSt



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

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




 
Сами прирученные компоненты частенько приходят на водопой сюда
 
DLL со скинами из библиотеки dxSkins, автор Ziltoid Подробнее... линк обновлен
Продолжение, начало тут
 

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 03:16 29-01-2007 | Исправлено: VitaliM, 15:47 24-11-2008
Samara123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть запрос, который по двум датам начала и окончания, возвращает месячные периоды, то есть например:  
05.01.2007 и 01.05.2007 - даты. Запрос возвращает:  
------------------------  
05.01.2007 | 05.02.2007  
05.02.2007 | 05.03.2007  
05.03.2007 | 05.04.2007  
05.04.2007 | 01.05.2007  
Эти данные выводятся в cxGrid в 3 столбца. 3ий столбец - количество дней в периоде. Количество дней подсчитывается при помощи калькулируемого поля. Требуется сделать, чтобы при изменении одной из дат в первом столбце руками, менялась дата в предыдущей строке во втором столбце на идентичную. И наоборот. Первую и последнюю даты менять нельзя. То есть дата первого столбца всегда была равна дате второго столбца предыдущей строки.  
Промучился достаточно долго. Во-первых единственное событие, которое выводит новое значение даты на экран это cxGrid1DBTableView1Column1PropertiesValidate со значением DisplayValue. Но при использовании SetValue к предыдущей строке при нажатии Ентер значение меняется, но при переходе на другу строку возвращается старое. При обработке OnUpdate происходит переполнение. Да и при обработках подобных событий бегать по строкам нельзя. Заночить значения в БД и заменять отталкиваясь от них не выход.  
Вобщем получается замкнутый круг какой-то. Подскажите плиз, что можно предпринять в данном случае?  
Спасибо.
П.С. Делать одно из полей вычисляемым на основании другого не вариант, так как надо, чтобы работало в обе стороны.

Всего записей: 3 | Зарегистр. 31-08-2007 | Отправлено: 10:40 31-08-2007
clear2121



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HI!
Поставил C++ Builder 2007. На компе так же стоит BDS C++ Builder 2006. Установил все компоненты в 2007 (нормально работают в 2006). Создал проект в 2007 с Девками и получил  
[BCC32 Error] dxBar.hpp(9336): E2034 Cannot convert 'void *' to '_di_IdxBarAccessibilityHelper'
 
Хотя если просто положить EDIT, то все проходить.
Вопрос: как можно прикрутить инсталятор от ФЕНДИ (августовский) к BDS 2006 и C++ 2007?
 
СПАСИБО!

Всего записей: 311 | Зарегистр. 07-04-2005 | Отправлено: 11:44 31-08-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Samara123
Если view связан с данными из датасета, то применять SetValue для установки значений нельзя. Нужно изменять сам датасет. Для такой задачи датасет должен естественно быть кэшыруемым, т.е. CachedUpdates должно стоять true. Вообще, если бы я начал делать эту задачу, то скорее всего вместо PropertiesValidate воспользовался бы OnUpdateData эвентом TDataSource. Попробую счас накидать код в качестве разминки.
 
Добавлено:
Samara123
Вроде работает...
 
Текст pas Подробнее...  
Текст dfm Подробнее...

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 11:44 31-08-2007
Samara123

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dennica, Спасибо огромное. Пытался также сделать, но не получалось, так как только что узнал, что есть DisableControls, правда что это такое пока не знаю, поэтому пошел читать маны.

Всего записей: 3 | Зарегистр. 31-08-2007 | Отправлено: 19:18 31-08-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Есть пара вопросов. Мне здесь не раз помогали и, я уверен, на то что в очередной раз помогут. Заранее благодарен.
 
Итак. Есть таблица, сгруппированная по 4 полям
 
   
 
Нужно:
1. Развернуть все уровни. Может есть у девок команда типа Развернуть всё.
2. Развёрнутую таблицу нужно сохранить как есть, т.е.
 
Название уровня1
Название уровня2
Название уровня3
Название уровня4
товар
товар
товар
Название уровня4
товар
товар
Название уровня3
Название уровня4
товар
товар

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 09:49 03-09-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
Развернуть все можно так:
cxGrid1TableView1.ViewData.Expand(True);
 
А вот насчет сохранения не понял. Что и куда нужно сохранить.
 
Добавлено:
Кстати начет разворачивания.. Если в принципе хочется видеть всегда все группы развернутыми, то можно просто DataController.Options.dcoGroupsAlwaysExpanded установить в true

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 10:01 03-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот я развернул всю тадицу, все группы, все товары, теперь эту таблицу нужно перекинуть, ну, допустим, в Excel. Но перекинуть в таком виде, в каком мы её видем на экране в развернутом виде:
 
вот в таком виде
 

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:11 03-09-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
для 6-го грида: (unit cxGridExportLink)
procedure ExportGridToExcel(const AFileName: string; AGrid: TcxGrid;
AExpand: Boolean; ASaveAll: Boolean; AUseNativeFormat: Boolean; const AFileExt: string);

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 10:21 03-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
в очередной раз Спасибо
 
Добавлено:
А как мне программно или в дизайне сделать такое?
   
 
чтобы пользователь не перетаскивал ручками, и, хотелось бы, чтобы эти поля вверху не были видны.

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 10:41 03-09-2007 | Исправлено: X11, 11:49 03-09-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
cxGrid1TableView1.OptionsView.GroupByBox := False;

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 13:21 03-09-2007 | Исправлено: Dennica, 13:22 03-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а как в дизайне или программно запихнуть в GroupByBox?

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 13:27 03-09-2007
Dennica



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

Цитата:
а как в дизайне или программно запихнуть в GroupByBox?

Ну в дизайнере судя по скринам ты уже умееш группировать
Програмно можно так: Column1.GroupBy(1, False);

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 13:37 03-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как программно развернуть всё или свернуть всё, т.е. полностью все ветки грида?
 
Добавлено:
разобрался
dbgItog.ViewData.Collapse(True);
dbgItog.ViewData.expand(True);

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:07 03-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На форме лежит cxRadioGroup, в нем три итема, проблема в том, запускаю программа, щёлкаю по компоненте, а выбрать получатся только получается только первый, как ни щёлкай, остальные 2 выбрать не получается, что я не так делаю?
На другой форме тоже есть точно такой же cxRadioGroup и он нормально пашет
Друзья, что делать, выручайте как можно быстрее
 
Добавлено:
да вот даже на одной форме лежит нескольк cxRadioGroup`оп, у одних можно все итемы выбрать, у других только первый, вернее нулевой
 
Добавлено:
даже в дизайне ставлю ItemIndex хоть 1, хоть 2 в Инспекторе Свойств, всё равно выбран нулевой итем
 
Добавлено:
дошло вроде, у ненормальных компонент, итемы имеют тип значения Boolean, а у нормальных (Null)
 
Добавлено:
vожет кто-нить пояснить, как же тогда выбирать итемы, когда у них тип не Null?
 
Добавлено:
Кто подскажет, как изменить программно колонтитулы в dxComponentPrinter?

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:21 04-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Разрешил пользователям менять высоту строк, да теперь текст в яцейках виден в 2-3 строки, но при печати текст всё равно в одну строку, есть решение этой проблемы?
{DevExpr_11_apr_2007}
 
Добавлено:
Вопрос по CxGrid: как выделять записи с помощью Ctrl и мыши, ну т.е. мне нужно выделить записи вразброс: первую, вторую, пятую, седьмую.

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 11:08 05-09-2007
yuish

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

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 12:37 05-09-2007 | Исправлено: yuish, 12:43 05-09-2007
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так включено, подряд несколько записей или все записи можно выделить, а как выделить первую, третью и пятую (с пом. Ctrl и мышки), а???

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 12:50 05-09-2007
aleksandrus



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток.
Я честно пытался найти ответ в обеих темах, но совсем запутался.
Как можно в cxGridDBTableView выделить подстроку в ячейке? (по аналогии как выделяется текст, если использовать инкрементный поиск).
я написал что-то навроде этого:
 
if( (cxGrid1DBTableView1->DataController->GetDisplayText(i, j)).AnsiPos(asText) > 0)
      {
        cxGrid1DBTableView1->Controller->FocusedRecordIndex = i;
        cxGrid1DBTableView1->Controller->FocusedColumnIndex = j;
        cxGrid1DBTableView1->Controller->EditingItem =     cxGrid1DBTableView1->Controller->FocusedItem;
        TcxCustomTextEdit *edtTest =
          (TcxCustomTextEdit*)cxGrid1DBTableView1->Controller->FocusedItem;
        if(edtTest)
        {
          edtTest->SetSelection(0,1);
        }
 
Но работает только если в гриде разрешено редактировать ячейки, а у меня как раз стоит cxGrid1DBTableView1->OptionsDara->Editing = false; и ячейки "readonly", соответственно edtTest получается NULL.
Пытался понять как выделяет встроенный "инкрементный поиск", но так и не смог, буду благодарен, если кто-нибудь наставит на "путь истинный".

Всего записей: 9 | Зарегистр. 29-01-2006 | Отправлено: 17:38 06-09-2007 | Исправлено: aleksandrus, 17:39 06-09-2007
brookson



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
 
Проблема следующая.
d2005, qgrid 6. cxgrid, cxtableview
 
Нужно в runtime присваивать значения ячейкам грида.
В хелпе написано, что так можно. В тестовом примете получилось с первого раза:
 
cxTableView.DataСoltroller.Values[i,j]:=...;
 
Но вот в чём  прикол. Повторить такое чудо больше не удалось, как ни стараюсь.
Пробую копировать этот грид на эту же форму, сверяю ВСЕ свойства вью, код тот же, а ячейки просто пустые.
 
Где собака зарыта, подскажите кто-то!! Опыта работы с этим монстром пока нет, и хелп ничем не смог помочь

Всего записей: 139 | Зарегистр. 06-09-2007 | Отправлено: 21:16 06-09-2007 | Исправлено: brookson, 23:39 06-09-2007
X11



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

Код:
 
cxTableView.DataСoltroller.Values[cxTableView.DataСoltroller.focusedRecordIndex, cxTableViewColumn1.index ]:=...;
 


Код:
 
For i := 0 to cxTableView.DataСoltroller.recordcount - 1 do begin
cxTableView.DataСoltroller.Values[i, cxTableViewColumn1.index ]:= ....
cxTableView.DataСoltroller.Values[i, cxTableViewColumn2.index ]:= ....
end;
 

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 08:57 07-09-2007
   

Страницы: 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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress 2
ShIvADeSt (07-02-2009 14:53): Продолжаем тут
http://forum.ru-board.com/topic.cgi?forum=33&topic=10123#1


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru