SORT BY gt_kna1.
PERFORM f_fill_final.
END-OF-SELECTION.
IF gt_final IS NOT INITIAL.
PERFORM f_display.
ELSE.
MESSAGE 'No records exists for the selection' TYPE 'I'.
ENDIF.
AT LINE-SELECTION.
DATA:lv_fname TYPE string,
lv_fval TYPE string,
lv_vbeln TYPE vbak-vbeln,
lv_kunnr TYPE vbak-kunnr.
GET CURSOR FIELD lv_fname VALUE lv_fval.
CASE lv_fname.
WHEN 'GW_FINAL-VBELN'.
lv_vbeln = lv_fval.
SET PARAMETER ID 'AUN' FIELD lv_vbeln.
CALL TRANSACTION'VA03' AND SKIP FIRST SCREEN.
WHEN 'GW_FINAL-KUNNR'.
lv_kunnr = lv_fval.
SET PARAMETER ID 'KUN' FIELD lv_kunnr.
CALL TRANSACTION'XD03' AND SKIP FIRST SCREEN.
WHEN OTHERS.
MESSAGE'select only sales order or customer Num' TYPE 'I'.
ENDCASE.
*Always Write work Area of field In caps.
*
* IF lv_fname = 'GW_FINAL-KUNNR'.
*
lv_kunnr = lv_fval.
*
SET PARAMETER ID 'KUN' FIELD lv_kunnr.
*
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
*
elseif
*
lv_fname = 'GW_FINAL-VBELN'.
*
lv_vbeln = lv_fval.
*
SET PARAMETER ID 'AUN' FIELD lv_vbeln.
*
CALL TRANSACTION'VA03' AND SKIP FIRST SCREEN.
*
*
*
*else.
* message'select only sales order or customer Num' type 'I'.
*ENDIF.
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbakvbap
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_fetch_vbakvbap .
SELECT vbak~vbeln vbak~audat vbak~auart vbak~lifsk vbak~faksk vbak~netwr vbak~
vsbed vbak~bstnk vbak~bstdk vbak~kunnr
vbap~posnr vbap~matnr vbap~matkl vbap~arktx vbap~lfrel vbap~fkrel vbap
~meins vbap~kwmeng
INTO TABLE gt_vbakvbap
FROM vbak
INNER JOIN vbap
ON vbak~vbeln = vbap~vbeln
WHERE vbak~vbeln IN s_vbeln
AND vbak~kunnr IN s_kunnr.
*
AND vbak~audat IN s_audat .
ENDFORM.
" f_fetch_vbakvbap
*&---------------------------------------------------------------------*
*&
Form f_fetch_kna1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_fetch_kna1 .
IF NOT gt_vbakvbap[] IS INITIAL.
SELECT kunnr land1 name1 ort01 pstlz regio stras
INTO TABLE gt_kna1
FROM kna1
FOR ALL ENTRIES IN gt_vbakvbap
WHERE kunnr = gt_vbakvbap-kunnr.
ENDIF.
ENDFORM.
" f_fetch_kna1
*&---------------------------------------------------------------------*
*&
Form f_fill_final
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_fill_final .
LOOP AT gt_vbakvbap INTO gw_vbakvbap.
MOVE : gw_vbakvbap-vbeln TO gw_final-vbeln,
gw_vbakvbap-audat TO gw_final-audat,
gw_vbakvbap-auart TO gw_final-auart,
gw_vbakvbap-lifsk TO gw_final-lifsk,
gw_vbakvbap-faksk TO gw_final-faksk,
gw_vbakvbap-netwr TO gw_final-netwr,
gw_vbakvbap-vsbed TO gw_final-vsbed,
gw_vbakvbap-bstnk TO gw_final-bstnk,
gw_vbakvbap-bstdk TO gw_final-bstdk,
gw_vbakvbap-kunnr TO gw_final-kunnr,
gw_vbakvbap-posnr TO gw_final-posnr,
gw_vbakvbap-matnr TO gw_final-matnr,
gw_vbakvbap-matkl TO gw_final-matkl,
gw_vbakvbap-arktx TO gw_final-arktx,
gw_vbakvbap-lfrel TO gw_final-lfrel,
gw_vbakvbap-meins TO gw_final-meins,
gw_vbakvbap-kwmeng TO gw_final-kwmeng.
READ TABLE gt_kna1 INTO gw_kna1 WITH KEY kunnr = gw_vbakvbap-kunnr BINARY SE
ARCH.
IF sy-subrc = 0.
MOVE: gw_kna1-name1
gw_kna1-land1
gw_kna1-ort01
gw_kna1-pstlz
gw_kna1-regio
gw_kna1-stras
TO
TO
TO
TO
TO
TO
gw_final-name1,
gw_final-land1,
gw_final-ort01,
gw_final-pstlz,
gw_final-regio,
gw_final-stras.
ENDIF.
APPEND gw_final TO gt_final.
CLEAR gw_final.
ENDLOOP.
ENDFORM.
" f_fill_final
*&---------------------------------------------------------------------*
*&
Form f_display
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_display .
LOOP AT gt_final INTO gw_final.
*
*
*
*
*
WRITE:/ gw_final-vbeln,
gw_final-audat,
gw_final-auart,
gw_final-lifsk,
gw_final-faksk,
gw_final-netwr,
gw_final-vsbed,
gw_final-bstnk,
gw_final-bstdk,
gw_final-kunnr,
gw_final-posnr,
gw_final-matnr,
gw_final-matkl,
gw_final-arktx,
gw_final-lfrel,
gw_final-meins,
gw_final-kwmeng,
gw_final-name1,
gw_final-land1,
gw_final-ort01,
gw_final-pstlz,
gw_final-regio,
gw_final-stras.
ENDLOOP.
ENDFORM.
" f_display
*&---------------------------------------------------------------------*
*&
Form f_fill_doc_date
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_fill_doc_date .
DATA:lv_edate TYPE sy-datum.
s_audat-sign = 'I'.
s_audat-option = 'BT'.
s_audat-low = sy-datum.
s_audat-low+6(2) = '01'.
* s_audat-high = sy-datum.
CALL FUNCTION 'OIL_LAST_DAY_OF_MONTH'
EXPORTING
i_date
= sy-datum
IMPORTING
e_last_day = lv_edate.
s_audat-high = lv_edate.
APPEND s_audat.
ENDFORM.
" f_fill_doc_date
*&---------------------------------------------------------------------*
*&
Form f_validate_custome
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM f_validate_custome .
DATA:lv_kunnr TYPE vbak-kunnr.
SELECT SINGLE kunnr
INTO lv_kunnr
FROM kna1
WHERE kunnr IN s_kunnr.
IF sy-subrc NE 0.
MESSAGE 'Invalid Customer' TYPE 'E'.
ENDIF.
ENDFORM.
" f_validate_custome