Текущее время: Пт, май 26 2017, 05:36

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2066 ]  На страницу Пред.  1 ... 134, 135, 136, 137, 138
Автор Сообщение
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пн, апр 03 2017, 14:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1743
Откуда: Москва
Пол: Мужской
Rez_nik писал(а):
Добрый день!
Нужна Ваша помощь.
После выгрузки документа в Excel должен запуститься макрос, который выделяет цветом строки с подитогами, итогами и т.д.

*вызов макроса
CLEAR it_val.
it_val-val_type = 'M'.
it_val-value = 'YZZ_DOWNTIME'.
APPEND it_val.

*заполнение внутренней таблицы
CALL FUNCTION 'ZZHCM_PY_02_2'
EXPORTING
line_name = 'line'
val_type = ''
TABLES
it_any_table = lt_ztab_pdf
it_values = it_val.

Но после загрузки и формирования документа Excel он не запускается на выполнение. Подскажите, пожалуйста, в чем может быть ошибка? Что я делаю неправильно?

Во-первых, ZWWW обрабатывает содержимое IT_VALUES в алфавитном порядке значений VAR_NAME, соответственно и заполняет шаблон в этом порядке. Поэтому, чтобы выполнить макрос "после выгрузки документа", нужно выполнить его для именованной области, стоящей ниже всех других по алфавитному порядку. В Вашем примере получается VAR_NAME=пусто, т.е. сначала выполнится макрос (когда форма еще не заполнена вся), а потом производится заполнение. Можно создать фиктивную именованную область, например, обозвать ячейку "Z_Format", если другие имена только латиницей, а если есть с русскими буквами, то можно типа "Я_Формат". Тогда макрос для VAR_NAME='Я_Формат' будет выполняться в конце.

Во-вторых, для раскраски итогов/подытогов вовсе нет необходимости лепить макросы. Всё делается гораздо проще, создаются макеты строк подытогов и где нужно подставляются в основную таблицу при помощи VAL_TYPE='V'. Посмотрите пример ZWWW_MANY_LIST, смотрите содержимое IT_VALUES перед вызовом ФМ, обратите внимание на строки, где VAL_TYPE='V'.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пн, апр 03 2017, 17:33 
Начинающий
Начинающий

Зарегистрирован:
Пт, фев 19 2016, 12:12
Сообщения: 7
Получилось. Большое спасибо за помощь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, апр 13 2017, 20:23 
Младший специалист
Младший специалист

Зарегистрирован:
Пн, мар 12 2012, 10:38
Сообщения: 96
Добрый день, есть вопрос.
Можно ли как-нибудь приспособить данный ФМ для получения Excel в BSP без JAR'а?
Например, как-нибудь получить готовый Excel на сервер, прогнать через bin->xstring->string и вернуть респонс с application/vnd.ms-excel?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, апр 13 2017, 21:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1743
Откуда: Москва
Пол: Мужской
Saperx писал(а):
Добрый день, есть вопрос.
Можно ли как-нибудь приспособить данный ФМ для получения Excel в BSP без JAR'а?
Например, как-нибудь получить готовый Excel на сервер, прогнать через bin->xstring->string и вернуть респонс с application/vnd.ms-excel?

Без JAR полноценный файл *.xls получить нельзя, т.к. только сам Excel умеет его формировать.
В самой последней версии YWWW, про которую я писал здесь http://sapboard.ru/forum/viewtopic.php?f=13&t=4880&p=553330&hilit=YWWW#p553330, есть возможность формировать XML-Excel.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пт, май 19 2017, 21:08 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 13:43
Сообщения: 824
Откуда: СССР
Пол: Мужской
Доброго времени суток, уважаемый Parazit. :pivo:

В одной из задач, в которой использую Ваш ФМ ZWWW_OPENFORM обнаружил такую багу/фичу.
Если таблица подаваемая на вход небольшая, то форма заполняется претензий нет.
Но наши юзера, пытаются грузить огромные таблицы. Предлагаю не обсуждать зачем, это отдельный вопрос, оставим за скобкми.
Суть в том, что глубоко внутри Вашего ZWWW* есть переключатель оптимизации.
Если число строк превышает какой-то порог, срабатывает модуль который формирует текстовый файл с разделителями "#" на локальной машине. Это всё отрабатывает. Но вот когда там внутри читается ZWWW_MACROS, в котором "сидит" Бейсик, то дальше дело не идёт, и ошибок не выдаёт.
На выходе получаю пустой шаблон без данных.
В отладчике процесс "ничего не делает" в форме RUNEXCELMACROS
Где-то здесь:
Код:
  GET PROPERTY OF WORKBOOKS 'Application' = APP.
  GET PROPERTY OF APP 'ActiveWorkbook' = WORKBOOK.
  CALL METHOD OF WORKBOOKS 'Open' = MACROBOOK
    EXPORTING #1 = FILE_MACROS.
  CALL METHOD OF WORKBOOK 'Activate'.
  CALL FUNCTION 'FLUSH'.

  CALL METHOD OF APP 'Run'
    EXPORTING #1 = MACROSNAME
    #2 = FILE_DATA.
  CALL FUNCTION 'FLUSH'.

Переменные WORKBOOK и MACROBOOK остаются пустыми.
Как тут отладиться в этом фрагменте?
Код:
  CALL METHOD OF WORKBOOKS 'Open' = MACROBOOK
    EXPORTING #1 = FILE_MACROS.

Сам блок ZWWW у нас старенький, но я сравнивал с последней версией. Этот код не отличается.
По итогам предыдущих этапов получаю текстовый файл 92 Мб... Маразм конечно. С юзерами потом обсудим. Предлагаю оставить за скобками.
В общем получается порядка 200 тыс записей. Эксель разрешает миллион.
Ширина строки порядка 100 байт.

В общем чисто теоретически вопрос что и где "упёрлось" при вызове Бейсика из шаблона ZWWW_MACROS ?
Этот шаблон у нас есть я проверял. Бейсик в своих "безопасностях" на десктопе разрешил.

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Сб, май 20 2017, 01:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1743
Откуда: Москва
Пол: Мужской
[quote="hoar"][/quote]
Это не бага, это фича! :)
Для больших объемов данных был разработан альтернативный алгоритм на VBA, соответственно данные для него выгружаются в виде текстового файла с разделителями табуляции (код 09). Порог регулируется параметром OPTIMIZE, в старых версиях он имел значение по умолчанию 300. Т.е. при количестве записей в IT_VALUES > 300 включается алгоритм оптимизации через макрос. Соответственно, если задать параметр OPTIMIZE=0, то оптимизация будет работать всегда, и наоборот, если указать большое число типа OPTIMIZE=9999999, то оптимизация отключится. Алгоритмы работы через ABAP-OLE и VBA-макроса идентичны и различий в работе не должно быть, кроме скорости выгрузки.
Если у вас в выгружаемом текстовом файле вместо табуляции решетки "#", значит кто-то наломал дров в моем коде. Буквально недавно я столкнулся с этим, тоже здесь в форуме. Зачем это сделали ума не приложу, ибо за 12 лет существования ZWWW с табуляцией проблем не встречал ни на одном проекте ни а одной версии SAP.
Ещё могу предположить проблему из-за большого количества записей. Когда в 2005-м разрабатывался ФМ, то подразумевалось количество записей Excel не больше 65536, поэтому поле ZWWW_VALUES-VAR_NUM имело размерность NUMC 5 знаков. В последующих версиях, с выходом Excel 2007, это поле было расширено до 7 знаков. Возможно у вас очень старая версия и оно еще не расширено. Насколько помню расширение поля потребовало некоторых изменений ABAP-кода, поэтому рекомендую обновить ZWWW, иначе придётся разбираться в различиях кода.

p.s.
В общем то всё выше сказанное это гадание на кофейной гуще. Иногда бывают такие сюрпризы (и от SAP, и от MS), что ни в сказке сказать, ни пером описать. :)
Первое, что я рекомендую, обновить ZWWW. Второе отлаживать и разбираться. Для упрощения отладку можно включить, в т.ч. и в макросе, параметром DEBUG_MODE='X".
Если пришлете мне шаблон и содержимое IT_VALUES для проблемного случая, то я смогу проверить вашу выгрузку, часто помогает. Слать на мыло: misterxyz (сбк) mail (тчк) ru.

p.p.s.
Кстати, для выгрузки больших табличных данных есть фича VAL_TYPE='T', посмотрите пример ZWWW_ALV_GRID.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пн, май 22 2017, 20:46 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, апр 12 2006, 13:43
Сообщения: 824
Откуда: СССР
Пол: Мужской
Parazit
В общем проблем решена организационным способом.
Большие объёмы, если их даже загрузить в Эксель не юзабилтны.
Посему время на дальнейший разбор полётов выделено не было.
Оставлено всё как есть. До следующего инцидента.

ЗЫ присылать Вам 92 мегабайта текста для "разбора полётов", считаю негуманным :wink:

_________________
Никого не трогаю, примусы починяю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, май 23 2017, 16:22 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 23 2017, 15:58
Сообщения: 3
Код:
Report  Z_Hello_World.

Data:
  it_val type standard table of ZWWW_VALUES
    with header line.

* Выведем текст в ячейку с адресом C5
it_val-VAR_NAME = 'C5'.
it_val-VALUE = 'Hello World!'.
Append it_val.

Call function 'ZWWW_OPENFORM'
  exporting
    FORM_NAME   = 'ZWWW_MACROS'
    PRINTDIALOG = ''
  tables
    IT_VALUES = it_val.


Подскажите, можно ли изменить цвет текста кодом, при выводе его в Excel ?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, май 23 2017, 16:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 18:37
Сообщения: 1743
Откуда: Москва
Пол: Мужской
naberzhen писал(а):
...
Подскажите, можно ли изменить цвет текста кодом, при выводе его в Excel ?

Напрямую нет, т.к. одна из основных идей ZWWW заключается в том, что оформление должно решаться средствами шаблона.
А в ABAP-е должна решаться задача наполнения формы данными.

Есть разные способы раскраски формы.
1. В шаблоне подготавливается образец области (строки, ячейки) и в нужном месте накладывается на заполняемую область, например, подзаголовок или подытог таблицы.
2. Применить к ячейке шаблона условное форматирование.
3. Создать в шаблоне макрос и применить его к необходимой области.

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, май 24 2017, 11:03 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 23 2017, 15:58
Сообщения: 3
а можно ли WRITE'ом заполнять ячейки в Excel?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, май 24 2017, 14:06 
Специалист
Специалист

Зарегистрирован:
Чт, май 12 2011, 17:06
Сообщения: 210
hoar писал(а):
В общем чисто теоретически вопрос что и где "упёрлось" при вызове Бейсика из шаблона ZWWW_MACROS?
Несколько месяцев назад тоже сталкивался с подобной проблемой для старой версии ZWWW (загруженной в систему неведомо кем неведомо когда неведомо с какими модификациями). Правда, для Ворда. Точно не помню, но, кажется, решилось заменой в downloadmacros(lzwwwformf01) строк
Код:
concatenate TEMPDIR '\ZWWW_DATA_' FILEINDEX '.txt'   
    into FILE_DATA.
на
Код:
CONCATENATE tempdir '\ZWWW_DATA_' file_index '.txt'  into FILE_DATA.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2066 ]  На страницу Пред.  1 ... 134, 135, 136, 137, 138

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


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

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


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

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