0% found this document useful (0 votes)
71 views22 pages

ZHR003

The document is a report code written in ABAP for SAP. It contains class definitions and methods to retrieve sales order data from various tables, aggregate the data, and display it in an ALV grid. The report will retrieve sales order details for the year 2022, group the data by market (Domestic, Export, Sample, Interco), product, and month, and display the totals.

Uploaded by

Arie 402
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views22 pages

ZHR003

The document is a report code written in ABAP for SAP. It contains class definitions and methods to retrieve sales order data from various tables, aggregate the data, and display it in an ALV grid. The report will retrieve sales order details for the year 2022, group the data by market (Domestic, Export, Sample, Interco), product, and month, and display the totals.

Uploaded by

Arie 402
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

REPORT zhr_003.

TYPE-POOLS: vrm.

TABLES: zvmme400_get, likp.

CLASS lcl_report DEFINITION.


PUBLIC SECTION.

TYPES: BEGIN OF lty_ZVMME400_GET,


market TYPE string,
product TYPE string,
januari TYPE p LENGTH 16 DECIMALS 3,
februari TYPE p LENGTH 16 DECIMALS 3,
maret TYPE p LENGTH 16 DECIMALS 3,
april TYPE p LENGTH 16 DECIMALS 3,
mei TYPE p LENGTH 16 DECIMALS 3,
juni TYPE p LENGTH 16 DECIMALS 3,
juli TYPE p LENGTH 16 DECIMALS 3,
agustus TYPE p LENGTH 16 DECIMALS 3,
september TYPE p LENGTH 16 DECIMALS 3,
oktober TYPE p LENGTH 16 DECIMALS 3,
nopember TYPE p LENGTH 16 DECIMALS 3,
desember TYPE p LENGTH 16 DECIMALS 3,
* domestic TYPE STRING,

END OF lty_ZVMME400_GET.

DATA: hnt_data TYPE STANDARD TABLE OF zvmme400_get,


r_LOTNM TYPE RANGE OF ztmmmlot-cblotm,
r_table TYPE REF TO cl_salv_table,
r_event TYPE REF TO cl_salv_events_table,
lo_alv TYPE REF TO cl_salv_table,
gr_display TYPE REF TO cl_salv_display_settings,
gr_columns TYPE REF TO cl_salv_columns_table,
gr_column TYPE REF TO cl_salv_column_table,
warna TYPE lvc_s_colo,
lr_aggregations TYPE REF TO cl_salv_aggregations,
lr_group TYPE REF TO cl_salv_sorts,
toolbar TYPE REF TO cl_salv_functions_list,
lo_display TYPE REF TO cl_salv_display_settings,
l_text TYPE string,
v_rows TYPE i.

METHODS:
get_data,
generate_ouptut.

CLASS-DATA gt_ZVMME400_GET TYPE TABLE OF lty_ZVMME400_GET.


CLASS-METHODS: jabringan FOR EVENT double_click OF cl_salv_e
vents_table IMPORTING row column.

ENDCLASS.

TYPES: BEGIN OF lty_ztmmmlot,


zzcup TYPE zcup,
cblotm TYPE zde_cblotm,
cblotn TYPE zde_cblotn,
END OF lty_ztmmmlot.

DATA: lo_reportTYPE REF TO lcl_report,


gt_zmmmlot TYPE STANDARD TABLE OF lty_ztmmmlot,
wa_zmmmlot TYPE lty_ztmmmlot.
DATA: gt_return TYPE TABLE OF ddshretval,
wa_return TYPE ddshretval.
DATA: int_lot TYPE ztmmmlot OCCURS 0 WITH HEADER LINE.

DATA: it_lot TYPE TABLE OF ztmmmlot,


it_val TYPE STANDARD TABLE OF vrm_value,
wa_val LIKE LINE OF it_val,
it_val2 TYPE STANDARD TABLE OF vrm_value,
wa_val2 LIKE LINE OF it_val2,
f_date TYPE sy-datum,
l_date TYPE sy-datum,
hantu_nol TYPE p LENGTH 16 DECIMALS 3 VALUE 0.

DATA: name TYPE vrm_id,


list TYPE vrm_values,
value LIKE LINE OF list.

DATA: prev_mth TYPE month, prev_year TYPE lfgja, curr_month TYPE


month, curr_year TYPE lfgja.
TYPES:
BEGIN OF month_year,
year(4),
month(2),
END OF month_year.
DATA: month_year TYPE month_year.

SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE aaa.

PARAMETERS: wedus(50) AS LISTBOX VISIBLE LENGTH 10 DEFAULT '202


2'.

SELECTION-SCREEN: END OF BLOCK blk1.

CLASS lcl_report IMPLEMENTATION.

METHOD jabringan.

ENDMETHOD.

METHOD get_data.

IF wedus = '2022'.

WITH +f AS (
SELECT
'DOMESTIC' AS market,
left( hanturimba~maktx,3 ) AS product,
odh~wadat_ist AS dodt,
( coalesce( bomz~cbnw00,0 ) + coalesce( zod~cbnw00,0 ) )
AS domestic
FROM AS odd
lips
JOIN likp AS odh ON odd~vbeln = odh~vbeln
INNER
INNER JOIN kna1 AS sot ON sot~kunnr = odh~kunag
INNER JOIN kna1 AS sht ON sht~kunnr = odh~kunnr
INNER JOIN makt AS mdes ON mdes~matnr = odd~matnr
LEFT JOIN ztmme411b AS zod ON odd~vbeln = zod~vbeln AND odd~
posnr = zod~posnr
INNER JOIN vbap AS sod ON odd~vgbel = sod~vbeln AND odd~vgpos
= sod~posnr
INNER JOIN vbak AS soh ON sod~vbeln = soh~vbeln
INNER JOIN tvakt AS styp ON styp~auart = soh~auart
LEFT JOIN ztmmi401a AS pac ON zod~cbpack = pac~apf_cbpack
LEFT JOIN lips AS bomd ON odd~vbeln = bomd~vbeln AND odd~pos
nr = bomd~uepos AND bomd~pstyv = 'ZTAE'
LEFT JOIN ztmme411b AS bomz ON bomz~vbeln = bomd~vbeln AND b
omz~posnr = bomd~posnr
LEFT JOIN ztmmi401a AS bompac ON bomz~cbpack = bompac~apf_cbp
ack
LEFT JOIN AS hanturimba ON coalesce( bomz~cbp
zCDS_mme400_get
ack , zod~cbpack ) = hanturimba~apf_cbpack
WHERE odh~wadat_ist BETWEEN '20220101' AND '20221231'
AND soh~auart IN ('ZO01','ZO02','ZO03','ZO04','ZO05','ZO06') "
di remark sementara ZFC1
AND odd~pstyv IN ('ZTA1','ZTA2','ZTA3','ZTA4','ZTA5','ZTA6','ZTA
7','ZTA8','ZTAQ','ZTA9')
AND odh~wbstk = 'C'
AND styp~spras = 'E'
AND sod~vstel = '1100' AND ( zod~cblotm <> '' OR bomz~cblot
m <>'' )
ORDER BY odh~wadat_ist ASCENDING
) , +f1 AS (
SELECT
'EXPORT' AS market,
left( hanturimba~maktx,3 ) AS product,
odh~wadat_ist AS dodt,
( coalesce( bomz~cbnw00,0 ) + coalesce( zod~cbnw00,0 )
) AS domestic
FROM lips AS odd
INNER JOIN likp AS odh ON odd~vbeln = odh~vbeln
INNER JOIN kna1 AS sot ON sot~kunnr = odh~kunag
INNER JOIN kna1 AS sht ON sht~kunnr = odh~kunnr
INNER JOIN makt AS mdes ON mdes~matnr = odd~matnr
LEFT JOIN ztmme411b AS zod ON odd~vbeln = zod~vbeln AND od
d~posnr = zod~posnr
INNER JOIN vbap AS sod ON odd~vgbel = sod~vbeln AND odd~vgp
os = sod~posnr
INNER JOIN vbak AS soh ON sod~vbeln = soh~vbeln
INNER JOIN tvakt AS styp ON styp~auart = soh~auart
LEFT JOIN ztmmi401a AS pac ON zod~cbpack = pac~apf_cbpack
LEFT JOIN lips AS bomd ON odd~vbeln = bomd~vbeln AND odd~p
osnr = bomd~uepos AND bomd~pstyv = 'ZTAE'
LEFT JOIN ztmme411b AS bomz ON bomz~vbeln = bomd~vbeln AND
bomz~posnr = bomd~posnr
LEFT JOIN ztmmi401a AS bompac ON bomz~cbpack = bompac~apf_c
bpack
LEFT JOIN zCDS_mme400_get AS hanturimba ON coalesce( bomz~c
bpack , zod~cbpack) = hanturimba~apf_cbpack
WHERE odh~wadat_ist BETWEEN '20220101' AND '20221231'
AND soh~auart IN ( 'ZOR2','ZOR4','ZOR6' ) " di remark
sementara ZFC2
AND odd~pstyv IN ('ZTA1','ZTA2','ZTA3','ZTA4','ZTA5','ZTA6',
'ZTA7','ZTA8','ZTAQ','ZTA9')
AND odh~wbstk = 'C'
AND styp~spras = 'E'
AND sod~vstel = '1100' AND ( zod~cblotm <> '' OR bomz~c
blotm <>'' )
ORDER BY odh~wadat_ist ASCENDING

, +f2 AS (
SELECT
'SAMPLE' AS market,
left( hanturimba~maktx,3 ) AS product,
odh~wadat_ist AS dodt,
( coalesce( bomz~cbnw00,0 ) + coalesce( zod~cbnw00,0 )
) AS domestic
FROM lips AS odd
JOIN likp AS odh ON odd~vbeln = odh~vbeln
INNER
INNER JOIN kna1 AS sot ON sot~kunnr = odh~kunag
INNER JOIN kna1 AS sht ON sht~kunnr = odh~kunnr
INNER JOIN makt AS mdes ON mdes~matnr = odd~matnr
LEFT JOIN ztmme411b AS zod ON odd~vbeln = zod~vbeln AND od
d~posnr = zod~posnr
INNER JOIN vbap AS sod ON odd~vgbel = sod~vbeln AND odd~vgp
os = sod~posnr
INNER JOIN vbak AS soh ON sod~vbeln = soh~vbeln
INNER JOIN tvakt AS styp ON styp~auart = soh~auart
LEFT JOIN ztmmi401a AS pac ON zod~cbpack = pac~apf_cbpack
LEFT JOIN lips AS bomd ON odd~vbeln = bomd~vbeln AND odd~p
osnr = bomd~uepos AND bomd~pstyv = 'ZTAE'
LEFT JOIN ztmme411b AS bomz ON bomz~vbeln = bomd~vbeln AND
bomz~posnr = bomd~posnr
LEFT JOIN ztmmi401a AS bompac ON bomz~cbpack = bompac~apf_c
bpack
LEFT JOIN AS hanturimba ON coalesce( bomz~c
zCDS_mme400_get
bpack , zod~cbpack ) = hanturimba~apf_cbpack
WHERE odh~wadat_ist BETWEEN '20220101' AND '20221231'
AND soh~auart IN ( 'ZFC1' , 'ZFC2' )
* AND odd~pstyv IN ('ZTA1','ZTA2','ZTA3','ZTA4','Z
TA5','ZTA6','ZTA7','ZTA8','ZTAQ','ZTA9')
AND odh~wbstk =
'C'
AND styp~spras = 'E'
AND sod~vstel = '1100' AND ( zod~cblotm <> '' OR bomz~c
blotm <>'' )
ORDER BY odh~wadat_ist ASCENDING

, +f3 AS (
SELECT
'INTERCO' AS market,
left( hanturimba~maktx,3 ) AS product,
odh~wadat_ist AS dodt,
( coalesce( bomz~cbnw00,0 ) + coalesce( zod~cbnw00,0 )
) AS domestic
FROM lips AS odd
JOIN likp AS odh ON odd~vbeln = odh~vbeln
INNER
INNER JOIN kna1 AS sot ON sot~kunnr = odh~kunag
INNER JOIN kna1 AS sht ON sht~kunnr = odh~kunnr
INNER JOIN makt AS mdes ON mdes~matnr = odd~matnr
LEFT JOIN ztmme411b AS zod ON odd~vbeln = zod~vbeln AND od
d~posnr = zod~posnr
INNER JOIN vbap AS sod ON odd~vgbel = sod~vbeln AND odd~vgp
os = sod~posnr
INNER JOIN vbak AS soh ON sod~vbeln = soh~vbeln
INNER JOIN tvakt AS styp ON styp~auart = soh~auart
LEFT JOIN ztmmi401a AS pac ON zod~cbpack = pac~apf_cbpack
LEFT JOIN lips AS bomd ON odd~vbeln = bomd~vbeln AND odd~p
osnr = bomd~uepos AND bomd~pstyv = 'ZTAE'
LEFT JOIN ztmme411b AS bomz ON bomz~vbeln = bomd~vbeln AND
bomz~posnr = bomd~posnr
LEFT JOIN ztmmi401a AS bompac ON bomz~cbpack = bompac~apf_c
bpack
LEFT JOIN AS hanturimba ON coalesce( bomz~c
zCDS_mme400_get
bpack , zod~cbpack ) = hanturimba~apf_cbpack
WHERE odh~wadat_ist BETWEEN '20220101' AND '20221231'
AND soh~auart = 'ZO07'
AND odh~wbstk = 'C'
AND styp~spras = 'E'
AND sod~vstel = '1100' AND ( zod~cblotm <> '' OR bomz~c
blotm <>'' )
ORDER BY odh~wadat_ist ASCENDING

SELECT
market,product
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '01' THEN do
mestic ELSE 0 END ) AS januari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '02' THEN do
mestic ELSE 0 END ) AS februari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '03' THEN do
mestic ELSE 0 END ) AS maret
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '04' THEN do
mestic ELSE 0 END ) AS april
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '05' THEN do
mestic ELSE 0 END ) AS mei
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '06' THEN do
mestic ELSE 0 END ) AS juni
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '07' THEN do
mestic ELSE 0 END ) AS juli
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '08' THEN do
mestic ELSE 0 END ) AS agustus
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '09' THEN do
mestic ELSE 0 END ) AS september
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '10' THEN do
mestic ELSE 0 END ) AS oktober
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '11' THEN do
mestic ELSE 0 END ) AS nopember
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '12' THEN do
mestic ELSE 0 END ) AS desember
FROM +f WHERE product NE 'CHP'
GROUP BY market,product
UNION ALL
SELECT
market,product
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '01' THEN do
mestic ELSE 0 END ) AS januari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '02' THEN do
mestic ELSE 0 END ) AS februari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '03' THEN do
mestic ELSE 0 END ) AS maret
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '04' THEN do
mestic ELSE 0 END ) AS april
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '05' THEN do
mestic ELSE 0 END ) AS mei
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '06' THEN do
mestic ELSE 0 END ) AS juni
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '07' THEN do
mestic ELSE 0 END ) AS juli
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '08' THEN do
mestic ELSE 0 END ) AS agustus
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '09' THEN do
mestic ELSE 0 END ) AS september
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '10' THEN do
mestic ELSE 0 END ) AS oktober
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '11' THEN do
mestic ELSE 0 END ) AS nopember
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '12' THEN do
mestic ELSE 0 END ) AS desember
FROM +f1 WHERE product NE 'CHP'
GROUP BY market,product
UNION ALL
SELECT
market,product
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '01' THEN do
mestic ELSE 0 END ) AS januari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '02' THEN do
mestic ELSE 0 END ) AS februari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '03' THEN do
mestic ELSE 0 END ) AS maret
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '04' THEN do
mestic ELSE 0 END ) AS april
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '05' THEN do
mestic ELSE 0 END ) AS mei
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '06' THEN do
mestic ELSE 0 END ) AS juni
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '07' THEN do
mestic ELSE 0 END ) AS juli
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '08' THEN do
mestic ELSE 0 END ) AS agustus
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '09' THEN do
mestic ELSE 0 END ) AS september
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '10' THEN do
mestic ELSE 0 END ) AS oktober
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '11' THEN do
mestic ELSE 0 END ) AS nopember
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '12' THEN do
mestic ELSE 0 END ) AS desember
FROM +f2 WHERE product NE 'CHP'
GROUP BY market,product
UNION ALL
SELECT
market,product
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '01' THEN do
mestic ELSE 0 END ) AS januari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '02' THEN do
mestic ELSE 0 END ) AS februari
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '03' THEN do
mestic ELSE 0 END ) AS maret
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '04' THEN do
mestic ELSE 0 END ) AS april
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '05' THEN do
mestic ELSE 0 END ) AS mei
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '06' THEN do
mestic ELSE 0 END ) AS juni
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '07' THEN do
mestic ELSE 0 END ) AS juli
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '08' THEN do
mestic ELSE 0 END ) AS agustus
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '09' THEN do
mestic ELSE 0 END ) AS september
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '10' THEN do
mestic ELSE 0 END ) AS oktober
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '11' THEN do
mestic ELSE 0 END ) AS nopember
,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '12' THEN do
mestic ELSE 0 END ) AS desember
FROM +f3 WHERE product NE 'CHP'
GROUP BY market,product
ORDER BY product DESCENDING

INTO CORRESPONDING FIELDS OF TABLE @gt_ZVMME400_GET.


IF sy-dbcnt ISINITIAL.
MESSAGE s398(00) WITH 'DATA TIDAK HADIR ' && '- ' && we
dus .
ENDIF.
EXPORT data = me->gt_ZVMME400_GET TO MEMORY ID sy-cprog.

* ELSEIF wedus = ' ' OR qt = ' '.


* CALL FUNCTION 'POPUP_TO_INFORM'
* EXPORTING
* titel = 'KASIH PAHAM'
* txt1 = 'KOSONG KANG'
* txt2 = 'KOSONG KANG'.
* ELSE.
* WITH +f AS (
* SELECT
* 'EXP' AS market,
* left( hanturimba~maktx,3 ) AS product,
* odh~wadat_ist AS dodt,
* ( coalesce( bomz~cbnw00,0 ) + coalesce( zod~cbnw00,0 ) )
AS domestic
*FROM lips AS odd
*INNER JOIN likp AS odh ON odd~vbeln = odh~vbeln
*INNER JOIN kna1 AS sot ON sot~kunnr = odh~kunag
*INNER JOIN kna1 AS sht ON sht~kunnr = odh~kunnr
*INNER JOIN makt AS mdes ON mdes~matnr = odd~matnr
*LEFT JOIN ztmme411b AS zod ON odd~vbeln = zod~vbeln AND odd~p
osnr = zod~posnr
*INNER JOIN vbap AS sod ON odd~vgbel = sod~vbeln AND odd~vgpos
= sod~posnr
*INNER JOIN vbak AS soh ON sod~vbeln = soh~vbeln
*LEFT JOIN ztmmi401a AS pac ON zod~cbpack = pac~apf_cbpack
*LEFT JOIN lips AS bomd ON odd~vbeln = bomd~vbeln AND odd~posn
r = bomd~uepos AND bomd~pstyv = 'ZTAE'
*LEFT JOIN ztmme411b AS bomz ON bomz~vbeln = bomd~vbeln AND bo
mz~posnr = bomd~posnr
*LEFT JOIN ztmmi401a AS bompac ON bomz~cbpack = bompac~apf_cbpac
k
*LEFT JOIN zCDS_mme400_get AS hanturimba ON coalesce( bomz~cbpack
, zod~cbpack ) = hanturimba~apf_cbpack
* WHERE odh~wadat_ist BETWEEN '20220101' AND '20221231'
* AND soh~auart IN ('ZOR2','ZOR4','ZOR6','ZFC2')
* AND odd~pstyv IN ('ZTA1','ZTA2','ZTA3','ZTA4','ZTA5','ZTA6','ZTA
7','ZTA8','ZTAQ','ZTA9')
* AND odh~wbstk = 'C'
* AND sod~vstel = '1100' AND ( zod~cblotm <> '' OR bomz~cbl
otm <>'' )
*ORDER BY odh~wadat_ist ASCENDING
*) SELECT
*market,product
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '01' THEN domest
ic ELSE 0 END ) AS januari
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '02' THEN domest
ic ELSE 0 END ) AS februari
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '03' THEN domest
ic ELSE 0 END ) AS maret
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '04' THEN domest
ic ELSE 0 END ) AS april
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '05' THEN domest
ic ELSE 0 END ) AS mei
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '06' THEN domest
ic ELSE 0 END ) AS juni
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '07' THEN domest
ic ELSE 0 END ) AS juli
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '08' THEN domest
ic ELSE 0 END ) AS agustus
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '09' THEN domest
ic ELSE 0 END ) AS september
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '10' THEN domest
ic ELSE 0 END ) AS oktober
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '11' THEN domest
ic ELSE 0 END ) AS nopember
*,SUM( CASE WHEN right( left( dodt,6 ),2 ) = '12' THEN domest
ic ELSE 0 END ) AS desember
*FROM +f WHERE product NE 'CHP'
*GROUP BY market,product
*ORDER BY product DESCENDING
*
*
*INTO CORRESPONDING FIELDS OF TABLE @gt_ZVMME400_GET.
*
* IF sy-dbcnt IS INITIAL.
* MESSAGE s398(00) WITH 'DATA TIDAK HADIR ' && '-
' && wedus .
* ENDIF.
* EXPORT data = me->gt_ZVMME400_GET TO MEMORY ID sy-cp
rog.
ENDIF.

ENDMETHOD.

METHOD generate_ouptut.
TRY.
IMPORT data = me->gt_ZVMME400_GET FROM MEMORY ID sy-cprog.
FREE MEMORY ID sy-cprog.
CHECK me->gt_ZVMME400_GET IS NOT INITIAL.
DATA(lo_dock) = NEW cl_gui_docking_container( repid = sy-cp
rog
dynnr = sy-dynnr
ratio = 80
side = cl_gui_doc
king_container=>dock_at_bottom
name = 'DOCK_CONT
').
cl_salv_table=>factory(
EXPORTING
list_display = if_salv_c_bool_sap=>false
r_container = CAST #( lo_dock )
container_name = 'DOCK_CONT'
IMPORTING
r_salv_table = DATA(lo_alv)
CHANGING
t_table = me->gt_ZVMME400_GET ).

DATA(events) = lo_alv->get_event( ).
SET HANDLER jabringan FOR events.

* DATA(events) = lo_alv->get_event( ).
* SET HANDLER handle_double_click FOR events.

CATCH cx_salv_msg.
MESSAGE 'Ini Tipe Pallet' TYPE 'I'
DISPLAY LIKE 'E'.
ENDTRY.

lr_aggregations = lo_alv->get_aggregations( ).
lr_aggregations->clear( ).

lr_group = lo_alv->get_sorts( ).
lr_group->clear( ).

TRY.

lr_group->add_sort(
columnname = 'MARKET'
position = 1
subtotal = abap_true
sequence = if_salv_c_sort=>sort_up ).

CATCH cx_salv_not_found cx_salv_data_error cx_salv_existing.


ENDTRY.

TRY.
lr_aggregations->add_aggregation( columnname = 'JANUARI' ).
lr_aggregations->add_aggregation( columnname = 'FEBRUARI' ).
lr_aggregations->add_aggregation( columnname = 'MARET' ).
lr_aggregations->add_aggregation( columnname = 'APRIL' ).
lr_aggregations->add_aggregation( columnname = 'MEI' ).
lr_aggregations->add_aggregation( columnname = 'JUNI' ).
lr_aggregations->add_aggregation( columnname = 'JULI' ).
lr_aggregations->add_aggregation( columnname = 'AGUSTUS' ).
lr_aggregations->add_aggregation( columnname = 'SEPTEMBER' ).
lr_aggregations->add_aggregation( columnname = 'OKTOBER' ).
lr_aggregations->add_aggregation( columnname = 'NOPEMBER' ).
lr_aggregations->add_aggregation( columnname = 'DESEMBER' ).
* lr_aggregations->add_aggregation( columnname = 'APF_CBBO
XE' ).
CATCH cx_salv_not_found cx_salv_data_error cx_salv_existing.
ENDTRY.

gr_columns = lo_alv->get_columns( ).
*
gr_column ?= gr_columns->get_column( 'MARKET' ).
gr_column->set_long_text( '::MARKET::' ).
gr_column->set_medium_text( 'Market' ).
gr_column->set_short_text( 'Market' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'PRODUCT' ).


gr_column->set_long_text( '::PRODUCT::' ).
gr_column->set_medium_text( 'Product' ).
gr_column->set_short_text( 'Product' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'JANUARI' ).


gr_column->set_long_text( 'Januari.' ).
gr_column->set_medium_text( 'Januari' ).
gr_column->set_short_text( 'Januari' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'FEBRUARI' ).


gr_column->set_long_text( 'Februari' ).
gr_column->set_medium_text( 'Februari' ).
gr_column->set_short_text( 'Februari' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'MARET' ).


gr_column->set_long_text( 'Maret' ).
gr_column->set_medium_text( 'Maret' ).
gr_column->set_short_text( 'Maret' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column('APRIL' ).
gr_column->set_long_text( 'April.' ).
gr_column->set_medium_text( 'April' ).
gr_column->set_short_text( 'April' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'MEI' ).


gr_column->set_long_text( 'Mei.' ).
gr_column->set_medium_text( 'Mei' ).
gr_column->set_short_text( 'Mei' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'JUNI' ).


gr_column->set_long_text( 'Juni.' ).
gr_column->set_medium_text( 'Juni' ).
gr_column->set_short_text( 'Juni' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'JULI' ).


gr_column->set_long_text( 'Juli.' ).
gr_column->set_medium_text( 'Juli' ).
gr_column->set_short_text( 'Juli' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'AGUSTUS' ).


gr_column->set_long_text( 'Agustus.' ).
gr_column->set_medium_text( 'Agustus' ).
gr_column->set_short_text( 'Agustus' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'SEPTEMBER' ).


gr_column->set_long_text( 'September.' ).
gr_column->set_medium_text( 'September' ).
gr_column->set_short_text( 'September' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'OKTOBER' ).


gr_column->set_long_text( 'Oktober.' ).
gr_column->set_medium_text( 'Oktober' ).
gr_column->set_short_text( 'Oktober' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'NOPEMBER' ).


gr_column->set_long_text( 'Nopember.' ).
gr_column->set_medium_text( 'Nopember' ).
gr_column->set_short_text( 'Nopember' ).
gr_column->set_optimized( ).

gr_column ?= gr_columns->get_column( 'DESEMBER' ).


gr_column->set_long_text( 'Desember.' ).
gr_column->set_medium_text( 'Desember' ).
gr_column->set_short_text( 'Desember' ).
gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'MAKTX' ).
* gr_column->set_long_text( 'Product Desc' ).
* gr_column->set_medium_text( 'Product' ).
* gr_column->set_short_text( 'Product' ).
* gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'APF_CBLOTM' ).
* gr_column->set_long_text( 'Lot Name' ).
* gr_column->set_medium_text( 'LotName' ).
* gr_column->set_short_text( 'LotName' ).
* gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'OPENING' ).
** gr_column->set_long_text( 'Opening' && prev_mth ).
* gr_column->set_long_text( 'Opening.' ).
* gr_column->set_medium_text( 'Open' ).
* gr_column->set_short_text( 'Open' ).
* gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'RECIEVE' ).
* gr_column->set_long_text( 'Recieve.' ).
* gr_column->set_medium_text( 'Recieve' ).
* gr_column->set_short_text( 'Recieve' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'ISSUE' ).
* gr_column->set_long_text( 'Issue.' ).
* gr_column->set_medium_text( 'Issue' ).
* gr_column->set_short_text( 'Issue' ).
* gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'RETURN_' ).
* gr_column->set_long_text( 'Return.' ).
* gr_column->set_medium_text( 'Return' ).
* gr_column->set_short_text( 'Return' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'INTERNAL' ).
* gr_column->set_long_text( 'Internal.' ).
* gr_column->set_medium_text( 'Internal' ).
* gr_column->set_short_text( 'Internal' ).
* gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'DOMESTIC' ).
* gr_column->set_long_text( 'Domestic.' ).
* gr_column->set_medium_text( 'Domestic' ).
* gr_column->set_short_text( 'Domestic' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'EXPORTNYA' ).
* gr_column->set_long_text( 'Export.' ).
* gr_column->set_medium_text( 'Export' ).
* gr_column->set_short_text( 'Export' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'CLOSING' ).
* gr_column->set_long_text( 'Closing.' ).
* gr_column->set_medium_text( 'Closing' ).
* gr_column->set_short_text( 'Closing' ).
* gr_column->set_optimized( ).
*
*
** gr_column ?= gr_columns->get_column( 'LGOBE' ).
** gr_column->set_long_text( 'Lokasi Desc' ).
** gr_column->set_medium_text( 'Lokasi' ).
** gr_column->set_short_text( 'Lokasi' ).
** gr_column->set_optimized( ).
*
* gr_column ?= gr_columns->get_column( 'LFGJA' ).
* gr_column->set_long_text( 'Tahun.' ).
* gr_column->set_medium_text( 'Tahun' ).
* gr_column->set_short_text( 'Tahun' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'LFMON' ).
* gr_column->set_long_text( 'Bulan.' ).
* gr_column->set_medium_text( 'Bulan' ).
* gr_column->set_short_text( 'Bulan' ).
* gr_column->set_optimized( ).
*
*
* gr_column ?= gr_columns->get_column( 'MATNR' ).
* warna-col = '6'.
* warna-int = '1'.
* warna-inv = '0'.
* gr_column->set_color( warna ).

lo_alv->get_functions( )->set_all( abap_true ).


lo_alv->get_columns( )->set_optimize( abap_true ).
lo_display = lo_alv->get_display_settings( ).
lo_display->set_striped_pattern( 'X' ).
* lo_display->set_list_header( 'Tanggal:' && s_date ).
lo_alv->get_selections( )->set_selection_mode( if_salv_c_selection
_mode=>row_column ).

lo_alv->display( ).
ENDMETHOD.
ENDCLASS.

AT SELECTION-SCREEN OUTPUT.
* wa_val-key = 'ITY'.
* wa_val-text = 'ITY'.
* APPEND wa_val TO it_val.
* CLEAR wa_val.
*
*
* wa_val-key = 'POY'.
* wa_val-text = 'POY'.
* APPEND wa_val TO it_val.
* CLEAR wa_val.
*
* wa_val-key = 'SDY'.
* wa_val-text = 'SDY'.
* APPEND wa_val TO it_val.
* CLEAR wa_val.
*
* wa_val-key = 'DTY'.
* wa_val-text = 'DTY'.
* APPEND wa_val TO it_val.
* CLEAR wa_val.

* name = 'wedus'.
* value-key = '1'.
*
*
*
* wa_val-key = 'POY'.
* wa_val-text = 'POY'.
* APPEND wa_val TO it_val.
* CLEAR wa_val.
*
*
*
* CALL FUNCTION 'VRM_SET_VALUES'
* EXPORTING
* id = 'wedus'
* values = it_val
* EXCEPTIONS
* OTHERS=1.

wa_val-key = '2022'.
wa_val-text = '2022'.
APPEND wa_val TO it_val.

* wa_val-key = 'SDY'.
* wa_val-text = 'SDY'.
* APPEND wa_val TO it_val.
*
* wa_val-key = 'DTY'.
* wa_val-text = 'DTY'.
* APPEND wa_val TO it_val.
*
* wa_val-key = 'ITY'.
* wa_val-text = 'ITY'.
* APPEND wa_val TO it_val.
*
* wa_val-key = 'ALL'.
* wa_val-text = 'ALL'.
* APPEND wa_val TO it_val.

wa_val2-key =
'DOM'.
wa_val2-text = 'DOM'.
APPEND wa_val2 TO it_val2.

wa_val2-key =
'EXP'.
wa_val2-text = 'EXP'.
APPEND wa_val2 TO it_val2.

CALL FUNCTION 'VRM_SET_VALUES'


EXPORTING
id = 'wedus'
values = it_val.

CALL FUNCTION 'VRM_SET_VALUES'


EXPORTING
id = 'QT'
values = it_val2.

IF sy-subrc <>
0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

* CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'


* EXPORTING
** iv_date = sy-datum
** iv_date = s_date-low
* iv_date = s_date-low
* IMPORTING
* ev_month_begin_date = f_date
* ev_month_end_date = l_date.
*
* IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.
* %_s_date_%_app_%-text = 'As on Date :'.
%_wedus_%_app_%-text = 'Year :'.
* %_QT_%_app_%-text = 'Market :'.

* %_s_LOTNM_%_app_%-text = 'Lotname :'.


* %_s_PRODD_%_app_%-text = 'Product Desc :'.
* %_s_AREA_%_app_%-text = 'Area'.
* %_s_LOTNM_%_app_%-text = 'Lotname'.

INITIALIZATION.
aaa = 'Indicator Sales Year On Year Dom-Exp ! STOP QUITE FIR
ING. '.
* s_date = sy-datum - 1.
* s_date-low = sy-datum - 1.

* s_date-low = sy-datum .
** s_date-high = sy-datum.
*
* s_date-low = sy-datum - 1 .
* s_date-high = sy-datum.

* APPEND s_date.
CREATE OBJECT lo_report.
lo_report->generate_ouptut( ).

*FORM checkDate.
* CLEAR: month_year, prev_year, prev_mth.
** month_year = sy-datum.
** month_year = s_date.
* month_year = s_date-low.
* curr_year = month_year-year.
* prev_year = month_year-year.
* curr_month = month_year-month.
* prev_mth = month_year-month - 1.
* IF prev_mth = '12'.
* prev_year = month_year-year - 1.
* ELSEIF curr_month = '1'.
* prev_mth = '12'.
* curr_year = month_year-year - 1 .
* ENDIF.
*ENDFORM.

START-OF-SELECTION.
* PERFORM checkdate.
lo_report->get_data( ).

You might also like