SAPфорум.RU https://www.sapboard.ru/forum/ |
|
XLSX Workbench https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86294 |
Страница 9 из 15 |
Автор: | xbusterx [ Чт, сен 13 2018, 13:10 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день! Спасибо за разработку! Очень понравилась. Хотелось задать вопрос по использованию. Посмотрел примеры в хелпе и решил совместить 2 варианта - связку книг и когда в каждой их этих книг несколько листов. Никак не могу подступиться - какой мне сделать контекстную структуру и сам формуляр. Если описать так по уровням, форма должна выглядеть так: 1. Сотрудник 1 ( книга ) 1.1. Отпуск ( лист1) 1.1.1. Поля заголовка для отпуска 1.1.2. Таблица данных по отпуску 1.2. Больничный ( лист2) 1.2.1. Поля заголовка для больничного 1.2.2. Таблица данных по больничному 2. Сотрудник 2 ( книга ) .... и так далее Надеюсь понятно описал ) Спасибо заранее. |
Автор: | Бородин Игорь [ Чт, сен 13 2018, 14:06 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день. Вкратце: Надо сделать форму для одного сотрудника, содержащую два листа. В программе печати формируете эту форму (книгу) несколько раз - каждый раз по новому сотруднику. А чтобы все книги попали в одну связку - в начале программы вызываете viewer_bundle_open, а в конце viewer_bundle_close. Более подробно: 1) Делайте форму для одного сотрудника. Поскольку количество листов фиксировано (не динамика), то делайте в качестве контекста Структуру. В эту структуру вставьте все необходимые поля для заголовков обоих листов ( 1.1.1. Поля заголовка для отпуска и 1.2.1. Поля заголовка для больничного ) , а также, две вложенные таблицы ( 1.1.2. Таблица данных по отпуску и 1.2.2. Таблица данных по больничному). В самом формуляре сделайте следующее. В дерево структуры добавьте два листа; в каждый из листов добавьте Паттерн заголовка и Грид; добавьте Значения, свяжите всё с соответствующими полями контекста. В шаблон добавьте два листа, разметьте их и сопоставьте области с соответствующими Паттернами и Гридами. В общем, всё как обычно. 2) В программе печати (как описано в этом примере) делайте следующее: Открывайте связку книг: PERFORM viewer_bundle_open IN PROGRAM saplzxlwb . Делайте цикл по сотрудникам. Внутри цикла: как обычно, заполняете контекст и вызываете CALL FUNCTION 'ZXLWB_CALLFORM' для одного сотрудника. Закрываете связку книг: PERFORM viewer_bundle_close IN PROGRAM saplzxlwb . |
Автор: | xbusterx [ Пт, сен 14 2018, 06:26 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Добрый день! Спасибо за ответ, но дело в том, что количество листов в книге может быть динамическим, наверное я неверно описал в сообщении. Я вчера решил пойти путем разложения всего по листам. И тут тоже столкнулся с проблемой. На листе должен быть заголовок и таблица. Когда я добавляю таблицу, ексель файл ломается - если же я использую только заголовок, то все работает нормально. Используемый контекст: Формуляр: |
Автор: | Бородин Игорь [ Пт, сен 14 2018, 11:11 ] |
Заголовок сообщения: | Re: XLSX Workbench |
xbusterx написал: количество листов в книге может быть динамическим В таком случае контекст должен представлять собой Табличный тип, а в структуре формуляра лист нужно поместить внутрь Цикла по контексту, как в этом примере. По поводу разного наполнения листов - вы можете поступить двумя способами: 1) поместить все возможные Паттерны форматирования на один Лист и выводить их по условию 2) сделать разные Листы для каждого бланка и также, выводить их по условию. Этот способ, на мой взгляд, гораздо нагляднее - я бы использовал его. В вашем случае все эти Листы надо поместить внутрь Цикла по контексту. И да, для вывода простой таблицы используйте компонент Грид, им пользоваться гораздо проще и работает он быстрее. А связку Цикл+Паттерн+Значения делать гораздо утомительнее, оставьте её для более сложных случаев. xbusterx написал: Когда я добавляю таблицу, ексель файл ломается На первый взгляд, вы всё сделали правильно. Ничего ломаться не должно, видимо это какой-то баг. Пришлите, пожалуйста, мне на почту (см.здесь) "сломаный" файл, а также, выгруженный файл формуляра, я попробую разобраться.
|
Автор: | xbusterx [ Пт, сен 14 2018, 12:06 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Скинул на почту. Спасибо! |
Автор: | Бородин Игорь [ Вс, ноя 18 2018, 00:29 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Sam Stone написал(а): очень уж долго выводится Добрый день. А долго это сколько? Я замерял на нескольких системах и результат такой, что таблица 2000 строк на 15 столбцов, с изощренным форматированием (многоуровневые подзаголовки/подитоги) выгружается в среднем 10-15 секунд (выборка данных сюда не входит). Да, это дольше, чем АЛВ-грид, но не намного.Если ваша выгрузка в разы дольше, то проверьте, может быть у вас так долго сами данные выбираются. Ещё посмотрите, не задействована ли в этом формуляре OLE/VBA-постобработка: она может сильно тормозить. Ну и надеюсь версия workbench не сильно древняя (т.к.самые первые версии могли иметь проблемы производительности). Ещё попробуйте для вывода вложенной таблицы использовать не Цикл+Паттерн, а компонент Грид (он должен немного побыстрее работать). |
Автор: | Sam Stone [ Пн, ноя 19 2018, 08:02 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Долго это 5-8 минут 4800 записей. И это именно формирование экселя, без выборки данных, без макросов, версия 4.10. Но, похоже, нашел, в чем проблема: в редакторе шаблонов я для грида и паттерна выделял всю строку как диапазон для вывода. Сейчас переделал, выделив только необходимое количество столбцов - выгрузка заняла чуть больше минуты. Из-за длинной строки проседает вот тут (ZXLWB_INCLUDE, 10060): Code: * properties of the columns LOOP AT s_patterns-t_colprop INTO ls_colprop . И это навело меня на мысль, что надо поправить привязанную в шаблоне область. |
Автор: | Sam Stone [ Вт, ноя 27 2018, 15:46 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Еще вопрос: пользователи хотят миллиард (40-50к) записей в эксель в виде таблицы с подытогами. Выгружается нормально, буквально пару минут. Но не открывается. Эксель съедает всю оперативку и помирает. Файл открылся на машине, где было 8+ гб свободной оперативки. Если всю эту портянку выгрузить без подытогов (т.е. плоской таблицей), то файл открывается нормально, и эксель память не кушает. Не подскажите, в какую сторону копать? |
Автор: | Kuranov.Dmitry [ Вт, ноя 27 2018, 16:10 ] |
Заголовок сообщения: | Re: XLSX Workbench |
подытоги сапом считать)) |
Автор: | Daw [ Вт, ноя 27 2018, 17:10 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Открывать на каком-нибудь сервере через удаленный рабочий стол. |
Автор: | Sam Stone [ Ср, ноя 28 2018, 09:02 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Подытоги и так считаются сапом. Проблему нашел, сам себе рукожоп Для пары паттернов выделил всю строку целиком (16384 столбца). Там статические данные типа подпись, фио и тд, но в результате документ стал широким, на этом и протухло. Надо большими буквами написать в начале документации, что не стоит выделять всю строку целиком для области в шаблоне |
Автор: | Бородин Игорь [ Ср, ноя 28 2018, 13:41 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Sam Stone написал(а): Надо большими буквами написать в начале документации, что не стоит выделять всю строку целиком для области в шаблоне Да, вы не первый, кто пытается выделить всю строку и даже весь лист. Я в будущих версиях сделаю выдачу предупреждения при попытке присвоить паттерну большие области.
|
Автор: | Sam Stone [ Сб, дек 01 2018, 13:38 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Вопрос по форматированию экселя под дерево: выделил область под cl_salv_tree, отформатировал ячейки. Скрыл столбец иерархии, в результате чего форматирование уехало влево то ли на 1, то ли на 2 столбца относительно шапки (она отдельно сделана). Это нормально и под столбец иерархии надо всегда выделять отдельный столбец в экселе, даже если он не выводится? |
Автор: | Бородин Игорь [ Пн, дек 03 2018, 12:42 ] |
Заголовок сообщения: | Re: XLSX Workbench |
Sam Stone написал(а): под столбец иерархии надо всегда выделять отдельный столбец в экселе, даже если он не выводится? Да, в существующей реализации требуется именно такая разметка. Первый столбец разметки зарезервирован под столбец иерархии, даже если он не выводится.
|
Страница 9 из 15 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |