You are on page 1of 6

*&---------------------------------------------------------------------*

*& Report Z033_SCRIPTSMARTFORMS_T1


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT Z033_SCRIPTSMARTFORMS_T1.
TABLES : EKKO.
TYPES : BEGIN OF TY_T1,
EBELN TYPE EBELN,
LIFNR TYPE LIFNR,
BEDAT TYPE BEDAT,
BUKRS TYPE BUKRS,
END OF TY_T1.
TYPES : BEGIN OF TY_T2,
EBELN TYPE EBELN,
NETPR TYPE BPREI,
END OF TY_T2.
TYPES : BEGIN OF TY_FINAL,
SNO TYPE I,
EBELN TYPE EBELN,
LIFNR TYPE LIFNR,
BEDAT TYPE BEDAT,
BUKRS TYPE BUKRS,
NETPR TYPE BPREI,
END OF TY_FINAL.
TYPES : BEGIN OF TY_HEAD,
BUKRS TYPE BUKRS,
BUTXT TYPE BUTXT,
ORT01 TYPE ORT01,
END OF TY_HEAD.
TYPES : BEGIN OF TY_LIFNR,
NAME1 TYPE LFA1-NAME1,
END OF TY_LIFNR.
DATA : WA_HEAD TYPE TY_HEAD,
IT_T1 TYPE TABLE OF TY_T1,
WA_T1 TYPE TY_T1,
IT_T2 TYPE TABLE OF TY_T2,
WA_T2 TYPE TY_T2,
IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL,
WA_LFA1 TYPE TY_LIFNR.
DATA : TOTAL TYPE NETPR.
DATA : DAT TYPE EKKO-BEDAT,
PONUM TYPE EKKO-EBELN.
SELECTION-SCREEN BEGIN OF SCREEN 9000.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : PDAT FOR DAT OBLIGATORY.
PARAMETERS : BUKRS TYPE EKKO-BUKRS OBLIGATORY.
SELECT-OPTIONS : PNUM FOR PONUM.
PARAMETERS : LIFNR TYPE EKKO-LIFNR MODIF ID G.

PARAMETERS : WAERS TYPE EKKO-WAERS.


SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
PARAMETERS : RB1 RADIOBUTTON GROUP R1 MODIF ID G,
RB2 RADIOBUTTON GROUP R1 MODIF ID G.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN END OF SCREEN 9000.

CALL SELECTION-SCREEN 9000.


AT SELECTION-SCREEN .
IF RB1 = 'X'.
PERFORM SMARTFORMS.
ELSEIF RB2 = 'X'.
**
LOOP AT SCREEN.
*
*
IF SCREEN-NAME = 'LIFNR'.
*
SCREEN-REQUIRED = '1'.
*
MODIFY SCREEN.
*
ENDIF.
*
ENDLOOP.
IF LIFNR IS INITIAL.
MESSAGE 'enter vendor number' TYPE 'E'.
ENDIF.
PERFORM SCRIPT.
ENDIF.
* AT SELECTION-SCREEN OUTPUT .
*
* IF RB1 = 'X'.
**
LOOP AT SCREEN.
**
IF SCREEN-GROUP1 = 'G'.
**
IF SCREEN-NAME = 'LIFNR'.
**
SCREEN-REQUIRED = '0'.
**
MODIFY SCREEN.
**
ENDIF.
**
ENDIF.
**
ENDLOOP.
*
PERFORM SMARTFORMS.
* ELSEIF RB2 = 'X'.
*
*
LOOP AT SCREEN.
*
IF SCREEN-GROUP1 = 'G'.
*
IF SCREEN-NAME = 'LIFNR'.
*
SCREEN-REQUIRED = '0'.
*
MODIFY SCREEN.
*
ENDIF.
*
ENDIF.
*
ENDLOOP.
*
PERFORM SCRIPT.

* ENDIF.
*&---------------------------------------------------------------------*
*&
Form SCRIPT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SCRIPT .
SELECT BUKRS
BUTXT
ORT01
FROM T001
INTO WA_HEAD
WHERE BUKRS EQ BUKRS.
ENDSELECT.
SELECT NAME1
FROM LFA1
INTO WA_LFA1
WHERE LIFNR EQ LIFNR.
ENDSELECT.
*
* SELECT A~EBELN
*
A~LIFNR
*
A~BEDAT
*
A~BUKRS
*
B~BUKRS
*
B~NETPR
*
INTO CORRESPONDING FIELDS OF TABLE IT_TAB
*
FROM EKKO AS A INNER JOIN EKPO AS B
*
ON A~BUKRS EQ B~BUKRS
*
WHERE A~BUKRS EQ BUKRS AND BEDAT IN PDAT AND LIFNR EQ LIFNR.
SELECT EBELN
LIFNR
BEDAT
BUKRS
FROM EKKO
INTO TABLE IT_T1
WHERE LIFNR EQ LIFNR AND BEDAT IN PDAT AND BUKRS EQ BUKRS.
SELECT EBELN
NETPR
FROM EKPO
INTO TABLE IT_T2
FOR ALL ENTRIES IN IT_T1
WHERE EBELN EQ IT_T1-EBELN.
LOOP AT IT_T1 INTO WA_T1.
MOVE-CORRESPONDING WA_T1 TO WA_FINAL.
READ TABLE IT_T2 INTO WA_T2 WITH KEY EBELN = WA_T1-EBELN.
WA_FINAL-NETPR = WA_T2-NETPR.
WA_FINAL-SNO = WA_FINAL-SNO + 1.
APPEND WA_FINAL TO IT_FINAL.
ENDLOOP.

CALL FUNCTION 'OPEN_FORM'


EXPORTING
FORM = 'Z033_SCRIPT_T1'. "FOrm name in SE71
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'CWINDOW'
WINDOW = 'CWINDOW'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'LOGO'
WINDOW = 'LOGO'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'IWINDOW'
WINDOW = 'IWINDOW'.
LOOP AT IT_FINAL INTO WA_FINAL.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'MAIN'
WINDOW = 'MAIN'.
AT LAST.
SUM.
TOTAL = TOTAL + WA_FINAL-NETPR.
ENDAT.
ENDLOOP.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'TWINDOW'
WINDOW = 'TWINDOW'.
CALL FUNCTION 'CLOSE_FORM'.
ENDFORM.
" SCRIPT
*&---------------------------------------------------------------------*
*&
Form SMARTFORMS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM SMARTFORMS .
DATA : WA_HEAD1 TYPE T001.
SELECT SINGLE
BUTXT
ORT01
FROM T001
INTO CORRESPONDING FIELDS OF WA_HEAD1
WHERE BUKRS EQ BUKRS.

DATA : ADRNR TYPE LFA1-ADRNR.

DATA : IT_TAB1 TYPE ZVENKAT_SF_TAB,


IT_TAB TYPE ZVENKAT_SF_TAB ,
WA_TAB1 TYPE ZVENKAT_SF_ST,
WA_TAB TYPE ZVENKAT_SF_ST.
*
SELECT EBELN
LIFNR
BEDAT
BUKRS
FROM EKKO
INTO CORRESPONDING FIELDS OF TABLE IT_T1
WHERE BEDAT IN PDAT AND BUKRS EQ BUKRS.
SELECT ADRNR
FROM LFA1
INTO ADRNR
FOR ALL ENTRIES IN it_t1
where lifnr eq it_t1-lifnr.
ENDSELECT.
TYPES : BEGIN OF TY_MAKT,
MATNR TYPE MATNR,
MAKTX TYPE MAKTX,
END OF TY_MAKT.
DATA : WA_MAKT TYPE TY_MAKT,
IT_MAKT TYPE TABLE OF TY_MAKT.
SELECT EBELN
EBELP
MATNR
MENGE
MEINS
NETPR
NETWR
FROM EKPO
INTO CORRESPONDING FIELDS OF TABLE IT_TAB1
FOR ALL ENTRIES IN IT_T1
WHERE EBELN EQ IT_T1-EBELN.
SELECT MATNR
MAKTX
FROM MAKT
INTO TABLE IT_MAKT
FOR ALL ENTRIES IN IT_TAB1
WHERE MATNR EQ IT_TAB1-MATNR.
LOOP AT IT_TAB1 INTO WA_TAB1.
READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_TAB1-MATNR.
MOVE-CORRESPONDING WA_TAB1 TO WA_TAB.
WA_TAB-MAKTX = WA_MAKT-MAKTX.
APPEND WA_TAB TO IT_TAB.
clear : wa_tab,wa_tab1.
ENDLOOP.

" For Function Module Generation


DATA : GV_FORMNAME TYPE TDSFNAME VALUE 'ZVENKAT_SMATFORMS_TASK',
"Smart Forms: Form Name1
GV_FMNAME TYPE RS38L_FNAM. "Name of Function Module
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = GV_FORMNAME
IMPORTING
FM_NAME = GV_FMNAME.
CALL FUNCTION GV_FMNAME
EXPORTING
* ARCHIVE_INDEX
=
* ARCHIVE_INDEX_TAB
=
* ARCHIVE_PARAMETERS
=
* CONTROL_PARAMETERS
=
* MAIL_APPL_OBJ
=
* MAIL_RECIPIENT
=
* MAIL_SENDER
=
* OUTPUT_OPTIONS
=
* USER_SETTINGS
= 'X'
WA_TOO1
= WA_HEAD1
ADRNR
= ADRNR
* IMPORTING
* DOCUMENT_OUTPUT_INFO
=
* JOB_OUTPUT_INFO
=
* JOB_OUTPUT_OPTIONS
=
TABLES
IT_TAB
= IT_TAB
* EXCEPTIONS
* FORMATTING_ERROR
= 1
* INTERNAL_ERROR
= 2
* SEND_ERROR
= 3
* USER_CANCELED
= 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.

" SMARTFORMS

You might also like