SAPфорум.RU
https://www.sapboard.ru/forum/

XLSX Workbench
https://www.sapboard.ru/forum/viewtopic.php?f=13&t=86294
Страница 9 из 9

Автор:  xbusterx [ Чт, сен 13 2018, 14: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, 15: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, 07:26 ]
Заголовок сообщения:  Re: XLSX Workbench

Добрый день!
Спасибо за ответ, но дело в том, что количество листов в книге может быть динамическим, наверное я неверно описал в сообщении.
Я вчера решил пойти путем разложения всего по листам. И тут тоже столкнулся с проблемой.
На листе должен быть заголовок и таблица. Когда я добавляю таблицу, ексель файл ломается - если же я использую только заголовок, то все работает нормально.

Используемый контекст:

Изображение

Формуляр:

Изображение

Автор:  Бородин Игорь [ Пт, сен 14 2018, 12:11 ]
Заголовок сообщения:  Re: XLSX Workbench

xbusterx написал:
количество листов в книге может быть динамическим
В таком случае контекст должен представлять собой Табличный тип, а в структуре формуляра лист нужно поместить внутрь Цикла по контексту, как в этом примере. По поводу разного наполнения листов - вы можете поступить двумя способами:
1) поместить все возможные Паттерны форматирования на один Лист и выводить их по условию
2) сделать разные Листы для каждого бланка и также, выводить их по условию. Этот способ, на мой взгляд, гораздо нагляднее - я бы использовал его. В вашем случае все эти Листы надо поместить внутрь Цикла по контексту.

И да, для вывода простой таблицы используйте компонент Грид, им пользоваться гораздо проще и работает он быстрее. А связку Цикл+Паттерн+Значения делать гораздо утомительнее, оставьте её для более сложных случаев.

xbusterx написал:
Когда я добавляю таблицу, ексель файл ломается
На первый взгляд, вы всё сделали правильно. Ничего ломаться не должно, видимо это какой-то баг. Пришлите, пожалуйста, мне на почту (см.здесь) "сломаный" файл, а также, выгруженный файл формуляра, я попробую разобраться.

Автор:  xbusterx [ Пт, сен 14 2018, 13:06 ]
Заголовок сообщения:  Re: XLSX Workbench

Скинул на почту. Спасибо!

Страница 9 из 9 Часовой пояс: UTC + 4 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/