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

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



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

Всего записей: 204 | Зарегистр. 27-10-2005 | Отправлено: 08:15 11-07-2007
X11



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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
Не пойдет, надо, чтобы форма появилась точно под кнопкой (как DropDownMenu).

Всего записей: 204 | Зарегистр. 27-10-2005 | Отправлено: 09:13 11-07-2007
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
drunk2
Используй mydxBarButton.ClickItemLink.ItemRect
ClickItemLink - контрол, на который щелкнули мышью. Для одного item их может быть много, например, кнопка на панели инструментов и в  меню.
ItemRect - координаты относительно родительского элемента. Сам родительский элемент получаешь так: mydxBarButton.ClickItemLink.BarControl и для него используешь GetFullItemRect, GetItemRect, GetItemRectEx - в hlp-файле это описано.
        

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 10:37 11-07-2007
Ivan_Kia

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста:    
   в cxGrid создан cxGridDBBandedTableView
Необходимо в footer выводить сумму, если только она положительная (больше нуля).
Выстявляю  
DBGrid->DataController->Summary->FooterSummaryItems->Items[i]))->Format =",0.00; ";
При значении суммы меньше -1 (например -5) отрабатывает правильно, т.е. отображается пробел.
При значении суммы меньше 0, но  больше -1 (например -0.05) отрабатывает не правильно, а именно 0.00
Это фича? Какой формат применить?

Всего записей: 2 | Зарегистр. 12-07-2007 | Отправлено: 08:08 12-07-2007
Bol970



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста,
по какому событию определить
в cxGrid в какую
1 - ячейку,
2 - строку,
3 - столбец
тыкнули мышой за раз.
Т.е. я тыкаю в ячеку и получаю ее содержимое,
а так же объект строки и столбца.
В TableView.OnCellClick через TcxGridTableDataCellViewInfo
ACellViewInfo.GridRecord.DisplayTexts[Column]
можно получить значение, но я не могу узнать
в какой столбец (Column) тыкнули.

Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 11:07 12-07-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ivan_Kia
Используй TcxDataSummaryItem.OnGetText для вывода значения
Bol970

Код:
  ShowMessageFmt('Столбец - %s, строка - %d, значение - %s ',
    [ ACellViewInfo.Item.Name,
      ACellViewInfo.GridRecord.Index,
      VarToStrDef(ACellViewInfo.Value, '(пусто)') ]);
 

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 11:53 12-07-2007
Bol970



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dennica
ПАСИБ.
Помогло.

Всего записей: 94 | Зарегистр. 05-10-2004 | Отправлено: 12:35 12-07-2007
Ivan_Kia

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

Всего записей: 2 | Зарегистр. 12-07-2007 | Отправлено: 14:42 12-07-2007
Shadi



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
В динамике заполняю грид. Как у полей с типом Float поставить DisplayFormat := ',0.00'???
 
кусок ш-ш-кода:
 

Код:
              for I := 0 to spRun.FieldCount - 1 do // Iterate
              begin
                BField := GridDB.CreateColumn as TcxGridDBColumn;
                BField.Caption := spRun.Fields[i].FieldName;
                BField.DataBinding.FieldName := spRun.Fields[i].FieldName;
                if spRun.Fields[i].DataType = ftFloat then
                  BField.DisplayFormat := ',0.00'  //Так не катит
                else if spRun.Fields[i].DataType = ftInteger then
                  BField.Summary.FooterFormat := ',0';
              end; // for
 

 
DisplayFormat - вообще нет в свойствах поля. Как отформатировать поле???
 
Заранее благодарен!

Всего записей: 110 | Зарегистр. 07-05-2003 | Отправлено: 12:50 13-07-2007 | Исправлено: Shadi, 12:58 13-07-2007
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shadi
Используй OnGetDisplayText/

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 14:25 13-07-2007
Shadi



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dronton2
 А ш-ш-код маленький в студию, плиз..
 
Добавлено:
Dronton2
 
Спасибо за помощь = ты сдесь класно рулишь!!!
 

Цитата:
Используй OnGetDisplayText/

 
Да можно и так, но это все равно что гланды через ...
 
Есть другое решение. Думаю, что может кому-то и пригодиться:
 

Код:
 
          if GridDB.ColumnCount = 0 then
          begin
            GridDB.dataController.DetailKeyFieldNames := 'Фонд-клиент;ОперДата';
//            GridDB.dataController.CreateAllItems;
              for I := 0 to spRun.FieldCount - 1 do // Iterate
              begin
                BField := GridDB.CreateColumn as TcxGridDBColumn;
                BField.Caption := spRun.Fields[i].FieldName;
                BField.DataBinding.FieldName := spRun.Fields[i].FieldName;
                if spRun.Fields[i].DataType = ftFloat then
                begin
                  BField.PropertiesClassName := 'TcxCurrencyEditProperties';
                  TcxCurrencyEditProperties(BField.Properties).DisplayFormat := ',0.00';
                end
                else
                if spRun.Fields[i].DataType = ftInteger then
                begin
                  BField.PropertiesClassName := 'TcxCurrencyEditProperties';
                  TcxCurrencyEditProperties(BField.Properties).DisplayFormat := ',0';
                end;
              end; // for
            GridDB.RestoreFromIniFile(gridIni, True, False, AOptions, ASaveViewName);
          end;
        end;
 
 

 

Всего записей: 110 | Зарегистр. 07-05-2003 | Отправлено: 15:07 13-07-2007 | Исправлено: Shadi, 16:01 13-07-2007
saltmi1



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я не очень понимаю как работает Expand в  Master-Detail. У меня cxGrid, в котором 2 уровня. Нужно: Нажимая на + раскрывается только один detail и одновременно закрываются все остальные раскрытые detail. При этом курсор должен перейти на поле раскрыттого мастера (сейчас курсор остается на старом месте пока не нажму на сам raw).
Я понимаю, что, скорее всего, в документации это есть, но я не нашел. Очень бы хотелось найти эти возможности в designtime - по-видимому понадобятся много раз в моей программе.

Всего записей: 36 | Зарегистр. 11-05-2007 | Отправлено: 08:30 15-07-2007
Dronton2

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shadi
Есть ещё возможность:

Код:
if spRun.Fields[i].DataType = ftFloat then
  if spRun.Fields[i].DisplayFormat := ',0.00';

Всего записей: 460 | Зарегистр. 27-06-2005 | Отправлено: 09:54 16-07-2007
jicoff

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

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 13:07 16-07-2007
saltmi1



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jicoff
Какой метод предложил бы вызвать для этого решения?
Мне просто трудно поверить, что этой возможности не встроено в designtime. В принципе это ведь должно быть вполне общее поведение в каком угодно tree. Возможность автоматического свертывания всех узлов кроме того который интересует в данный момент.  
 

Всего записей: 36 | Зарегистр. 11-05-2007 | Отправлено: 13:16 16-07-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
saltmi1
Если выставить у мастера DetailInSQLMode то кажись можно будет разворачивать только по одному узлу.
 
Свернуть все можно еще так:
ViewData.Collapse(True);
 
Развернуть текущую группу:
if ...Controller.FocusedRow.Expandable then
  ...Controller.FocusedRow.Expanded := True
 

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 15:23 16-07-2007
OXDBA

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

Цитата:
Если выставить у мастера DetailInSQLMode то

и Detail DataSet должен быть параметризированным.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 16:09 16-07-2007
saltmi1



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

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


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

Думаю, что это оно и есть. Спасибо товарищи.

Всего записей: 36 | Зарегистр. 11-05-2007 | Отправлено: 16:31 16-07-2007
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dennica
 
Мне что-то совсем не понятно, как без DetailInSQLMode получить + для детейлов?

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 18:29 16-07-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