Professional Documents
Culture Documents
Zfipep Lib07
Zfipep Lib07
Zfipep Lib07
* Autor
: Crystalis Consulting Peru
*
* Funcional : Jaime Melgar Zuiga
*
* Fecha
: 10.05.2011
*
* Objetivo : Reporte legal de movimientos de materiales en almacn,*
*
en la forma y formato definidos por el organismo
*
*
gubernamental regulador (SUNAT)
*
* Modificacion : 29082014 Modificacion sociedad 4000
*
* Modificado : 11.12.2014 Lizarzaburu Li Harold Vladimir
*
Etiqueta : @11122014ADD
*
Se agreg campo Cl. Mov. y Doc Referencia al archivo Excel
* Modificado : 22.12.2014 - Lizarzaburu Li Harold Vladimir
*
Etiqueta @HVLL22122014LI
*
Se agrego el N de Serie
*--------------------------------------------------------------------*
REPORT ZFIPEP_LIB07 NO STANDARD PAGE HEADING
LINE-SIZE 217
LINE-COUNT 57(3).
SET MARGIN 6 6.
*&--------------------------------------------------------------------&*
*&
I N F O T I P O S
&*
*&--------------------------------------------------------------------&*
* INFOTYPES: .
*&--------------------------------------------------------------------&*
*&
T A B L A S T R A N S P A R E N T E S
&*
*&--------------------------------------------------------------------&*
TABLES: bkpf,
mbew,
mseg,
t001k,
*
sscrfields,
zfipet_lib06,
zfipet_lib09.
*&--------------------------------------------------------------------&*
*&
T Y P E - P O O L S
&*
*&--------------------------------------------------------------------&*
TYPE-POOLS: slis.
*&--------------------------------------------------------------------&*
*&
T I P O S G L O B A L E S
&*
*&--------------------------------------------------------------------&*
TYPES: BEGIN OF gty_mkpf,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
budat TYPE budat.
TYPES: END OF gty_mkpf.
TYPES: BEGIN OF gty_mbew,
matnr TYPE matnr,
bwkey TYPE werks_d,
bklas TYPE bklas.
TYPES: END OF gty_mbew.
TYPES: BEGIN OF gty_mseg,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
zeile TYPE mblpo,
matnr TYPE matnr,
werks
gjahr
bukrs
belnr
shkzg
dmbtr
bwart
menge
umwrk
bustw
sakto
charg
umcha
awkey
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
werks_d,
gjahr,
bukrs,
belnr_d,
shkzg,
dmbtr,
bwart,
menge_d,
umwrk,
bustw,
sakto,
umcha,
umcha,
awkey. " Este campo siempre debe estar al final de la tabla
*
budat type budat.
TYPES: END OF gty_mseg.
"add +@ERQ251013
TYPES: BEGIN OF gty_rkseg,
belnr TYPE rbkp-belnr,
gjahr TYPE rbkp-gjahr,
xblnr TYPE rbkp-xblnr,
lfbnr TYPE rseg-lfbnr,
lfgja TYPE rseg-lfgja,
lfpos TYPE rseg-lfpos,
matbf TYPE rseg-matbf,
END OF gty_rkseg,
BEGIN OF gty_vbfa,
vbelv TYPE vbfa-vbelv,
posnv TYPE vbfa-posnv,
vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn,
matnr TYPE vbfa-matnr,
vbtyp_v TYPE vbfa-vbtyp_v,
mjahr TYPE vbfa-mjahr,
xblnr TYPE vbrk-xblnr,
END OF gty_vbfa,
BEGIN OF gty_mseg_aux,
mblnr TYPE vbfa-vbeln,
mjahr TYPE mjahr,
zeile TYPE vbfa-posnn,
matnr TYPE matnr,
END OF gty_mseg_aux,
BEGIN OF gty_mseg_aux1,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
zeile TYPE mblpo,
matnr TYPE matnr,
werks TYPE werks_d,
gjahr TYPE gjahr,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
bwart TYPE bwart,
menge TYPE menge_d,
umwrk TYPE umwrk,
bustw TYPE bustw,
sakto TYPE sakto,
charg TYPE umcha,
*
*
METHODS:
*
*
PRIVATE SECTION.
*
* ENDCLASS.
"gcl_xxxxx DEFINITION
*&--------------------------------------------------------------------&*
*&
C O N T R O L E S
D Y N P R O
&*
*&--------------------------------------------------------------------&*
*CONTROLS TC_XXXXX TYPE TABLEVIEW USING SCREEN 100.
*CONTROLS SC_XXXXX TYPE TABSTRIP.
*&--------------------------------------------------------------------&*
*&
C O N S T A N T E S
&*
*&--------------------------------------------------------------------&*
* CONSTANTS: gc_xx
TYPE X
VALUE 'XXXX',
*&--------------------------------------------------------------------&*
*&
T A B L A S I N T E R N A S
G L O B A L E S
&*
*&--------------------------------------------------------------------&*
DATA: gtd_mkpf
TYPE STANDARD TABLE OF gty_mkpf,
gtd_mkpf_aux
TYPE STANDARD TABLE OF gty_mkpf,
gtd_mseg
TYPE STANDARD TABLE OF gty_mseg,
gtd_mseg1
TYPE STANDARD TABLE OF gty_mseg,
gtd_mseg1_aux
TYPE SORTED TABLE OF gty_mseg WITH NON-UNIQUE KEY awkey,
gtd_mseg1_aux1 TYPE STANDARD TABLE OF gty_mseg_aux1,
gtd_mseg2
TYPE STANDARD TABLE OF gty_mseg,
gtd_mseg3
TYPE STANDARD TABLE OF gty_mseg,
gtd_msegaux
TYPE STANDARD TABLE OF gty_mseg,
gtd_bsim
TYPE STANDARD TABLE OF gty_bsim,
gtd_bsim_aux
TYPE SORTED TABLE OF gty_bsim WITH NON-UNIQUE KEY bwkey m
atnr,
gtd_karsalaux
TYPE STANDARD TABLE OF gty_karsalaux,
gtd_mbew
TYPE STANDARD TABLE OF gty_mbew,
gtd_mbew_aux
TYPE STANDARD TABLE OF gty_mbew,
gtd_mara
TYPE STANDARD TABLE OF gty_mara,
gtd_bkpf1
TYPE STANDARD TABLE OF gty_bkpf,
gtd_bkpf2
TYPE STANDARD TABLE OF gty_bkpf,
gtd_bkpf2_aux
TYPE SORTED TABLE OF gty_bkpf WITH NON-UNIQUE KEY bukrs b
elnr gjahr,
gtd_makt
TYPE STANDARD TABLE OF gty_makt,
gtd_gest
TYPE STANDARD TABLE OF gty_gest,
gtd_excel
TYPE STANDARD TABLE OF gty_excel,
gtd_t001k
TYPE STANDARD TABLE OF gty_t001k,
gtd_detalle
TYPE STANDARD TABLE OF gty_detaux,
gtd_det_aux
TYPE STANDARD TABLE OF gty_detaux,
gtd_cabec_ssfo TYPE STANDARD TABLE OF gty_cabec_ssfo,
gtd_detalle_ssfo TYPE STANDARD TABLE OF gty_detalle_ssfo.
DATA: gtd_karsal
gtd_tipmat
gtd_um
gtd_tipope
gtd_cabec
gtd_cabaux
gtd_ajuste
gtd_ajustecab
gt_rkseg_mseg
gt_rkseg
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
TYPE
TYPE
DATA: gtd_list_top_of_page
gtd_fieldcat
gtd_events
gtd_layout
gtd_grid_settings
gtd_event_exit
gtd_variante
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
slis_t_listheader,
slis_t_fieldcat_alv,
slis_t_event,
slis_layout_alv,
lvc_s_glay,
slis_t_event_exit,
disvariant.
gs_detaux
TYPE gty_detaux,
gs_gest
TYPE gty_gest,
gs_budat
LIKE LINE OF gr_budat,
gs_excel
LIKE LINE OF gtd_excel,
gs_t001k
TYPE gty_t001k,
gs_ajuste
LIKE LINE OF gtd_ajuste,
gs_ajuste1 LIKE LINE OF gtd_ajuste,
gs_t001k_ssfo TYPE gty_t001k_ssfo,
gs_cabec_ssfo TYPE gty_cabec_ssfo,
gs_detalle_ssfo TYPE gty_detalle_ssfo,
gs_rkseg
TYPE gty_rkseg, "add +@ERQ251013
gs_mseg
TYPE gty_mseg, "add +@ERQ251013
gs_mseg_aux TYPE gty_mseg_aux, "add +@ERQ251013
gs_mseg_aux1 TYPE gty_mseg_aux1, "add +@ERQ251013
gs_facturas TYPE gty_vbfa, "add +@ERQ251013
gs_vbfa
TYPE gty_vbfa, "add +@ERQ251013
gs_vbfa_aux TYPE gty_vbfa, "add +@ERQ251013
gs_flujo
LIKE LINE OF gt_flujo. "add +@ERQ251013
DATA: gv_fi
TYPE budat,
gv_ff
TYPE budat,
gv_bwkey TYPE bwkey,
gv_bukrs TYPE bukrs,
gv_name TYPE name1,
gv_ind
TYPE i,
N_POS
TYPE SY-INDEX,
gv_indaux TYPE i,
gv_cant TYPE i,
gv_matnr TYPE matnr,
gv_pagno(7) TYPE c,
gv_txtun(40) TYPE c,
gv_pagno_ssfo TYPE tdsfjpage,
gv_vbelv TYPE char10.. "add +@ERQ251013
DATA: gv_repid LIKE sy-repid,
gv_ruc
LIKE t001z-paval,
gv_razon TYPE butxt.
*/ ADD SERIE - @HVLL22122014LI
DATA: W_XBLPF LIKE BKPF-XBLNR,
W_REFE LIKE VBRK-XBLNR,
W_VBELN LIKE VBFA-VBELN,
w_pos LIKE sy-tabix,
W_XBLNR LIKE MKPF-XBLNR.
DATA: gv_cantin_mat
TYPE menge_d, "Suma Cantidad Entrada x Material
gv_costin_mat
TYPE dmbtr, "Suma Costo Entrada x Material
gv_cantout_mat
TYPE menge_d, "Suma Cantidad Salida x Material
gv_costout_mat
TYPE dmbtr, "Suma Costo Salida x Material
gv_cantfin_mat
TYPE menge_d, "Suma Cantidad Final x Material
gv_costfin_mat
TYPE dmbtr, "Suma Saldo Final x Material
gv_costsalini_cen TYPE dmbtr, "Suma Saldo Inicial x Centro
gv_costin_cen
TYPE dmbtr, "Suma Costo Entrada x Centro
gv_costout_cen
TYPE dmbtr, "Suma Costo Salida x Centro
gv_costfin_cen
TYPE dmbtr, "Suma Saldo Final x Centro
gv_cantsalini_cen TYPE dmbtr, "Suma Saldo Inicial Cantidad x Centro
gv_cantin_cen
TYPE dmbtr, "Suma Cantidad Entrada x Centro
gv_cantout_cen
TYPE dmbtr, "Suma Cantidad Salida x Centro
gv_cantfin_cen
TYPE dmbtr, "Suma Saldo Final Cantidad x Centro
gv_acum_cantfin_mat TYPE menge_d, "Acumulador Cantidad Final x Material
ado"
gv_acum_costfin_mat TYPE dmbtr, "Acumulador Costo Final x Material
gv_costsalini_soc TYPE dmbtr, "Suma Saldo Inicial x Sociedad
gv_costin_soc
TYPE dmbtr, "Suma Costo Entrada x Sociedad
gv_costout_soc
TYPE dmbtr, "Suma Costo Salida x Sociedad
gv_costfin_soc
TYPE dmbtr, "Suma Saldo Final x Sociedad
gv_cantsalini_soc TYPE dmbtr, "Suma Saldo Inicial Cantidad x Sociedad
gv_cantin_soc
TYPE dmbtr, "Suma Cantidad Entrada x Sociedad
gv_cantout_soc
TYPE dmbtr, "Suma Cantidad Salida x Sociedad
gv_cantfin_soc
TYPE dmbtr, "Suma Saldo Final Cantidad x Sociedad
gv_monto(16)
TYPE c,
gv_umwrk
TYPE MSEG-umwrk,
gv_check.
DATA: gv_formname
gv_fm_name
TYPE tdsfname,
TYPE rs38l_fnam.
*&--------------------------------------------------------------------&*
*&
O B J E T O S G L O B A L E S
&*
*&--------------------------------------------------------------------&*
*DATA: go_XXX TYPE REF TO ....
*&--------------------------------------------------------------------&*
*&
M A C R O S
&*
*&--------------------------------------------------------------------&*
*DEFINE macro1.
*END-OF-DEFINITION.
*--------------------------------------------------------------------* SELECTION-SCREEN
*--------------------------------------------------------------------SELECTION-SCREEN: BEGIN OF BLOCK 1 WITH FRAME TITLE text-000.
PARAMETERS:
p_bukrs LIKE mseg-bukrs OBLIGATORY.
SELECT-OPTIONS: p_werks FOR mseg-werks OBLIGATORY.
PARAMETERS:
p_gjahr LIKE mbew-lfgja OBLIGATORY,
p_monat LIKE mbew-lfmon OBLIGATORY.
SELECT-OPTIONS: p_matnr FOR mbew-matnr,
p_bklas FOR mbew-bklas.
PARAMETERS:
p_fecha LIKE mkpf-bldat DEFAULT sy-datum.
SELECTION-SCREEN: END OF BLOCK 1.
SELECTION-SCREEN: BEGIN OF BLOCK 2 WITH FRAME TITLE text-001.
SELECT-OPTIONS: p_blart FOR bkpf-blart OBLIGATORY DEFAULT 'W1' TO 'WZ'.
SELECTION-SCREEN: END OF BLOCK 2.
SELECTION-SCREEN: BEGIN OF BLOCK 3 WITH FRAME TITLE text-002.
PARAMETERS:
p_salin RADIOBUTTON GROUP 1 USER-COMMAND uc1,
p_karva RADIOBUTTON GROUP 1 DEFAULT 'X', "p_karmo
p_karppp RADIOBUTTON GROUP 1 ,
p_karun RADIOBUTTON GROUP 1. "p_valor as checkbox default 'X' mo
dif id kdx.
SELECTION-SCREEN: END OF BLOCK 3.
SELECTION-SCREEN: BEGIN OF BLOCK 6 WITH FRAME TITLE text-005.
SELECTION-SCREEN: BEGIN OF LINE.
PARAMETERS:
p_bsim RADIOBUTTON GROUP 3 MODIF ID sal DEFAULT 'X'.
SELECTION-SCREEN COMMENT 3(30) text-031 MODIF ID sal.
SELECTION-SCREEN: END OF LINE.
screen-active =
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ELSEIF p_karun = 'X'.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'KDX'.
screen-active =
MODIFY SCREEN.
WHEN 'SAL'.
screen-active =
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ELSEIF p_salin = 'X'.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'KDX'.
screen-active =
MODIFY SCREEN.
WHEN 'SAL'.
screen-active =
MODIFY SCREEN.
ENDCASE.
ENDLOOP.
ENDIF.
'0'.
'1'.
'0'.
'0'.
'1'.
AT SELECTION-SCREEN.
* AUTHORITY-CHECK OBJECT 'S_TCODE'
*
ID 'TCD'
*
FIELD sy-tcode.
IF sy-subrc NE 0.
MESSAGE ID 'ZPEFI' TYPE 'E' NUMBER '001' DISPLAY LIKE 'I'.
ENDIF.
AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
ID 'BUKRS' FIELD p_bukrs
ID 'ACTVT' FIELD '03'.
IF sy-subrc NE 0.
MESSAGE ID 'ZPEFI' TYPE 'E' NUMBER '001' DISPLAY LIKE 'I'.
ENDIF.
CASE sy-ucomm.
WHEN 'UC2'.
CALL TRANSACTION
WHEN 'UC3'.
CALL TRANSACTION
WHEN 'UC4'.
CALL TRANSACTION
WHEN 'UC5'.
CALL TRANSACTION
WHEN OTHERS.
ENDCASE.
'ZFIPE_LIB07A'
*
*
*
START-OF-SELECTION.
DATA: ls_error TYPE c.
PERFORM validar_campos CHANGING ls_error.
CHECK ls_error IS INITIAL.
PERFORM verifica_sociedad_centro.
IF sy-subrc = 0.
MESSAGE ID 'ZPEFI' TYPE 'I' NUMBER '002'.
ELSE.
IF p_bukrs = '3000' OR p_bukrs = '4000'.
"29082014
* IF p_bukrs = '3000'.
gv_check = 'X'.
ELSE.
CLEAR gv_check.
ENDIF.
PERFORM verifica_tipo_operacion.
IF sy-subrc = 0.
MESSAGE ID 'ZPEFI' TYPE 'I' NUMBER '013' .
ELSE.
PERFORM intervalo_fechas.
IF p_salin = 'X'.
PERFORM cargar_saldos.
PERFORM actualizar_tabla.
PERFORM salida_alv.
ELSEIF p_karva = 'X' OR p_karun = 'X' OR p_karppp EQ 'X'.
PERFORM cargar_datos.
IF p_repor EQ 'X'.
PERFORM salida_det.
PERFORM total_paginas.
ELSEIF p_gesti EQ 'X'.
PERFORM preparar_alv.
PERFORM salida_alv.
ELSEIF p_impre EQ 'X'.
PERFORM salida_impresa.
ELSEIF p_excel EQ 'X'.
PERFORM salida_excel.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*&
FORM BUSCAR_ARCHIVO
*&---------------------------------------------------------------------*
FORM buscar_archivo USING val_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
static
= 'X'
CHANGING
file_name
= val_file
EXCEPTIONS
mask_too_long = 1
OTHERS
= 2.
ENDFORM.
" BUSCAR_ARCHIVO
*&---------------------------------------------------------------------*
*&
FORM VERIFICA_SOCIEDAD_CENTRO
*&---------------------------------------------------------------------*
FORM verifica_sociedad_centro .
* Verifica consistencia entre sociedad y centro
SELECT SINGLE *
FROM t001k
WHERE bukrs NE p_bukrs AND bwkey IN p_werks.
ENDFORM.
" VERIFICA_SOCIEDAD_CENTRO
*&---------------------------------------------------------------------*
*&
FORM INTERVALO_FECHAS
*&---------------------------------------------------------------------*
FORM intervalo_fechas.
CLEAR: gv_fi, gv_ff.
CONCATENATE p_gjahr p_monat '01' INTO gv_fi.
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
day_in
= gv_fi
IMPORTING
last_day_of_month = gv_ff.
CLEAR gs_budat.
REFRESH gr_budat.
gs_budat-sign = 'I'.
gs_budat-option = 'BT'.
gs_budat-low = gv_fi.
gs_budat-high = gv_ff.
APPEND gs_budat TO gr_budat.
ENDFORM.
" INTERVALO_FECHAS
*&---------------------------------------------------------------------*
*&
FORM CARGAR_SALDOS
*&---------------------------------------------------------------------*
FORM cargar_saldos .
DATA: lt_detalle TYPE STANDARD TABLE OF gty_detaux,
ls_detalle TYPE gty_detaux.
* Se obtienen los Materiales de acuerdo a la Categoria de valoracion
SELECT matnr bwkey bklas
FROM mbew
INTO TABLE gtd_mbew
WHERE matnr IN p_matnr
AND bklas IN p_bklas
AND bwkey IN p_werks
ORDER BY bwkey matnr ASCENDING.
* Se eliminan los duplicados respecto al Centro y al Material
DELETE ADJACENT DUPLICATES FROM gtd_mbew COMPARING bwkey matnr.
* Se seleccionan los documentos de material para el periodo indicado.
SELECT mblnr mjahr budat
FROM mkpf
INTO TABLE gtd_mkpf
WHERE budat IN gr_budat.
IF NOT gtd_mkpf IS INITIAL.
* Se obtienen los documentos de los movimientos de almacen para el periodo indic
ado
SELECT mblnr mjahr zeile matnr werks gjahr bukrs
belnr shkzg dmbtr bwart menge umwrk bustw sakto charg umcha
FROM mseg
INTO TABLE gtd_mseg1
FOR ALL ENTRIES IN gtd_mkpf
WHERE mblnr = gtd_mkpf-mblnr
AND mjahr = gtd_mkpf-mjahr
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
gv_ind
m_fcat
= gv_ind +
'MONAT'
= gv_ind +
'GJAHR'
= gv_ind +
'MATNR'
= gv_ind +
'DMBTRS'
= gv_ind +
'DMBTRH'
= gv_ind +
'DMBTRD'
= gv_ind +
'MENGES'
= gv_ind +
'MENGEH'
= gv_ind +
'MENGED'
1.
'BKPF'
1.
'BKPF'
1.
'MARA'
1.
' '
1.
' '
1.
' '
1.
' '
1.
' '
1.
' '
gv_ind 'Periodo'.
gv_ind 'Ejercicio'.
gv_ind 'Material'.
gv_ind 'Importe Entrada'.
gv_ind 'Importe Salida'.
gv_ind 'Dif. Importes'.
gv_ind 'Cantidad Entrada'.
gv_ind 'Cantidad Salida'.
gv_ind 'Dif. Cantidades'.
ENDIF.
m_fcat 'CANT_TOT' ' '
gv_ind 'Cant.Final'.
gv_ind = gv_ind + 1.
IF p_karva = 'X' OR p_karppp EQ 'X'.
m_fcat 'COSU_FIN' ' '
gv_ind 'Cost.Unit.Final'.
gv_ind = gv_ind + 1.
m_fcat 'COST_FIN' ' '
gv_ind 'Cost.Tot.Final'.
ENDIF.
ENDIF.
ENDFORM.
" ALV_COLUMNAS
*&---------------------------------------------------------------------*
*&
FORM ZZ_LAYOUT_CB
*&---------------------------------------------------------------------*
FORM zz_layout_cb USING pw_fn TYPE lvc_fname
pw_rt TYPE lvc_rtname
pw_cp TYPE lvc_colpos
pw_ct TYPE lvc_txtcol.
CLEAR gs_fcat.
gs_fcat-fieldname
= pw_fn.
gs_fcat-ref_tabname = pw_rt.
gs_fcat-col_pos
= pw_cp.
IF NOT ( pw_ct IS INITIAL ).
gs_fcat-seltext_m = pw_ct.
ENDIF.
IF p_salin = 'X'.
IF pw_fn = 'DMBTRS' OR pw_fn = 'DMBTRH'.
gs_fcat-currency = 'PEN'.
gs_fcat-datatype = 'CURR'.
ENDIF.
ELSEIF p_karva = 'X' OR p_karppp EQ 'X'.
IF pw_fn = 'CANT_IN' OR pw_fn = 'CANT_OUT' OR pw_fn = 'CANT_TOT'.
gs_fcat-emphasize = 'C100'.
ENDIF.
ENDIF.
APPEND gs_fcat TO gtd_fieldcat.
ENDFORM.
" ZZ_LAYOUT_CB
*&---------------------------------------------------------------------*
*&
FORM ALV_FILL_LAYOUT
*&---------------------------------------------------------------------*
FORM alv_fill_layout .
CLEAR gtd_layout.
gtd_layout-zebra
= 'X'.
gtd_layout-colwidth_optimize = 'X'.
gtd_layout-f2code
= 'VER'.
gtd_grid_settings-edt_cll_cb = 'X'.
ENDFORM.
" ALV_FILL_LAYOUT
*--------------------------------------------------------------------*
* FORM ALV_CARGA_EVENTO
*--------------------------------------------------------------------*
FORM alv_carga_evento USING lt_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
MOVE 'DATA_CHANGE' TO ls_event-name.
MOVE 'DATA_CHANGE' TO ls_event-form.
APPEND ls_event
TO lt_events.
CLEAR ls_event.
MOVE 'REFRESH'
MOVE 'REFRESH'
APPEND ls_event
CLEAR ls_event.
TO ls_event-name.
TO ls_event-form.
TO lt_events.
REFRESH gtd_event_exit.
ENDFORM.
"ALV_CARGA_EVENTO
*---------------------------------------------------------------------*
*
FORM ALV_DESPLEGAR
*---------------------------------------------------------------------*
FORM alv_desplegar.
gtd_variante-report = sy-repid.
gv_repid = sy-repid.
IF p_salin = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*
i_interface_check
= 'X'
i_callback_program
= gv_repid
i_callback_pf_status_set = 'PF_STATUS'
i_save
= 'A'
is_variant
= gtd_variante
is_layout
= gtd_layout
it_fieldcat
= gtd_fieldcat[]
*
i_grid_settings
= gtd_grid_settings
i_callback_user_command = 'USER_COMMAND'
i_default
= 'X'
it_events
= gtd_events[]
it_event_exit
= gtd_event_exit
TABLES
t_outtab
= gtd_karsalaux
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ELSEIF ( p_karva = 'X' AND p_gesti = 'X' )
OR ( p_karun = 'X' AND p_gesti = 'X' )
OR ( p_karppp = 'X' AND p_gesti = 'X' ).
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*
i_interface_check
= 'X'
i_callback_program
= gv_repid
i_callback_pf_status_set = 'PF_STATUS'
i_save
= 'A'
is_variant
= gtd_variante
is_layout
= gtd_layout
it_fieldcat
= gtd_fieldcat[]
*
i_grid_settings
= gtd_grid_settings
i_callback_user_command = 'USER_COMMAND'
i_default
= 'X'
it_events
= gtd_events[]
it_event_exit
= gtd_event_exit
TABLES
t_outtab
= gtd_gest
EXCEPTIONS
program_error
= 1
OTHERS
= 2.
ENDIF.
ENDFORM.
"DESPLEGAR_ALV
*---------------------------------------------------------------------*
*
FORM PF_STATUS
*---------------------------------------------------------------------*
FORM pf_status USING ce_func_exclude TYPE slis_t_extab.
DATA fcode_attrib_tab LIKE smp_dyntxt OCCURS 0 WITH HEADER LINE.
CLEAR: fcode_attrib_tab, fcode_attrib_tab[].
PERFORM dynamic_report_fcodes(rhteiln0) TABLES fcode_attrib_tab
USING ce_func_exclude ' ' ' '.
SET PF-STATUS 'ALVLIST' EXCLUDING ce_func_exclude OF PROGRAM 'RHTEILN0'.
ENDFORM.
"PF_STATUS
*---------------------------------------------------------------------*
*
FORM USER_COMMAND
*---------------------------------------------------------------------*
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE slis_selfield.
CASE selfield-fieldname.
WHEN 'MBLNRORI'.
SET PARAMETER ID 'BUK' FIELD p_bukrs.
SET PARAMETER ID 'BLN' FIELD selfield-value.
SET PARAMETER ID 'GJR' FIELD p_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
WHEN 'MBLNR'.
SET PARAMETER ID 'MBN' FIELD selfield-value.
SET PARAMETER ID 'MJA' FIELD p_gjahr.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM.
"user_command
*&---------------------------------------------------------------------*
*&
FORM CARGAR_DATOS
*&---------------------------------------------------------------------*
FORM cargar_datos .
FIELD-SYMBOLS: <fs_det> LIKE LINE OF gtd_detalle,
<fs_ppp> LIKE LINE OF gtd_kardex_ppp.
DATA: gv_cant_ant TYPE
gv_cost_ant TYPE
lt_facturas TYPE
lt_rkseg
TYPE
REFRESH: gt_rkseg.
ckmlpp-lbkum,
ckmlcr-salkv,
STANDARD TABLE OF gty_vbfa,
STANDARD TABLE OF gty_rkseg.
ENDLOOP.
*{/@MCT110811
** RUC
* select single paval
*
from t001z
*
into gv_ruc
*
where party = 'ZRUC'
*
and bukrs = p_bukrs.
*
** Razon Social
* select single paval
*
from t001z
*
into gv_razon
*
where party = 'ZRSOCI'
*
and bukrs = p_bukrs.
SELECT SINGLE paval
INTO gv_ruc
FROM t001z
WHERE bukrs = p_bukrs
AND party = 'ZRUC'. " @PCL18012012
SELECT SINGLE butxt
INTO gv_razon
FROM t001
WHERE bukrs = p_bukrs.
*}
* Se obtienen los Tipos de material de acuerdo a la Categoria de valoracion de M
BEW
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gtd_tipmat
FROM zfipet_lib08.
* Se obtiene la Unidad de Medida SUNAT a partir de la Unidad de Medida SAP
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gtd_um
FROM zfipet_lib07.
* Se obtienen las Clases de movimiento
SELECT *
INTO CORRESPONDING FIELDS OF TABLE gtd_tipope
FROM zfipet_lib09.
* Se obtienen los documentos de material (movimientos) en el periodo indicado
SELECT mblnr mjahr budat
FROM mkpf
INTO TABLE gtd_mkpf
WHERE budat IN gr_budat
ORDER BY mblnr mjahr.
* Se obtienen los Materiales de acuerdo a la Categoria de valoracion
SELECT matnr bwkey bklas
FROM mbew
INTO TABLE gtd_mbew
WHERE matnr IN p_matnr
AND bklas IN p_bklas
AND bwkey IN p_werks
ORDER BY bwkey matnr ASCENDING.
ntabilizan
IF ( <fs_mseg>-charg NE '' ) OR ( <fs_mseg>-umcha NE '' ).
IF ( <fs_mseg>-bustw = '' ).
DELETE gtd_mseg1 INDEX gv_ind.
ENDIF.
ELSE.
DELETE gtd_mseg1 INDEX gv_ind.
ENDIF.
" Se eliminan los documentos cuyo centro receptor sea vacio y no tenga
string de contabilizacin.
ELSEIF <fs_mseg>-umwrk = '' AND <fs_mseg>-bustw = ''.
DELETE gtd_mseg1 INDEX gv_ind.
ENDIF.
*
<fs_mseg>-umwrk = gv_umwrk.
*
MODIFY gtd_mseg1 INDEX gv_ind FROM <fs_mseg>.
ENDLOOP.
* Se eliminan los documentos que no pertenecen a los materiales ingresados por l
a pantalla de seleccion
CLEAR gv_ind.
LOOP AT gtd_mseg1 ASSIGNING <fs_mseg>.
gv_ind = sy-tabix.
READ TABLE gtd_mbew ASSIGNING <fs_mbew> WITH KEY bwkey = <fs_mseg>-werks
matnr = <fs_mseg>-matnr
.
IF sy-subrc NE 0.
DELETE gtd_mseg1 INDEX gv_ind.
ENDIF.
ENDLOOP.
* Se obtienen los documentos con indicador de stock especial para el periodo ind
icado
REFRESH:gtd_mkpf_aux.
gtd_mkpf_aux[] = gtd_mkpf[].
SORT gtd_mkpf_aux BY mblnr mjahr.
DELETE ADJACENT DUPLICATES FROM gtd_mkpf_aux COMPARING mblnr mjahr.
SELECT mblnr mjahr zeile matnr werks gjahr bukrs
belnr shkzg dmbtr bwart menge umwrk bustw
INTO TABLE gtd_mseg2
FROM mseg
FOR ALL ENTRIES IN gtd_mkpf_aux
WHERE mblnr = gtd_mkpf_aux-mblnr
AND mjahr = gtd_mkpf_aux-mjahr
AND werks IN p_werks
AND matnr IN p_matnr
*
and umwrk = werks
AND bukrs = p_bukrs
*
and umwrk ne ''
AND sobkz <> space
AND bustw <> 'WE06'. " Excluye las imputaciones a CO con referencia a
Material umwrk ne 'WE06'
SORT gtd_mseg2 BY werks matnr ASCENDING.
CLEAR gv_ind.
LOOP AT gtd_mseg2 ASSIGNING <fs_mseg>.
gv_ind = sy-tabix.
IF <fs_mseg>-werks NE <fs_mseg>-umwrk.
DELETE gtd_mseg2 INDEX gv_ind.
" Se eliminan los documentos cuyo sting de contabilizacin sea vacio.
ENDLOOP.
ENDIF.
***
REFRESH: gt_facturas, gt_vbfa,gt_mseg_aux.
LOOP AT gtd_mseg1 INTO gs_mseg WHERE belnr = space.
READ TABLE gt_rkseg_aux1 WITH KEY lfbnr = gs_mseg-mblnr
lfgja = gs_mseg-mjahr
lfpos = gs_mseg-zeile
matbf = gs_mseg-matnr
BINARY SEARCH TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
MOVE-CORRESPONDING gs_mseg TO gs_mseg_aux.
APPEND gs_mseg_aux TO gt_mseg_aux.
ENDIF.
CLEAR: gs_mseg, gs_mseg_aux.
ENDLOOP.
SORT gt_mseg_aux BY mblnr zeile matnr mjahr.
DELETE ADJACENT DUPLICATES FROM gt_mseg_aux COMPARING mblnr zeile matnr
mjahr.
IF gt_mseg_aux[] IS NOT INITIAL.
SORT gt_mseg_aux BY mblnr zeile matnr mjahr.
SELECT vbelv
posnv
vbeln
posnn
matnr
vbtyp_v
mjahr
INTO CORRESPONDING FIELDS OF TABLE gt_vbfa
FROM vbfa
FOR ALL ENTRIES IN gt_mseg_aux
WHERE vbeln = gt_mseg_aux-mblnr
AND posnn = gt_mseg_aux-zeile
AND vbtyp_n = 'R'
AND matnr = gt_mseg_aux-matnr
AND vbtyp_v IN ('C', 'J', 'T')
AND mjahr = gt_mseg_aux-mjahr.
REFRESH: gt_vbfa_aux.
gt_vbfa_aux[] = gt_vbfa[].
DELETE gt_vbfa WHERE vbtyp_v <> 'C'.
DELETE gt_vbfa_aux WHERE vbtyp_v = 'C'.
IF gt_vbfa[] IS NOT INITIAL.
SORT gt_vbfa BY vbelv posnv.
SELECT vbelv
posnv
vbeln
posnn
INTO CORRESPONDING FIELDS OF TABLE gt_facturas
FROM vbfa
FOR ALL ENTRIES IN gt_vbfa
WHERE vbelv = gt_vbfa-vbelv
AND posnv = gt_vbfa-posnv
AND vbtyp_n = 'M'
AND vbtyp_v = 'C'.
IF gt_facturas[] IS NOT INITIAL.
REFRESH: lt_facturas.
lt_facturas[] = gt_facturas[].
SORT lt_facturas BY vbeln.
<fs_facturas>-xblnr = gs_facturas-xblnr.
ENDLOOP.
ENDLOOP.
REFRESH: gt_facturas.
gt_facturas[] = gt_facturas1[].
DELETE gt_facturas WHERE xblnr = space.
SORT gt_vbfa BY vbelv posnv.
SORT gt_facturas BY vbelv posnv.
LOOP AT gt_vbfa INTO gs_vbfa.
gs_rkseg-lfbnr = gs_vbfa-vbeln.
gs_rkseg-lfpos = gs_vbfa-posnn.
gs_rkseg-lfgja = gs_vbfa-mjahr.
gs_rkseg-gjahr = gs_vbfa-mjahr.
gs_rkseg-matbf = gs_vbfa-matnr.
READ TABLE gt_facturas INTO gs_facturas WITH TABLE KEY vbelv = g
s_vbfa-vbelv
posnv = g
s_vbfa-posnv.
IF sy-subrc = 0.
gs_rkseg-belnr = gs_facturas-vbeln.
gs_rkseg-xblnr = gs_facturas-xblnr.
APPEND gs_rkseg TO gt_rkseg_aux1.
ENDIF.
CLEAR: gs_facturas, gs_rkseg, gs_vbfa.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
SORT gt_rkseg_aux1.
DELETE ADJACENT DUPLICATES FROM gt_rkseg_aux1 COMPARING ALL FIELDS.
gt_rkseg[] = gt_rkseg_aux1[].
ENDIF.
"add +@ERQ251013
SORT gtd_mseg1 BY werks matnr ASCENDING.
REFRESH: gtd_mseg1_aux.
gtd_mseg1_aux[] = gtd_mseg1[].
SORT gtd_bkpf1 BY awkey.
* Se eliminan los documentos que no tengan la misma Clave de referencia de acuer
do a la MSEG
CLEAR gv_ind.
LOOP AT gtd_bkpf1 ASSIGNING <fs_bkpf>.
CLEAR: gv_ind.
gv_ind = sy-tabix.
READ TABLE gtd_mseg1_aux WITH TABLE KEY awkey = <fs_bkpf>-awkey
TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
*
DELETE gtd_bkpf1 INDEX gv_ind.
*
.
*
*
*
=
=
=
=
gs_mseg_aux1-mblnr
gs_mseg_aux1-mjahr
gs_mseg_aux1-zeile
gs_mseg_aux1-matnr.
= Serie
ENDIF.
READ TABLE gtd_makt INTO gs_makt WITH KEY matnr = <fs_mbew>-matnr.
IF sy-subrc = 0.
gs_cabec-maktx = gs_makt-maktx. "Descripcion Mat.
ENDIF.
READ TABLE gtd_mara INTO gs_mara WITH KEY matnr = <fs_mbew>-matnr.
IF sy-subrc = 0.
gs_cabec-meins = gs_mara-meins. "Unidad de Medida SAP
READ TABLE gtd_um INTO gs_um WITH KEY meins = gs_mara-meins.
IF sy-subrc = 0.
gs_cabec-zundmed = gs_um-um. "Unidad de Medida SUNAT
gs_cabec-textum = gs_um-textum. "Texto Und. de Medida
ENDIF.
ENDIF.
IF p_karppp EQ 'X'.
gs_cabec-met_val = 'PRECIO PROMEDIO PONDERADO'. "Metodo de Valuacion
ELSE.
gs_cabec-met_val = 'PRECIO ESTANDAR'. "Metodo de Valuacion
gs_cabec-met_val = 'PRECIO PROMEDIO PONDERADO'. "Metodo de Valuacion
ENDIF.
APPEND gs_cabec TO gtd_cabec.
gs_detalle-ztipo_ope = '05'.
READ TABLE gt_vbfa_aux INTO gs_vbfa WITH KEY vbeln = gs_mseg_aux1-mblnr
posnn = gs_mseg_aux1-zeile
matnr = gs_mseg_aux1-matnr
mjahr = gs_mseg_aux1-mjahr
vbtyp_v = 'T'.
IF sy-subrc = 0.
CLEAR gs_vbfa_aux.
SELECT SINGLE vbeln
INTO gs_vbfa_aux-vbeln
FROM vbfa
WHERE vbelv = gs_vbfa-vbelv
AND posnv = gs_vbfa-posnv
AND vbtyp_n = 'O'
AND vbtyp_v = 'T'.
IF sy-subrc = 0.
CLEAR: gs_facturas.
SELECT SINGLE xblnr
INTO gs_facturas-xblnr
FROM vbrk
WHERE vbeln = gs_vbfa_aux-vbeln.
IF sy-subrc = 0.
gs_detalle-serie = gs_facturas-xblnr.
ELSE.
CLEAR gs_detalle-serie.
ENDIF.
ELSE.
CLEAR gs_detalle-serie.
ENDIF.
ELSE.
CLEAR gs_detalle-serie.
ENDIF.
ENDIF.
"add +@ERQ251013
"Entradas y Salidas
IF gs_mseg_aux1-shkzg = 'S'.
gs_detalle-cant_in = gs_mseg_aux1-menge.
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
gs_detalle-cosu_in = gs_mseg_aux1-dmbtr / gs_mseg_aux1-menge .
ENDCATCH.
IF sy-subrc = 5.
gs_detalle-cosu_in = '0.00'.
ENDIF.
gs_detalle-cost_in = gs_mseg_aux1-dmbtr.
ELSEIF gs_mseg_aux1-shkzg = 'H'.
gs_detalle-cant_out = gs_mseg_aux1-menge.
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
gs_detalle-cosu_out = gs_mseg_aux1-dmbtr / gs_mseg_aux1-menge.
ENDCATCH.
IF sy-subrc = 5.
gs_detalle-cosu_out = '0.00'.
ENDIF.
gs_detalle-cost_out = gs_mseg_aux1-dmbtr.
ENDIF.
"Saldo Final
gs_detalle-cant_tot = gs_detalle-cant_tot + gs_detalle-cant_in - gs_detall
e-cant_out.
gs_detalle-cost_fin = gs_detalle-cost_fin + gs_detalle-cost_in - gs_detall
e-cost_out.
ENDLOOP.
REFRESH: gtd_cabaux.
* Kardex Precio del promedio ponderado
IF p_karppp EQ 'X'.
AT NEW matnr.
<fs_det>-cant_tot = <fs_det>-cant_in - <fs_det>-cant_out.
<fs_det>-cost_fin = <fs_det>-cost_in - <fs_det>-cost_out.
IF <fs_det>-cant_tot NE 0.
<fs_det>-cosu_fin = <fs_det>-cost_fin / <fs_det>-cant_tot.
ELSE.
<fs_det>-cosu_fin = 0.
ENDIF.
gv_cant_ant = <fs_det>-cant_tot.
gv_cost_ant = <fs_det>-cost_fin.
CONTINUE.
ENDAT.
<fs_det>-cant_tot = gv_cant_ant + <fs_det>-cant_in - <fs_det>-cant_out.
<fs_det>-cost_fin = gv_cost_ant + <fs_det>-cost_in - <fs_det>-cost_out.
IF <fs_det>-cant_tot NE 0.
<fs_det>-cosu_fin = <fs_det>-cost_fin / <fs_det>-cant_tot.
ELSE.
<fs_det>-cosu_fin = 0.
ENDIF.
gv_cant_ant = <fs_det>-cant_tot.
gv_cost_ant = <fs_det>-cost_fin.
*
AT END OF matnr.
CLEAR: gv_cant_ant, gv_cost_ant.
ENDAT.
ENDLOOP.
ENDIF.
*/..
* LOOP AT gtd_detalle ASSIGNING <fs_det>.
*
N_POS = SY-TABIX.
**/.. ADD SERIE - @HVLL22122014KARDEX
*
IF <fs_det>-serie = '' OR <fs_det>-serie IS INITIAL.
*
IF NOT <fs_det>-mblnr IS INITIAL.
*
CLEAR W_XBLNR.
*
SELECT SINGLE XBLNR INTO W_XBLNR
*
FROM MKPF
*
WHERE MBLNR = <fs_det>-mblnr
*
AND MJAHR = <fs_det>-FECHA(4).
*
IF SY-SUBRC = 0.
*
CLEAR W_VBELN.
*
SELECT SINGLE VBELN INTO W_VBELN
*
FROM VBFA
*
WHERE VBELV = W_XBLNR
*
AND VBTYP_N = 'M'.
*
IF SY-SUBRC = 0.
*
CLEAR W_REFE.
*
SELECT SINGLE XBLNR INTO W_REFE
*
FROM VBRK
*
WHERE VBELN = W_VBELN.
*
IF SY-SUBRC = 0.
*
<fs_det>-serie = W_REFE.
*
ELSE.
*
ENDIF.
*
ELSE.
*
<fs_det>-serie = W_XBLNR.
*
ENDIF.
*
ELSE.
*
ENDIF.
*
ELSEIF NOT <fs_det>-mblnrori IS INITIAL AND <fs_det>-mblnr IS INITIAL.
*
CLEAR W_XBLPF.
*
SELECT SINGLE XBLNR INTO W_XBLPF
*
FROM BKPF
*
WHERE BUKRS = P_BUKRS
*
AND BELNR = <fs_det>-mblnrori
*
AND GJAHR = <fs_det>-FECHA(4).
*
IF SY-SUBRC = 0.
*
<fs_det>-serie = W_XBLPF.
*
ELSE.
*
ENDIF.
*
ENDIF.
*
ELSE.
*
ENDIF.
*
MODIFY gtd_detalle INDEX N_POS FROM <fs_det>.
* ENDLOOP.
ENDFORM.
" CARGAR_DATOS
*&---------------------------------------------------------------------*
*&
FORM SALIDA_DET
*&---------------------------------------------------------------------*
FORM salida_det .
CLEAR: gv_matnr, gs_t001k, gs_cabec, gs_detalle.
CLEAR: gv_costsalini_soc, "Suma Saldo Inicial x Sociedad
gv_costin_soc, "Suma Costo Entrada x Sociedad
gv_costout_soc, "Suma Costo Salida x Sociedad
gv_costfin_soc. "Suma Saldo Final x Sociedad
CLEAR: gv_cantsalini_soc, "Suma Saldo Inicial Cantidad x Sociedad
gv_cantin_soc, "Suma Cantidad Entrada x Sociedad
gv_cantout_soc, "Suma Cantidad Salida x Sociedad
gv_cantfin_soc. "Suma Saldo Final Cantidad x Sociedad
LOOP AT gtd_t001k INTO gs_t001k.
CLEAR: gv_costsalini_cen, "Suma Saldo Inicial x Centro
gv_costin_cen, "Suma Costo Entrada x Centro
gv_costout_cen, "Suma Costo Salida x Centro
gv_costfin_cen. "Suma Saldo Final x Centro
CLEAR: gv_cantsalini_cen, "Suma Saldo Inicial Cantidad x Centro
gv_cantin_cen, "Suma Cantidad Entrada x Centro
gv_cantout_cen, "Suma Cantidad Salida x Centro
gv_cantfin_cen. "Suma Saldo Final Cantidad x Centro
LOOP AT gtd_cabec INTO gs_cabec WHERE werks = gs_t001k-bwkey.
CLEAR: gv_cantin_mat, "Suma Cantidad Entrada x Material
gv_costin_mat, "Suma Costo Entrada x Material
gv_cantout_mat, "Suma Cantidad Salida x Material
gv_costout_mat, "Suma Costo Salida x Material
gv_cantfin_mat, "Suma Cantidad Final x Material
gv_costfin_mat, "Suma Saldo Final x Material
gv_acum_cantfin_mat, "Acumulador Cantidad Final x Material
gv_acum_cosufin_mat, "Costo Unitario Final x Material "Acumulado"
gv_acum_costfin_mat. "Acumulador Costo Final x Material
PERFORM cabecera_material.
IF p_karva = 'X' OR p_karppp EQ 'X'.
LOOP AT gtd_detalle INTO gs_detalle WHERE werks = gs_cabec-werks
AND matnr = gs_cabec-matnr.
WRITE : /1 sy-vline.
*
*
*
IF gs_detalle-fecha NE '00000000'.
WRITE : 2 gs_detalle-fecha.
ENDIF.
IF p_karppp EQ 'X'.
gv_acum_cantfin_mat = gv_acum_cantfin_mat + gs_detalle-cant_tot.
gv_acum_costfin_mat = gs_detalle-cost_fin.
ELSE.
gv_acum_cantfin_mat = gv_acum_cantfin_mat + gs_detalle-cant_tot.
gv_acum_costfin_mat = gv_acum_costfin_mat + gs_detalle-cost_fin.
ENDIF.
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5.
gv_acum_cosufin_mat = gv_acum_costfin_mat / gv_acum_cantfin_mat.
ENDCATCH.
IF sy-subrc = 5.
gv_acum_cosufin_mat = '0.00'.
ENDIF.
WRITE : 12 sy-vline,
13 gs_detalle-serie, 29 sy-vline,
30 gs_detalle-mblnr, 41 sy-vline,
42 gs_detalle-mblnrori, 53 sy-vline,
13 gs_detalle-ztipo_comp, 25 sy-vline,
26 gs_detalle-serie, 42 sy-vline,
43 gs_detalle-mblnr, 53 sy-vline,
54 gs_detalle-ztipo_ope, 64 sy-vline,
65 gs_detalle-cant_in, 81 sy-vline,
82 gs_detalle-cosu_in, 98 sy-vline,
99 gs_detalle-cost_in, 115 sy-vline,
116 gs_detalle-cant_out, 132 sy-vline,
133 gs_detalle-cosu_out, 149 sy-vline,
150 gs_detalle-cost_out, 166 sy-vline,
167 gv_acum_cantfin_mat, 183 sy-vline,
184 gv_acum_cosufin_mat, 200 sy-vline,
201 gv_acum_costfin_mat, 217 sy-vline.
gv_cantin_mat = gv_cantin_mat +
rada x Material
gv_costin_mat = gv_costin_mat +
a x Material
gv_cantout_mat = gv_cantout_mat
Salida x Material
gv_costout_mat = gv_costout_mat
ida x Material
gv_cantfin_mat = gv_cantfin_mat
Final x Material
gv_costfin_mat = gv_costfin_mat
al x Material
IF gs_detalle-ztipo_ope = '16'.
gv_costsalini_cen = gv_costsalini_cen + gs_detalle-cost_in. "Suma S
aldo Inicial x Centro
ELSE.
gv_costin_cen = gv_costin_cen + gs_detalle-cost_in. "Suma Costo Ent
rada x Centro
ENDIF.
ENDLOOP.
ELSEIF p_karun = 'X'.
LOOP AT gtd_detalle INTO gs_detalle WHERE werks = gs_cabec-werks
AND matnr = gs_cabec-matnr.
gv_acum_cantfin_mat = gv_acum_cantfin_mat + gs_detalle-cant_tot.
*
*
*
WRITE : /1 sy-vline,
2 gs_detalle-fecha, 12 sy-vline,
13 gs_detalle-serie, 29 sy-vline,
30 gs_detalle-mblnr, 41 sy-vline,
42 gs_detalle-mblnrori, 53 sy-vline,
13 gs_detalle-ztipo_comp, 25 sy-vline,
26 gs_detalle-serie, 42 sy-vline,
43 gs_detalle-mblnr, 53 sy-vline,
54 gs_detalle-ztipo_ope, 64 sy-vline,
65 gs_detalle-cant_in, 81 sy-vline,
82 gs_detalle-cant_out, 98 sy-vline,
99 gv_acum_cantfin_mat, 115 sy-vline.
entro
gv_costfin_cen = gv_costfin_cen + gv_costfin_mat. "Suma Saldo Final x Ma
terial
ELSEIF p_karun EQ 'X'.
WRITE: /64 sy-vline, 115 sy-vline.
ULINE AT 64(51).
WRITE: /49 'TOTAL MATERIAL', 64 sy-vline,
65 gv_cantin_mat, 81 sy-vline,
82 gv_cantout_mat, 98 sy-vline,
99 gv_cantfin_mat, 115 sy-vline.
WRITE: /64 sy-vline, 115 sy-vline.
ULINE AT 64(51).
gv_cantout_cen = gv_cantout_cen + gv_cantout_mat. "Suma Cantidad Salida
x Centro
gv_cantfin_cen = gv_cantfin_cen + gv_cantfin_mat. "Suma Saldo Final Cant
idad x Material
ENDIF.
IF sy-linno > 43.
NEW-PAGE.
ELSE.
SKIP 1.
ENDIF.
ENDLOOP.
IF p_karva = 'X' OR p_karppp EQ 'X'.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /49 'TOTAL CENTRO', 64 sy-vline,
65 'SALDO INICIAL', 81 sy-vline,
82 'ENTRADAS', 98 sy-vline,
99 'SALIDAS' , 115 sy-vline,
116 'SALDO FINAL', 132 sy-vline.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /64 sy-vline,
65 gv_costsalini_cen, 81 sy-vline,
82 gv_costin_cen, 98 sy-vline,
99 gv_costout_cen, 115 sy-vline,
116 gv_costfin_cen, 132 sy-vline.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
gv_costsalini_soc = gv_costsalini_soc + gv_costsalini_cen. "Suma Saldo Ini
cial x Sociedad
gv_costin_soc = gv_costin_soc + gv_costin_cen. "Suma Costo Entrada x So
ciedad
gv_costout_soc = gv_costout_soc + gv_costout_cen. "Suma Costo Salida x Soc
iedad
gv_costfin_soc = gv_costfin_soc + gv_costfin_cen. "Suma Saldo Final x Soci
edad
ELSE.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /49 'TOTAL CENTRO', 64 sy-vline,
65 'SALDO INICIAL', 81 sy-vline,
82 'ENTRADAS', 98 sy-vline,
99 'SALIDAS' , 115 sy-vline,
116 'SALDO FINAL', 132 sy-vline.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /64 sy-vline,
65 gv_cantsalini_cen, 81 sy-vline,
82 gv_cantin_cen, 98 sy-vline,
99 gv_cantout_cen, 115 sy-vline,
116 gv_cantfin_cen, 132 sy-vline.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
gv_cantsalini_soc = gv_cantsalini_soc + gv_cantsalini_cen. "Suma Saldo Ini
cial Cantidad x Sociedad
gv_cantin_soc = gv_cantin_soc + gv_cantin_cen. "Suma Cantidad Entrada x
Sociedad
gv_cantout_soc = gv_cantout_soc + gv_cantout_cen. "Suma Cantidad Salida x
Sociedad
gv_cantfin_soc = gv_cantfin_soc + gv_cantfin_cen. "Suma Saldo Final Cantid
ad x Sociedad
ENDIF.
NEW-PAGE.
ENDLOOP.
IF p_karva = 'X' OR p_karppp EQ 'X'.
CLEAR: gs_cabec-estab.
NEW-PAGE.
SKIP 2.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /49 'TOTAL FINAL', 64 sy-vline,
65 'SALDO INICIAL', 81 sy-vline,
82 'ENTRADAS', 98 sy-vline,
99 'SALIDAS' , 115 sy-vline,
116 'SALDO FINAL', 132 sy-vline.
WRITE: /64 sy-vline, 132 sy-vline.
ULINE AT 65(68).
WRITE: /64 sy-vline,
65 gv_costsalini_soc, 81 sy-vline,
82 gv_costin_soc, 98 sy-vline,
99 gv_costout_soc, 115 sy-vline,
116 gv_costfin_soc, 132 sy-vline.
DOCUMENTO INTERNO
,
54 ' TIPO DE ', 64 sy-vline,
65 '
ENTRADAS', 115 sy-vline,
', 53 sy-vline
116 '
167 '
N SUNAT', 29 s
*
*
*
WRITE : /1 sy-vline,
2 ' FECHA', 12 sy-vline,
13 '
N SUNAT', 29 sy-vline,
30 'N LOGIST.', 41 sy-vline,
42 'N CONTAB.', 53 sy-vline,
13 ' TIPO', 25 sy-vline,
26 '
SERIE', 42 sy-vline,
43 ' NUMERO', 53 sy-vline,
54 'OPERACION', 64 sy-vline,
81 sy-vline,
98 sy-vline,
115 sy-vline.
WRITE : /1 sy-vline, 115 sy-vline.
ULINE AT 2(113).
ENDIF.
ENDFORM.
" CABECERA_MATERIAL
*---------------------------------------------------------------------*
* TOP-OF-PAGE
*---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE sy-pagno TO gv_pagno LEFT-JUSTIFIED.
IF p_karva = 'X' OR p_karppp EQ 'X'.
WRITE: 'FORMATO 13.1: REGISTRO DEL INVENTARIO PERMANENTE VALORIZADO, DETALLE
DEL INVENTARIO VALORIZADO'.
ELSEIF p_karun = 'X'.
WRITE: 'FORMATO 12.1: REGISTRO DEL INVENTARIO PERMANENTE EN UNIDADES FISICAS
, DETALLE DEL INVENTARIO PERMANENTE EN UNID. FISICAS'.
ENDIF.
WRITE: /,
/1 'PERIODO
:', AT 18 p_gjahr, AT 23 '-', AT 25 p_monat, AT 160
'Fecha: ', AT 167 p_fecha,
/1 'RUC
:', AT 18 gv_ruc, AT 160 'Pag. : ', AT 167 gv_pagno,
AT 175 'de', AT 179 '**',
/1 'RAZON SOCIAL :', AT 18 gv_razon.
IF NOT gs_cabec-estab IS INITIAL.
WRITE: /1 'ESTABLECIMIENTO:', AT 18 gs_cabec-estab.
ENDIF.
WRITE: /.
IF gs_cabec-matnr EQ gv_matnr.
PERFORM cabecera_material.
ENDIF.
CLEAR gv_matnr.
*---------------------------------------------------------------------*
* END-OF-PAGE
*---------------------------------------------------------------------*
END-OF-PAGE.
gv_matnr = gs_cabec-matnr.
IF p_karva EQ 'X' OR p_karppp EQ 'X'.
ULINE AT 1(217).
SKIP.
ELSEIF p_karun EQ 'X'.
ULINE AT 1(115).
SKIP.
ENDIF.
*--------------------------------------------------------------------* AT LINE SELECTION
*--------------------------------------------------------------------AT LINE-SELECTION.
DATA: lv_num(10) TYPE c.
IF sy-cucol GE 41 AND sy-cucol LE 51.
SET PARAMETER ID 'BUK' FIELD p_bukrs.
SET PARAMETER ID 'BLN' FIELD sy-lisel+41(10).
SET PARAMETER ID 'GJR' FIELD p_gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ELSEIF sy-cucol GE 29 AND sy-cucol LE 39.
SET PARAMETER ID 'MBN' FIELD sy-lisel+29(10).
SET PARAMETER ID 'MJA' FIELD p_gjahr.
CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.
ENDIF.
*&---------------------------------------------------------------------*
*&
FORM TOTAL_PAGINAS
*&---------------------------------------------------------------------*
FORM total_paginas .
DO sy-pagno TIMES.
READ LINE 4 OF PAGE sy-index.
REPLACE '**' WITH gv_pagno INTO sy-lisel.
MODIFY LINE 4 OF PAGE sy-index.
ENDDO.
ENDFORM.
" TOTAL_PAGINAS
*&---------------------------------------------------------------------*
*&
FORM PREPARAR_ALV
*&---------------------------------------------------------------------*
FORM preparar_alv .
CLEAR: gs_cabec, gs_detalle.
REFRESH: gtd_gest.
LOOP AT gtd_cabec INTO gs_cabec.
LOOP AT gtd_detalle INTO gs_detalle WHERE werks = gs_cabec-werks
AND matnr = gs_cabec-matnr.
CLEAR: gs_gest.
MOVE-CORRESPONDING gs_cabec TO gs_gest.
MOVE-CORRESPONDING gs_detalle TO gs_gest.
APPEND gs_gest TO gtd_gest.
ENDLOOP.
ENDLOOP.
ENDFORM.
" PREPARAR_ALV
*&---------------------------------------------------------------------*
*&
FORM SALIDA_IMPRESA
*&---------------------------------------------------------------------*
FORM salida_impresa .
DATA: ls_output TYPE ssfcompop,
ls_contrl TYPE ssfctrlop,
lv_per(10) TYPE c,
lv_titulo TYPE char200.
ls_contrl-no_dialog
ls_contrl-device
ls_contrl-preview
ls_contrl-langu
ls_output-bcs_langu
ls_output-tddest
ls_output-tdnewid
ls_output-tdimmed
ls_output-tdcopies
=
=
=
=
=
=
=
=
=
' '.
'PRINTER'.
'X'.
sy-langu.
sy-langu.
p_print.
'X'.
'X'.
1.
OTHERS
= 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR: gv_costsalini_soc, "Suma Saldo Inicial x Sociedad
gv_costin_soc, "Suma Costo Entrada x Sociedad
gv_costout_soc, "Suma Costo Salida x Sociedad
gv_costfin_soc. "Suma Saldo Final x Sociedad
CLEAR: gv_cantsalini_soc, "Suma Saldo Inicial Cantidad x Sociedad
gv_cantin_soc, "Suma Cantidad Entrada x Sociedad
gv_cantout_soc, "Suma Cantidad Salida x Sociedad
gv_cantfin_soc. "Suma Saldo Final Cantidad x Sociedad
LOOP AT gtd_t001k INTO gs_t001k.
CLEAR: gv_costsalini_cen, "Suma Saldo Inicial x Centro
gv_costin_cen, "Suma Costo Entrada x Centro
gv_costout_cen, "Suma Costo Salida x Centro
gv_costfin_cen. "Suma Saldo Final x Centro
CLEAR: gv_cantsalini_cen, "Suma Saldo Inicial Cantidad x Centro
gv_cantin_cen, "Suma Cantidad Entrada x Centro
gv_cantout_cen, "Suma Cantidad Salida x Centro
gv_cantfin_cen. "Suma Saldo Final Cantidad x Centro
CONCATENATE p_gjahr '-' p_monat INTO gs_t001k_ssfo-perio SEPARATED BY space.
gs_t001k_ssfo-ruc = gv_ruc.
gs_t001k_ssfo-razon = gv_razon.
CONCATENATE gs_t001k-bwkey '-' gs_t001k-name1 INTO gs_t001k_ssfo-estab SEPAR
ATED BY space.
gs_t001k_ssfo-fecha = p_fecha.
LOOP AT gtd_cabec INTO gs_cabec WHERE werks = gs_t001k-bwkey.
CLEAR: gv_cantin_mat, "Suma Cantidad Entrada x Material
gv_costin_mat, "Suma Costo Entrada x Material
gv_cantout_mat, "Suma Cantidad Salida x Material
gv_costout_mat, "Suma Costo Salida x Material
gv_cantfin_mat, "Suma Cantidad Final x Material
gv_costfin_mat, "Suma Saldo Final x Material
gv_acum_cantfin_mat, "Acumulador Cantidad Final x Material
gv_acum_cosufin_mat, "Costo Unitario Final x Material "Acumulado"
gv_acum_costfin_mat. "Acumulador Costo Final x Material
gs_cabec_ssfo-werks = gs_cabec-werks.
gs_cabec_ssfo-matnr = gs_cabec-matnr.
gs_cabec_ssfo-maktx = gs_cabec-maktx.
gs_cabec_ssfo-tpmat = gs_cabec-tipo_mat.
CONCATENATE gs_cabec-zundmed '-' gs_cabec-textum INTO gs_cabec_ssfo-unmed
SEPARATED BY space.
gs_cabec_ssfo-meval = gs_cabec-met_val.
gs_cabec_ssfo-meins = gs_cabec-meins.
LOOP AT gtd_detalle INTO gs_detalle WHERE werks = gs_cabec-werks
AND matnr = gs_cabec-matnr.
gs_detalle_ssfo-werks = gs_detalle-werks.
gs_detalle_ssfo-matnr = gs_detalle-matnr.
IF gs_detalle-fecha NE '00000000'.
gs_detalle_ssfo-budat = gs_detalle-fecha.
ENDIF.
ENDLOOP.
gs_cabec_ssfo-meent
gs_cabec_ssfo-dment
gs_cabec_ssfo-mesal
gs_cabec_ssfo-dmsal
gs_cabec_ssfo-mefin
gs_cabec_ssfo-dmfin
=
=
=
=
=
=
gv_cantin_mat.
gv_costin_mat.
gv_cantout_mat.
gv_costout_mat.
gv_cantfin_mat.
gv_costfin_mat.
=
=
=
=
gv_costsalini_cen.
gv_costin_cen.
gv_costout_cen.
gv_costfin_cen.
gs_t001k_ssfo-meini
gs_t001k_ssfo-meent
gs_t001k_ssfo-mesal
gs_t001k_ssfo-mefin
=
=
=
=
gv_cantsalini_cen.
gv_cantin_cen.
gv_cantout_cen.
gv_cantfin_cen.
CLEAR ls_contrl-no_close.
gs_t001k_ssfo-dmini_soc
gs_t001k_ssfo-dment_soc
gs_t001k_ssfo-dmsal_soc
gs_t001k_ssfo-dmfin_soc
=
=
=
=
gv_costsalini_soc.
gv_costin_soc.
gv_costout_soc.
gv_costfin_soc.
gs_t001k_ssfo-meini_soc
gs_t001k_ssfo-meent_soc
gs_t001k_ssfo-mesal_soc
gs_t001k_ssfo-mefin_soc
=
=
=
=
gv_cantsalini_soc.
gv_cantin_soc.
gv_cantout_soc.
gv_cantfin_soc.
ENDAT.
FREE MEMORY ID gv_formname.
EXPORT gs_t001k_ssfo
gtd_cabec_ssfo
gtd_detalle_ssfo
TO MEMORY ID gv_formname.
CALL FUNCTION gv_fm_name
EXPORTING
control_parameters =
output_options
=
user_settings
=
gv_pagno_in
=
gv_titulo
=
IMPORTING
gv_pagno_out
=
EXCEPTIONS
formatting_error =
internal_error
=
send_error
=
user_canceled
=
OTHERS
=
ls_contrl
ls_output
' '
gv_pagno_ssfo
lv_titulo
gv_pagno_ssfo
1
2
3
4
5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
MESSAGE ID 'ZPEFI' TYPE 'S' NUMBER '003'.
ENDIF.
CLEAR: gs_t001k_ssfo.
FREE: gtd_cabec_ssfo, gtd_cabec_ssfo.
ENDLOOP.
ENDFORM.
" SALIDA_IMPRESA
*&---------------------------------------------------------------------*
*&
FORM SALIDA_EXCEL
*&---------------------------------------------------------------------*
FORM salida_excel .
DATA: lv_txt(150) TYPE c.
CLEAR: gs_excel.
REFRESH: gtd_excel.
IF p_karva = 'X' OR p_karppp EQ 'X'.
gs_excel-titulo = 'FORMATO 13.1: REGISTRO DEL INVENTARIO PERMANENTE VALORIZA
gs_excel-met_val = gs_cabec-met_val.
gs_excel-BWART
= gs_detalle-BWART.
" 11.12.2014 - @11122014ADD
gs_excel-docref = gs_detalle-serie.
" 11.12.2014 - @11122014ADD
READ TABLE gtd_t001k INTO gs_t001k WITH KEY bwkey = gs_cabec-werks.
IF sy-subrc = 0.
CONCATENATE gs_t001k-bwkey '-' gs_t001k-name1 INTO gs_excel-estab SEPARA
TED BY space.
ELSE.
gs_excel-estab = gs_cabec-werks.
ENDIF.
gs_excel-fecha = gs_detalle-fecha.
*
gs_excel-ztipo_comp = .
gs_excel-serie = gs_detalle-serie.
gs_excel-mblnr = gs_detalle-mblnr.
gs_excel-mblnrori = gs_detalle-mblnrori.
gs_excel-ztipo_ope = gs_detalle-ztipo_ope.
gs_excel-cant_in = gs_detalle-cant_in.
IF p_karva = 'X' OR p_karppp EQ 'X'.
PERFORM edita_importe USING gs_detalle-cosu_in.
gs_excel-cosu_in = gv_monto.
PERFORM edita_importe USING gs_detalle-cost_in.
gs_excel-cost_in = gv_monto.
ENDIF.
gs_excel-cant_out = gs_detalle-cant_out.
IF p_karva = 'X' OR p_karppp EQ 'X'.
PERFORM edita_importe USING gs_detalle-cosu_out.
gs_excel-cosu_out = gv_monto.
PERFORM edita_importe USING gs_detalle-cost_out.
gs_excel-cost_out = gv_monto.
ENDIF.
PERFORM edita_importe USING gs_detalle-cant_tot.
gs_excel-cant_fin = gv_monto.
IF p_karva = 'X' OR p_karppp EQ 'X'.
PERFORM edita_importe USING gs_detalle-cosu_fin.
gs_excel-cosu_fin = gv_monto.
PERFORM edita_importe USING gs_detalle-cost_fin.
gs_excel-cost_fin = gv_monto.
ENDIF.
APPEND gs_excel TO gtd_excel.
ENDLOOP.
ENDLOOP.
CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
file_name
= p_file
create_pivot
= 0
TABLES
data_tab
= gtd_excel
EXCEPTIONS
file_not_exist
= 1
filename_expected
= 2
communication_error
= 3
ole_object_method_error = 4
ole_object_property_error = 5
invalid_pivot_fields
= 6
download_problem
= 7
OTHERS
= 8.
ENDFORM.
" SALIDA_EXCEL
*---------------------------------------------------------------------*
*
FORM EDITA_IMPORTE
*---------------------------------------------------------------------*
FORM edita_importe USING p_importe TYPE any.
CLEAR gv_monto.
WRITE p_importe TO gv_monto.
IF gv_monto CA '-'.
gv_monto+sy-fdpos(1) = space.
IF gv_monto CA '1234567890'.
sy-fdpos = sy-fdpos - 1.
gv_monto+sy-fdpos(1) = '-'.
ENDIF.
ENDIF.
ENDFORM.
" EDITA_IMPORTE
*&---------------------------------------------------------------------*
*&
Form VERIFICA_TIPO_OPERACION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM verifica_tipo_operacion .
* Verifica que no ingrese el tipo 16 en tabla de equivalencia.
* DATA: w_tope TYPE y8mm_KARTIPOPE-tope.
SELECT SINGLE *
FROM zfipet_lib09
WHERE tope EQ '16'.
ENDFORM.
" VERIFICA_TIPO_OPERACION
*&---------------------------------------------------------------------*
*&
Form VALIDAR_CAMPOS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->PI_ERROR text
*----------------------------------------------------------------------*
FORM validar_campos CHANGING pi_error.
IF p_impre EQ 'X'.
IF p_print IS INITIAL.
MESSAGE ID 'ZPEFI' TYPE 'I' NUMBER '005' DISPLAY LIKE 'S'.
pi_error = 'X'.
EXIT.
ENDIF.
ENDIF.
IF p_excel EQ 'X'.
IF p_file IS INITIAL.
MESSAGE ID 'ZPEFI' TYPE 'I' NUMBER '006' DISPLAY LIKE 'S'.
pi_error = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDFORM.
" VALIDAR_CAMPOS
*Text elements
*----------------------------------------------------------
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
000
001
002
003
004
005
020
021
022
023
025
026
030
031
032
M01
M02
M03
M04
Parmetros Iniciales
Parmetros Adicionales
Ejecucin del Reporte
Tipo de Reporte
Configuracin
Saldos Iniciales
Reporte Impreso
Impresora
Archivo Excel
Ruta Archivo
Reporte
Gestion ALV
Tabla U.Med.
Considerar tablas MSEG - BSIM
Considerar solo tabla MSEG
Unidad Medida
Tipo de Material
Tipo Operacin
Ajustes
*Selection texts
*---------------------------------------------------------* P_BKLAS D
.
* P_BLART D
.
* P_BUKRS D
.
* P_EXCEL
Archivo Excel
* P_FECHA
Fecha de Impresin
* P_FILE D
.
* P_GESTI
Reporte de Gestion
* P_GJAHR D
.
* P_IMPRE
Impresora
* P_KARPPP
Kardex Valorizado a PPP
* P_KARUN
Krdex en Unidades
* P_KARVA
Kardex Valorizado a P.Est.
* P_MATNR D
.
* P_MONAT D
.
* P_PRINT D
.
* P_REPOR
Reporte Pantalla
* P_SALIN
Saldos iniciales
* P_WERKS D
.
*Messages
*---------------------------------------------------------*
* Message class: Y8FI
*001 Usuario No Tiene Autorizacin
*002 Sociedad y Centros inconsistentes
*003 El reporte ya fue generado
*005 Ingresar Nombre de Impresora
*006 Ingresar Ruta de Archivo Excel
*011 Ingrese el nombre del archivo.
*012 Ingresar la extension XLS.