cancel
Showing results for 
Search instead for 
Did you mean: 

code for looping the write_form

Former Member
0 Kudos

Hi

can anyone give me the code that u have developed inthe past for looping the write_form F.M. please...

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

TABLES :
  scarr,
  spfli,
  sflight.

*PARAMETERS :
*  p_carrid LIKE sflight-carrid,
*  p_connid LIKE sflight-connid.

DATA :
 BEGIN OF fs_sflight,
   carrid LIKE sflight-carrid,
   connid LIKE sflight-connid,
   fldate LIKE sflight-fldate,
   price  LIKE sflight-price,
   currency LIKE sflight-currency,
   seatsmax LIKE sflight-seatsmax,
   seatsocc LIKE sflight-seatsocc,
 END OF fs_sflight.

DATA :
  t_scarr LIKE
 STANDARD TABLE
       OF scarr.

DATA :
   t_spfli LIKE
  STANDARD TABLE
        OF spfli.

DATA :
  t_sflight LIKE
   STANDARD TABLE
         OF fs_sflight.

DATA :
  fs_options TYPE itcpo.

START-OF-SELECTION.

  PERFORM selection.

  PERFORM open_form.

  LOOP AT t_sflight INTO fs_sflight.
    AT NEW connid.
      PERFORM start_form.
      READ TABLE t_spfli INTO spfli WITH KEY carrid = fs_sflight-carrid
                                             connid = fs_sflight-connid.

      READ TABLE t_scarr INTO scarr WITH KEY carrid = fs_sflight-carrid.
    ENDAT.

    PERFORM write_form.

    AT END OF carrid.
      PERFORM end_form.
    ENDAT.

  ENDLOOP.

  PERFORM close_form.

*&---------------------------------------------------------------------*
*&      Form  selection
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM selection .

  SELECT *
    FROM scarr
    INTO TABLE t_scarr.
*          WHERE carrid = p_carrid.

  SELECT *
    FROM spfli
    INTO TABLE t_spfli.
*          WHERE carrid = p_carrid
*            AND connid = p_connid.

  SELECT carrid
         connid
         fldate
         price
         currency
         seatsmax
         seatsocc
    FROM sflight
    INTO TABLE t_sflight.
*   WHERE carrid = p_carrid
*     and connid = p_connid.


ENDFORM.                    " selection
*&---------------------------------------------------------------------*
*&      Form  open_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM open_form .

  fs_options-tdcopies = 2.

  fs_options-tddest = 'LP01'.

  fs_options-tdpreview = 'X'.

  fs_options-tdnoprint = 'X'.

  CALL FUNCTION 'OPEN_FORM'
   EXPORTING
*   APPLICATION                       = 'TX'
*   ARCHIVE_INDEX                     =
*   ARCHIVE_PARAMS                    =
*   DEVICE                            = 'PRINTER'
   dialog                            = ' '
*     form                              = 'FORM1'
*   LANGUAGE                          = SY-LANGU
   options                           =  fs_options
*   MAIL_SENDER                       =
*   MAIL_RECIPIENT                    =
*   MAIL_APPL_OBJECT                  =
*   RAW_DATA_INTERFACE                = '*'
* 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.


ENDFORM.                    " open_form
*&---------------------------------------------------------------------*
*&      Form  write_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM write_form .

  CALL FUNCTION 'WRITE_FORM'
   EXPORTING
     element                        = 'FLIGHTINFO'
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
*   WINDOW                         = 'MAIN'
* IMPORTING
*   PENDING_LINES                  =
   EXCEPTIONS
     element                        = 1
     function                       = 2
     type                           = 3
     unopened                       = 4
     unstarted                      = 5
     window                         = 6
     bad_pageformat_for_print       = 7
     spool_error                    = 8
     codepage                       = 9
     OTHERS                         = 10
            .
  IF sy-subrc <> 0.

    WRITE 'Write_Error'.

  ENDIF.


ENDFORM.                    " write_form
*&---------------------------------------------------------------------*
*&      Form  close_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM close_form .
  CALL FUNCTION 'CLOSE_FORM'
* IMPORTING
*   RESULT                         =
*   RDI_RESULT                     =
* TABLES
*   OTFDATA                        =
* EXCEPTIONS
*   UNOPENED                       = 1
*   BAD_PAGEFORMAT_FOR_PRINT       = 2
*   SEND_ERROR                     = 3
*   SPOOL_ERROR                    = 4
*   CODEPAGE                       = 5
*   OTHERS                         = 6
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.



ENDFORM.                    " close_form
*&---------------------------------------------------------------------*
*&      Form  start_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM start_form .

  CALL FUNCTION 'START_FORM'
   EXPORTING
*   ARCHIVE_INDEX          =
     form                   = 'FORM1'
*   LANGUAGE               = ' '
*   STARTPAGE              = ' '
*   PROGRAM                = ' '
*   MAIL_APPL_OBJECT       =
* IMPORTING
*   LANGUAGE               =
   EXCEPTIONS
     form                   = 1
     format                 = 2
     unended                = 3
     unopened               = 4
     unused                 = 5
     spool_error            = 6
     codepage               = 7
     OTHERS                 = 8
            .
  IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.


ENDFORM.                    " start_form
*&---------------------------------------------------------------------*
*&      Form  end_form
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM end_form .

  CALL FUNCTION 'END_FORM'
* IMPORTING
*   RESULT                         =
   EXCEPTIONS
     unopened                       = 1
     bad_pageformat_for_print       = 2
     spool_error                    = 3
     codepage                       = 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.


ENDFORM.                    " end_form

Regards,

Swapna.

Edited by: NagaSwapna Thota on Jul 4, 2008 9:14 AM

former_member181995
Active Contributor
0 Kudos

Ravi,

LOOP AT i_eban.
    eban = i_eban.
    AT NEW banfn.
      CALL FUNCTION 'OPEN_FORM'
           EXPORTING
                form     = p_form
                language = eban-spras
                options  = itcpo
                device   = xdevice
                dialog   = xdialog
           EXCEPTIONS
                canceled = 01
                device   = 02
                OTHERS   = 03.
      CLEAR zzscript-total.
    ENDAT.
    SELECT SINGLE * FROM ebkn WHERE banfn = eban-banfn
                              AND   bnfpo = eban-bnfpo.
    SELECT SINGLE * FROM t024 WHERE ekgrp = eban-ekgrp.
    SELECT SINGLE * FROM lfa1 WHERE lifnr = eban-lifnr.
    SET LANGUAGE eban-spras.
    WRITE eban-preis TO w_work1.
    WRITE eban-peinh TO w_work2.
    CONCATENATE w_work1 w_work2 INTO w_work3 SEPARATED BY '/'.
    CONDENSE w_work3 NO-GAPS.
    zzscript-unitcostper = w_work3.
    zzscript-cost = eban-menge * eban-preis / eban-peinh.
    ADD zzscript-cost TO zzscript-total.
    CALL FUNCTION 'WRITE_FORM'
         EXPORTING
              element = 'DETAIL'
         EXCEPTIONS
              OTHERS  = 01.

    CONCATENATE eban-banfn eban-bnfpo INTO w_name.
    MOVE eban-banfn TO w_nameh.

    CALL FUNCTION 'READ_TEXT'
         EXPORTING
              id       = 'B01'
              language = sy-langu
              name     = w_name
              object   = 'EBAN'
         TABLES
              lines    = i_text
         EXCEPTIONS
              OTHERS   = 1.
    IF sy-subrc IS INITIAL.
      LOOP AT i_text INTO tline.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  element = 'ITEM_TEXT'
             EXCEPTIONS
                  OTHERS  = 01.
      ENDLOOP.
      CLEAR i_text.
      REFRESH i_text.
      CLEAR tline.
    ENDIF.
    CLEAR i_text.
    REFRESH i_text.
    CLEAR tline.

    CALL FUNCTION 'READ_TEXT'
         EXPORTING
              id       = 'B01'
              language = sy-langu
              name     = w_nameh
              object   = 'EBANH'
         TABLES
              lines    = i_htext
         EXCEPTIONS
              OTHERS   = 1.
    IF sy-subrc IS INITIAL.
      LOOP AT i_htext.  " INTO tline.
        CALL FUNCTION 'WRITE_FORM'
             EXPORTING
                  element = 'HEADER_NOTE'
*                  window = 'FOOTER'  "CG2006/01/17
             EXCEPTIONS
                  OTHERS  = 01.
        EXIT.
      ENDLOOP.

Amit.

former_member181962
Active Contributor
0 Kudos

Check the sample example program:

RSTXEXP2

Regards,

Ravi