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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток! Помогите не специалисту в программировании.
Необходимо срочно решить следующую проблему.
При работе с бэнд таблицей нужно изменить высоту строк  когда столбцы расположены не в одну строку
(свойство DataRowHight работает только когда столбцы расположены в одну строку) может кто подскажет как это можно сделать.
свойство LineCount работает но при этом изменяется высота и заголовка, что портит вид Grida, нужно изменить только высоту записи не трогая заголовок. Как я понимаю необходимо обработать onGetCellHight, но как, может кто поможет.

Всего записей: 2 | Зарегистр. 13-03-2007 | Отправлено: 09:20 14-03-2007
VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cxGridDBTableView.OnGetCellHeight := DoGetCellHeight;
 
procedure ?.DoGetCellHeight(Sender: TcxCustomGridTableView;
  ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
  ACellViewInfo: TcxGridTableDataCellViewInfo; var AHeight: Integer);
begin
  AHeight := ...;
end;

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 04:16 15-03-2007
Oweb

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, как сделать, чтобы в ячейке ExpressQuantumGrid-а можно было выводить данные в формате текст:иконка:текст?

Всего записей: 20 | Зарегистр. 15-03-2007 | Отправлено: 07:27 15-03-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oweb
Можно написать свой обработчик OnCustomDrawCell
Вот, выдернул один из обработчиков как есть, который рисует просто картинку.  

Код:
procedure TfrmEquipment.dbbtvEquipmenticoCustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
var
  ARec: TRect;
  val: integer;
  xr, yr: integer;
begin
  if AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index] = '' then
    Exit;
  ARec := AViewInfo.Bounds;
  xr := (AViewInfo.Width - 16) div 2;
  yr := (AViewInfo.Height - 16) div 2;
  val := VarToInt(AViewInfo.GridRecord.DisplayTexts[AViewInfo.Item.Index], -1);
  ACanvas.FillRect(ARec);
  ACanvas.DrawImage(dmDataAG.iEquipment, ARec.TopLeft.X + xr, ARec.TopLeft.Y + yr, val);
  ADone := True;
end;

Покрайней мере будет от чего отталкнуться

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 08:12 15-03-2007
Oweb

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dennica, спасибо за подсказку.
Еще вопрос: можно как-нибудь сделать, чтобы в гриде отображались DBChart и DBTable все вместе? DBChart вверху, а таблица сразу под ним.

Всего записей: 20 | Зарегистр. 15-03-2007 | Отправлено: 10:16 15-03-2007
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oweb
 
А что тебе мешает 2 грида поставить один над другим?

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

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

Цитата:
А что тебе мешает 2 грида поставить один над другим?

Хочется с помошью ExportGridToHTML сохранить график и таблицу в одном файле. Здесь есть простое решение?
 

Всего записей: 20 | Зарегистр. 15-03-2007 | Отправлено: 13:33 15-03-2007
VoodooSV

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Столкнулся с ситуацией, когда в XtraTreeList ширина первого столбца при большом количестве уровней вложенности составляет величину, достаточную для отображения этих уровней вложенности (см. вложение). Изменение ширины этого столбца эффекта не дает, как это побороть не знаю .
Может кто-то уже решал подобную проблему?
 
   

Всего записей: 456 | Зарегистр. 04-02-2005 | Отправлено: 15:26 15-03-2007 | Исправлено: VoodooSV, 15:28 15-03-2007
pazlik



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

Всего записей: 195 | Зарегистр. 14-08-2003 | Отправлено: 16:42 15-03-2007
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Oweb
 
Просто так - никак. Два level'а одновременно не отображаются. Вот если бы ты смог запихнуть грид с чатом в ячейку другого грида, тогда можно было бы повозиться. Но гарантий нет, что он захочет отображать чужеродный editor, пусть даже и свой грид.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 17:57 15-03-2007
Alkatraz

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
pazlik
Хммм... Наработки, наверное есть, но под каждый конкретный случай все-равно приходится перекраивать...
 
В данном случае не вижу проблеммы - в гриде объявляются не привязанные колонки и вешаются обработчики на GetDataText и OnEditChanged, где с данными ведется работа. Пользователь не будет даже подозревать, что часть колонок берется не из базы данных...
 
Добавлено:
Oweb
А если попробовать сделать грид с двумя записями (UnBound), а к ним прицепить уже данные с двух других View, где в одном будет Chart, а в другом таблица? При показе формы в грид добавляются две записи с четко заданными ключами, а кним Detail'ами привязываются два других View.
Что-то в таком роде...

Всего записей: 57 | Зарегистр. 18-09-2006 | Отправлено: 21:03 15-03-2007
Dennica



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VoodooSV
Насчет что тут можно сделать незнаю. Могу разве что предложить попробовать выставить OptionsView.PaintStyle = tlpsCategorized + выбрать OptionsView.CategorizedColumn.
Мне стало интересно, у тебя на скрине строки раскрашены градиентным цветом. Это только в дот нэт возможно или ты сам раскраску писал?

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 08:39 16-03-2007 | Исправлено: Dennica, 08:40 16-03-2007
yuish

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто нить может подсказать как работать с cxShellBrowserDialog?  
как открыть понятно cxShellBrowserDialog1.execute. А как получить то что он выбрал?
 
Вопрос снят. Разобрался.

Всего записей: 218 | Зарегистр. 10-02-2003 | Отправлено: 09:57 16-03-2007 | Исправлено: yuish, 11:51 16-03-2007
iogun



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

Цитата:
 
iogun  
 
Не пробовал такой подход к решению задачи:  
 
TcxCustomRow -> ViewInfo -> RowValueInfo[ARecordIndex, ACellIndex: Integer] -> DisplayValue
 

спсибо, работает

Всего записей: 477 | Зарегистр. 31-08-2004 | Отправлено: 10:06 16-03-2007
VoodooSV

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dennica
Спасибо, что откликнулся, но не нахожу я таких св-в. Начинаю переходить с Delphi на c#, и был несколько удивлен таким поведением дерева Может я конечно не вижу очевидных св-в, но отличие компонент от тех, которые были под Делфи - существенно...
 

Цитата:
Мне стало интересно, у тебя на скрине строки раскрашены градиентным цветом. Это только в дот нэт возможно или ты сам раскраску писал?

 
В XtraTreeList есть св-ва для автоматической раскраски четных и нечетных строк дерева:
OptionsView.EnableAppearanceEvenRow = True
OptionsView.EnableAppearanceOddRow = True

Всего записей: 456 | Зарегистр. 04-02-2005 | Отправлено: 12:59 16-03-2007
Dennica



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

Цитата:
В XtraTreeList есть св-ва для автоматической раскраски четных и нечетных строк дерева:  
OptionsView.EnableAppearanceEvenRow = True  
OptionsView.EnableAppearanceOddRow = True

Я немного не это имел ввиду. У тебя на скрине, у каждой строки внизу цвет немного темней чем вверху и идет плавный переход. Т.к. цвета довольно близки друг к другу в глаза это не бросается но эффект объема придает. Ну да ладно, видимо фишка в дот нэт, раз ты ничего сам не предпринимал.

Всего записей: 235 | Зарегистр. 19-12-2005 | Отправлено: 13:52 16-03-2007 | Исправлено: Dennica, 13:53 16-03-2007
mavrtuva

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При работе с бэнд таблицей нужно изменить высоту строк  когда столбцы расположены не в одну строку  
(свойство DataRowHight работает только когда столбцы расположены в одну строку) может кто подскажет как это можно сделать.  
 
случай
procedure ?.DoGetCellHeight(Sender: TcxCustomGridTableView;  
  ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;  
  ACellViewInfo: TcxGridTableDataCellViewInfo; var AHeight: Integer);  
begin  
  AHeight := ...;  
end;  
 
работает только когда cxGrid установлен в DBTable, а нужно в Banded
 
Кто может подсказать, очень нужно, горю с дипломом
 

Всего записей: 2 | Зарегистр. 13-03-2007 | Отправлено: 13:53 16-03-2007
mcdie



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

Код:
 
cxGridDBTableView.OnGetCellHeight := DoGetCellHeight;  
 
procedure ?.DoGetCellHeight(Sender: TcxCustomGridTableView;  
  ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;  
  ACellViewInfo: TcxGridTableDataCellViewInfo; var AHeight: Integer);  
begin  
  AHeight := ...;  
end;

В опытном виде было проверено что работает только при LineCount столбца=1 и расположением в столбцов в одну строку...Так что вышеизложенный вариант не сработает.  
 
Ну можно в исходниках подправить и се: unit cxGridTableView

Код:
 
function TcxGridRowsViewInfo.IsDataRowHeightAssigned: Boolean;
begin
  Result := (GridView.OptionsView.DataRowHeight <> 0);  //NEW
{Result := GridViewInfo.SupportsAutoHeight and  (GridView.OptionsView.DataRowHeight <> 0);} //OLD
end;

Всего записей: 145 | Зарегистр. 03-05-2006 | Отправлено: 15:26 16-03-2007 | Исправлено: mcdie, 16:20 16-03-2007
Xaoc666

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Приветствую Вас.
 
Обнаружил ошибку в cxGrid 6. Причем она не изчезла и в февральской сборке. Суть ее в следующем:
Создаем грид с мастерь-деталь вьюхами. В частности, вьюхи работают в provider-mode, т.е. через наследника TcxCustomDataSource. Для каждой вьюхи устанавливаем свойства опций данных Appending = true; Таким образом если выделена последняя запись вьюхи (мастера или детали, не важно) и пользователь нажимает стрелку вниз, то появляется новая пустая запись для вставки. Если нажать стрелку вниз повторно, то ситуация такая:
1. Если новая запись является новой записью мастера, то все ок.
2. Если новая запись является новой записью детали, и запись мастера не последняя в гриде, то все ок (в февральской сборке. В ноябрьской происходил Access violation).
3. Если новая запись является новой записью детали, и запись мастера _последняя_ в гриде, то Access Violation происходит даже в февральской сборке, т.е. ошибка не изчезла полностью.
 
В кноуледжбэйз этот вопрос поднимался счастливым обладателем лицензионной копии. (BugReport ID: CB4425, https://www.devexpress.com/Support/Center/ViewIssue.aspx?issueid=CB4425&searchtext=Access+Violation&pgid=48409584-e723-41af-b1d3-52dd97577823&pid=8b369e9e-f81b-4a73-822e-37c84ccafcf7). Но разработчикам не удалось воспроизвести глюк, и я думаю, что это потому, что в их примере они используют ДБ вьюхи, в которых все действительно работает. Глюк видимо присущ именно provider-mode.
 
Покопался в исходниках, и мне показалось, что причина в функции FocusNextRecord(...) класса TcxGridTableView. В случае 3. в ней происходит вызов функции CreateNewRecord(True) но у другой вьюхи (у вьюхи мастера), а затем происходит завершение вызова обработчика стрелки вниз для вьюхи-деталей, которая уже уничтожилась при потере фокуса!
 
Вопрос к Вам. Может быть кто-то разбирался с этой ошибкой подробнее? Или даже лечил ее? Поделитесь опытом.
 
Спасибо.

Всего записей: 31 | Зарегистр. 13-12-2006 | Отправлено: 17:58 16-03-2007
Alkatraz

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Часто приходится править руками, подстраивая грид под некоторые особенности своей программы. Так например мне пришлось ставить Try..Except в исходниках грида при всех попытках удаления из DataSet'а, так как в моих таблицах, при определенных условиях вызывался Abort на BeforeDelete и грид уже не отрабатывал следующие записи в выборке...
 
Попробуй исправить сам, а там жди результата...

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