|
20.02.2006, 10:32 | #1 |
Участник
|
Свертка строк при выводе из Аксапты в Excel
Коллеги, подскажите, как при выводе из Аксапты в Excel какой-либо иерархически организованной информации запрограммировать "свертку" строк по группам, так как показано на рисунке во вложении?
|
|
20.02.2006, 10:38 | #2 |
Участник
|
открываем эксель, включаем запись макроса, групируем, отключаем запись макроса, получаем
PHP код:
Последний раз редактировалось mit; 20.02.2006 в 10:40. |
|
20.02.2006, 11:00 | #3 |
Участник
|
Как вариант.
В конце каждой строки в отдельную колонку, добавляем некую служебную информацию (пусть это будет 1, 2, 3 и т.д.). Т.е. для строк родительской группы значение 1, для подгруппы значение два и т.д. Далее в шаблоне Excel пишем макрос желательно с параметром на входе (номер колонки для служебной информации) который группирует строки по заданному алгоритму. Далее этим же макросом удаляем служебную информацию. Вот и все. У этого варианта есть одно преимущество, один раз написанный макрос можно использовать в других шаблонах. |
|
20.02.2006, 11:35 | #4 |
Участник
|
зачем так сложно?
в системе все равно строится прототип екселя, а потом экспортируется через ком. удобнее всю обработку делать в одном месте. у меня например все итоги расчитываются по формулам (в эксель свтавляется не значение а именно формула) тоже саое, запомнить как сделать группировку не просто, а очень просто |
|
21.02.2006, 10:12 | #5 |
Пенсионер
|
Цитата:
Сообщение от mit
зачем так сложно?
в системе все равно строится прототип екселя, а потом экспортируется через ком. удобнее всю обработку делать в одном месте.... У группировки есть один недостаток, насколько я помню уровней вложенности может быть только 8. Я например ваял отчет используя вкладки и ссылки на вкладки как элементы вложенности...
__________________
Законы природы еще никто не отменял! А еще у меня растет 2 внучки!!! Кому интересно подробности тут: http://www.baby-shine.com/ |
|
21.02.2006, 11:47 | #6 |
Участник
|
Вопрос
Цитата:
Сообщение от mit
зачем так сложно?
в системе все равно строится прототип екселя, а потом экспортируется через ком. удобнее всю обработку делать в одном месте. у меня например все итоги расчитываются по формулам (в эксель свтавляется не значение а именно формула) тоже саое, запомнить как сделать группировку не просто, а очень просто |
|
21.02.2006, 11:59 | #7 |
NavAx
|
Цитата:
Сообщение от Hans
Как экспортировать формулу в Ексель из Аксапты? Допустим у меня с B1 по W1 имеются значения, а как в А1 поставить формулу?
|
|
21.02.2006, 12:02 | #8 |
Участник
|
Цитата:
Сообщение от raz
Текстом - "=СУММ(...)"
Иногда в одной компании работают на русской и английской версии Последний раз редактировалось KMV; 21.02.2006 в 12:04. |
|
21.02.2006, 12:17 | #9 |
Moderator
|
Цитата:
Сообщение от KMV
Иногда в одной компании работают на русской и английской версии
Не знаю, правда, как поступает в этом случае конкретно Аксапта - т.е. старается ли она подражать пользовательскому вводу или ей можно подставлять записанный материал рекордера... |
|
20.02.2006, 11:46 | #10 |
Участник
|
На счет сложно, не думаю. Макрос сам по себе не очень сложный. А запустить его вообще одна строка.
На счет формул, а если отчет с подитогами и нужно получить потом итоговую строку и именно формулой в ёскеле, а подитоговых строк ну к примеру 100 тогда как? Я к тому что у меня была проблема с передачей в Excel по-моему 256 символов. |
|
20.02.2006, 11:57 | #11 |
Участник
|
Ну и на счет прототипа пожалуй...
Допустим 3-х уровневое вложение групп. С третьим уровнем все просто, а вот со вторым и первым, получается для выделения строк, нужно запоминать строки начала вышестоящих групп? |
|
20.02.2006, 12:04 | #12 |
Участник
|
Возможно Вы правы, с подобной проблемой не сталкивался. 100 подитогов наверное много, но не критично. думаю можно будет обойти. наличие шаблонов усложняет администрирование системы. предпочитаю обходиться без них. у каждого свои предпочтения.
группы, подгруппы тоже решается, контейнеры никто не отменял. думаю дальнейший спор чей алгоритм лучше бессмысленнен цель предложить решение, чем больше решений, тем лучше автор вопроса сам выберет Последний раз редактировалось mit; 20.02.2006 в 12:12. |
|
20.02.2006, 12:13 | #13 |
Участник
|
Цитата:
Сообщение от mit
100 подитогов наверное много, но не критично. думаю можно будет обойти.
Цитата:
Сообщение от mit
у каждого свои предпочтения
|
|
21.02.2006, 12:03 | #14 |
Участник
|
Код: ComExcelDocument_Ru _excel Com range; ; range = _excel.findRange(ComExcelDocument_RU::numToNameCell(_i,_j)); _excel.insertValueInRange(range, _txt); range - ячейка |
|
21.02.2006, 12:17 | #15 |
NavAx
|
Для группировки надо что то вроде этого сделать.
comRange = comWorkSheet.Range("A1:E1"); comRange.select(); comRows = comRange.rows(); comRows.group(); |
|
21.02.2006, 12:21 | #16 |
Участник
|
PHP код:
|
|
21.02.2006, 12:57 | #17 |
Участник
|
Получить такую группировку можно при помощи сводной таблицы, заодно итоги и подитоги настроить и фильтры удобные получить.
На первый лист выгрузить данные на втором построить сводную таблицу. Есть правда ограничение по количеству строк данных (65536), но для маленьких отчетов этот вариант очень удобен. |
|
21.02.2006, 15:00 | #18 |
Участник
|
формула это лишь текст, который вставляется ка и любое другое значение в ячейку
|
|
21.02.2006, 15:21 | #19 |
Moderator
|
Цитата:
Сообщение от mit
формула это лишь текст, который вставляется ка и любое другое значение в ячейку
Если вдруг нам потребуется ввести программно такую эксельную круть как формулу массива, то как текст мы ее не введем и нам потребуется свойство FormulaArray. (но это так... чисто разглагольствую... не думаю, что кому-то захочется это делать из Аксапты... хотя...) |
|