Übergabe Druckparameter von Rahmenprogramm an Smartforms

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Smart Forms.

Die Druckparameter werden beim Aufruf des Smart Forms vom Rahmenprogramm an das Formular übergeben. Dies betrifft Punkte wie:

  • Druckerdialog ja/nein
  • Drucker
  • Druck-/Ausgabesprache
  • Spoolerzeugung ja/nein
  • Name für Spool
  • Lebenszeit des Spool-Auftrages
  • Sofortdruck ja/nein

Drucker

  • Im Coding wird mit dem Parameter LS_PARAMS1-TDDEST = 'LOCL' der Drucker übergeben. Zu beachten ist hier allerdings, dass diese Übergabe nur das Ausgabegerät beeinflusst, wenn man gleichzeitig den Parameter USER_SETTINGS = SPACE setzt. Ansonsten würde das Ausgabegerät, der Sofortdruck und das Löschen des Spool-Auftrages aus dem Benutzerstamm gezogen. Hier ist im Formular der Default auf USER_SETTINGS = X gesetzt. Wenn man also diesen Parameter nicht explizit auf space setzt, würde die Übergabe eines Druckers zu keiner Änderung bei der Druckausgabe führen.

Ausgabesprache

  • Gewöhnlich wird ein Formular gedruckt, die in der NAST-SPRAS steht. Dieser Wert wird der Smart Forms Struktur SSFCTRLOP übergeben und in das Feld LANGU geschrieben. Neben dem Feld LANGU gibt es noch die Felder für Ersatzsprachen REPLANGU1, REPLANGU2 und REPLANGU3. Die Ersatzsprachen greifen dann, wenn eine Übersetzung z. B eines Textbausteins in der Formularsprache LANGU nicht vorhanden ist.

Der Parameter WA_CONTR ist hier vom Typ SSFCTRLOP.

data: wa_contr type ssfctrlop.

Druckparameter4.jpg


Die Formularausgabe erfolgt in der Sprache, die in das Feld LANGU eingetragen wird. Wurde das Formular in diese Sprache nicht übersetzt, dann werden die Ersatzsprachen herangezogen. Werden alle Sprachfelder LANGU und die Ersatzsprachen nicht gefüllt, wird das Smart Forms in der Anmeldesprache des Users ausgegeben.

Druckparameter2.jpg

Screenshot aus der SAP-Hilfe:

Druckparameter3.jpg

Coding für Aufruf Smart Forms

  DATA: ls_document_output_info TYPE  ssfcrespd,
        ls_job_output_info      TYPE  ssfcrescl,
        ls_job_output_options   TYPE  ssfcresop.

  DATA: lv_fm_name  TYPE rs38l_fnam.

  CONSTANTS: con_form    TYPE ssfscreen-fname  VALUE 'ZREBTEST'.

* Es wird der von Smartforms generierte Fkt. ermittelt
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      formname           = con_form
    IMPORTING
      fm_name            = lv_fm_name
    EXCEPTIONS
      no_form            = 1
      no_function_module = 2
      OTHERS             = 3.

  IF sy-subrc <> 0.
*   Ermittlung technische Bezeichnung Smartforms nicht erfolgreich
    MESSAGE i531(0u) WITH text-096.
    EXIT.
  ENDIF.

  DATA: ls_params1 TYPE ssfcompop.

* Füllen der Druckparameter
* ls_params2-no_dialog  = 'X'.
* ls_params1-tdnoprev   = 'X'.
  ls_params1-tddest     = 'LOCL'.       "Spool: Output device
  ls_params1-tddataset  = 'INV'.        "Spool request: Name
  ls_params1-tdlifetime = '5'.          "Spool Retention Period (Print Parameters)
* ls_params1-tdsuffix1  = 'suff1'.      "Spool request: Suffix 1
  ls_params1-tdsuffix2  = sy-uname.     "Spool request: Suffix 2
  ls_params1-tdnewid    = 'X'.          "New Spool Request (Print Parameters)
  ls_params1-tdimmed    = space.        "Print Immediately (Print Parameters)
*

  CALL FUNCTION lv_fm_name
    EXPORTING
      output_options       = ls_params1  "Printoptions
      user_settings        = space       "Space --> Usage print parameters from coding. Otherwise print parameters will be set in user profile
      it_data              = gt_data     "itab table
    IMPORTING
      document_output_info = ls_document_output_info
      job_output_info      = ls_job_output_info
      job_output_options   = ls_job_output_options
    EXCEPTIONS
      formatting_error     = 1
      internal_error       = 2
      send_error           = 3
      user_canceled        = 4
      OTHERS               = 5.

  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'W' NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

Druckerdialog

  • Im Druckerdialog können diverse Druckparameter wie Ausgabegerät, Name Spool-Auftrag, Sofortdruck etc. eingestellt werden, falls beim Aufruf des Smart Forms der entsprechende Parameter übergeben wird LS_PARAMS2-NO_DIALOG = SPACE oder dieser Parameter nicht gefüllt ist.
  • Default ist, dass der Druckerdialog aufgerufen wird.

Smartforms Druckerdialog.jpg