Issues while using XLSX Worcbench

1,583 views
Skip to first unread message

Igor

unread,
Mar 28, 2014, 2:50:35 AM3/28/14
to
If you've got trouble using the XLSX Workbench, share the problem!

arpi...@gmail.com

unread,
May 13, 2014, 5:13:14 AM5/13/14
to sap...@googlegroups.com
Hello Igor,

Really a good tool. Already implemented and trying to design some template.
I am stuck while adding images. I added one image (Insert tab > Illustrations group > Picture)and while trying to bind, it's giving the error 'Name of the drawing is not specified'. I think I am missing some step.

Igor

unread,
May 13, 2014, 6:12:48 AM5/13/14
to sap...@googlegroups.com
Hello, Arpit! 
Thank you for your interest in the tool !
As I understand it, you want to use Static source of drawing (Drawing from template). You have already inserted pixel picture to worksheet and now you trying to bind it with component "Drawing" of the form structure.

1) Check that your picture is located on the actual worksheet of Excel-template (if there are several worksheets in the template). 
2) Select component "Drawing" of the form structure and in the Properties tab see item Source. There is mode "Drawing from template" must be active. 
2.1) Press button "Pencil", after that popup window of search-help will be displayed. 
2.2) In the search-help you have to choose required picture from the actual worksheet. 
2.3) Binding is done )).

For more information check this page (item «Source»).
If the problem is not solved, share your screenshots, please.

etrusc...@gmail.com

unread,
Jun 7, 2014, 9:01:44 AM6/7/14
to sap...@googlegroups.com
Добрый день!

Отличная разработка.
Попробовал сделать отчет с переменным количеством строк и столбцов следующим образом:
Создал контекстную структуру, у которой есть поле T1 - внутренняя таблица. У это таблы есть поле T2 - тоже внутренняя таблица.
В экселевском шаблоне создал цикл по строкам таблицы T1. Вставил в нее паттерн, которому указал направление "слева-направо" (Этот паттерн выводится корректно)
В подчиненнии первому циклу создал второй цикл по таблице T2, в который включил шаблон с направлением "сверху вниз".
Т.е. я хотел что бы первый цикл определял число столбцов, второй же - число строк в каждом из столбцов.
Первый цикл отработал корректно. Из него паттерн показывает все правильно.
Второй цикл отработал неправильно: первая строка каждой таблицы T2 вывелась под соответствующим столбцом определенным Т1, а вот остальные строки все вывелись только под первым столбцом Т1.
Можно ли как-то исправить эту ошибку? Или на такое функциональность не рассчитана? Или я что-то делаю не правильно?
Кроме того: наггет версии 1.02 лежит в неправильной кодировке. Пришлось вручную его перегонять в UTF-8, что бы корректно загрузились русские тексты
Кроме того: При создании "с нуля" шаблона формы в транзакции при наличии экселя 2013, информация шаблона сохраняется в smw0 некорректно(содержимое шаблона не сохранилось в файле, тогда как параметры формы в файле присутствуют. В 2010 экселе таких проблем нет).

Igor

unread,
Jun 9, 2014, 8:17:01 AM6/9/14
to
Etrusc, спасибо за проявленный интерес! 
  1. Благодарю за информацию о том, что 2013-м экселе не работает... Я тестировал только в 2007 и 2010... к сожалению, в данный момент, 2013-м  не располагаю, однако, постараюсь решить эту проблему как можно быстрее.
  2. По отчету с переменным количеством строк и столбцов - я только что создал демонстрационный пример, там достаточно детально всё расписал.
  3. По поводу наггета - я просто выгрузил его SAPLINK-ом и ничего более с файлом не делал. Когда я тестировал его загрузку, то пробовал логиниться в SAP на разных языках. Если залогиниться на английском языке - действительно, будут проблемы с русскими текстами. Но если войти на русском языке, то вроде всё загружается корректно (по крайней мере у меня так). Если не сложно, поясни, что дополнительно нужно сделать с наггетом?
З.Ы. Я сформировал новую версию наггета 1.03. Устранена ошибка, возникавшая при использовании длинных наименований объектов словаря данных.  

Etrusc

unread,
Jun 9, 2014, 9:10:13 AM6/9/14
to sap...@googlegroups.com
Большое спасибо за оперативный ответ!
1. С динамической формой - все получилось
2. По поводу загрузки: наггет был в кодировки ANSI(ну так мне ее потом распознал notepad++, наверное на самом деле там win1251 была). Грузил под русским языком в саплогон. русские символы грузануло кракозябрами. Конвертнул файл в UTF-8(как значится в xml-заголовке наггета) и все грузанулось нормально
3. Еще один вопрос в дополнение про динамическую форму: допустим, у меня группа повторяющихся столбцов, их заголовки - объединенная ячейка. Можно как-нибуть реализовать с помощью вашего функционала?
Как пример:
--------------------------------
|общий заголовок        |
--------------------------------
|повтор|повтор|повтор|
Т.е. число повторов - вычисляется динамически в рантайме.Пока я вижу только вариант с несколькими заголовками разной длины, и управлением их видимостью. Но это кажется сильно некрасивым решением.

Igor

unread,
Jun 9, 2014, 10:23:58 AM6/9/14
to sap...@googlegroups.com
На счет кодировки - приму к сведению, спасибо. 
По поводу объединения ячеек - к сожалению, динамическое объединение не поддерживается. Думаю в будущих версиях это реализовать.

Etrusc

unread,
Jun 9, 2014, 12:51:43 PM6/9/14
to sap...@googlegroups.com
Еще раз - большое спасибо и за саму разработку и за оперативную помощь!

Igor

unread,
Jun 10, 2014, 2:56:33 AM6/10/14
to sap...@googlegroups.com
Всегда пожалуйста!

Etrusc

unread,
Jun 10, 2014, 5:01:57 AM6/10/14
to sap...@googlegroups.com
Добрый день!
Еще одна особенность работы тулзы: у одного пользователя не работает одновременно 2 экземпляра приложения. Т.е. если я открыл форму на редактирование, то я уже не могу ее просматривать в соседнем окне.И это не зависит разные это формы или нет. Можно это как-нибудь поправить?

Igor

unread,
Jun 16, 2014, 4:50:53 AM6/16/14
to sap...@googlegroups.com
Приветствую! Исправил ошибку, теперь можно открывать несколько экземпляров приложения одновременно. Выложил на сайте новую версию 1.04. 

Etrusc

unread,
Jul 1, 2014, 1:51:52 AM7/1/14
to sap...@googlegroups.com
Добрый день!
Спасибо за оперативные исправления и изменения!
Нашли еще одну багу: если в шаблоне создать ячейку и в самом экселе задать ей форматирование "текст", к ячейке привязать поле контекста, которое так же ссылается на текстовое поле(например, на базе эл.данных TEXT30), в программе печати положить в контекст значение с десятичными знаками(например "100.00"), то при выводе формы на экран в ячейке значение будет отражено без десятичных знаков. При этом, если при разметке шаблона в данную графу вставить текст значение (например какую-то букву), то вывод будет корректным ( с десятичными знаками).

Igor

unread,
Jul 14, 2014, 4:54:13 AM7/14/14
to sap...@googlegroups.com
Etrusc, я исправил эту ошибку. Теперь, если в экселе для какой-либо ячейки задать форматирование "текст", то число будет выведено именно как текст (со всеми пробелами, нулями после запятой и т.д.). 
Актуальная версия размещена на сайте (изменился только ZXLWB_INCLUDE).

Etrusc

unread,
Jul 31, 2014, 5:03:27 AM7/31/14
to sap...@googlegroups.com
Добрый день!

Большое спасибо за исправления!
Нашли еще одну проблему. Есть в абапе поле типа дата. Есть графа, которая отформатирована в шаблоне как дата. Если выводить поле без преобразования, получаем что-то типа 20140731, т.е. это не дата. Если выводим с внутр. преобразованием, то получаем 31.07.2014 на экране, но это значение не дата, а строка. А раз так, то фильтры и прочее по этой графе не работают.
Т.е. по хорошему, даты надо конвертировать в интежер как число дней с 01.01.1900. И тогда по идее все должно отработать корректно

Igor

unread,
Aug 4, 2014, 4:08:40 AM8/4/14
to sap...@googlegroups.com
Приветствую! Спасибо за замечание! 
Я сделал изменения, теперь дата должна отображаться правильно. Новая версия 1.07 доступна на сайте.

Etrusc

unread,
Aug 4, 2014, 8:05:34 AM8/4/14
to sap...@googlegroups.com
Добрый день! Спасибо за исправление. Осталась маленькая проблема: пустая дата показывается как 00.00.0000. А можно ее просто не передавать?

Igor

unread,
Aug 4, 2014, 9:13:50 AM8/4/14
to sap...@googlegroups.com
Прошу прощения, поторопился, не до конца протестировал... я исправил и обновил версию на сайте. Попробуйте сейчас, пожалуйста.

Etrusc

unread,
Aug 13, 2014, 2:01:00 PM8/13/14
to sap...@googlegroups.com
Большое спасибо!
А сложных заголовков пока в планах нет?

Igor

unread,
Aug 14, 2014, 4:15:46 AM8/14/14
to sap...@googlegroups.com
Вы имеете в виду динамические объединения ячеек? В планах-то это есть, как и некоторые другие расширения функциональности... Но сейчас у меня стало меньше свободного времени и я немного отвлекся от этой разработки. 
Если говорить о динамическом объединении ячеек, то, честно говоря, я пока не могу придумать, каким образом это должно выглядеть в редакторе ((... дело в том, что вроде как объединение ячеек - это определенно опция "Паттерна", но,одновременно, должна быть увязана с вышестоящим "Циклом"... однако, это выбивается из общей концепции... Пока мне приходит на ум несколько решений на эту тему, но ни одно не нравится. Может быть у Вас есть идеи ?

p.per...@gmail.com

unread,
Aug 14, 2014, 3:56:31 PM8/14/14
to sap...@googlegroups.com
Игорь, здравствуйте!

При подключении контекста к формуляру по кнопке с карандашом открывается окно с выбором (SAPLSPO4/0300), в котором надо указать словарный объект контекста.
К полю на этом экране неплохо бы приделать SEARCH-HELP.

Успехов!
Петр

p.per...@gmail.com

unread,
Aug 14, 2014, 4:12:32 PM8/14/14
to sap...@googlegroups.com
Игорь, Еще одно предложение.

Может не разобрался как это сделать, но есть ли возможность массово добавлять компоненты в дерево путем выбора их из привязанного контекста?
Если такой функции пока нет, то может ее стоит реализовать в будущем?
Когда полей в контексте много, создавать под каждое компонент, давать ему имя и описание, а затем привязывать к элементам контекста достаточно трудоемко.

С уважением,
Петр

Igor

unread,
Aug 15, 2014, 3:07:19 AM8/15/14
to sap...@googlegroups.com
Петр, добрый день! Обязательно сделаю SH для контекста в будущих версиях.

Igor

unread,
Aug 15, 2014, 3:18:56 AM8/15/14
to sap...@googlegroups.com
Пока такой возможности нет. Я уже думал над созданием такого Wizard-а, но пока оставил это на будущее... дело в том, что контекст можно интерпретировать в структуру формуляра очень по-разному (например, можно присвоить все поля контекста одному Паттерну в формуляре, или распределить по нескольким Паттернам и т.д.). Но в целом, согласен, такой инструмент в каком-либо виде необходим, и я буду над ним работать.

p.per...@gmail.com

unread,
Aug 15, 2014, 11:14:26 AM8/15/14
to sap...@googlegroups.com
Похожая функция реализована, например, в редакторе ракурсов к таблицам.
Там при добавлении полей в ракурс система предлагает выбрать сначала таблицу из которой брать поля. После этого показывает список полей в таблице и просит отметить галками нужные поля для переноса в ракурс. Ну и в вашем случае это вполне рабочий вариант.

Успехов!

Igor

unread,
Aug 18, 2014, 3:28:28 AM8/18/14
to sap...@googlegroups.com
ОК, принято! Постараюсь реализовать это, правда, не в ближайшем обновлении (сейчас работаю над динамическим объединением ячеек), а в следующем после него.

Igor

unread,
Sep 1, 2014, 6:42:16 AM9/1/14
to sap...@googlegroups.com
Петр, добрый день. Я прикрепил средство поиска для выбора контекста. Также, я реализовал функцию массового создания Значений через выбор полей из контекста: описание здесь (внизу страницы).

Igor

unread,
Sep 1, 2014, 6:49:19 AM9/1/14
to
Etrusc, добрый день. Я реализовал возможность сложных заголовков путем динамического объединения ячеек. 

Sergey

unread,
Sep 4, 2014, 8:46:54 AM9/4/14
to sap...@googlegroups.com
Добрый день!

Замечательная разработка :) Спасибо! :)
А можно приделать еще индикатор, чтобы при формировании excel пользователь видел, что процесс идет, а не завис(нужно для больших отчетов)

С уважением Сергей

Igor

unread,
Sep 4, 2014, 9:54:35 AM9/4/14
to sap...@googlegroups.com
Сергей, добрый день. 
Индикатор сделать можно, но отображать он будет некую малоинформативную фразу, т.к. показать именно процент выполнения пока мне не представляется возможным. 
Загвоздка в том, чтобы посчитать процент выполнения на момент выполнения итерации, необходимо заранее знать сколько именно итераций предстоит сделать... а вот это большой вопрос, во всяком случае пока. 
Но, тем не менее, в будущих версиях я сделаю индикатор со счетчиком итераций (он просто будет постоянно возрастать), который даст понять, что процесс идет.

Etrusc

unread,
Sep 16, 2014, 1:24:17 AM9/16/14
to sap...@googlegroups.com
Добрый день!

Игорь, огромное спасибо! Буду пробовать.

Igor

unread,
Sep 16, 2014, 2:24:14 AM9/16/14
to sap...@googlegroups.com
Если что-то будет не понятно, задавайте вопросы!

Sergey

unread,
Sep 16, 2014, 9:35:49 AM9/16/14
to sap...@googlegroups.com
Добрый день
Наверно нашел еще одну проблему, либо я не умею работать с Excel :)
Имеем отчет, в котором в зависимости от значений первых столбцов заполняются те или иные суммовые поля в других столбцах. Пользователи не хотят видеть нулевые суммы, сделал формат ячейки excel такой:
# ##0,00;-0;
Все хорошо, нулевые суммы скрываются, положительные суммы показываются, а вот отрицательные нет, и никак не могу подобрать формат. Хорошо что отрицательные суммы есть только в тесте :)
Ошибка или у меня руки кривые? :)

Спасибо

С уважением Сергей

Igor

unread,
Sep 17, 2014, 2:11:25 AM9/17/14
to sap...@googlegroups.com
Сергей, добрый день. Ваш формат ячейки конечно же должен работать, но если это не так, я обязательно исправлю эту ошибку в ближайшей новой версии. Спасибо за информацию об ошибках! Игорь.

Etrusc

unread,
Nov 20, 2014, 8:26:59 AM11/20/14
to sap...@googlegroups.com
Добрый день!
Игорь, еще одна маленькая проблема: если у нас есть в  контексте поле (char или string) которое в форму мы выводим не полностью, а частью, то если параметры выделения части превосходят существующее в поле значение то функционал падает в дамп.
Т.е.: если у нас есть поле F1 типа CHAR10 , со значением"Пусто", то при попытке вывода какой либо его части  происходит падение в дамп.

Igor

unread,
Nov 20, 2014, 3:46:36 PM11/20/14
to sap...@googlegroups.com
Добрый день, спасибо, что заметили эту ошибку! Я её сейчас исправил, и актуальную версию (2.03) разместил на сайте.

Игорь.

Etrusc

unread,
Nov 21, 2014, 1:30:39 AM11/21/14
to sap...@googlegroups.com
Добрый день!
Спасибо за исправление, но, к сожалению, выложенный наггет содержит ошибку и не заливается саплинком.

Igor

unread,
Nov 21, 2014, 5:28:44 AM11/21/14
to sap...@googlegroups.com
Ну вот, как всегда, поторопился ((. Сейчас перезалил версию, можно проверять.

Etrusc

unread,
Nov 21, 2014, 6:04:35 AM11/21/14
to sap...@googlegroups.com
Опять ошибка. поле со ссылкой на необъявленный тип.в ZXLWB_INCLUDE в 10545 строке. Для себя я просто закоментарил

Igor

unread,
Nov 21, 2014, 6:18:17 AM11/21/14
to sap...@googlegroups.com
да, спасибо, я сейчас убрал эту строчку из актуальной версии... когда-то скопировал этот кусок кода от одного из примеров к разработке, причем давно уже... странно, что ошибка раньше не обнаружилось ((

Etrusc

unread,
Nov 29, 2014, 10:15:01 AM11/29/14
to sap...@googlegroups.com
Большое спасибо за оперативную поддержку!
Игорь, если принимаете пожелания, то вот что получилось на основе опыта использования
1) возможность массового выделения и массовых операций в дереве иерархии объектов.
2) Собственно массовые операции над объектами иерархии: сдвинуть все по координатной сетке (указать в окне на сколько клеток верх-вниз-вправо-влево ), удаление объектов
3) вставка объекта с одновременной вставкой графы в шаблон (т.е. встали на шаблоне в графу, выбрали в контексте узел - вставили, сразу же привязка и к графе и сдвиг элементов в шаблоне). Часто бывает: здоровый шаблон, в нем много граф. Приходит изменение формы, которое состоит из вставки новой графы и ее заполнения. Для выполнения этого изменения приходится часто перелопачивать всю форму.
4) как альтернатива п.3: возможность представления "объект-графа формы" в табличном виде с возможностью редактирования

Igor

unread,
Dec 1, 2014, 3:01:05 AM12/1/14
to sap...@googlegroups.com
Etrusc, спасибо за пожелания! я постараюсь их учесть в будущих версиях.

mitr...@gmail.com

unread,
Dec 10, 2014, 8:08:48 AM12/10/14
to sap...@googlegroups.com
Здравствуйте!
Столкнулся с такой проблемой:
Попробовал использовать в шаблоне формулы (к примеру, простые ссылки на другие ячейки).
Сформированный документ открывается только с "восстановлением", в журнале восстановления какое сообщение:
"Удаленные записи: Формула из части /xl/calcChain.xml (Свойства вычислений)".
Формулы в принципе не предусмотрены к использованию в XLWB или я как-то неверно проектирую шаблон?
С уважением, Дмитрий
Спасибо за Вашу разработку!

Igor

unread,
Dec 10, 2014, 8:22:14 AM12/10/14
to sap...@googlegroups.com
Дмитрий, добрый день! 
К сожалению, формулы/ ссылки/ источники данных/ сводные таблицы/ и др. вычислительные функции Excel не поддерживаются. Функциональность XLWB ориентирована на создание статичной печатной формы. Все вычисления должны выполняться в программе печати.
С уважением, Игорь.

mitr...@gmail.com

unread,
Dec 10, 2014, 8:36:54 AM12/10/14
to sap...@googlegroups.com
Спасибо за ответ. Но жаль, конечно...
Формулы хотел использовать для реализации российских налоговых форм. Они спроектированы законодателем таким образом, что каждый символ должен располагаться в отдельной ячейке. И очень тяжело рисовать сотни полей и прописывать посимвольные связи с контекстом.
С уважением, Дмитрий

Igor

unread,
Dec 10, 2014, 9:22:52 AM12/10/14
to sap...@googlegroups.com
Понимаю... к сожалению, пока не придумал, как вписать формулы в общую концепцию XLWB. 
В каком-то отдельном случае (как вашем, например) вполне понятно, как должно отработать. Если же брать формулы в общем случае - то тут большой вопрос. Ведь в шаблоне формула ссылается на конкретные ячейки шаблона, однако, в итоговом файле, по причине динамики его построения, на месте этих исходных ячеек скорее всего будут другие данные (да и самих ячеек может не быть). Значит, надо будет как-то корректировать формулу в момент сборки итогового файла... а корректировка формулы - это уже запредельная головоломка (ведь формулы бывают разные).  

Вам же могу только сказать, что если всё-таки решитесь делать через XLWB, то создавать в контексте компонент под каждую букву (ячейку в excel) необязательно, т.к. есть возможность связать конкретный символ из поля контекста с Значением в формуляре (к сожалению, придется создавать Значение под каждую ячейку excel).

С уважением, Игорь.

mitr...@gmail.com

unread,
Dec 10, 2014, 9:34:22 AM12/10/14
to sap...@googlegroups.com
Несмотря на эти ограничения, инструмент Ваш всё равно отличный. Спасибо!

Igor

unread,
Dec 10, 2014, 9:55:46 AM12/10/14
to sap...@googlegroups.com
Спасибо

Igor

unread,
Dec 16, 2014, 10:07:46 AM12/16/14
to sap...@googlegroups.com
Дмитрий, добрый день. 
Я опубликовал новую версию, в которой реализовал новую опцию вставки Значения (см. подпункт пункте "В виде матрицы"), необходимую для разработки форм, в которых каждый символ должен располагаться в отдельной ячейке. Подробности - на сайте  https://sites.google.com/site/sapxlwb/home/rus/use/tutorials/form/components/field . Позже будет и пример. Если есть вопросы - задавайте.
С уважением, Игорь.

Igor

unread,
Dec 25, 2014, 9:45:02 AM12/25/14
to sap...@googlegroups.com
пользователь Etrusc написал:
Etrusc, Добрый день. В новой версии я добавил возможность массовых операций: Выделение, удаление и сдвиг по координатной сетке. 
С уважением, Игорь.

2gjm...@gmail.com

unread,
Feb 2, 2015, 4:58:26 AM2/2/15
to sap...@googlegroups.com
Игорь, добрый день!
Великолепная разработка, большое спасибо!
Не с первого раза, но разобрался, как создавать сложные динамические формы и теперь уже без проблем новые отчеты реализую на вашем функционале!
Но есть одна проблема... (Причем, мне известно о трех местах, где также развернули ZXLWB и она наблюдается во всех трех местах.) Проблема в том, что при вызове формы система выдает несколько (2-3) запросов на Запись в Реестр Windows. (При необходимости могу выслать скриншоты.)
Вне зависимости от того, разрешается запись или нет, форма открывается корректно, но пользователи пугаются. :)
Подскажите, можно ли с этим как-то побороться?
С уважением, Алексей.

Igor

unread,
Feb 2, 2015, 5:49:33 AM2/2/15
to sap...@googlegroups.com
Алексей, добрый день. Работа с реестром предусмотрена не случайно, т.к. каждый раз при вызове метода DOI :

      r_docproxy->open_document_from_table(
          EXPORTING document_size  
= lv_document_size
                    document_table
= lt_document_table
                    open_inplace  
= lv_inplace
                    no_flush      
= abap_on ) .

Excel выдает  пользователю такое сообщение с запросом подтверждения:
"The file you are trying to open ... , is in a different format than specified by the file extension"

Вот здесь как раз описана эта проблема и её решение: http://scn.sap.com/thread/943966

Это сообщение выдается потому, что вместо ожидаемого формата XLS в метод передаются данные в другом формате XLSX и Эксель запрашивает подтверждение, на всякий случай. Лично я с этим сообщением столкнулся после установки Excel 2013однако, его не было при Excel 2007 (но, возможно, в прежней версии просто были другие настройки безопасности по-умолчанию).

Чтобы такое сообщение не возникало, я каждый раз, перед вызовом этого DOI-метода, временно отключаю эту проверку в реестре, а после вызова метода, возвращаю в реестре всё как было. Что именно я меняю в реестре, см.по ссылке выше.

Чтобы отключить эту запись в реестр, вы можете открыть ZXLWB_INCLUDE и в классе LCL_OLE, методе CONSTRUCTOR закомментировать вызов register_setnew и register_return . Но тогда может начать появляться сообщение от Excel , и тогда потребуется у каждого пользователя отключить проверку вручную (в реестре). 

С уважением, Игорь.

Igor

unread,
Feb 2, 2015, 5:59:53 AM2/2/15
to sap...@googlegroups.com
Хотя, подозреваю, что в новых версиях SAP эта проблема уже решена, и вроде бы даже SAP-ноты были на этот счет... Возможно, я сделаю эту опцию отключаемой в следующих версиях XLSX-Workbench.

2gjm...@gmail.com

unread,
Feb 5, 2015, 9:15:05 AM2/5/15
to sap...@googlegroups.com
Игорь, спасибо за комментарий. Теперь понятно, откуда это берется и для чего...
Остается актуальным вопрос "как от этого избавиться?". :)
Хочется же идеального бездиалогового режима...
Пока поищу, какие есть ноты.
Если вдруг в будущем сможете решить, как этот момент пофиксить, будет вообще отлично!

С уважением, Алексей.

Igor

unread,
Feb 5, 2015, 9:56:51 AM2/5/15
to sap...@googlegroups.com
Алексей, думаю, можно от этого избавиться двумя способами:

1 способ (правильный): Имплементировать в системе SAP-Note 1517552 (The file you are trying to open is in a different format...)

2 способ: на каждой локальной машине пользователя, где будет выходить данное сообщение, неоходимо разово прописать в реестре некоторые переменные, чтобы отключить эту проверку, как написано здесь: http://scn.sap.com/thread/943966 .                

В обоих способах необходимо закомментировать запись/чтение реестра - как я уже писал ранее, открыть ZXLWB_INCLUDE и в классе LCL_OLE, методе CONSTRUCTOR закомментировать вызов register_setnew и register_return .

Я же в будущем планирую сделать запись/чтение реестра отключаемым в настройках XLSX Workbench.

С уважением, Игорь.

2gjm...@gmail.com

unread,
Feb 9, 2015, 4:56:07 AM2/9/15
to sap...@googlegroups.com
Игорь, судя по содержимому ноты, способ 1 по сути эквивалентен способу 2. :) Все равно в итоге править реестр EXCEL\SECURITY вручную на каждом ПК, т.к. проблема на уровне Microsoft, а не SAP.
Если вдруг будете дорабатывать, м.б. есть смысл добавить возможность записи с помощью ZXLWB необходимого значения в соотв. ячейку реестра?

С уважением, Алексей

Igor

unread,
Feb 9, 2015, 5:14:20 AM2/9/15
to sap...@googlegroups.com
Алексей, в общем-то мы и начали разговор с того, что в реестр прописываются значения (при вызове формы система выдает несколько (2-3) запросов на Запись в Реестр Windows) и, как я уже говорил, это как раз и есть правка реестра EXCEL\SECURITY . 

Просто, каждый раз, когда выводится формуляр:
1) программно выполняется правка реестра EXCEL\SECURITY
2) вызывается тот самый метод DOI, при котором Excel должен выдавать предупреждение
3) значения реестра EXCEL\SECURITY программно возвращаются в исходное состояние

Попробуйте вручную выставить значения реестра EXCEL\SECURITY в нужное состояние, после этого программа должна перестать каждый раз туда записывать, т.к. проверяется необходимость правки.

С уважением, Игорь.

2gjm...@gmail.com

unread,
Feb 9, 2015, 11:53:26 PM2/9/15
to sap...@googlegroups.com
Игорь, прошу прощения, я вероятно, неправильно выразился. У себя на проекте я эту проблему решил - Вам большое спасибо.
Имел в виду, что если будете дорабатывать, в последующих версиях предусмотреть автоматическую правку реестра.
В принципе, тему можно считать закрытой - Вы в полной мере ответили на все вопросы и выдали крайне полезные рекомендации.

С уважением, Алексей.

matheus...@gmail.com

unread,
Feb 20, 2015, 3:18:51 PM2/20/15
to sap...@googlegroups.com
I started to use the workbench today and everytime when i try to activate the form ,i'm getting the following error:

"Follow to Excel menu: DATA->OUTLINE and uncheck SUMMARY ROWS BELOW DETAIL"

I've already checked and this option is not checked on excel.

What can i do?

Igor

unread,
Feb 20, 2015, 5:53:00 PM2/20/15
to sap...@googlegroups.com
Hi, Matheus. I would like to clarify some things. How many worksheets in the Excel-template? Did you create form with initial Excel-template, or you have used an upload option? Did you save form before activation?
Regards, Igor.

matheus...@gmail.com

unread,
Feb 23, 2015, 7:50:52 AM2/23/15
to sap...@googlegroups.com
Hi,

...
How many worksheets in the Excel-template?
R: Just one

Did you create form with initial Excel-template, or you have used an upload option?
R: I'm using initial excel-template.

Did you save form before activation?
R: Yes.

I have another question. Before select the area in excel, i have to do any action in excel template or i just have to select the area?

I have this question because all tutorials i see, the excel area is already colored and customized.

Thanks.

matheus...@gmail.com

unread,
Feb 23, 2015, 10:00:59 AM2/23/15
to sap...@googlegroups.com
I solved my problem.
I've found the option specified at excel and the checkbox was flagged. Since I unchecked the option, the form starts to work.

Thanks for your time Igor!

Igor

unread,
Feb 24, 2015, 3:46:26 AM2/24/15
to sap...@googlegroups.com
I have another question. Before select the area in excel, i have to do any action in excel template or i just have to select the area? 
I have this question because all tutorials i see, the excel area is already colored and customized. 

You have to perform two items:
a) add formatting to excel-template (coloring and customizing cells)
b) assign Form's component to corresponding cell range of excel-template (template-binding). 
You can perform the items in either order. 

Regards, Igor

2gjm...@gmail.com

unread,
Feb 24, 2015, 8:25:29 AM2/24/15
to sap...@googlegroups.com
Игорь, если позволите, еще один вопрос: При сохранении документа ему по умолчанию проставляется свойство файла Authors = IgorBorodin, что не совсем нравится пользователям. :) Беглый поиск по инклюдам результата не дал. Можете подсказать, где в коде прошита эта строка с целью замены ее на реальное имя пользователя?

Igor

unread,
Feb 24, 2015, 8:48:39 AM2/24/15
to sap...@googlegroups.com
Алексей, подменить можно не только автора, но и компанию и другие свойства документа. 
Смотрите здесь: https://sites.google.com/site/sapxlwb/home/rus/use/tutorials/printprogram/callform параметр IT_DOCPROPERTIES .
С уважением, Игорь.

2gjm...@gmail.com

unread,
Feb 24, 2015, 9:32:09 AM2/24/15
to sap...@googlegroups.com
Спасибо!
С уважением, Алексей.

yulia.va...@gmail.com

unread,
Mar 11, 2015, 6:49:42 PM3/11/15
to sap...@googlegroups.com
Добрый день,
Спасибо за разботку!
Ошибок не нашла пока, но есть вопрос. Возможно ли использование Макросов, VBA?
Мне необходимо скрыть несколько столбцов при опреденном значении поля - Макросы в этом случае очень бы пригодились. Можно ли это реализовать другими методами в рамках Вашей разработки?
Заранее спасибо за ответ!

С Уважением,
Юлия

Igor

unread,
Mar 12, 2015, 6:05:27 AM3/12/15
to sap...@googlegroups.com
Юлия, добрый день.
Использование макросов в данной разработке невозможно. Однако, есть другие возможности для реализации Вашего требования динамического скрытия/ отображения столбцов таблицы. Динамическое появление в формуляре основано на свойстве «Появление при выводе» для Паттерна 

Позже на сайте я опубликую пример , а сейчас постараюсь объяснить вкратце. 
Допустим, есть таблица из 6 полей (ABCDEF). При этом, первые 3 поля (A,B,C) должны выводиться в формуляр всегда, а остальные 3 поля (D,E,F) - по необходимости, определяемой в момент запуска программы печати.
  1. Контекст представляет собой табличный тип, строка которого содержит основные поля: A, B, C, D, E, F, а также, технические поля (индикаторы появления соответствующих полей в формуляре): show_D, show_E, show_F . Итого, 9 полей.

  2. В программе печати основные поля таблицы заполняются чем угодно. Поля-индикаторы появления, при этом, заполняются 'X' - если соответствующее поле требуется отобразить в формуляре, либо оставляется пустым - если не требуется.

  3. В формуляре, создаем цикл, внутри которого будет один сплошной Паттерн для статических полей A,B,C; плюс ещё три Паттерна - для каждого из динамических полей: D,E,F . Значения для каждого из столбцов следует смэппить с соответствующими полями контекста.
    Для каждого из динамических Паттернов, пункте «Появление при выводе» следует указать соответствующее поле-индикатор появления (show_D, show_E или show_F).
    Есть ещё нюансы: 
    • всем динамическим Паттернам следует установить свойство «Направление вывода» = "Вправо", т.к. они должны следовать не ниже предыдущего Паттерна, а правее (продолжать строку) .
    • все Паттерны следует поместить в Папку, чтобы правильно позиционировать начало новой строки таблицы.
P.S. Понимаю, что объяснение сумбурное, поэтому, рекомендую дождаться примера на сайте.

yulia.va...@gmail.com

unread,
Mar 12, 2015, 8:44:04 PM3/12/15
to sap...@googlegroups.com
Огромное Спасибо за ответ! тестовый вариант работает как надо! Будем внедрять этот метод! Если будут вопросы - обратимся за советом.
С уважением,
Юлия

Igor

unread,
Mar 13, 2015, 7:53:20 AM3/13/15
to sap...@googlegroups.com

Etrusc

unread,
Apr 9, 2015, 6:46:24 AM4/9/15
to sap...@googlegroups.com
Добрый день!

Игорь. скажите пожалуйста,  а можно ли сделать поддержку в контексте refrence типов?
Часто в  программе собираем данные для алв-представления (тело таблицы). Прицепив к нему заголовок и\или подвал можем получить нужный нам отчет эксель. Но тогда нужно или проектировать прогу сразу с учетом необходимости вывода в эксель (т.е. сразу хранить данные в структуре контекста эксель-отчета) или перекладывать данные в отдельную структуру (что будет увеличивать потребление памяти). Выходом из этого была бы возможность использовать в контексте поле ref to имя_табличного_типа, но, к сожалению, такой вариант ваша разработка не поддерживает

Igor

unread,
Apr 9, 2015, 7:15:10 AM4/9/15
to sap...@googlegroups.com
Etrusc, добрый день!
Сейчас refrence типов в качестве таблицы задавать нельзя, но спасибо вам за идею, возможно, как-нибудь в будущем и реализую эту возможность. 
На данный же момент, полностью динамические таблицы можно выводить так, как указано в примерах 9 и 10 на сайте. Для того, чтобы перегнать динамическую таблицу в "гибкий" формат можно сделать некий reuse-Ф.М. и всегда его использовать (согласен, что это дополнительная нагрузка на систему, но пока только так). 

Кстати, когда-то давно вы предлагали представить таблицу в формуляре в виде отдельного объекта (компонента), в котором можно добавлять/удалять столбцы, перемещать таблицу целиком и т.д. Так вот, в версии 2.08 я реализовал новый компонент "Грид" и мне интересно ваше мнение об этом.

Etrusc

unread,
Apr 9, 2015, 8:07:01 AM4/9/15
to sap...@googlegroups.com
На данный же момент, полностью динамические таблицы можно выводить так, как указано в примерах 9 и 10 на сайте
ммм.. нет... я не о динамических таблицах. я о статических, но заданных через reference, что бы не есть память. Динамический вывод видел, используем. Большое спасибо

Еще одна проблема: падает в дамп, если в структуре контекста объявить поле типа внутр. таблица, которая задана аналогично вот такому определению
data: gt_tab type standard table of bkpf-bukrs.

падает в NODES_RECURS класса LCL_CONTEXT на строке

        li_structdescr ?=  li_tabledescr->get_table_line_type( ) .


Igor

unread,
Apr 9, 2015, 10:13:35 AM4/9/15
to sap...@googlegroups.com
То, что падает в дамп - это конечно же баг, я исправлю... Однако, изначально предполагалось использование таблиц, строками которых являются структуры (а не на элементы данных и прочее). 
Если необходима вложенная таблица только с одним полем, то могу предложить создавать её, например, на основе стандартной структуры LVC_S_TABL - для большинства случаев она подойдет. 

Etrusc

unread,
Apr 27, 2015, 2:16:51 AM4/27/15
to sap...@googlegroups.com
Добрый день!
1) большое спасибо. Реализация сдвига привязок элементов контекстов к графам шаблона работает отлично
2) грид - тоже работает отлично. Но я имел ввиду другое: возможность представления свойств элементов контекста в виде таблицы, с тем, что бы можно было править все массово в табличном виде без переключения между разными элементами (самая близкая аналогия: в эксель можно выделить несколько граф, выбрать "свойства" и править свойства всех граф как у одной).
3) про использование табл.типа построенного на базе элемента данных: я просто предположил, что то что корректно в словаре данных\абап редакторе - будет корректно и в контексте.

mike....@gmail.com

unread,
Jul 10, 2015, 4:32:24 AM7/10/15
to sap...@googlegroups.com
Приветствую, Игорь.

Спасибо за отличный инструмент по выгрузке. Очень сильно помог на проекте. Лучшее решение по выгрузке в Excel на сегодняшний момент по моему мнению и самое быстрое - как в разработке, так и выгрузке. Особое спасибо за группировки и динамическое отображение столбцов!

Удачи!

Igor

unread,
Jul 10, 2015, 5:33:00 AM7/10/15
to sap...@googlegroups.com
Приветствую, Майк. Большое спасибо, приятно слышать, что инструмент востребован. Кстати, сейчас я почти закончил работу над новой версией, в которой будет реализована поддержка Диаграмм (Charts). Скоро опубликую.

С уважением 
Игорь Бородин.

Etrusc

unread,
Aug 20, 2015, 9:00:34 AM8/20/15
to XLSX Workbench
Добрый день!

Игорь, скажите пожалуйста, а есть ли в планах реализация вывода в определенную графу значения из определенной строки внутренней таблицы? Т..е., что бы  связь между ячейкой формы и полем строки внутр.таблицы с данными была определена в дизайнтайме статически.

Igor

unread,
Aug 27, 2015, 3:46:58 AM8/27/15
to XLSX Workbench
Добрый день! так ведь это уже реализовано в версии 3.0 . Смотрите документацию к Пункту «Значение» для компонента «Значение» (Имеется возможность связи не только с элементарным полем контекста, но и с вложенной таблицей...)

С уважением 
Игорь Бородин.

Etrusc

unread,
Aug 27, 2015, 9:02:47 AM8/27/15
to XLSX Workbench
Большое спасибо! пропустил этот момент.

gusev...@gmail.com

unread,
Aug 28, 2015, 10:48:25 AM8/28/15
to XLSX Workbench
Добрый день!
Возникла проблема с заданием Области печати: не удается сохранить заданную область в шаблоне.
Подскажите пожалуйста, имеется ли какая-нибудь возможность решить эту проблему?

Igor

unread,
Aug 28, 2015, 11:15:57 AM8/28/15
to XLSX Workbench
Добрый день. Область печати не переносится из шаблона, а формируется динамически (по содержимому). Есть возможность принудительной вставки разрыва страниц там, где необходимо. А какая стоит задача?

gusev...@gmail.com

unread,
Aug 31, 2015, 2:29:40 AM8/31/15
to XLSX Workbench
Стоит задача выводить ячейки, необходимые для визуальной проверки, но на печать эти ячейки не должны выводиться.

Igor

unread,
Aug 31, 2015, 4:14:31 AM8/31/15
to XLSX Workbench
Валерий, к сожалению, в текущей реализации такой возможности нет - всё что есть на листе будет выведено на печать. Возможно, в будущих версиях я реализую возможность ограничения области печати.

С уважением, 
Игорь Бородин.

came...@gmail.com

unread,
Dec 1, 2015, 10:25:08 PM12/1/15
to XLSX Workbench
Добрый день!
А вы ведете где-то описание по версиям?

Igor

unread,
Dec 2, 2015, 3:27:13 AM12/2/15
to XLSX Workbench
Добрый день, Артур. 
Нет, не веду. Но могу сказать по версии 3.01: 
- исправление бага: при выводе дерева с опцией "Без заголовка", вставлялась пустая строка перед ним.
- исправление бага: при выводе грида и дерева было замечено не совсем корректное поведение форматирования в строго определенных случаях разметки шаблона.
- незначительная оптимизация некоторых участков кода.

С уважением,
Игорь Бородин.

jedi...@gmail.com

unread,
Dec 14, 2015, 2:27:12 AM12/14/15
to XLSX Workbench
Добрый день.
Подскажите, пожалуйста. Есть ли возможность немедленной печати?

Igor

unread,
Dec 14, 2015, 3:24:21 AM12/14/15
to XLSX Workbench
Добрый день, пока возможности немедленной печати нет. Но, возможно, я учту это в следующих версиях. 
Но, как вариант, сейчас вы можете, получив файл в виде hex-последовательности (exporting-параметр  EV_DOCUMENT_RAWDATA), самостоятельно преобразовать его в OLE-объект и вызвать команду PrintOut.

С уважением,
Игорь Бородин.

jedi...@gmail.com

unread,
Dec 14, 2015, 3:34:35 AM12/14/15
to XLSX Workbench
Спасибо за быстрый ответ.
Только хотел бы уточнить, решение, которое вы предлагаете, он предполагает, что OLE объект будет создан на клиентской машине?
Меня интересует возможность немедленной печати в фоновом режиме. Те есть, с сервера. Это позволило бы уйти от использования PDF.

Igor

unread,
Dec 14, 2015, 3:51:38 AM12/14/15
to XLSX Workbench
В том-то и суть проблемы: MS Excel невозможно установить глобально, на сервере приложений (во всяком случае, мне не известно о такой технологии), а только на локальной машине. Поэтому, XLS-файл нельзя было сформировать в фоне, а только на локальной машине, посредством MS Excel, взаимодействуя с ним через OLE/DOI. 
Сейчас же, с внедрением нового формата файла XLSX (Open-XML) стало возможным его формирование БЕЗ участия MS Excel. Однако, такие функции, как просмотр файла, печать и т.д. возможны только через приложения на локальной машине пользователя (Excel, Open-Office и др.).

insa...@gmail.com

unread,
Mar 24, 2016, 6:57:04 AM3/24/16
to XLSX Workbench
Здравствуйте Игорь.

У меня не получается работа с циклом. Вроде создал структуру. Присвоил контекст формуляру. Добавляю цикл. Но при попытке присвоения контекста он сообщает что "Подходящих узлов контекста не найдено". Что я могу делать не так?

Igor

unread,
Mar 24, 2016, 7:35:22 AM3/24/16
to XLSX Workbench
Здравствуйте, Ильмир. 
У вас контекст - это структура так? А в этой структуре есть вложенная таблица (т.е. поле, имеющее табличный тип)? Вы можете присвоить цикл только таблице, находящейся в контексте. Чтобы было понятно, в примере 3.2.05  поле POSITIONS (в контексте) имеет табличный тип и к нему в формуляре присваивается цикл.

С уважением, Игорь.

insa...@gmail.com

unread,
Mar 24, 2016, 7:54:17 AM3/24/16
to XLSX Workbench
Да все верно я ссылался на структуру, а не на таблицу. Спасибо за пояснение и оперативный ответ.
Можно еще вопрос?
Пытаюсь создать отчет где будет шапка в которую нужно будет засунуть(дату, и прочую дребедень),
а снизу будут поля одного и того же вида вложенные друг в друга.
Я правильно понимаю что мне нужно создать шапку куда я передаю значения.
И тело где будет сами циклы?.

Igor

unread,
Mar 24, 2016, 8:07:45 AM3/24/16
to XLSX Workbench
Я не совсем понял про "поля одного и того же вида вложенные друг в друга", но думаю имелась виду табличную часть (тело). Вы правильно поняли последовательность действий. Я же советую посмотреть вот этот пример  - на мой взгляд, он по структуре очень близок к тому, что вам нужно: шапка с несколькими полями и табличная часть (тело) .

С уважением, Игорь.

insa...@gmail.com

unread,
Mar 24, 2016, 8:11:17 AM3/24/16
to XLSX Workbench
Я имел ввиду структуру типа дерево с динамической вложенностью ветви которого соответствуют друг другу. Думаю показанный вами пример подойдет. Спасибо большое!

Igor

unread,
Mar 24, 2016, 8:21:42 AM3/24/16
to XLSX Workbench
Если вместо табличной части будет дерево (иерархия с группировками строк), тогда надо сделать немного иначе. 
Тогда вместо компонента "Цикл", связанного с контекстной таблицей, надо использовать компонент "Дерево", связанный с контекстным полем типа CL_SALV_TREE. Как в этом примере .

С уважением, Игорь.

insa...@gmail.com

unread,
Mar 24, 2016, 8:28:34 AM3/24/16
to XLSX Workbench
Но в таком примере вроде нет возможности передать другие поля в заголовок?

Igor

unread,
Mar 24, 2016, 9:12:51 AM3/24/16
to XLSX Workbench
Конкретно в этом примере нет, но там всё довольно очевидно. 
Структура контекста будет содержать поля для шапки отчета: Дата, Номер,.... и плюс ещё одно поле для тела отчета, назовем его ALVTREE Type ref to CL_SALV_TREE :
 




Структура отчета будет такая: 
- Лист
--  Паттерн для шапки отчета (в нем Значения: Дата, Номер, ...   привязаны к соответствующим полям контекста)
--  Дерево для тела отчета - привязано к контекстному полю ALVTREE .

С уважением, Игорь.

insa...@gmail.com

unread,
Mar 25, 2016, 5:21:39 AM3/25/16
to XLSX Workbench
Спасибо большое все получилось. А есть возможность красить строку в зависимости от значения в первом столбце, а не от уровня вложенности. Это наверно можно сделать с помощью формул в экселе?

Igor

unread,
Mar 25, 2016, 5:28:06 AM3/25/16
to XLSX Workbench
Это должно решаться с помощью условного форматирования в Excel.

С уважением, Игорь.

insa...@gmail.com

unread,
Mar 28, 2016, 6:11:08 AM3/28/16
to XLSX Workbench
Еще раз здравствуйте Игорь.

Столкнулся с небольшой проблемой производительности.
Одной из причин оказался метод is_number.
Предлагаю вам мой вариант его тела.

METHOD is_number .

CHECK iv_value IS NOT INITIAL .
IF match( val = iv_value regex = '^\-?\d{1,}\.?\d{0,}$' ) NE space.
rv_number = abap_on .

ENDIF.
ENDMETHOD . "is_number

Разница на большом количестве данных существенна.
Вместо 2,5 минут 10 секунд.

It is loading more messages.
0 new messages