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

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

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

ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

golkanavt



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

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




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

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:31 07-02-2009 | Исправлено: vladman, 14:36 24-10-2009
vladman

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

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

Без малейшего понятия. Откуда мне знать что это за AdsTable1 и как именно работает конструкция AdsTable1.AdsIsRecordDeleted(AdsTable1.AdsGetRecordNum).
И что тогда красится, когда удаленные записи не отображаются? По идее все должно быть белым.

Цитата:
И в статье ведь речь идет о записи, на которой фокус стоит, правильно?

Правильно, с статье идет речь о фокусед, но это лишь для доступа к какой-то определенной записи, чтобы показать различные ее индексы. Вся ценность статьи в том, что в DataControllere есть понятие индекса для записи датасета и индекса для строки грида, и что это *две большие разницы*. Вкратце, индекс записи (Recordа) датасета не меняется при сортировках группировках, фильтрации, а индекс строк меняется.
 
Добавлено:
Postscriptum

Цитата:
Мне кажется - мы не понимаем друг друга. Вот 1 скрин - показываются удаленные записи (3-я):  
Вот 2-й скрин - не показываются удаленные записи. И начение AViewInfo.GridRecord.RecordIndex+1=3 у четвертой строки!!!  

Я же уже написал, вставьте элементарную проверку в ваш TForm4.cxGrid1DBTableView1CustomDrawCell

Код:
if AdsTable1.AdsIsRecordDeleted(...) and AdsTable1.<ShouldShowDeletedRecord> then
    ACanvas.Brush.Color :=  clRed  
 else
   ACanvas.Brush.Color:=OldC;  

Пусть вместо AdsTable1.<ShouldShowDeletedRecord> будет <YourCheckBox>.Checked
или еще лучше:
Самой первой строкой в этом же обработчике  
if not <YourCheckBox>.Checked then Exit;

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 18:01 24-09-2009
Chukotka

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

Цитата:
Delphi 2007, DevExpress 45 ничего похожего не показывает  

Судя по поведению, похоже что у DockManager'a не установлена опция doTabContainerCanClose - при нажатии кнопки закрытия Float-формы последовательно закрываются вкладки таб-контейнера.  
Не могли бы выложить код проекта, чтобы я попробовал скомпилить у себя (не уверен. правда, что 45 версия обратно совместима с 42, но все же)

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 23:03 24-09-2009
vladman

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

Цитата:
похоже что у DockManager'a не установлена опция doTabContainerCanClose

Да, собственно, и не было никакого DockManager . Но даже с DockManager'ом и с установленным этим свойством - все работает верно.

Цитата:
Не могли бы выложить код проекта, чтобы я попробовал скомпилить у себя

Да чего же не мог. Вот, пожалуйста _http://rapidshare.com/files/284534776/FloatTabContainer.rar.html

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 01:11 25-09-2009
Postscriptum



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

Цитата:
или еще лучше:  
Самой первой строкой в этом же обработчике  
if not <YourCheckBox>.Checked then Exit;

Точно! Вот я протупил! Спасибо. Наконец-то сработало!

Всего записей: 464 | Зарегистр. 31-01-2004 | Отправлено: 01:27 25-09-2009
Chukotka

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

Цитата:
Да, собственно, и не было никакого DockManager . Но даже с DockManager'ом и с установленным этим свойством - все работает верно.
Откомпилировал Ваш пример - он работает и у меня. Но если установить у DockManager'a опцию doFreeOnClose - возникает вышеописанная ошибка.
Не могли бы вы проверить работу примера с установленной опцией doFreeOnClose?

Всего записей: 428 | Зарегистр. 01-11-2006 | Отправлено: 10:00 25-09-2009
vladman

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

Цитата:
Не могли бы вы проверить работу примера с установленной опцией doFreeOnClose?
 

Да, при установленном doFreeOnClose тоже вываливается с ошибкой List index out of bounds. И, вы правы, это происходит только в случае размещения панелей в TabContainer.
Вообще-то странно. Эту ошибку должны были исправить еще в 2007 году в версии 5.33. Может снова в каком-то релизе внесли. Немного позже посмотрю что именно они исправили относительно этого бага в 5.33.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 11:16 25-09-2009 | Исправлено: vladman, 11:18 25-09-2009
Radio_Kat

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

Цитата:
Radio_Kat  
А можно сслыку на ваш пост в суппорте, если не секрет, конечно.  
Может дело в компонентах доступа к БД? FireBird 2.5 вторая бета еще по-моему.  

vladman, там такой дико плохой английский что даже стыдно.  
видио которое проблемму демонстрирует вот тут:
http://rapidshare.com/files/284257918/avi_prime.rar.html
 
пока сапорт пишет:
 
With the FireBird 2.5 I ran your example, I've tried to reproduce the problem you described, but failed, sorry.
I ran your example with the FireBird 2.5, but failed to reproduce the problem you described, sorry.
....
Thank you for the video.  
Sorry, I can't reproduce this issue at our end. Please specify the exact TreeList version you're using.
 
так что даже не знаю в чем может быть проблемма.

Всего записей: 26 | Зарегистр. 02-06-2006 | Отправлено: 11:20 25-09-2009 | Исправлено: Radio_Kat, 11:24 25-09-2009
FunCode



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

Цитата:
Radio_Kat
там такой дико плохой английский что даже стыдно.  
видио которое проблемму демонстрирует вот тут

улыбнуло

Всего записей: 182 | Зарегистр. 22-10-2006 | Отправлено: 11:49 25-09-2009 | Исправлено: FunCode, 11:51 25-09-2009
Postscriptum



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, а можно в девовском DBGride егошными средствами например выделить несколько ячеек в одном столбце и вычислить их сумму?

Всего записей: 464 | Зарегистр. 31-01-2004 | Отправлено: 12:16 25-09-2009
vladman

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

Цитата:
Подскажите, а можно в девовском DBGride егошными средствами например выделить несколько ячеек в одном столбце и вычислить их сумму?

Можно, обратите внимание на свойство DataController.Summary.Option.soMultipleSelectedRecords. Подробнее - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxDataSummary_Options.htm
 
Добавлено:
Radio_Kat

Цитата:
так что даже не знаю в чем может быть проблемма.

Можно попробовать все тоже сделать на Firebird 2.1. Если не решит проблему, попробовать другие компоненты доступа.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 12:38 25-09-2009
SIgor33

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите почему TcxSpreadSheetBook не хочет открывать excel книгу пишет invalid data. в Книга имеются защищенные ячейки что по ошибке туда что нибуть не записали

Всего записей: 652 | Зарегистр. 03-03-2009 | Отправлено: 12:47 25-09-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть связка firebird 2.0.5 <- fibplus 6.9.6 <-cxGrid x43
 
Добавляю в цикле записи в таблицу, добавляю записи НЕ через fibDataSet, а прямо в грид
 

Код:
ForEachRow(false, FillFromSpr);
 
....
FillFromSpr(...)
begin
.....
dbgSyncSpr.DataController.Append;
dbgSyncSprID_SPR.EditValue        := Values[ARowInfo.RecordIndex, dbgIdSprID.Index];
dbgSyncSpr.DataController.Post;
....
 

 
Проблема в том, что первые 100-150 записей добавляются сравнительно быстро, в вот потом... примерно 1 запись в секунду.
beginupdate использую
 
Что может так тормозить в последствии?
 
Просто непонятно, почему первая сотня добавляется быстро а потом начинает тормозить?
 
Индексов в таблице нет, кроме первичного ключа. Заполняю всего три поля: два целочисленных одно строковое на 30 символов.
 
 
Добавлено:
Про то, что лучше добавлять напрямую в датасет - я знаю, и про то, что подтверждать транзакцию каждые 1000-2000 записей - тоже.  
Вот интересует почему первая сотня добавляется быстро а потом начинает тормозить?  
Не в cxGrid ли дело?

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:48 25-09-2009 | Исправлено: X11, 14:49 25-09-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Итак, столкнулся кое с какой не поняткой при переходе с EhLib на DevExpress, а точнее при замене TDBLookupComboboxEh на TcxDBLookupComboBox.
Заменил стало быть компоненты, установил ListSource, ListFieldNames и KeyFieldNames. Запускаю стало быть проект, показывает мой список без проблем, но при это после выбора в списке чего-нибудь комбик складывается и пустота в нем. То есть сам список комбика показывается, но как бы ничего не выбирается. В чем собака зарылась?

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 15:31 25-09-2009
vladman

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

Цитата:
Проблема в том, что первые 100-150 записей добавляются сравнительно быстро, в вот потом... примерно 1 запись в секунду.
beginupdate использую  

В ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TcxCustomDataController_Append.htm указано:
Note:   Do not call the Append method within the BeginUpdate/EndUpdate and BeginFullUpdate/EndFullUpdate blocks.
 
 
 
Добавлено:
Cryogen2003

Цитата:
То есть сам список комбика показывается, но как бы ничего не выбирается. В чем собака зарылась?

Вы не забыли установить свойства DataBinding.DataSource и DataBinding.DataField?

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 16:06 25-09-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Дык и не устанавливал я эти поля. В EhLib все и так работало. ок, как сделать так, чтобы у меня все работало без проблем?
есть Table, в нем данные ListId и ListValue (ну то есть какие-то действия и стало быть их коды), надо дать пользователю выбирать ListValue, но в базу как-бы нуно сохранять ListId. Как сохранить я сам разберусь, но как сделать так, чтобы все работало. Table один, DataSource один, если и ListSource и в DataBinding.DataSource запихнуть мой DataSource, орет, что идет зацикливание.

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 16:18 25-09-2009
rainebove

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте только начал изучать компоненты DevExpress и столкнулся с такой проблемой, пытаюсь занести данные в cxGrid использую AdoConnection StoredProc DateSet. В StoredProc хранимка следующего содержания:
 
SELECT  pd.PersonId, pd.DocText  
FROM PersonDoc pd  
 
в PersonDoc 3 разных записи
 
cxGrid2DBTableView1DBColumn1 -> properties =LookupComboBox, ListFieldName =DocText, KeyFieldNames =id, остальные свойства по дефолту
в результате выполнения в cxGrid заносится первая запись и повторяется 3 раза, хотя в фильтр->настроики (выпадающ список) выводятся все записи. Подскажите пожалуйста что не так?

Всего записей: 9 | Зарегистр. 31-08-2009 | Отправлено: 16:42 25-09-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman, спасибище!!!
Изменил на
dbgSyncSpr.DataController.AppendRecord;
теперь летает. Ура!
 
Добавлено:
Летает-то летает. Только теперь после завершения цикла выполнения в базе только одна запись
 
Добавлено:
а в этом примере не очень-то и понял как добавлять правильно записи через грид в базу
ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_Example_TcxCustomDataSource_AppendRecord_InsertRecord.htm

----------
/не мы такие, жизнь такая/

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:57 25-09-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cryogen2003
Не совсем понятно что именно вы хотите сделать. Если хотите чтобы в некоторое поле таблицы А сохранялись не сами значения из таблицы B а их (значений) коды, а при визуализации данных таблицы А вы эти коды резолвите в соответствующие значения с помощью cxDBLookupComboBox, то совершенно справедливо "орет, что идет зацикливание" так как в вашем случае таблица А и таблица В это одна и та же таблица. Если вы хотите просто лукап, которые не сохраняет значения в таблицу, тогда используйте не DBAware версию лукапа - cxLookupComboBox .
Чтобы все работало - ListSource (это таблица В) оставляйте так как есть, а в DataBinding.DataSource укажите DataSource ссылающийся на другую таблицу (таблица А) и в DataBinding.DataField соответствующее поле из этой же таблицы А.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 17:15 25-09-2009
Cryogen2003



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Да нет же, есть только таблица А, нужно чтоб показывалось поле B, а в базу записывалось поле C (код поля B). в лукапе EhLib такой фокус без проблем проходил

----------
Холодильники мы

Всего записей: 745 | Зарегистр. 08-12-2004 | Отправлено: 17:18 25-09-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rainebove
А в сам cxGrid вы каким запросом выбираете данные?
 
Добавлено:
Cryogen2003

Цитата:
в лукапе EhLib такой фокус без проблем проходил

Не понимаю, к сожалению, что вы имеете ввиду. Давайте откомпилированный exe в котором это реализовано с помощью EhLib.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 17:18 25-09-2009
   

Страницы: 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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 3)
ShIvADeSt (31-12-2009 04:49): Продолжаем тут http://forum.ru-board.com/topic.cgi?forum=33&topic=10884


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru