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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
xokc

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

Цитата:
Именно в приложении к Ribbon?

Именно в Риббоне.  

Цитата:
Только я не совсум понимаю, что в SDI  можно мёржить?

Ну очень просто - есть ряд потомков некоего базового класса, для настройки каждого из которых необходим свой уникальный dxBar, который и создается внутри этого класса. Каждый из классов реализован в виде отдельного pas и dfm с Риббоном и единственным dxBar. На главной форме есть ComboBox, по переключении которого текущий экземпляр класса вместе со своей панелью разрушается, а новый создается и туда добавляется. Все работает без проблем.

Всего записей: 477 | Зарегистр. 22-09-2002 | Отправлено: 19:14 25-05-2009
zaroman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
Спасибо огромное! Все работает!

Всего записей: 25 | Зарегистр. 12-05-2006 | Отправлено: 08:57 26-05-2009
vladman

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZalivkoDenis
zaroman
Не за что. Рад что все работает.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 11:07 26-05-2009
ATonik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток! Возникла проблема, которую никак не могу решить: Есть tcxVerticalGrid, в нем программно создается ряд с EditPropertiesClass = TcxLookUpComboBoxProperties. Как программно задать значение этого ряда (до того, как пользователь выбрал что-нибудь из выпадающего списка)?

Всего записей: 3 | Зарегистр. 26-05-2009 | Отправлено: 11:08 26-05-2009
jonikDk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ATonik
Грид же показывает данные из таблицы, вот и задай значение по умолчанию для полей таблицы

Всего записей: 1603 | Зарегистр. 01-03-2004 | Отправлено: 11:54 26-05-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Господа,в чем прикол в гриде или фибплюсе
вот селект и рефреш
SELECT
 a.OPER,
 b.NAME,
 a.DATA,
 a.ZA_MES,
 a.ZA_GOD,
 a.CYMA,
 a.NARAHOVANO,
 a.OTKOGO_KOMY,
 a.DOKYMENT,
 a.DOKYMENT_DATA,
 a.CTAN_AMORT_MASTER_ID,
 a.ID_A_INC
FROM
 DVIG_AMORT a
left join OPERACII b on a.OPER=b.OPER
WHERE
 a.CTAN_AMORT_MASTER_ID=?CTAN_AMORT_MASTER_ID
ORDER BY
 a.DATA  
 
-----------
SELECT
 a.OPER,
 b.NAME,
 a.DATA,
 a.ZA_MES,
 a.ZA_GOD,
 a.CYMA,
 a.NARAHOVANO,
 a.OTKOGO_KOMY,
 a.DOKYMENT,
 a.DOKYMENT_DATA,
 a.CTAN_AMORT_MASTER_ID,
 a.ID_A_INC
FROM
 DVIG_AMORT a
left join OPERACII b on a.OPER=b.OPER
WHERE(  
 a.CTAN_AMORT_MASTER_ID=?CTAN_AMORT_MASTER_ID
     ) and (     A.ID_A_INC = : OLD_ID_A_INC
     )
     
Грид - мастер детал,в детале стоит тру детаилинсклмоде,в фибсах автотранзаншин и комит
добавляю новую запись, пока я не кликну по нижней записи мастера и не открою
его детал а потом вернусь на нужный мастер и не открою детал - даные не обновляются.
Переоткрывать таблицу не прикольно

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 13:38 26-05-2009 | Исправлено: MagistrAnatol, 13:44 26-05-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а в фибах заполнены свойства autoupdate?
 
Добавлено:
cxGrid (UnBound). Там есть колонка типа LookupComboBox.  
Как в цикле по выделенным строкам (записям) узнать текст в этой лукап колонке?
 
Этот код даёт ID, а мне нужен текст.

Код:
 
for i := 0 to grid2.DataController.GetSelectedCount - 1 do begin
  if grid2.Controller.SelectedRows[i].Values[colRegion.Index] = .... then <-узнать текстовое значение
....
 

 
Надеюсь, что понятно пояснил.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:13 26-05-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11
для мастера стояла а для детайла
уже стоит , но блин в детайле новая запись нормально обновляется , зато все остальные записи детала для даного мастера пропадают, и надо опять перещелкивать по мастеру
шоб увидеть все детал записи

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 14:37 26-05-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А в гридах заполнено?
 
У мастера нужно выбрать в свойстве датаконтроллера KeyFieldName.  
 
У детального грида тоже в свойстве датаконтроллера выбрать KeyFieldName и DetailKeyFieldName текущего грида, а также MasterKeyFieldName мастер-грида.
В детельном гриде свойство MasterKeyFieldName должно указывать на ключевое поле мастер-грида.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:06 26-05-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11
ето все заполнено иначе не строится мастер-датал,
мож неправильно рефреш написан?

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 15:52 26-05-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. разве в рефреше не должно быть тоже самое по группировке, что и в селекте?
ORDER BY
 a.DATA  
 
2. A.ID_A_INC = : <не уверен, но должно быть без пробела> OLD_ID_A_INC  
Так:
A.ID_A_INC = LD_ID_A_INC  
 
3. a.CTAN_AMORT_MASTER_ID=?CTAN_AMORT_MASTER_ID  
тоже замени вопросительный знак на двоеточие.
 
Добавлено:
сxGrid. Есть колонка Memo.
Хочу такое реализовать. Пользователь выделяет текст мышкой или клавиатурой. Нажимает правую кнопку мышки и заносит выделенный текст в другую колонку текущей записи.
Для начала не могу понять, как прикрутить popupMenu к колонке типа Memo? Чтобы это менб показывалось только у этой колонки. У самого грида уже меню есть, назначено.

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 16:00 26-05-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11
я спецом сделал пробел - шоб не показывалася смайл,а заменить ща попробую
 
 
Добавлено:
замена ничего не дала

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 16:18 26-05-2009
ATonik

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

Цитата:
Грид же показывает данные из таблицы, вот и задай значение по умолчанию для полей таблицы

Используется TcxVerticalGrid, он не связан с таблицей

Всего записей: 3 | Зарегистр. 26-05-2009 | Отправлено: 17:08 26-05-2009
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может я неправ в чём-то, но заметил такую странность если cxGrid (unbound) отсортирован и сохраняет/восстанавливает сортировку. Dev43, D2007.
 
Предисловие.
В цикле наполняем грид.

Код:
 
//при создании и закрытии формы fmPreviewDB, grid2 восстанавливает и сохраняет настройки с помощью ini файла.  
 
       with fmPreviewDB, grid2 do begin
         DataController.Append;
         Columns[colSuperTypeId.Index].EditValue    := Types.idSuperType;
         Columns[colPhones.Index].EditValue         := sPhones;
         Columns[colSuperTypeName.Index].EditValue  := Types.IdType;
         Columns[colAD.Index].EditValue             := sAD;
         Columns[colAreaG.Index].EditValue          := Areas.g;
         Columns[colAreaI.Index].EditValue          := Areas.i;
         Columns[colAreaK.Index].EditValue          := Areas.k;
         Columns[colFloor.Index].EditValue          := Floors.floor;
         Columns[colFloors.Index].EditValue         := Floors.floors;
         Columns[colAparts.Index].EditValue         := iAp;
         Columns[colRegion.Index].EditValue         := idRegion; <= LookupComboBox
         Columns[colIS.Index].EditValue             := idIS;
 
         if Types.idSuperType = null then
           Columns[colToDataBase.Index].EditValue   := false
         else
           Columns[colToDataBase.Index].EditValue   := True;
 
         if Types.idSuperType = 1 then
           Columns[colFloors.Index].EditValue       := HouseFloor;
 
           
         DataController.Post;
       end;//with fmPreviewDB.grid2 do begin
 

 
Колонка colRegion = LookupComboBox.
 
Всё отлично заполняется и видится в табличке. Дальше идём.
 
Есть код, который меняет значение колонки. Т.е. пользователь мышкой выделяем записи, жмёт кнопку, выбирает из дерева нужную запись, и жмёт Далее.

Код:
 
      for i := 0 to grid2.DataController.GetSelectedCount - 1 do begin
        if fmSelRegion.cboxReplaceAllRegions.Checked then
          begin//если включено Заменять все районы
            grid2.DataController.Edit;
            grid2.Controller.SelectedRows[i].Values[colRegion.Index] := fmSelRegion.dbTreeRegionsReplace.DataController.GetKeyFieldsValues;
            grid2.DataController.Post;
          end else begin//иначе только поиск + замена
.....
 

Допустим, что в гриде 7 записей.
 
Теперь интересная странность.
Если грид отсортирован был ранее, как я уже описывал - грид сохраняет и восстанавливает настройки. Так вот, если грид отсортирован, то в колонке colRegions заменяются не все записи, остаётся 2 или 3 записи нетронутые.
А если сбросить сортировку, закрыть окно, заново наполнить грид, выделить все записи, заменить значение в колонке colRegions, то всё в норме, заменяются данные во всех записях.
 
Что  я не учёл, где ошибся?
 
Добавлено:
Берём ещё код.

Код:
 
  for i := 0 to grid2.Controller.SelectedRecordCount - 1 do begin
    grid2.DataController.Edit;
    grid2.Controller.SelectedRecords[i].Values[colRemark.Index] := s;
    grid2.DataController.post;
  end;//for
 

Опять же, если грид отсортирован по колонке colRemark, то значение переменной S присваивается не всем записям. Что не так?

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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:27 26-05-2009
jicoff

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

Цитата:
сxGrid. Есть колонка Memo...

 
Можно попробовать на событие GridView.OnInitEdit, у TcxMemo есть свойство PopupMenu, преобразовать AEdit к TcxMemo и вперед...

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 17:45 26-05-2009
Meister Floh



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vladman
1. Заметил такую вещь.. Количество элементов в ApplicationMenu->ExtraPane зависит от высоты самого меню.. И как сделать чтоб вместо 3 пунктов, как у меня было скажем 5 я так и не нашел..
2. И еще в DBTreeList->OptionsView->ScrollBars->ssBoth, так вот вертикальный скрол появляется нормально, а горизонтальный появляется тогда, когда не в зоне отображения 2/3 дерева, где регулируется эта чувствительность?
 
Не подскажете?

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 19:38 26-05-2009
vladman

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

Цитата:
Как программно задать значение этого ряда

<YourcxVerticalGridEditorRow>.Properties.Value := <YourLookupKeyFieldValue>;
 
Добавлено:
X11

Цитата:
Этот код даёт ID, а мне нужен текст.  

Раз нужен текст, так нужно и "говорить" Controller'у, что нужен текст
 
for i := 0 to grid2.DataController.GetSelectedCount - 1 do begin
  if grid2.Controller.SelectedRows[i].DisplayTexts[colRegion.Index] = .... then <-узнать текстовое значение  
 
Добавлено:
MagistrAnatol

Цитата:
Господа,в чем прикол в гриде или фибплюсе

Что-то из Вашей переписки с X11, к сожалению, так и не понял для себя суть проблемы. Если еще актуально, сделайте "компилябильный" пример с гридами, мастер-дитейлами, фибами. Думаю так будет быстрее понять в чем трудности.
 
Добавлено:
X11

Цитата:
Может я неправ в чём-то, но заметил такую странность если cxGrid (unbound)

Таки в чем-то неправ:

Цитата:
To iterate selected rows in unbound and provider modes, the data controller's GetSelectedRowIndex method must be used. It returns the row index of a specific selected row that can be used to retrieve information on the row using the GetRowInfo function.
 

Подробнее, даже с примером - ms-help://borland.bds5/ExpressDataController.BDS5/ExpressDataController/IDH_TExample_ChangeSelectedRecords_Unbound.htm
 
Добавлено:
Meister Floh

Цитата:
Количество элементов в ApplicationMenu->ExtraPane зависит от высоты самого меню..

Точно. Такая реализация обусловлена MS Ribbon UI Guidelines, по которому все риббон контролы и их поведение должны в точности соответствовать этому документу от Майкрософт. Поэтому самое простое, что приходит в голову, так это создать Fake TdxBarButton со свойствами Caption = '' и Enabled = Flase. Затем поместить такое количество этих Fake TdxBarButton в ApplicationMenu, чтобы высота этого ApplicationMenu меню была достаточна для помещения нужного количества пунктов в ExtraPane. Думаю, должно сработать.  
 
Добавлено:

Цитата:
а горизонтальный появляется тогда, когда не в зоне отображения 2/3 дерева, где регулируется эта чувствительность?  

Вроде бы не замечал такого поведения. Воспроизвести не смог. Давайте пример, посмотрим.

Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 00:25 27-05-2009 | Исправлено: vladman, 00:26 27-05-2009
MagistrAnatol



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vladman
Проблемы две:
1 - на главной форме я раскрываю ветки мастера - так вот,если я раскрыл их по крестику,но на запись мастера
не становлюсь я детаил записи не вижу надо токо становиться на конкретную запись мастера.Стал - пропали записи детала
с предыдущего мастера.Я когдато такой глючок победил - но не помню как.
2 - Я добавляю новую запись в детаил( в проге ето приход-расход) - после поста я вижу токо новую запись,
а те что уже были пропадают.Необходимо стать на любую другую запись мастера,раскрыть детаил щелкнуть по нем -  
потом вернутся на нужный мастер-раскрыть детаил и щелкнуть на нем и уже потом я увижу все записи включая новую
тута пример с базой пас стандартный  под ковриком
http://upload.com.ua/get/900873289/

Всего записей: 2120 | Зарегистр. 09-04-2003 | Отправлено: 09:28 27-05-2009 | Исправлено: MagistrAnatol, 09:39 27-05-2009
ATonik

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

Цитата:
<YourcxVerticalGridEditorRow>.Properties.Value := <YourLookupKeyFieldValue>;

Спасибо большое, все заработало.

Всего записей: 3 | Зарегистр. 26-05-2009 | Отправлено: 10:22 27-05-2009
Meister Floh



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

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

Кажется понял.. Если в дереве нет значков (я использую их через ImageIndexFieldName) - вроде как все отрабатывается. Как только ставлю значки, вот на их ширину и не отрабатывается появление скрола.. Но в общем это не столь критично, просто разобраться хотелось.. У меня там стоит сплитер, кому надо, может и раздвинуть, да и надобность такая скорее всего нужна будет в очень большой аппроксимации..
 
Тут более насущные вопросы назрели.. Смысл вот в чем.. Храню в некоем хранилище (не имеет значения где, в базе, в конфигурационном файле) набор статистических запросов.. Их количество заранее известно, скажем 5.. Цель в TdxBarLargeButton сделать выпадающую менюшку с группой радио-бутонов.. Типа выбираем один из них и делаем запрос нажатием кнопки. Казалось бы все прозрачно.. НО.. Запросы могут быть заполнены не все, и мне нужно дизэйблить те ради-бутоны, запросы к которым пустые.. Как задизэйблить отдельный ради буттон в группе, я так и не нашел.. Зато сразу нашел это свойство в чек бутонах, ну думаю, сделаю из чек бутонов радио бутоны (через зад конечно, но все-же) Все прекрасно.. но тут опять вилы - стандартного checked найти не могу.. А самое глюкавое в том, что в справке разделы, касающиеся properties для TcxBarEditItem - отсутствуют..

Всего записей: 393 | Зарегистр. 04-08-2003 | Отправлено: 11:09 27-05-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