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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

bigrunner1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с вопросом связанным с cxgrid.
Есть грид с датасетом и 6 колонками.
Регион, Объект, Объем, объем реализации, размещение и территориальная принадлежность.
Вроде все правильно, гружу данные из эксель файла, у колонок тип задаю числовой.
Но когда цикл доходит до значения 1 строки столбца Объем возникает ошибка:"Could not convert variant of type (Dispatch) into type integer" В чем может быть проблема? В данных Excel уверен, пробую на маленьком объеме строк(2 ).
procedure TFormListOBJ_REQ.dxBarButton17Click(Sender: TObject);
const
xlCellTypeLastCell = $0000000B;
//Тип последней заполненной ячейки
var
  XLApp, Sheet: OLEVariant;
    RangeMatrix: Variant;
  x,y,iColIndex, iRowIndex: integer;
 XLSFile: string;
begin
XLSFile:='C:\Documents and Settings\EPlan\Рабочий стол\21.xls';
   //Создаем объект Excel
  XLApp := CreateOleObject('Excel.Application');
    try
  //Делаем окно Excel невидимым
    XLApp.Visible := True;
    //Открываем Excel
    XLApp.Workbooks.Open(XLSFile);
    //Создаем объект страница(Sheet)
   //и указываем номер листа в книги с которого будем осуществлять чтение
    Sheet := XLApp.Workbooks[ExtractFileName(XLSFile)].WorkSheets[1];
    //активируем последнюю ячейку на листе
    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    //получаем номер последней строки
    x := Sheet.UsedRange.Rows.Count;
        //получаем номер последнего столбца
    y := Sheet.UsedRange.Columns.Count;
    //устанавливаем количество столбцов в CxGrid
        showmessage('Строк '+IntToStr(x)+' Стоблцов '+IntToStr(y));
 
         with ViewList.DataController do
    begin
//      BeginUpdate;
//      try
        RecordCount := XLApp.ActiveCell.Row;
         for iRowIndex := 0 to x-1 do
          for iColIndex := 0 to y-1 do
 
            begin
 
               showmessage(Sheet.Cells[iRowIndex+1,iColIndex+1]) ;
 
            Values[iRowIndex, iColIndex] := Sheet.Cells[iRowIndex+1,iColIndex+1];
  ViewList.Columns[0].DataBinding.ValueType := 'String';
ViewList.Columns[1].DataBinding.ValueTypeClass := TcxStringValueType;
ViewList.Columns[2].DataBinding.ValueTypeClass := TcxIntegerValueType;
ViewList.Columns[3].DataBinding.ValueTypeClass := TcxFloatValueType;
ViewList.Columns[4].DataBinding.ValueTypeClass := TcxFloatValueType;
 ViewList.Columns[5].DataBinding.ValueTypeClass := TcxStringValueType;
ViewList.Columns[6].DataBinding.ValueTypeClass := TcxStringValueType;
                                end
 
//       finally          z
//        EndUpdate;
//      end;
         end;
 
    finally
    if not VarIsEmpty(XLApp) then
    begin
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
    end;
   end;
    end;

Всего записей: 4 | Зарегистр. 09-02-2015 | Отправлено: 13:02 09-02-2015
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru