Текущее время: Пт, мар 29 2024, 00:14

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Ср, июл 29 2009, 07:20
Сообщения: 21
Пол: Мужской
Добрый день! Спасибо за разработку! Очень понравилась. Хотелось задать вопрос по использованию. Посмотрел примеры в хелпе и решил совместить 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, 14:06 
Почетный гуру
Почетный гуру

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

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

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

Изображение

Формуляр:

Изображение


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

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

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

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


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

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


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

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

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

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


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

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


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

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

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

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


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

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
Еще вопрос: пользователи хотят миллиард (40-50к) записей в эксель в виде таблицы с подытогами. Выгружается нормально, буквально пару минут. Но не открывается. Эксель съедает всю оперативку и помирает. Файл открылся на машине, где было 8+ гб свободной оперативки.
Если всю эту портянку выгрузить без подытогов (т.е. плоской таблицей), то файл открывается нормально, и эксель память не кушает. Не подскажите, в какую сторону копать?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: XLSX Workbench
СообщениеДобавлено: Вт, ноя 27 2018, 16:10 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
подытоги сапом считать))


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

Зарегистрирован:
Вт, дек 06 2005, 13:24
Сообщения: 167
Открывать на каком-нибудь сервере через удаленный рабочий стол.


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

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
Подытоги и так считаются сапом.

Проблему нашел, сам себе рукожоп :lol: Для пары паттернов выделил всю строку целиком (16384 столбца). Там статические данные типа подпись, фио и тд, но в результате документ стал широким, на этом и протухло.

Надо большими буквами написать в начале документации, что не стоит выделять всю строку целиком для области в шаблоне :D


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

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Sam Stone написал(а):
Надо большими буквами написать в начале документации, что не стоит выделять всю строку целиком для области в шаблоне
Да, вы не первый, кто пытается выделить всю строку и даже весь лист. Я в будущих версиях сделаю выдачу предупреждения при попытке присвоить паттерну большие области.


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

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
Вопрос по форматированию экселя под дерево: выделил область под cl_salv_tree, отформатировал ячейки. Скрыл столбец иерархии, в результате чего форматирование уехало влево то ли на 1, то ли на 2 столбца относительно шапки (она отдельно сделана). Это нормально и под столбец иерархии надо всегда выделять отдельный столбец в экселе, даже если он не выводится?


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

Зарегистрирован:
Пт, дек 04 2009, 12:52
Сообщения: 219
Sam Stone написал(а):
под столбец иерархии надо всегда выделять отдельный столбец в экселе, даже если он не выводится?
Да, в существующей реализации требуется именно такая разметка. Первый столбец разметки зарезервирован под столбец иерархии, даже если он не выводится.


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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