CK13N
CK13N
REPORT zcock13n.
INCLUDE <icon>.
*-----------------------------------------------------------------------
DATA:
ld_f_keko TYPE keko ,
ld_f_header_mat TYPE ck_strukturtab_header ,
ld_s_aufl_unvollstaendig TYPE c ,
it_strukturtabelle TYPE ck_strukturtab ,"TABLES PARAM
wa_strukturtabelle LIKE LINE OF it_strukturtabelle ,
it_t_keko_imp TYPE STANDARD TABLE OF keko,"TABLES PARAM
wa_t_keko_imp LIKE LINE OF it_t_keko_imp .
DATA: lv_menge TYPE ckis-menge,
lv_losgr TYPE keko-losgr.
*-----------------------------------------------------------------------
DATA:
ld_e_makt TYPE makt ,
ld_e_mara TYPE mara .
*-----------------------------------------------------------------------*
DATA: lv_lines1 TYPE i,
lv_lines2 TYPE i,
lv_index1 TYPE i,
lv_index2 TYPE i.
DATA: lv_t001w TYPE t001w.
* REPORTE
TYPES: BEGIN OF st_report,
kalnr TYPE keko-kalnr, "
werks TYPE cki64a-werks, "
werksname TYPE cki64a-werksname,
kokrs TYPE keko-kokrs,
kadat TYPE cki64a-kadat,
bwvar TYPE cki64a-bwvar,
tvers TYPE cki64a-tvers,
matnr TYPE cki64a-matnr,
matkx TYPE cki64a-maktx,
val_totmt TYPE cki64a-h_wertv8,
losgr TYPE cki64a-losgr,
meins TYPE t006a-mseh3,
kalst TYPE C LENGTH 4,
stlan TYPE cki64a-stlan,
stnum TYPE cki64a-stnum,
stalt TYPE cki64a-stalt,
component TYPE stpo_api02-component,
item_text1 TYPE stpo_api02-item_text1,
val_tot TYPE cki64a-h_wertv8,
waers TYPE cki64a-waers,
val_calc TYPE cki64a-h_wertv8,
peinh TYPE bapiitemizationlist-quantity,
meins2 TYPE t006a-mseh3,
recurso TYPE stpo_api02-item_text1,
END OF st_report,
DATA:
gt_reporte TYPE gty_t_reporte.
* Definición de variables
TYPES:
t_fieldcat TYPE slis_fieldcat_alv,
t_events TYPE slis_alv_event,
t_layout TYPE slis_layout_alv.
* Workareas
DATA:
w_fieldcat TYPE t_fieldcat,
w_events TYPE t_events,
w_layout TYPE t_layout.
* Internal Tables
DATA:
i_fieldcat TYPE STANDARD TABLE OF t_fieldcat,
i_events TYPE STANDARD TABLE OF t_events.
DATA: g_it_fieldcat TYPE slis_t_fieldcat_alv,
g_st_fieldcat TYPE slis_fieldcat_alv,
user_command TYPE slis_formname VALUE 'ALV_USER_COMMAND'.
START-OF-SELECTION.
**&---------------------------------------------------------------------*
*& end-of-selection.
*&---------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM get_data.
PERFORM build_fieldcatlog.
PERFORM build_events.
PERFORM build_layout.
PERFORM list_display.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_data .
DO ld_anza_keko TIMES.
lv_index1 = lv_index1 + 1.
READ TABLE it_t_keko INTO wa_t_keko INDEX lv_index1.
IF sy-subrc EQ 0.
lwa_reporte-kalnr = wa_t_keko-kalnr.
lwa_reporte-werks = wa_t_keko-werks.
SELECT SINGLE * FROM t001w INTO lv_t001w WHERE werks EQ wa_t_keko-werks.
IF sy-subrc EQ 0.
lwa_reporte-werksname = lv_t001w-name1.
ENDIF.
lwa_reporte-kokrs = wa_t_keko-kokrs.
lwa_reporte-kadat = wa_t_keko-kadky.
lwa_reporte-bwvar = wa_t_keko-bwvar.
lwa_reporte-tvers = wa_t_keko-tvers.
lwa_reporte-matnr = wa_t_keko-matnr.
PERFORM mara_read USING lwa_reporte-matnr CHANGING lwa_reporte-matkx.
lwa_reporte-meins = wa_t_keko-meins.
lwa_reporte-kalst = wa_t_keko-kalst.
lwa_reporte-stalt = wa_t_keko-stalt.
lwa_reporte-stnum = wa_t_keko-stnum.
lwa_reporte-stlan = wa_t_keko-stlan.
lwa_reporte-val_totmt = ld_f_header_mat-wrtfw_kpf.
DO lv_lines2 TIMES.
lv_index2 = lv_index2 + 1.
READ TABLE it_strukturtabelle INTO wa_strukturtabelle INDEX lv_index2.
IF sy-subrc EQ 0.
IF wa_strukturtabelle-baugr EQ 'X'.
lwa_reporte-kalst = 'X'.
lv_menge = wa_strukturtabelle-menge.
lv_losgr = wa_strukturtabelle-losgr.
lwa_reporte-val_tot = wa_strukturtabelle-wrtfw_kpf.
lwa_reporte-peinh = wa_strukturtabelle-menge.
lwa_reporte-val_calc = wa_strukturtabelle-wrtfw_kpf /
wa_strukturtabelle-menge.
ELSE.
lwa_reporte-kalst = wa_strukturtabelle-stufe.
lwa_reporte-peinh = ( lv_menge * wa_strukturtabelle-menge ) /
lv_losgr.
lwa_reporte-val_tot = ( lwa_reporte-peinh * wa_strukturtabelle-
wrtfw_kpf ) / wa_strukturtabelle-menge.
ENDIF.
lwa_reporte-losgr = wa_strukturtabelle-losgr.
lwa_reporte-component = wa_strukturtabelle-matnr.
lwa_reporte-item_text1 = wa_strukturtabelle-ltext.
lwa_reporte-waers = wa_strukturtabelle-fwaer_kpf.
ENDIF.
APPEND lwa_reporte TO gt_reporte.
ENDDO.
CLEAR:lwa_reporte,lv_index2.
ENDIF.
ENDDO.
ENDLOOP.
ENDFORM. "get_data
*&---------------------------------------------------------------------*
*& Form alv_user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->RS_SELFIELD text
*----------------------------------------------------------------------*
FORM alv_user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield.
ENDFORM. "alv_user_command
*&---------------------------------------------------------------------*
*& Form build_fieldcatlog
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_fieldcatlog.
* Datos del fieldcat para el ALV
g_st_fieldcat-fieldname = 'WERKS'.
g_st_fieldcat-seltext_m = 'Centro'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'WERKSNAME'.
g_st_fieldcat-seltext_m = 'Nombre'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'KOKRS'.
g_st_fieldcat-seltext_m = 'Sociedad CO'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'KADAT'.
g_st_fieldcat-seltext_m = 'Fecha CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'BWVAR'.
g_st_fieldcat-seltext_m = 'Variante CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'TVERS'.
g_st_fieldcat-seltext_m = 'Versión CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'MATNR'.
g_st_fieldcat-seltext_m = 'Material Principal'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'MATKX'.
g_st_fieldcat-seltext_m = 'Descripción'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'VAL_TOTMT'.
g_st_fieldcat-seltext_m = 'Valor Total'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'LOSGR'.
g_st_fieldcat-seltext_m = 'Tamaño de lote CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'MEINS'.
g_st_fieldcat-seltext_m = 'UMV'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'KALST'.
g_st_fieldcat-seltext_m = 'Nivel de CC'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'STLAN'.
g_st_fieldcat-seltext_m = 'Utilización LM'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'STNUM'.
g_st_fieldcat-seltext_m = 'Lista Materiales'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'STALT'.
g_st_fieldcat-seltext_m = 'Alternativa'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'COMPONENT'.
g_st_fieldcat-seltext_m = 'Componente'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'ITEM_TEXT1'.
g_st_fieldcat-seltext_m = 'Descripción'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'VAL_TOT'.
g_st_fieldcat-seltext_m = 'Valor Total'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'WAERS'.
g_st_fieldcat-seltext_m = 'Moneda'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'VAL_CALC'.
g_st_fieldcat-seltext_m = 'Valor Calculado'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
g_st_fieldcat-fieldname = 'PEINH'.
g_st_fieldcat-seltext_m = 'Cantidad'.
g_st_fieldcat-just = 'C'.
APPEND g_st_fieldcat TO g_it_fieldcat.
CLEAR g_st_fieldcat.
*&---------------------------------------------------------------------*
*& Form list_display
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM list_display .
DATA:
l_program TYPE sy-repid.
l_program = sy-repid.
*&---------------------------------------------------------------------*
*& Form build_events
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_events.
CLEAR :
w_events, i_events[].
w_events-name = 'TOP_OF_PAGE'."Event Name
w_events-form = 'TOP_OF_PAGE'."Callback event subroutine
APPEND w_events TO i_events.
CLEAR w_events.
ENDFORM. "build_events
*&---------------------------------------------------------------------*
*& Form build_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM build_layout .
w_layout-colwidth_optimize = 'X'.
w_layout-zebra = 'X'.
ENDFORM. "build_layout
*&---------------------------------------------------------------------*
*& Form top_of_page
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM top_of_page.
DATA :
li_header TYPE slis_t_listheader,
w_header LIKE LINE OF li_header.
DATA:
l_date TYPE char10.
WRITE sy-datum TO l_date.
w_header-typ = 'H'.
CONCATENATE ' Reporte CK13N MASIVO' ':' 'From Date' l_date INTO w_header-info
SEPARATED BY space.
APPEND w_header TO li_header.
CLEAR w_header.
w_header-typ = 'S'.
w_header-info = space.
APPEND w_header TO li_header.
CLEAR w_header.
w_header-typ = 'A'.
w_header-info = sy-uname.
APPEND w_header TO li_header.
CLEAR w_header.
ENDFORM. "top_of_page
*----------------------------------------------------------------------------------
----------------------------------------------------------------------------
IF sy-subrc EQ 0.
"All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 2. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 3. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 4. "Exception
"Add code for exception here
ENDIF.
ENDFORM. "keko_tab
IF sy-subrc EQ 0.
"All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 2. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 3. "Exception
"Add code for exception here
ELSEIF sy-subrc EQ 4. "Exception
"Add code for exception here
ENDIF.
ENDFORM. "struc_cost_mat
*&---------------------------------------------------------------------*
*& Form mara_read
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->MATNR text
* <--MAKTX text
*----------------------------------------------------------------------*
FORM mara_read USING matnr TYPE mara-matnr
CHANGING maktx TYPE makt-maktx.
IF sy-subrc EQ 0.
maktx = ld_e_makt-maktx. "All OK
ELSEIF sy-subrc EQ 1. "Exception
"Add code for exception here
ENDIF.
ENDFORM. "mara_read
*&---------------------------------------------------------------------*
*& Form convert_char_num
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LV_CHAR text
* <--LV_NUM text
*----------------------------------------------------------------------*
FORM convert_char_num USING lv_char TYPE clike
CHANGING lv_num TYPE p.
*&---------------------------------------------------------------------*
*& Form convert_unit_output
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->UMB_IN text
* <--UMB_OUT text
*----------------------------------------------------------------------*
FORM convert_unit_output USING umb_in TYPE t006a-msehi
CHANGING umb_out TYPE any.
ENDFORM. "convert_unit_output