cancel
Showing results for 
Search instead for 
Did you mean: 

Query regarding SAPscript

Former Member
0 Kudos

Hi

Can anybody give me following codes(easy to understand):

1) A sample Driver program for SAP script, copied from ANY Standard program.

2) And Related SAP script program producing script output.

I want this to understand where should I put my Z Form Routine in the Driver program.

Please let me know soon.

Regards

Tulip

Edited by: Tulip Shah on Jun 4, 2008 8:15 AM

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

HII,

CALL FUNCTION 'OPEN_FORM'

EXPORTING

APPLICATION = 'TX'

ARCHIVE_INDEX =

ARCHIVE_PARAMS =

DEVICE = 'PRINTER'

DIALOG = 'X'

FORM = 'ZVF_INVENTRY_LST' LANGUAGE = SY-LANGU

OPTIONS =

MAIL_SENDER =

MAIL_RECIPIENT =

MAIL_APPL_OBJECT =

RAW_DATA_INTERFACE = '*'

SPONUMIV =

IMPORTING

LANGUAGE =

NEW_ARCHIVE_PARAMS =

RESULT =

EXCEPTIONS

CANCELED = 1

DEVICE = 2

FORM = 3

OPTIONS = 4

UNCLOSED = 5

MAIL_OPTIONS = 6

ARCHIVE_ERROR = 7

INVALID_FAX_NUMBER = 8

MORE_PARAMS_NEEDED_IN_BATCH = 9

SPOOL_ERROR = 10

CODEPAGE = 11

OTHERS = 12

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

here 'ZVF_INVENTRY_LST' is my form name..just use this way and it will open your form.

reward points if useful.

thx,

twinkal.

valter_oliveira
Active Contributor
0 Kudos

Hello.

This is an example on how do call the script from a program.


PARAMETERS: p_tddest LIKE itcpo-tddest OBLIGATORY.
...
***********************************************************************
*    Form  f_imprime
***********************************************************************
FORM f_imprime.

* Declaração de tabelas internas locais
  DATA: t_itcpo LIKE itcpo OCCURS 0 WITH HEADER LINE,
        l_prdha LIKE mara-prdha.

* Atribuição de parâmetros para impressão
  t_itcpo-tdcopies = p_copias.
  t_itcpo-tddest = p_tddest.
  t_itcpo-tdimmed = 'X'.
  t_itcpo-tddelete = 'X'.

**************** OPEN FORM *****************
  CALL FUNCTION 'OPEN_FORM'
       EXPORTING
            device                      = 'PRINTER'
            dialog                      = ' '
            form                        = 'ZLSDVDO07'
            language                    = 'P'
            options                     = t_itcpo
       EXCEPTIONS
            canceled                    = 1
            device                      = 2
            form                        = 3
            options                     = 4
            unclosed                    = 5
            mail_options                = 6
            archive_error               = 7
            more_params_needed_in_batch = 9
            spool_error                 = 10
            OTHERS                      = 11.
  IF sy-subrc <> 0.
    CASE sy-subrc.
      WHEN 4.
        MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
          WITH 'erro nos parâmetros de impressão'.
      WHEN 10.
        MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
            WITH 'erro de spool'.
      WHEN OTHERS.
        MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
                WITH 'formulário não foi aberto'.
    ENDCASE.
  ENDIF.

* Cabeçalho do catálogo
  w_data  = sy-datum.
  CALL FUNCTION 'WRITE_FORM'
       EXPORTING
            element                  = 'HEADER_CATALOGO'
            type                     = 'BODY'
            window                   = 'MAIN'
       EXCEPTIONS
            element                  = 1
            function                 = 2
            type                     = 3
            unopened                 = 4
            unstarted                = 5
            window                   = 6
            bad_pageformat_for_print = 7
            spool_error              = 8
            OTHERS                   = 9.

**** POS
  IF sy-tcode EQ 'ZSD052'.
    l_prdha = 'VDO'.
    w_mudou_hier = 'N'.

    CASE 'X'.
      WHEN p_mater.
        SORT ti_int BY prdha matnr.
      WHEN p_descr.
        SORT ti_int BY prdha maktx.
      WHEN OTHERS.
    ENDCASE.

*   Linha a linha
    LOOP AT ti_int INTO wa_int.
      IF l_prdha NE wa_int-prdha.
        w_mudou_hier = 'S'.
      ELSE.
        w_mudou_hier = 'N'.
      ENDIF.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element                  = 'ITEM_POS'
                type                     = 'BODY'
                window                   = 'MAIN'
           EXCEPTIONS
                element                  = 1
                function                 = 2
                type                     = 3
                unopened                 = 4
                unstarted                = 5
                window                   = 6
                bad_pageformat_for_print = 7
                spool_error              = 8
                OTHERS                   = 9.
      l_prdha = wa_int-prdha.
    ENDLOOP.

**** TFP's
  ELSE.

    DATA: l_resto TYPE i,
          l_div   TYPE i.
    DESCRIBE TABLE ti_docs LINES sy-tabix.

*   Estas contas tém em atenção q a 1ª pagina tem 6 linhas
*   e as outras têm 7
    l_div = ( sy-tabix - 6 ) DIV 7.
    l_resto = ( sy-tabix - 6 ) MOD 7.
    IF l_resto = 0.
      w_total_pag = l_div + 1.
    ELSE.
      w_total_pag = l_div + 2.
    ENDIF.

*   Linha a linha
    LOOP AT ti_docs INTO wa_docs.
      CALL FUNCTION 'WRITE_FORM'
           EXPORTING
                element                  = 'ITEM_TFP'
                type                     = 'BODY'
                window                   = 'MAIN'
           EXCEPTIONS
                element                  = 1
                function                 = 2
                type                     = 3
                unopened                 = 4
                unstarted                = 5
                window                   = 6
                bad_pageformat_for_print = 7
                spool_error              = 8
                OTHERS                   = 9.
    ENDLOOP.

  ENDIF.

********************** CLOSE FORM ***********************
  CALL FUNCTION 'CLOSE_FORM'
       EXCEPTIONS
            unopened                 = 1
            bad_pageformat_for_print = 2
            send_error               = 3
            spool_error              = 4
            OTHERS                   = 5.
  CHECK sy-subrc <> 0.
  CASE sy-subrc.
    WHEN 2.
      MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
                WITH 'erro no formato da página'.
    WHEN 4.
      MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
                  WITH 'erro de spool'.
    WHEN OTHERS.
      MESSAGE ID 'ZSD2' TYPE 'E' NUMBER '001'
                      WITH 'não foi possível fechar o formulário'.
  ENDCASE.

ENDFORM.                    " f_imprime

Regards.

Valter Oliveira.