Текущее время: Вс, июл 20 2025, 19:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Массовая печать pdf
СообщениеДобавлено: Пн, янв 30 2012, 21:10 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Добрый день!

Есть "тривиальная" задача: вывести несколько pdf-форм (сформированных по-правильному, через ADS) на печать одним запросом. Они все лежат в одном запросе (spool request). В SP01 выставление галочки напротив номера этого запроса и нажатие "Печать без изменения" или "Печать с измененными параметрами" приводит к выводу на принтер одной формы (последней присоединенной к запросу).

Несколько разных смартформ, лежащие в одном запросе, печатаются нормально - все вместе.

PS
В целом печатать нужно abap'ом, но использование ФМ RSPO_OUTPUT_SPOOL_REQUEST и ему подобных приводит к такому же результату.

PPS
Неужели эти "продвинутые" pdf-технологии в сапе вообще ничего не умеют?! Уже который по счету косяк с ними...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Пн, янв 30 2012, 22:51 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
а кто их в спул кладет?
похоже на то, что при составлении запроса напутали с галками prev/next page,
по крайней мере в последнем документе


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Вт, янв 31 2012, 00:42 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
trop написал(а):
а кто их в спул кладет?

Вывод в спул происходит в Z-программке. Вроде бы все стандартно: между FP_JOB_OPEN и FP_JOB_CLOSE вызывается сгенерированный для формуляра ФМ (его название определяется через FP_FUNCTION_MODULE_NAME).
Пробовал и каждую форму в своей задаче генерить, и все формы в одной общей задаче генерить.

trop написал(а):
похоже на то, что при составлении запроса напутали с галками prev/next page,
по крайней мере в последнем документе

Там простые формы "наоднустраничку", логика переходов не используется (если имеются ввиду галочки в SFP).


В spool request'е лежат файлы типов *.cfg, *.pdf, *.xfd - по количеству объединенных в запросе форм (т.е. 3 формы - 9 файлов).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Вт, янв 31 2012, 16:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
наврал про страницы, вот эти параметры проверьте
Code:
control_parameters-no_open
control_parameters-no_close
д/б так:
1й докум (,X)
2й докум (X,X)
..
последн докум (X,)

если в очереди единств докум - (,)

это для sf, как в pdf кладется ,к сожалнию, не могу посмотреть - базис 4.7


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Вт, янв 31 2012, 18:35 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
Спасибо! К сожалению, именно таких параметров в pdf-формах нет, но вместо них есть ie_outputparams-reqnew - создавать ли новый запрос или добавлять к старому. И он установлен вроде бы правильно, по крайней мере все формы ложаться в один запрос. И даже количество страниц в SP01 правильно отображается.

А сама печать происходит через вызов системной функции RSPOAEPJ, поэтому почему именно с pdf такие проблемы не посмотреть...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Вт, янв 31 2012, 20:57 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Есть такие параметры


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Ср, фев 01 2012, 11:34 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, окт 22 2009, 12:41
Сообщения: 473
__Gennady написал(а):
Есть такие параметры

Что-то не могу их найти:
В ie_outputparams функции FP_JOB_OPEN их нету. В интерфейсе формуляра - тоже. Где еще можно поискать? =)

Т.е. по идее несколько pdf-ок в одном запросе распечатываться все-таки должны?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Массовая печать pdf
СообщениеДобавлено: Ср, фев 01 2012, 14:34 
Старший специалист
Старший специалист

Зарегистрирован:
Сб, июл 28 2007, 20:38
Сообщения: 364
Немного обманул. При вызове печатной формы через PERFORM einzelnachricht_screen(rsnast00) USING us_subrc .
есть управляющие параметры
Code:
    itcpo-tdnewid = 'X'.
    itcpo-tdfinal = 'X'.


Если печать реализована самостоятельно:
Code:

FORM open_form USING us_screen.
  DATA: fp_outputparams   TYPE sfpoutputparams.

  fp_outputparams-pdftagged = 'X'.

  PERFORM itcpo_fuellen USING us_screen.
  PERFORM fill_outputparams USING  us_screen  itcpo
                                CHANGING fp_outputparams.
  IF itcpo-tdnewid = 'X'.
    CALL FUNCTION 'FP_JOB_OPEN'
      CHANGING
        ie_outputparams = fp_outputparams
      EXCEPTIONS
        cancel          = 1
        usage_error     = 2
        system_error    = 3
        internal_error  = 4
        OTHERS          = 5.

    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.
  x_open = 'X'.
ENDFORM.                    "open_form

*&---------------------------------------------------------------------*
*&      Form  print_form
*&---------------------------------------------------------------------*
FORM print_form .
  DATA: func_module_name     TYPE rs38l_fnam.
  DATA: fp_docparams      TYPE sfpdocparams,
        l_errstr TYPE string.
  PERFORM read_fm USING tnapr-sform
                    CHANGING func_module_name.

  DATA: l_fpformoutput TYPE fpformoutput.
  CALL FUNCTION func_module_name
    EXPORTING
      /1bcdwb/docparams  = fp_docparams
      i_header           = h_doc
      i_lines            = lt_items
      i_last_line        = wa_item
    IMPORTING
      /1bcdwb/formoutput = l_fpformoutput
    EXCEPTIONS
      usage_error        = 1
      system_error       = 2
      internal_error     = 3.

  IF sy-subrc <> 0.
    CALL FUNCTION 'FP_GET_LAST_ADS_ERRSTR'
      IMPORTING
        e_adserrstr = l_errstr.
    MESSAGE e208(00) WITH l_errstr.
  ENDIF.

ENDFORM.                    " print_FORM

*&---------------------------------------------------------------------*
*&      Form  close_form
*&---------------------------------------------------------------------*
FORM close_form.
  CHECK NOT x_open IS INITIAL.
  IF itcpo-tdfinal = 'X'.
    CALL FUNCTION 'FP_JOB_CLOSE'
      EXCEPTIONS
        usage_error    = 1
        system_error   = 2
        internal_error = 3
        OTHERS         = 4.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
  ENDIF.

  CLEAR x_open.
ENDFORM.                    "close_form


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

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


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

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


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

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