Текущее время: Ср, июн 18 2025, 21:30

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 120, 121, 122, 123, 124, 125, 126 ... 161  След.
Автор Сообщение
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, дек 02 2015, 15:26 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
AFH написал(а):
А можно для длинных текстов еще что-то вроде такого алгоритма:
Делаем replace "[метка]" на "длинный_текст(230)[метка]", затем опять replace "[метка]" на "длинный_текст+230(230)[метка]", до тех пор пока длинный текст не кончится. Т.е. в итоге получится конкатенация кусочков: длинный_текст(230)длинный_текст+230(230)длинный_текст+460(230) . Число 230 я взял условно - зависит от длины метки.

Я так тоже делал, но надо учитывать факт, что в ZWWW таблица IT_VALUES сортируется, т.е. порядок вывода отчёта строго определён и не зависит от порядка заполнения таблицы:
Code:
        Sort it_Sort_Find_Text
          by Val-VAR_NAME ascending
             Val-VAR_NUM ascending
             Val-VAL_TYPE descending
             Len descending
             Val-FIND_TEXT descending.

Где Len - длина текста в поле FIND_TEXT. Это сделано для случаев, когда метки в шаблоне не совсем уникальные. Например, если в одной строке есть метки TEXT и TEXT_LONG, то поиск/замена FIND_TEXT='TEXT' на VALUE='Kuku' помимо нормальной замены метки TEXT также испортит TEXT_LONG на Kuku_LONG. А последующая поиск/замена FIND_TEXT='TEXT_LONG' на VALUE='Lala' уже просто не сработает. При обратной сортировке по FIND_TEXT сначала будет обработана метка TEXT_LONG, затем TEXT. Однако это не решает всех возможных проблем, поэтому я использую в именах меток квадратные скобки '[' и ']', например, [TEXT] и [TEXT_LONG], чего и всем советую.

В свете вышесказанного получается, что конкатенацию длинного текста в ячейке нужно делать с конца.
Например, ставим в шаблон метку [999] и потом заполняем в обратном порядке:
[999] на '[998] конец текста'
[998] на '[997] середина текста'
[997] на 'Начало текста'

Признаться, такой вариант, хоть и рабочий, но несколько мудрёный. А учитывая ограничение общего количества знаков в ячейке (в Excel 2003 это около 1000 символов), мне проще поставить 4 метки типа '[1][2][3][4]' и не заморачиваться с порядком вывода.

p.s.
Не смотря на то, что с версии 2007 Excel позволяет методом поиска/замены заполнять ячейки общей длиной более 1000 знаков, есть ещё проблемы отображения длинных текстов в самом Excel - могут обрезаться визуально или отображаться решетками. Поэтому рекомендую очень длинные тексты разбивать на отдельные ячейки строк.

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


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
raaleksandr написал:
...
У нас периодически возникает проблема с выгрузкой полей с длиной более 255 символов в ZWWW для Excel.
Как известно, в ZWWW существует такое ограничение, связанное с работой функции Replace в Excel - тексты длиной более 255 символов не выводятся.

Для того, чтобы решить данную проблему, нам пришлось доработать макрос формирования в файле ZWWW_MACROS (см. код ниже).
Рассмотрите, пожалуйста, возможность внесения данной доработки в новую версию или любое другое решение данной проблемы...

Спасибо за интересное решение! Но оно является неполным аналогом функции Replace. Например, ячейку, содержащую дополнительный текст помимо метки (или несколько меток), оно перетирает целиком.
Я тоже задумывался над этой проблемой, но боялся, что замена быстрой системной функции Replace на доморощенный VBA-код может сильно замедлить заполнение отчёта. А учитывая, что проблема легко решается дополнительными метками, как-то и подзабил. :)
В общем этот вопрос надо ещё докумекать...

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


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Parazit написал:
raaleksandr написал:
...
У нас периодически возникает проблема с выгрузкой полей с длиной более 255 символов в ZWWW для Excel.
...
Рассмотрите, пожалуйста, возможность внесения данной доработки в новую версию или любое другое решение данной проблемы...
...оно является неполным аналогом функции Replace. Например, ячейку, содержащую дополнительный текст помимо метки (или несколько меток), оно перетирает целиком.
...
В общем этот вопрос надо ещё докумекать...

Кажись нашёл:
Code:
                    'вместо searchRan.Value = Ln
                    ArrLn = Split(searchRan.Value, Ar(2))
                    searchRan.Value = Join(ArrLn, Ln)

Осталось узнать, нет ли ещё каких неучтённых "козюлек" у функции Replace.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, дек 03 2015, 05:49 
Специалист
Специалист

Зарегистрирован:
Чт, мар 25 2010, 09:02
Сообщения: 207
Кстати, да. Надо еще учитывать ситуацию с форматированием внутри ячейки, что-то вроде:

Количесиво: [штук]

Кажется в вашем варианте еще и форматирование потеряется, надо как-то через Characters идти.


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
AFH написал(а):
Кстати, да. Надо еще учитывать ситуацию с форматированием внутри ячейки, что-то вроде:

Количесиво: [штук]

Кажется в вашем варианте еще и форматирование потеряется, надо как-то через Characters идти.

С форматированием внутри ячейки, к сожалению, и у самой Replace всё плохо - она приводит формат всей ячейки к формату первого символа. Во-всяком случае так в Excel 2003, надо в других версиях проверить. Так что в этом плане, метод raaleksandr-а идентичен.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
СообщениеДобавлено: Чт, дек 03 2015, 09:52 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, янв 29 2010, 06:15
Сообщения: 58
organmusic
Цитата:
Строка
SetVal 'Я_Формат' '' '' 'M' 'Macros_AutoFit'.
запустит макрос с именем Macros_AutoFit, передав ему в качестве параметра именованную область 'Я_Формат'.
Указанная именованная область 'Я_Формат' дожна быть обязательно объявлена в листе, даже если не используется - без нее макрос не запускается.
Макрос должен лежать в Modules (не в Книге и не в Листе)

С запуском макроса, если лист один, проблем нет.
Но если листов несколько, то подскажите, пожалуйста, как сделать:
1.Есть макрос, лежит в Modules (не в Книге и не в Листе). Как запустить его на всех листах книги по очереди?
2.Как запустить его только на конкретном листе?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
СообщениеДобавлено: Чт, дек 03 2015, 10:30 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
julia.mat написал(а):
organmusic
Цитата:
Строка
SetVal 'Я_Формат' '' '' 'M' 'Macros_AutoFit'.
запустит макрос с именем Macros_AutoFit, передав ему в качестве параметра именованную область 'Я_Формат'.
Указанная именованная область 'Я_Формат' дожна быть обязательно объявлена в листе, даже если не используется - без нее макрос не запускается.
Макрос должен лежать в Modules (не в Книге и не в Листе)

С запуском макроса, если лист один, проблем нет.
Но если листов несколько, то подскажите, пожалуйста, как сделать:
1.Есть макрос, лежит в Modules (не в Книге и не в Листе). Как запустить его на всех листах книги по очереди?
2.Как запустить его только на конкретном листе?

Нужно к названию именованной области, к которой применяется макрос, добавить имя листа:
Code:
SetVal 'Лист1!Я_Формат' '' '' 'M' 'Macros_AutoFit'.

Собственно, это не особенность ZWWW, а стандартный способ Excel.

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


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

Зарегистрирован:
Вт, авг 05 2008, 19:46
Сообщения: 96
Откуда: С Урала
AFH написал(а):
А можно для длинных текстов еще что-то вроде такого алгоритма:
Делаем replace "[метка]" на "длинный_текст(230)[метка]", затем опять replace "[метка]" на "длинный_текст+230(230)[метка]", до тех пор пока длинный текст не кончится. Т.е. в итоге получится конкатенация кусочков: длинный_текст(230)длинный_текст+230(230)длинный_текст+460(230) . Число 230 я взял условно - зависит от длины метки.

Давно не сталкивался с такими проблемами, но когда то очень давно формировал длинные табличные данные через запрос к текстовому файлу, который формировал отдельно, и при выгрузке данных и старте макроса обновлял запрос к текстовому файлу в шаблоне. Там тоже вроде есть ограничения, но явно не 255. Может кому сгодится, хоть и не совсем по теме топика


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

Зарегистрирован:
Вт, июн 10 2008, 07:22
Сообщения: 163
Откуда: Ektb
Пол: Мужской
Коллеги,
Обсуждалось ли ограничение ширины строки в 523 символа в формируемом промежуточном текстовом файле при выгрузке в excel?
Или я что-то делаю не так?


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
ash написал:
Коллеги,
Обсуждалось ли ограничение ширины строки в 523 символа в формируемом промежуточном текстовом файле при выгрузке в excel?
Или я что-то делаю не так?

Не сталкивался с таким ограничением. Как давно ФМ установлен? В структуре словаря ZWWW_VALUES какой тип поля VALUE?

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


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

Зарегистрирован:
Вт, фев 15 2011, 22:44
Сообщения: 33
Добрый день. Поиском пользовался, но ответ не нашел.

Я делаю выгрузку в excel в цикле, соответственно сколько документов в таблице столько же получется открытых excel-файлов. После выгрузки каждого документа я запускаю свой макрос(последний параметр в it_values). Проблема в том, что начиная со второго документа ФМ для выгрузки запускает макрос не в текущем документе(тот что еще в фоне), а в активном, который уже выведен на экран.

Как разграничить документы, чтобы макрос запускался и брал данные из текущего документа(который в фоне и готовится к выводу)?


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
matroskin написал(а):
Добрый день. Поиском пользовался, но ответ не нашел.

Я делаю выгрузку в excel в цикле, соответственно сколько документов в таблице столько же получется открытых excel-файлов. После выгрузки каждого документа я запускаю свой макрос(последний параметр в it_values). Проблема в том, что начиная со второго документа ФМ для выгрузки запускает макрос не в текущем документе(тот что еще в фоне), а в активном, который уже выведен на экран.

Как разграничить документы, чтобы макрос запускался и брал данные из текущего документа(который в фоне и готовится к выводу)?

Можете прислать шаблон и содержимое IT_VALUES хотя бы для двух документов?

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ZWWW - ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Пт, дек 11 2015, 09:30 
Ассистент
Ассистент

Зарегистрирован:
Вт, фев 15 2011, 22:44
Сообщения: 33
Parazit написал:
Можете прислать шаблон и содержимое IT_VALUES хотя бы для двух документов?

Решено, затык в самом макросе был. Спасибо за оперативную реакцию!


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

Зарегистрирован:
Чт, фев 12 2009, 12:47
Сообщения: 117
Откуда: Kiev
Пол: Мужской
Добрый день!
При выгрузке в шаблон Word переводит все строки в верхний регистр. В отладке проверил - данные в нижнем регистре. Что делать?

Для результата разобрался. В переменную [PROF] пишет правильно, в PROF - переводит в верхний регистр. Я просто привык без скобок писать.

_________________
SAP macht frei


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
YSICHOV написал:
Добрый день!
При выгрузке в шаблон Word переводит все строки в верхний регистр. В отладке проверил - данные в нижнем регистре. Что делать?

Для результата разобрался. В переменную [PROF] пишет правильно, в PROF - переводит в верхний регистр. Я просто привык без скобок писать.

Дело даже не в скобках. Это у Ворд-а фишка такая, если заменяемый текст (через поиск/замену) весь в верхнем регистре, то и результат преобразуется в верхний регистр. Соответственно, если хоть один символ в нижнем регистре или спецсимвол - фишка отключается.
В любом случае рекомендую использовать скобки, это позволяет избежать и другие проблемы.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 120, 121, 122, 123, 124, 125, 126 ... 161  След.

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


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

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


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

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