AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.05.2010, 08:52   #1  
Roman N. Krivov is offline
Roman N. Krivov
Участник
 
25 / 11 (1) +
Регистрация: 04.05.2010
Адрес: Мир, Россия, Московская область
Цитата:
Сообщение от Gustav Посмотреть сообщение
Excel в душЕ "по строкам" любит больше
Я как раз тут намедни демонстрировал одномерную индексацию ячеек внутри диапазона: Excel диапазон ячеек
Вот именно, исходя из твоего описания нумерации ячеек Range(...).Cells.Item(...)
Код:
(1) (2) (3)
(4) (5) (6)
(7) (8) (9)
и должны заполняться ячейки из одномерного массива в 9 элементов. Т.е.
Код:
for (idx = 1; idx <= 9; idx++) {
    Range("B2:D4").Cells.Item(idx) = ItemsArray[idx];
}
А на деле получается, что все строки данной матрицы равны первой, т.е.:
Код:
Range("B2:D4").Cells.Item(1) = ItemsArray[1];
Range("B2:D4").Cells.Item(2) = ItemsArray[2];
Range("B2:D4").Cells.Item(3) = ItemsArray[3];
Range("B2:D4").Cells.Item(4) = ItemsArray[1];
Range("B2:D4").Cells.Item(5) = ItemsArray[2];
Range("B2:D4").Cells.Item(6) = ItemsArray[3];
Range("B2:D4").Cells.Item(7) = ItemsArray[1];
Range("B2:D4").Cells.Item(8) = ItemsArray[2];
Range("B2:D4").Cells.Item(9) = ItemsArray[3];
Вопрос: почему?

Последний раз редактировалось Roman N. Krivov; 06.05.2010 в 08:56.
Старый 06.05.2010, 11:19   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Цитата:
Сообщение от Roman N. Krivov Посмотреть сообщение
А на деле получается, что все строки данной матрицы равны первой, т.е.:
Вопрос: почему?
Потому что такая особенность этого дела - желает Excel элементы Array в строку записывать и всё тут.
Вот маленький джобик, по-моему, достаточно наглядный:
X++:
    COM     rng = sysExcelApplication::construct().workbooks().add().worksheets().itemFromNum(1).cells().range('A1:C3').comObject();
    Array   arr = new Array(Types::String);
    ;
    arr.value(1, '1'); arr.value(2, '2'); arr.value(3, '3');
    arr.value(4, '4'); arr.value(5, '5'); arr.value(6, '6');
    arr.value(7, '7'); arr.value(8, '8'); arr.value(9, '9');

    rng.value2(arr); // вставка в диапазон A1:C3 - размер 3 х 3

    rng = rng.Offset(4,0);
    rng = rng.Resize(1,9);
    rng.value2(arr); // вставка в диапазон A5:I5 - размер 1 х 9 (одна строка)

    rng = rng.Offset(3,0);
    rng = rng.Resize(1,12);
    rng.value2(arr); // вставка в диапазон A9:L9 - размер 1 х 12 (одна строка)

    COM::createFromObject(rng.Application()).Visible(true);
Старый 06.05.2010, 12:02   #3  
Roman N. Krivov is offline
Roman N. Krivov
Участник
 
25 / 11 (1) +
Регистрация: 04.05.2010
Адрес: Мир, Россия, Московская область
Цитата:
Сообщение от Gustav Посмотреть сообщение
Потому что такая особенность этого дела - желает Excel элементы Array в строку записывать и всё тут.
Вот маленький джобик, по-моему, достаточно наглядный:
Джобик хорош.
А вот результат его работы: (см. аттач)

Решил заполнять отчёт через AdoRecordSet.
Миниатюры
Нажмите на изображение для увеличения
Название: Result.PNG
Просмотров: 508
Размер:	30.5 Кб
ID:	5805  

Последний раз редактировалось Roman N. Krivov; 06.05.2010 в 13:07.
Теги
ado, array, excel, recordset

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вспомогательный класс для импорта из Excel через ADO gl00mie DAX: База знаний и проекты 80 10.04.2017 10:55
Вывод всех меток из заданного уровня на заданных языках в Excel wojzeh DAX: Программирование 0 19.03.2010 23:45
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
Вывод в Excel в формате XML и ширина колонок gl00mie DAX: Программирование 1 30.10.2006 10:45
Вывод в Excel в определнный Worksheet... soin DAX: Программирование 1 22.10.2004 13:53

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:11.