Текущее время: Вт, ноя 20 2018, 22:13

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 128 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9
Автор Сообщение
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, сен 13 2018, 14:10 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, июл 29 2009, 08:20
Сообщения: 20
Пол: Мужской
Добрый день! Спасибо за разработку! Очень понравилась. Хотелось задать вопрос по использованию. Посмотрел примеры в хелпе и решил совместить 2 варианта - связку книг и когда в каждой их этих книг несколько листов. Никак не могу подступиться - какой мне сделать контекстную структуру и сам формуляр.

Если описать так по уровням, форма должна выглядеть так:
1. Сотрудник 1 ( книга )
1.1. Отпуск ( лист1)
1.1.1. Поля заголовка для отпуска
1.1.2. Таблица данных по отпуску
1.2. Больничный ( лист2)
1.2.1. Поля заголовка для больничного
1.2.2. Таблица данных по больничному
2. Сотрудник 2 ( книга )
....
и так далее

Надеюсь понятно описал ) Спасибо заранее.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Чт, сен 13 2018, 15:06 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 181
Добрый день.
Вкратце:
Надо сделать форму для одного сотрудника, содержащую два листа. В программе печати формируете эту форму (книгу) несколько раз - каждый раз по новому сотруднику. А чтобы все книги попали в одну связку - в начале программы вызываете 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 .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, сен 14 2018, 07:26 
Начинающий
Начинающий
Аватара пользователя

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

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

Изображение

Формуляр:

Изображение


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, сен 14 2018, 12:11 
Почетный гуру
Почетный гуру

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

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

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, сен 14 2018, 13:06 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Ср, июл 29 2009, 08:20
Сообщения: 20
Пол: Мужской
Скинул на почту. Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пт, ноя 16 2018, 16:22 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 116
Добрый день.

Подскажите как лучше реализовать отчет.
Изображение

Для варианта на скриншоте сделал таблицу, в которой одно поле - другая таблица. И вывожу по примеру из документации "многоуровневая таблица (подытоги)", используя папку, цикл и паттерн. Но при большом объеме (1000-2000 строк) очень уж долго выводится. Можно ли побыстрее сделать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Вс, ноя 18 2018, 01:29 
Почетный гуру
Почетный гуру

Зарегистрирован:
Пт, дек 04 2009, 13:52
Сообщения: 181
Sam Stone написал(а):
очень уж долго выводится
Добрый день. А долго это сколько? Я замерял на нескольких системах и результат такой, что таблица 2000 строк на 15 столбцов, с изощренным форматированием (многоуровневые подзаголовки/подитоги) выгружается в среднем 10-15 секунд (выборка данных сюда не входит). Да, это дольше, чем АЛВ-грид, но не намного.
Если ваша выгрузка в разы дольше, то проверьте, может быть у вас так долго сами данные выбираются. Ещё посмотрите, не задействована ли в этом формуляре OLE/VBA-постобработка: она может сильно тормозить. Ну и надеюсь версия workbench не сильно древняя (т.к.самые первые версии могли иметь проблемы производительности). Ещё попробуйте для вывода вложенной таблицы использовать не Цикл+Паттерн, а компонент Грид (он должен немного побыстрее работать).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Пн, ноя 19 2018, 09:02 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 116
Долго это 5-8 минут 4800 записей. И это именно формирование экселя, без выборки данных, без макросов, версия 4.10. Но, похоже, нашел, в чем проблема: в редакторе шаблонов я для грида и паттерна выделял всю строку как диапазон для вывода. Сейчас переделал, выделив только необходимое количество столбцов - выгрузка заняла чуть больше минуты.

Из-за длинной строки проседает вот тут (ZXLWB_INCLUDE, 10060):
Code:
*   properties of the columns
    LOOP AT s_patterns-t_colprop INTO ls_colprop .

И это навело меня на мысль, что надо поправить привязанную в шаблоне область.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 128 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB