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

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

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

ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

golkanavt



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

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




 
Сами прирученные компоненты частенько приходят на водопой сюда

Всего записей: 1069 | Зарегистр. 08-04-2002 | Отправлено: 10:42 08-10-2003 | Исправлено: golkanavt, 15:41 08-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
тоже вызывает AV, может из-за DataSet.Fields[f].name ???
хотя в DataSet`е дебагер показывает 45 полей, всё верно - 45

Код:
ShowMessage(VarToStr(FromGrid.DataController.GetValue(ARowInfo.RecordIndex,FromGrid.GetColumnByFieldName(DataSet.Fields[f].name).Index)));


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 14:45 25-09-2006
RayZ



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
X11, а какой тип данных у колонки Fields[f] в гриде?
TcxGridTableView(FromGrid.FocusedView).Columns[f].DataBinding.ValueType?

Всего записей: 381 | Зарегистр. 10-04-2002 | Отправлено: 14:55 25-09-2006 | Исправлено: RayZ, 14:58 25-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
дык... самые азные типы: intger, string, TDateTime, в основном
 
Добавлено:
Короче, если без Locate, как "пробежаться" по выделенным строкам и узнать значения полей?
 
Добавлено:
Помоему доходит
 
              DataSet.Fields[f].Value :=
                FromGrid.DataController.Values[ARowInfo.RecordIndex,
                                               FromGrid.GetColumnByFieldName(DataSet.Fields[f].name).Index];
 
DataSet.Fields[f].name возвращает ИмядатасетаИмяполя
а нужно просто Имяполя, поэтому и AV


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 15:09 25-09-2006 | Исправлено: X11, 15:40 25-09-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
Ну так писал же, что FromGrid.GetColumnByFieldName(DataSet.Fields[f].name) NULL возвращает, правда такой подвох с путаницей свойств не заметил.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 16:08 25-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
дело в том, что в одном гриде (исходном cxGrid) колонок меньше
здесь вылазит AV, скорее всего, когда передаю имя поля, которого нет в FromGrid
ii := FromGrid.GetColumnByFieldName(DataSet.FieldDefs[f].name).Index;
 
Добавлено:
народ, направьте на путть истинный
 
Добавлено:
вопрос в догонку: есть ли у грида фонкция, типа cxGrid.Columnexists?

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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
А чем не устраивает сравнение  
if Grid.GetColumnByFieldName(DataSet.FieldDefs[f].FieldName) <> nil then
  ...

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 16:56 25-09-2006
X11



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

Код:
 
    DataSet := ToGrid.DataSource.DataSet;
    for i:=0 to FromGrid.Controller.SelectedRecordCount-1 do begin
      DataSet.Append;
      for f := 0 to DataSet.FieldCount-1 do begin
        cxGridDBColumn := FromGrid.GetColumnByFieldName(DataSet.Fields[f].Name);
        if cxGridDBColumn <> nil then
          DataSet.Fields[f].Value := FromGrid.Controller.SelectedRecords[i].Values[cxGridDBColumn.Index];
      end;
      DataSet.post;
    end;//for i:=0 to FromGrid.DataController.GetSelectedCount-1 do
 
 


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

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:09 25-09-2006 | Исправлено: X11, 17:10 25-09-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
X11
 
Что ты так упорно свойство Field.Name используешь. Это имя объекта, а не имя поля таблицы. Пиши так DataSet.Fields[f].FieldName).

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 17:32 25-09-2006
X11



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
опять забыл, что нужно использовать DataSet.FieldDefs[f].Name

Всего записей: 3253 | Зарегистр. 24-11-2005 | Отправлено: 17:35 25-09-2006
ChiefPilot

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, кто знает, пожалуйста, что это такое может быть? При установке компонента ExpressPrinting System (версия 3) при компиляции dxPScxGrid4linkD7.dpk выдаётся ошибка о несовместимости типов TcxGridLevel и TcxCustomGridRecord (установлен QuantumGrid версии 5.17). Спасибо!

Всего записей: 35 | Зарегистр. 21-09-2002 | Отправлено: 17:47 25-09-2006 | Исправлено: ChiefPilot, 18:10 25-09-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ChiefPilot
 
Если бы эти классы были не совместимы на уровне исходников, то не удалось бы собрать пакет с гридом. А он наверняка собрался и проинсталировался. Какая на самом деле выдается ошибка?

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 18:32 25-09-2006
xitsmex



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

Всего записей: 58 | Зарегистр. 31-08-2005 | Отправлено: 21:51 25-09-2006
ChiefPilot

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jicoff
Спасибо за ответ, но это, видимо, был какой-то кривой дистрибутив. Потому, что мы достали дистрибутив от feandy (кстати, где говорить "спасибо"? ) и всё стало хорошо!

Всего записей: 35 | Зарегистр. 21-09-2002 | Отправлено: 10:19 26-09-2006 | Исправлено: ChiefPilot, 10:22 26-09-2006
moonrise



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос:
 
имеется cxGrid1TableView1
 
надо, опеределить номер записи в которую идет драг и дроп.
 
мое решение:

Код:
procedure TForm1.cxGrid1TableView1CustomDrawCell(
  Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
  AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
  If AViewInfo.Selected then
    Label1.Caption := IntToStr(AViewInfo.GridRecord.RecordIndex);
end;

 
все вроде бы хорошо до тех пор, пока не начинаешь "играть" мышкой на активной/"пред"активной записи
 
т.е. если записей 5. активная (по умолчанию) 5-я, то когда "думаешь" и мышкой тащишь то на 4, то на 5-ю и опять на 4-ю, то четверка не отображается.. остается 5-ка.
 
как исправить?

----------
Истина внимательно выслушивает спорящих... вздыхает и уходит.

Всего записей: 1986 | Зарегистр. 19-09-2001 | Отправлено: 13:56 26-09-2006
jicoff

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

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 17:32 26-09-2006
moonrise



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
на дроп срабатывает cxGrid1TableView1DragDrop
CustomDrawCell используется для определения какая именно запись под мышкой
 
по координатам можно пример? а то, что -то не получается..
с учетом того, что скрол (т.е. не все записи отображаются в пределах формы.. что-то "выше")

----------
Истина внимательно выслушивает спорящих... вздыхает и уходит.

Всего записей: 1986 | Зарегистр. 19-09-2001 | Отправлено: 17:43 26-09-2006
jicoff

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
moonrise
 
Вот такая у меня есть функция, на паскаль переводи сам:
 
TcxCustomGridTableItem *__fastcall GetLayoutItem(TcxCustomGridView *GridView)
{
  TcxCustomGridTableView *ptv;
 
  ptv = dynamic_cast<TcxCustomGridTableView*>(GridView);
  if(ptv)
  {
    POINT pos;
 
    GetCursorPos(&pos);
    ::ScreenToClient(ptv->Site->Handle, &pos);
 
    TcxGridRecordCellHitTest *gvCellHitTest;
 
    gvCellHitTest = dynamic_cast<TcxGridRecordCellHitTest*>(ptv->ViewInfo->GetHitTest(pos.x, pos.y));
    if(gvCellHitTest)
    {
      return gvCellHitTest->Item;
    }
  }
  return 0;
}
 
у TcxGridRecordCellHitTest есть и Item, и GridRecord. Если Item не нужен, можешь приводить к TcxGridRecordHitTest.

Всего записей: 289 | Зарегистр. 03-03-2006 | Отправлено: 20:14 26-09-2006
forgery

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!  
 
У меня компоненты на Delhi 6, Developer Suite Greed, еще старого варианта dx... т.е., хотелось бы где-то найти версию такого же грида, но не в новом исполнении типа cx... , а в старом типа dx... для Delhi 7.  
 
С большой надеждой.... плз.

Всего записей: 12 | Зарегистр. 26-09-2006 | Отправлено: 23:31 26-09-2006
hobest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
forgery
 
А что, исходников нет, нельзя под 7 скомпилироваь?

Всего записей: 86 | Зарегистр. 20-03-2006 | Отправлено: 00:32 27-09-2006
forgery

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

Всего записей: 12 | Зарегистр. 26-09-2006 | Отправлено: 01:18 27-09-2006
   

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

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress
ShIvADeSt (29-01-2007 03:17): идем сюда
http://forum.ru-board.com/topic.cgi?forum=33&topic=7918


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru