|
|
|
|
#1 |
|
Участник
|
Вы имеете в виду, когда не удается сгруппировать стандартным запросом?
Именно так и делаю, создаю временную таблицу - заполняю и вывожу. У вас проблемы с Экселем или именно с группировкой? Опишите, может, что именно за проблемы
|
|
|
|
|
#2 |
|
Участник
|
Создайте класс, который будет выводить в ёксел обработанные (сгруппированные)данные. Передавайте в него заполненную временную таблицу, список полей группировок, поля данных, и тп. У нас при помощи подобного класса отчеты выводятся в OWC SpreadSheet.
Хотя использование временной таблицы для формирования отчетов не самое грамотное решение - низкая скорость, использование впустую RecId... |
|
|
|
|
#3 |
|
Участник
|
Цитата:
Сообщение от rINT
Создайте класс, который будет выводить в ёксел обработанные (сгруппированные)данные. Передавайте в него заполненную временную таблицу, список полей группировок, поля данных, и тп. У нас при помощи подобного класса отчеты выводятся в OWC SpreadSheet.
Хотя использование временной таблицы для формирования отчетов не самое грамотное решение - низкая скорость, использование впустую RecId... тема для того и создана...
|
|
|
|
|
#4 |
|
Участник
|
Цитата:
Сообщение от kashperuk
У вас проблемы с Экселем или именно с группировкой?
Опишите, может, что именно за проблемы ![]() ну а потом в Ёксель выводить... |
|
|
|
|
#5 |
|
Moderator
|
Цитата:
Сообщение от sparur
проблемы пока именно с группировкой...создал временную таблицу, заполнил ее (вроде как нужными данными из запроса без группировки), теперь надо в этой таблице данные привести в нужный вид, то есть сгруппировать...
ну а потом в Ёксель выводить... |
|
|
|
|
#6 |
|
Участник
|
Цитата:
Сообщение от Gustav
А несгруппированных данных много? Сколько тысяч строк? Может быть, имеет смысл сначала выгрузить всё в Ёксель, а уже в нём группировать - сводной таблицей, например?
данных немного (по крайней мере пока ) но если можно то объясните ваш метод подробнее
|
|
|
|
|
#7 |
|
Moderator
|
Цитата:
Сообщение от sparur
но если можно то объясните ваш метод подробнее
А сценарий примерно такой (предполагается, что всё выполняется кодом): 1. Выгружаем несгруппированные данные из Аксапты в Excel (назовем этот лист "Приемник") 2. На основе данных этого листа строим в Excel сводную таблицу с нужным вариантом группировки (лист "Сводная") 3. Копируем данные из сводной таблицы в чистый лист (лист "Финал"), рисуем заголовки колонок и форматируем нужным образом 4. Удаляем листы "Приемник" и "Сводная", оставляя лист "Финал" как результат. P.S. А может быть Ваш пользователь захочет, чтобы Вы остановились на этапе 2 и дали ему возможность выполнять всякие другие группировки, а не только ту, которая изначально предполагалась
Последний раз редактировалось Gustav; 05.06.2006 в 12:39. |
|
|
|
|
#8 |
|
Участник
|
Цитата:
Сообщение от Gustav
Нуу... Во-первых, нужно уверенно себя чувствовать в обращении со сводными таблицами в Excel. Если это сейчас не так, то настоятельно рекомендую потратить день-два и освоить этот механизм - это хороший навык, который всегда пригодится.
А сценарий примерно такой (предполагается, что всё выполняется кодом): 1. Выгружаем несгруппированные данные из Аксапты в Excel (назовем этот лист "Приемник") 2. На основе данных этого листа строим в Excel сводную таблицу с нужным вариантом группировки (лист "Сводная") 3. Копируем данные из сводной таблицы в чистый лист (лист "Финал"), рисуем заголовки колонок и форматируем нужным образом 4. Удаляем листы "Приемник" и "Сводная", оставляя лист "Финал" как результат. P.S. А может быть Ваш пользователь захочет, чтобы Вы остановились на этапе 2 и дали ему возможность выполнять всякие другие группировки, а не только ту, которая изначально предполагалась ![]()
|
|
|
|
|
#9 |
|
Moderator
|
Цитата:
Сообщение от sparur
хм, интересный вариант, надо будет при наличии времени разобраться что да как... а инфой по работе со сводными таблицами на уровне кода не поделитесь??
Вы его создайте сами при помощи макрорекордера в Excel - заодно и сами прочувствуете. Описание найдёте в справке Excel VBA - объект PivotTable. Для доступа к частям сводной таблицы рекомендую обратить внимание на следующие свойства этого объекта: ColumnRange, DataBodyRange, DataLabelRange, PageRange, PageRangeCells, RowRange, TableRange1, TableRange2. В частности, они будут нужны для копирования (шаг 3 сценария выше). Записав макрорекордером код VBA, преобразуйте этот код в код X++. А можете попробовать применить подход, изложенный здесь Axapta программирует Excel на VBA (в этом случае код VBA не придется преобразовывать в X++). |
|
|