Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SAP script

Former Member
0 Likes
492

hi all,

I am new in ABAP.

I have created one form in SAP script.

I have created one page ,one window and one page window and I activated the form.

also I have tested it will show the screen without any error

and then

-


i have created the following program in SE38

parameter x type vbak-vbeln.

types : begin of ty,

a type vbak-vbeln,

b type vbak-ernam,

end of ty.

data : itab like table of ty,

wa type ty.

select vbeln ernam from vbak into table itab where vbeln = a.

loop at itab into wa.

write 😕 ea-a,wa-b.

endloop.

call open_form

........

.......

form = 'formname'.

........

.....

call write_form.

.......

.........

window = 'windowname'

........

...............

call close_form.

.........

........

.......

.......

I activate and run the above program it will show only the white screen which is obtained from the above form.

The form and the report are run correctly without any error.

My question is how can i get the above program output on the form(SAP script).

plz guide me.

by,

raghul

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
452

Hi,

IN WRITE_FORM CALL THE TEXT ELEMENT

CALL FUNCTION 'WRITE_FORM'

EXPORTING ELEMENT = 'SERVICES'

EXCEPTIONS OTHERS = 01.

Regards,

V.Balaji

Reward if Usefull...

4 REPLIES 4
Read only

Former Member
0 Likes
453

Hi,

IN WRITE_FORM CALL THE TEXT ELEMENT

CALL FUNCTION 'WRITE_FORM'

EXPORTING ELEMENT = 'SERVICES'

EXCEPTIONS OTHERS = 01.

Regards,

V.Balaji

Reward if Usefull...

Read only

Former Member
0 Likes
452

Hi,

IN WRITE_FORM CALL THE TEXT ELEMENT

CALL FUNCTION 'WRITE_FORM'
  EXPORTING
    ELEMENT                        = TEXT ELEMENT NAME
    WINDOW                         = WINDOW NAME
  EXCEPTIONS
    ELEMENT                        = 1
    WINDOW                         = 6
    OTHERS                         = 10
          .

Regards,

V.Balaji

Reward if Usefull...

Read only

0 Likes
452

hi balaji,

which one is the text element name.

how can ifind out the name from the SE71.

by,

raghul

Read only

Former Member
0 Likes
452

Hi,

You need to create a text element in your window. pass the data which needs to printed using text element with in open form and close form. see the below program for ur reference


PARAMETERS p_vbeln TYPE vbrk-vbeln .

TABLES: vbrk,
        adrc,
        vbrp,
        kna1.


TYPES: BEGIN OF S_INVOICE,
      VBELN TYPE VBRK-VBELN,
      KUNRG TYPE VBRK-KUNRG,
      FKDAT TYPE VBRK-FKDAT,
      XBLNR TYPE VBRK-XBLNR,
      END OF S_INVOICE.


TYPES: BEGIN OF S_CLIENT,
      NAME1 TYPE ADRC-NAME1,
      STREET TYPE ADRC-STREET,
      CITY1 TYPE ADRC-CITY1,
      POST_CODE1 TYPE ADRC-POST_CODE1,
      COUNTRY TYPE ADRC-POST_CODE1,
      TEL_NUMBER TYPE ADRC-TEL_NUMBER,
      END OF S_CLIENT.


TYPES: BEGIN OF S_MATERIAL,
      MATNR TYPE VBRP-MATNR,
      ARKTX TYPE VBRP-ARKTX,
      FKIMG TYPE VBRP-FKIMG,
      VRKME TYPE VBRP-VRKME,
      NETWR TYPE VBRP-NETWR,
      WAERK TYPE VBRK-WAERK,
      END OF S_MATERIAL.

DATA:
     IT_INVOICE TYPE STANDARD TABLE OF S_INVOICE,
     WA_INVOICE TYPE S_INVOICE,
     IT_CLIENT TYPE STANDARD TABLE OF S_CLIENT,
     WA_CLIENT TYPE S_CLIENT,
     IT_MATERIAL TYPE STANDARD TABLE OF S_MATERIAL,
     WA_MATERIAL TYPE S_MATERIAL,
     T_NETWR(40),
     T_FKIMG(40),
     TOTAL_VALUE TYPE VBRP-NETWR.

     TOTAL_VALUE = 0.

PERFORM OPEN_FORM.

PERFORM FETCH_INVOICE USING P_VBELN CHANGING IT_INVOICE.

IF SY-SUBRC = 0.

LOOP AT IT_INVOICE INTO WA_INVOICE.
    PERFORM WRITE_INVOICE.
ENDLOOP.
ELSE.

WRITE /'INVOICE RECORD NOT FOUND'.
ENDIF.


PERFORM FETCH_CLIENT USING P_VBELN CHANGING IT_CLIENT.

IF SY-SUBRC = 0.

LOOP AT IT_CLIENT INTO WA_CLIENT.
    PERFORM WRITE_CLIENT.
ENDLOOP.
ELSE.

WRITE /'CLIENT RECORD NOT FOUND'.
ENDIF.



PERFORM FETCH_MATERIAL USING P_VBELN CHANGING IT_MATERIAL.


IF SY-SUBRC = 0.

LOOP AT IT_MATERIAL INTO WA_MATERIAL.

    CONCATENATE WA_MATERIAL-MATNR WA_MATERIAL-ARKTX INTO WA_MATERIAL-MATNR.

    T_FKIMG = WA_MATERIAL-FKIMG.

    CONDENSE T_FKIMG.

    CONCATENATE T_FKIMG WA_MATERIAL-VRKME INTO T_FKIMG.

    T_NETWR = WA_MATERIAL-NETWR.

    CONDENSE T_NETWR.

    TOTAL_VALUE = TOTAL_VALUE + T_NETWR.



    CONCATENATE T_NETWR WA_MATERIAL-WAERK INTO T_NETWR.


    PERFORM WRITE_MATERIAL.

ENDLOOP.
ELSE.

WRITE /'MATERIAL RECORD NOT FOUND'.
ENDIF.

PERFORM FETCH_TOTAL.

PERFORM CLOSE_FORM.


*&---------------------------------------------------------------------*
*&      Form  FETCH_INVOICE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_VBELN  text
*      <--P_IT_INVOICE  text
*----------------------------------------------------------------------*
form FETCH_INVOICE  using    p_p_vbeln TYPE VBELN
                    changing p_it_invoice TYPE TABLE.

SELECT VBELN
       KUNRG
       FKDAT
       XBLNR
       FROM VBRK
       INTO TABLE P_IT_INVOICE
       WHERE VBELN = P_P_VBELN.


endform.                    " FETCH_INVOICE
*&---------------------------------------------------------------------*
*&      Form  OPEN_FORM
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form OPEN_FORM .

CALL FUNCTION 'OPEN_FORM'
 EXPORTING
*   APPLICATION                       = 'TX'
*   ARCHIVE_INDEX                     =
*   ARCHIVE_PARAMS                    =
*   DEVICE                            = 'PRINTER'
*   DIALOG                            = 'X'
    FORM                              = 'ZDAY'
    LANGUAGE                          = SY-LANGU
*   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_INVOICE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form WRITE_INVOICE .

CALL FUNCTION 'WRITE_FORM'
  EXPORTING
    ELEMENT                        = 'INVOICE '  "text element
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
    WINDOW                         = 'INVOICE'
* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


endform.                    " WRITE_INVOICE
*&---------------------------------------------------------------------*
*&      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  FETCH_CLIENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_VBELN  text
*      <--P_IT_CLIENT  text
*----------------------------------------------------------------------*
form FETCH_CLIENT  using    p_p_vbeln TYPE VBELN
                   changing p_it_client TYPE TABLE.

DATA: T_KUNRG TYPE VBRK-KUNRG,
      T_KUNNR TYPE KNA1-KUNNR,
      T_ADRNR TYPE KNA1-ADRNR,
      T_ADDRNUMBER TYPE ADRC-ADDRNUMBER.



*SELECT SINGLE KUNRG FROM VBRK INTO T_KUNRG WHERE VBELN = P_P_VBELN.
SELECT SINGLE K~KUNNR K~ADRNR INTO (T_KUNNR,T_ADRNR) FROM KNA1 AS K INNER JOIN VBRK AS V
      ON K~KUNNR = V~KUNRG
      WHERE V~VBELN = P_P_VBELN.

SELECT SINGLE A~ADDRNUMBER INTO T_ADDRNUMBER FROM ADRC AS A INNER JOIN KNA1 AS K
      ON A~ADDRNUMBER = K~ADRNR
      WHERE K~KUNNR = T_KUNNR.

SELECT NAME1 STREET CITY1 POST_CODE1 COUNTRY TEL_NUMBER
       FROM ADRC INTO TABLE P_IT_CLIENT
       WHERE ADDRNUMBER = T_ADDRNUMBER
       AND
       DATE_FROM <= SY-DATUM
       AND
       DATE_TO >= SY-DATUM.

endform.                    " FETCH_CLIENT
*&---------------------------------------------------------------------*
*&      Form  FETCH_MATERIAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_P_VBELN  text
*      <--P_IT_MATERIAL  text
*----------------------------------------------------------------------*
form FETCH_MATERIAL  using    p_p_vbeln TYPE VBELN
                     changing p_it_material TYPE TABLE.

SELECT P~MATNR P~ARKTX P~FKIMG P~VRKME P~NETWR K~WAERK
       INTO TABLE P_IT_MATERIAL
       FROM VBRP AS P INNER JOIN
       VBRK AS K
       ON P~VBELN = K~VBELN
       WHERE P~VBELN = p_p_vbeln.


endform.                    " FETCH_MATERIAL
*&---------------------------------------------------------------------*
*&      Form  WRITE_MATERIAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form WRITE_MATERIAL .


CALL FUNCTION 'WRITE_FORM'
  EXPORTING
    ELEMENT                        = 'MATERIAL'
*   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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

endform.                    " WRITE_MATERIAL
*&---------------------------------------------------------------------*
*&      Form  WRITE_CLIENT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form WRITE_CLIENT .

CALL FUNCTION 'WRITE_FORM'
 EXPORTING
   ELEMENT                        = 'CLIENT '
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
   WINDOW                         = 'CLIENT'
* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


endform.                    " WRITE_CLIENT
*&---------------------------------------------------------------------*
*&      Form  FETCH_TOTAL
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form FETCH_TOTAL .

CALL FUNCTION 'WRITE_FORM'
 EXPORTING
   ELEMENT                        = 'TOTAL'
*   FUNCTION                       = 'SET'
*   TYPE                           = 'BODY'
   WINDOW                         = 'TOTAL'
* 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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

endform.                    " FETCH_TOTAL