You are on page 1of 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