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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.07.2010, 05:13   #1  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
R1C1 Excel
Всем привет.

Возникла следующая проблема. Выгружаю отчет в Excel. В конце делаю строку ИТОГО по определенным кретериям(т.е. чтоб суммировались только нужные мне ечейки), на несколько столбцов. Список нужных мне ячеек я нашел.

Начинаю вставлять формулу в ячеки:
X++:
range = _wkSheet.Range(strfmt('F%1:Q%1', _row + counter));
range.FormulaR1C1(string));
В string содержится строка вида:
X++:
=(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C;
R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C;
R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C;
R[-64]C;R[-59]C;R[-54]C;R[-49]C;R[-44]C;R[-39]C;R[-34]C;R[-29]C;R[-24]C;R[-19]C;R[-14]C)
Происходит ошибка вида, что метод FormulaR1C1 возвратил ошибку "неизвестно"

ВСЁ вставляется хорошо если эта строока не такая длинная. К примеру строка:
X++:
=(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C;
R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C;
R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C;R[-64]C;R[-59]C;R[-54]C)
вставится без проблем.
Но стоит добавить еще один элемент:
X++:
=(R[-204]C;R[-199]C;R[-194]C;R[-189]C;R[-184]C;R[-179]C;R[-174]C;R[-169]C;
R[-164]C;R[-159]C;R[-154]C;R[-149]C;R[-144]C;R[-139]C;R[-134]C;R[-129]C;R[-124]C;
R[-119]C;R[-114]C;R[-109]C;R[-99]C;R[-94]C;R[-89]C;R[-84]C;R[-79]C;R[-74]C;R[-69]C;R[-64]C;R[-59]C;R[-54]C;R[-49]C)
Сразу выскакивает ошибка.

Не ужели есть какоето ограничение на длину формулы R1C1.

PS: Элементы в формуле менял местами, ошибка оставалась т.е. дело не в данных.

*********************
Использую 2010 Офис
В последствие выяснилось, что на 2007 такой ошибки нет!

Последний раз редактировалось Proba; 20.07.2010 в 06:20.
Старый 20.07.2010, 06:01   #2  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
От без исходности переписал формулу. под конкретный столбец(что не очень удобно, куча всяких циклов).

НО, тем не менее ошибка повторяется. Так она есть:
X++:
=(F17;F22;F27;F32;F37;F42;F47;F52;F57;F62;F67;F72;F77;F82;F87;F92;F97;F102;
F107;F112;F122;F127;F132;F137;F142;F147;F152;F157;F162;F167;F172)
Удаляем один элемент, и ее сразу нет:
X++:
=(F17;F22;F27;F32;F37;F42;F47;F52;F57;F62;F67;F72;F77;F82;F87;F92;F97;F102;
F107;F112;F122;F127;F132;F137;F142;F147;F152;F157;F162;F167)
Так же для экперемента удалял 1й или 3й или i_й вс равно одно и тоже!
Что за бред???

Последний раз редактировалось Proba; 20.07.2010 в 06:04.
Старый 20.07.2010, 06:09   #3  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
Нашлась проблема, вручную вставляю это строку в ячейку и получаю сообщение:
"Что слишком большое значение для данного формата файла"
У меня 2010 офис

Только что проверил на 2007 все ОК!
Во дела! Че делать?

Последний раз редактировалось Proba; 20.07.2010 в 06:13.
Старый 20.07.2010, 09:16   #4  
Pudd is offline
Pudd
Участник
 
34 / 10 (1) +
Регистрация: 31.03.2010
наверно 2010 Бета с глюками
а 2007 нормальная
Старый 20.07.2010, 09:29   #5  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
У ж не знаю к счастью или нет, 2010 офис лицензионный
Старый 20.07.2010, 09:33   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Ответ на самом деле очень прост. В Excel существует ограничение на количество аргументов функций - не более 30. Посчитайте кол-во слагаемых в ваших функциях СУММ и всё станет понятно. Если надо сложить более 30 аргументов, то делите на несколько формул по 30.

P.S. Сейчас побродил по Интернету, выяснил, что, начиная с Excel 2007, максимальное кол-во аргументов увеличено с 30 до 255. НО! Это справедливо только для нового формата файла c расширением *.xlsx. Если же вы, как и я, сплошь и рядом еще работаете с файлами предыдущих версий *.xls, то поэтому и натыкаетесь на ограничение 30.

Последний раз редактировалось Gustav; 20.07.2010 в 10:04.
За это сообщение автора поблагодарили: Alexanderrrr (1).
Старый 20.07.2010, 10:07   #7  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
Про ограничение в 30 это я понял. Но все таки надеялся на лучшее, и что не придется делить формулы.
В итоге пользуюсь вашей рекомендацией:
X++:
=(K16;K21; ..  30 )+ (K166;K171; ..  30 )
Низкий поклон
Старый 20.07.2010, 10:10   #8  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Прочитайте еще мой постскриптум выше. В этом дело было с 2010 ? Файл *.xls?
Старый 20.07.2010, 10:16   #9  
Proba is offline
Proba
Участник
 
60 / 13 (1) ++
Регистрация: 25.06.2007
Адрес: Красноярск\Зеленогорск
Ага, верно! Мой шаблон оказывается 2003 формата! Пересохранил в .xlsx и все тип топ!!!
Спасибо
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
emeadaxsupport: Solving various issues when using Export to Excel feature in Chart of Accounts Form (Microsoft Dynamics AX 2009) Blog bot DAX Blogs 0 15.07.2010 20:08
emeadaxsupport: How does the Export to Excel feature work under the hood? Blog bot DAX Blogs 0 07.09.2009 19:05
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Вызов Item() для коллекций Excel Владимир Максимов DAX: Программирование 15 17.08.2006 19:47

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

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

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