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

Часовой пояс: 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 часа


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

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


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

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