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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 46, 47, 48, 49, 50, 51, 52 ... 161  След.
Автор Сообщение
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Вт, фев 08 2011, 11:28 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Добрый день!
Еще один вопросик (возможно подойдет и для FAQ)

Можно ли работать со ссылками вида R1C1?

Например:
обычно выгружаю данные в EXCEL (в данном случае на лист 'T1') таким образом:
Code:
* Товары
  LOOP AT it_tab.
    setline 'T1!A1'  sy-tabix '' '' it_tab-npp.       " № п/п
    setline 'T1!B1'  sy-tabix '' '' it_tab-zzart.     " Артикул
    setline 'T1!C1'  sy-tabix '' '' it_tab-matnr.    " Код материала
  ENDLOOP.

а хотелось бы (удобнее) так:
Code:
* Товары
  LOOP AT it_tab.
    setline 'T1!R1C1'  sy-tabix '' '' it_tab-npp.       " № п/п
    setline 'T1!R1C2'  sy-tabix '' '' it_tab-zzart.     " Артикул
    setline 'T1!R1C3'  sy-tabix '' '' it_tab-matnr.    " Код материала
  ENDLOOP.


Мое уважение автору за разработку FM и оперативную поддержку


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

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

Возможности адресации не задаются моим модулем, они полностью соответствуют Excel-евскому оператору Range. Насколько я знаю, стиль R1C1 используется только в формулах ячеек и не может использоваться в Range.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, фев 09 2011, 13:01 
Специалист
Специалист

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Parazit написал:
organmusic написал(а):
Можно ли работать со ссылками вида R1C1?...

Возможности адресации не задаются моим модулем, они полностью соответствуют Excel-евскому оператору Range. Насколько я знаю, стиль R1C1 используется только в формулах ячеек и не может использоваться в Range.

Действительно
То что внутри Range - Excel VBA Help: "...'This must be an A1-style reference in the language of the macro.."
А R1C1 стиль используется похоже только в формулах, в VBA он эквивалентен Cells(1,1)
И всеж со стилем R1C1 удобнее работать

Подумал... пожалуй в сам модуль ZWWW_OPENFORM не стоит что либо добавлять.
А вот в макрос SetLine вполне можно встроить вызов ФМ конвертации строки из вида R1C1 в A1
То есть что-нибудь вроде:
Code:
  DEFINE setline.
    CLEAR it_val.
*    it_val-var_name  = &1.
    CALL FUNCTION 'Z_R1C1_TO_A1'
       EXPORTING
         input   = &1
       IMPORTING
         output = it_val-var_name.
    it_val-var_name  = &1.
    it_val-var_num   = &2.
    it_val-find_text = &3.
    it_val-val_type  = &4.
    it_val-value     = &5.
    APPEND it_val.
  END-OF-DEFINITION.

Это так ... на уровне идеи


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
organmusic написал(а):
И всеж со стилем R1C1 удобнее работать...
Подумал... пожалуй в сам модуль ZWWW_OPENFORM не стоит что либо добавлять.
А вот в макрос SetLine вполне можно встроить вызов ФМ конвертации строки из вида R1C1 в A1...

Я реализовал лишь низкоуровневую функцию вывода данных в отчеты MS Office, попытавшись как то стандартизировать этот процесс. Различные удобства более высокого уровня, навроде R1C1, могут быть реализованы как надстройки над моей выгрузкой. Это могут быть макросы, или дополнительные ФМ, навроде моего ZWWW_PREPARE_TABLE, упрощающего вывод внутренних таблиц. В общем основной концепции это не нарушает. Но подобные вещи являются весьма специфическими, плохо стандартизируются и не имеют широкого использования. Например, R1C1 годится для вывода в Excel, но вряд ли подойдет для Word. Поэтому подобные подобные вкусности отданы на откуп разработчикам, использующим мои модули! :)

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


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

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Parazit написал:
organmusic написал(а):
И всеж со стилем R1C1 удобнее работать...
Подумал... пожалуй в сам модуль ZWWW_OPENFORM не стоит что либо добавлять.
А вот в макрос SetLine вполне можно встроить вызов ФМ конвертации строки из вида R1C1 в A1...

Я реализовал лишь низкоуровневую функцию вывода данных в отчеты MS Office, попытавшись как то стандартизировать этот процесс. Различные удобства более высокого уровня, навроде R1C1, могут быть реализованы как надстройки над моей выгрузкой. Это могут быть макросы, или дополнительные ФМ, навроде моего ZWWW_PREPARE_TABLE, упрощающего вывод внутренних таблиц. В общем основной концепции это не нарушает. Но подобные вещи являются весьма специфическими, плохо стандартизируются и не имеют широкого использования. Например, R1C1 годится для вывода в Excel, но вряд ли подойдет для Word. Поэтому подобные подобные вкусности отданы на откуп разработчикам, использующим мои модули! :)

Да, я это же и имею в виду. (мне казалось правда в Word-е и A1 тоже нет - это специфика адресации ячеек Excel)
Если напишу ФМ-ку перевода R1C1 -> A1 - выложу здесь


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
organmusic написал(а):
Да, я это же и имею в виду. (мне казалось правда в Word-е и A1 тоже нет - это специфика адресации ячеек Excel

Согласен. Я вообще рекомендую пользоваться предложенной мной методикой с закладками и метками. Вывод напрямую по адресам ячеек неоправдан, т.к. такой отчет не прозрачен. Кроме случаев, когда нужно быстро (не вникая в алгоритм) оптимизировать по скорости уже существующий отчет, выводивший напрямую по адресам через OLE - у меня были такие прецеденты с чужими отчетами.

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


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

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Parazit написал:
Согласен. Я вообще рекомендую пользоваться предложенной мной методикой с закладками и метками. Вывод напрямую по адресам ячеек неоправдан, т.к. такой отчет не прозрачен. Кроме случаев, когда нужно быстро (не вникая в алгоритм) оптимизировать по скорости уже существующий отчет, выводивший напрямую по адресам через OLE - у меня были такие прецеденты с чужими отчетами.

У меня немного другая методика: я разделил экспорт данных в EXCEL, и их декорирование в форме отчета.
На ABAP с помощью функции я выгружаю все необходимые параметры и табличные данные отчета в отдельные (рабочие) листы EXCEL (в сыром виде), cтатика также уже подготовлена и также находится на отдельном (рабочем) листе. И передаю управление стартовому макросу - который и выполняет собственно декорирование.

Такием образом, все декоративное оформление отчета делается на VBA (VBA так или иначе имеет бОльшие оформительские возможности, чем делать это из SAP через какие-либо интерфейсы). И, отладку макроса очень удобно вести в EXCEL автономно - когда все исходные (динамические и статические) данные там уже присутствуют - просто компонуешь из них отчет на результирующий(е) лист(ы) и затем скрываешь все рабочие листы.

Так проще и практичней как мне кажется.

Функцию перевода ссылки все же написал, чтобы закрыть данный вопрос (если у кого-то вдруг опять возникнет).
Code:
* Переводит ссылку Excel 'R1C1' в 'A1'
FUNCTION z_r1c1_to_a1.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  ANY
*"  EXPORTING
*"     VALUE(OUTPUT) TYPE  ANY
*"----------------------------------------------------------------------
  DATA:
    s1 TYPE STRING,
    s2 TYPE STRING,
    s3 TYPE STRING,
    s4 TYPE STRING,
    s5(20) TYPE C,
    s6 TYPE STRING,
    s7 TYPE STRING,
    i1 TYPE P,
    i2 TYPE P,
    i3 TYPE P,
    i4 TYPE P.

  output = input.

  IF ( input CS '!' ).
    SPLIT input AT '!' INTO s1 s2.
    CONCATENATE s1 '!' INTO s1.
  ELSE.
    CLEAR s1.
    s2 = input.
  ENDIF.

  IF ( STRLEN( s2 ) < 4 ).
    RETURN.
  ENDIF.

  IF ( s2(1) <> 'R' ).
    RETURN.
  ENDIF.

  IF ( s2 NS 'C' ).
    RETURN.
  ENDIF.

  SPLIT s2+1 AT 'C' INTO s3 s4.

  IF ( s3 CN '1234567890' ).
    RETURN.
  ENDIF.

  IF ( s4 CN '1234567890' ).
    RETURN.
  ENDIF.

  i1 = s3.
  i2 = s4.

  IF ( i1 = 0 ).
    RETURN.
  ENDIF.

  IF ( i2 = 0 ).
    RETURN.
  ENDIF.

  WRITE i1 TO s5 LEFT-JUSTIFIED NO-GROUPING.

  CLEAR s6.
  i3 = i2.
  DO 10 TIMES.
    i4 = ( i3 - 1 ) MOD 26.
    CONCATENATE sy-abcde+i4(1) s6 INTO s6.
    IF ( i3 > 26 ).
      i3 = i3 DIV 26.
    ELSE.
      EXIT.
    ENDIF.
  ENDDO.
  CONCATENATE s6 s5 INTO s7.

  IF ( s1 IS NOT INITIAL ).
    CONCATENATE s1 s7 INTO s7.
  ENDIF.

  IF ( s7 IS INITIAL ).
    RETURN.
  ENDIF.

  output = s7.

ENDFUNCTION. " z_r1c1_to_a1


Последний раз редактировалось organmusic Ср, фев 16 2011, 15:06, всего редактировалось 1 раз.

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

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

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

p.s.
Благодарствую за функциональный модуль, может еще кому-нибудь пригодится!
Может быть имеет смысл выложить в отдельную тему?! Здесь он может затеряться, т.к. эта тема очень распухла, и вряд ли её кто то читает целиком.

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


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

Зарегистрирован:
Ср, дек 27 2006, 19:19
Сообщения: 230
Parazit написал:
В основном же отчетные формы легко укладываются в шаблоны и не требуют кодирования, как в макросах, так и в АБАПе.
...
Может быть имеет смысл выложить в отдельную тему?! Здесь он может затеряться, т.к. эта тема очень распухла, и вряд ли её кто то читает целиком.

Тут конечно надо смотреть по конкретному отчету - делать как проще и для себя и для понимания других.
У нас бухгалтерия часто просила отчеты со всяким хитроумным форматироваием - то разными цветами выделять, то с динамической шапкой то с кнопками управления и т д.
Думаю для ФМ преобразования ссылок вряд ли стоит заводить отдельную тему. Мой вклад здесь невелик. ФМ можно включить в очередную версию ZWWW, как одну из вспомогательных функций.
Код здесь хорошо ищется поиском по форумам (если набрать R1C1), даже обратную ей функцию (вернее подпрогрмму) CONVERT_REF так нашел.


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

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
Добрый день, коллеги!
Подскажите, пожалуйста, возможно ли сделать выгрузку нескольких отчетов (с одним шаблоном) в один документ word.

_________________
Поздравляю тебя, Шарик, ты - балбес!


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

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

Посмотрите пример ZWWW_MANY_LIST!

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Ср, фев 16 2011, 18:28 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
Цитата:
Посмотрите пример ZWWW_MANY_LIST!

Спасибо за оперативный ответ.
Пример посмотрел, но некоторые вещи при реализации своей задачи остались не понятными.
Не совсем понял для чего в VAR_NAME для всех объектов в примере пишется User.
Эта закладка ведь указывается на строку таблицы со списком персонала.

Создаю в шаблоне закладку (NewPage), которая указывает на разрыв страницы.
Заполняю таблицу ZWWW_VALUES примерно следующими данными:
Code:
VAR_NAME    VAR_NUM        FIND_TEXT    VAL_TYPE    VALUE
                0            [FIO]                Петров Игорь Юрьевич
                0            [TEXT2]                ( Ноль руб. 00 коп. )
                1                        V        NewPage
                2            [FIO]                Иванов Юрий Петрович
                2            [TEXT2]                ( Ноль руб. 00 коп. )
                3                        V        NewPage


В итоге получаю данные в отчете только на первой странице.
На остальных вставляется только разрыв страницы.
Что я делаю не так? Неправильно заполняю таблицу или что-то не настроил в шаблоне?

При записи виде (где newbook закладка на пустую строку перед строкой разрыва). Дает в результате только одну страницу в отчете.
Code:
Newbook    3    V        NewPage

При пустом поле VAR_NAME я так понял NewPage заменяет мне текущий лист на разрыв страницы. Но как написать правильно я пока не понял.

UPD:
Продвинулся немного в решении своей проблемы.
Теперь в шаблоне создаю закладку на весь отчет до поля NewPage и подставляю ее в столбец VAR_NAME.
Вывод стал осуществляться на несколько страниц, но данные на разных страницах одни и те же (те что на первой странице), хотя по таблице все нормально.

_________________
Поздравляю тебя, Шарик, ты - балбес!


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

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
8051core написал(а):
Пример посмотрел, но некоторые вещи при реализации своей задачи остались не понятными.
Не совсем понял для чего в VAR_NAME для всех объектов в примере пишется User.
Эта закладка ведь указывается на строку таблицы со списком персонала.

Посмотрите еще FAQ про вывод нескольких таблиц на одном листе в Excel. По сути технология та же.
В вашем случае VAR_NAME не должна быть пустой. Общий смысл в том, что шаблон представляет из себя лишь склад образцов строк (закладок). Далее вы строите из них отчет, перекладывая (VAL_TYPE = 'V') в нужном порядке в заданное место вывода. Местом вывода может быть специальная закладка или та, которая будет использоваться чаще других, как в моем примере - User, просто чтобы сэкономить на операции ее копирования.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ФМ для выгрузки данных в WORD, EXCEL
СообщениеДобавлено: Чт, фев 17 2011, 11:34 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Вт, фев 15 2011, 15:02
Сообщения: 122
2Parazit: Спасибо за помощь, разобрался, все получилось.
Изначально представлял себе принцип работы немного иначе, из-за чего и были все проблемы.

_________________
Поздравляю тебя, Шарик, ты - балбес!


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

Зарегистрирован:
Пн, фев 28 2011, 14:11
Сообщения: 5
подскажите как вывести динамическую таблицу типа Standart table


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2409 ]  На страницу Пред.  1 ... 46, 47, 48, 49, 50, 51, 52 ... 161  След.

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


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

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


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

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