Hola, que tal, estoy realizando un reporte hr en el cual necesito que me refleje por mes los acumulados por empleado de los que cobro por nomina, y que lo coloque por mes, pro ejemplo
cod_emp: 0001
mes enero: monto1 lgart /176 monto 2 lgart 222
mes febrero
mes marzo
Estoy usando la funcion HRCM_PAYROLL_RESULTS_GET para obtener los lgart y sus montos como podria obtener la info de la fecha para poder comparar y colocarle ques esa info es del mes enero, febrero ?
Tengo los montos pero como lo relaciono para poder colocarlo en el mes que le corersponde hay alguna funcion que me ayude en ese paso
en la tabla que te devuelve el modulo de funciones tienes varios campos con la fecha a la que pertenece cada registro, si lo que quieres es el nombre del mes puedes usar el fm ISP_GET_MONTH_NAME
Hola, en esa funcion veo que trae varias tablas y estructuras: por ejemplo
PAYROLL_RESULT_TAB-INTER-CRT
PAYROLL_RESULT_TAB-INTER-WPBP y otras en cual esta ese campo fecah que puedo tomar ?
Cada registro de la tabla PAYROLL_RESULT_TAB tiene la fecha FGPER. Usa esa fecha y luego aparte tiene un campo que RT que en realidad es otra tabla que contiene todos los CC-Nominas de la nómina del empleado busca el que te interesa para hacer el sumatorio o para crear el report.
Lo que necesito para el reporte es que se colocara un rango de codigos de empleados y una rango de fecha, por cada empleado debo consultar que lgart (ccnominas) tiene para ese rango de fecha, y acumular por mes los ccnominas en diferenctes columnas
Algo asi:
Aqui todo lgart /120 debe ir en la columna 1, todo /120 del mes de enero debe ir en esa columna, y asi con los siguientes lgart, los /222 en la segunda columna y los lgart/400 en la tercera pero por mes. La funcion HRCM_PAYROLL_RESULTS_GET en su RT trae los montos pero como saber que fecha tomar para saber que esos montos son del mes de enero, febrero etc. pues si uso payrroll_result_tab-inter-fpper eso es una estructura y no me deja como se lee ese campo .
El pantallazo que pusiste mas arriba esta bien tomado?? me refiero a que da a entender que el campo fpper esta dentro de inter pero ahora que lo dices me suena mas que este en EVP
comprobado esta en EVP prueba payroll_result_tab-evp-fpper
Hola, despues que llamo a la funcion HRCM_PAYROLL_RESULTS_GET utilizo un collect para obtener por mes los lgart y obtengo esta informacion para los meses enero y febrero
Necesito es colocar por mes los lgart, por ejemplo:
columna 1 columna 2 columna 3 columna 4 columna 5
lgart 176 lgart 170 y 171 lgart 5000 y 50004 lgart 5002 y 5004 lgart 222,223,224,225
ENERO monto monto monto monto monto
FEBRERO monto monto monto monto monto
Mi codigo lo tengo asi:
CALL FUNCTION ‘HRCM_PAYROLL_RESULTS_GET’
EXPORTING
PERNR = ti_datos-pernr
BEGDA = fec_ini2
ENDDA = fec_fin2
IMPORTING
SUBRC =
MOLGA =
PAYROLL_RESULT_TAB = PAYROLL_RESULT_TAB[].
LOOP AT PAYROLL_RESULT_TAB.
LOOP AT PAYROLL_RESULT_TAB-INTER-RT INTO PAYROLL_INTER_RT.
Columna 1
IF payroll_inter_rt-lgart = ‘/176’.
wa-mes = payroll_result_tab-inter-versc-paydt+4(2).
wa-lgart = payroll_inter_rt-lgart.
wa-monto = payroll_inter_rt-betrg.
COLLECT wa INTO itab.
CLEAR wa.
mes = payroll_result_tab-inter-versc-paydt+4(2).
ti_datos-tot_c1 = ti_datos-tot_c1 + payroll_inter_rt-betrg.
ti_datos-total_c1 = ti_datos-tot_c1.
ENDIF.
Columna 2
IF payroll_inter_rt-lgart EQ ‘/170’
OR payroll_inter_rt-lgart EQ ‘/171’ .
wa-mes = payroll_result_tab-inter-versc-paydt+4(2).
wa-lgart = payroll_inter_rt-lgart.
wa-monto = payroll_inter_rt-betrg.
COLLECT wa INTO itab.
CLEAR wa.
mes = payroll_result_tab-inter-versc-paydt+4(2).
ti_datos-tot_c2 = ti_datos-tot_c2 + payroll_inter_rt-betrg.
ti_datos-total_c2 = ti_datos-tot_c2.
ENDIF.
ENDLOOP.
Si les es de ayuda, para realizar reporteria de resultados de nóminas donde se requiera lecturas de Cluster lo realizo médiente la extracción de la tabla en memoria del programa h99cwtr0, se hace una mascara de parámetros que requiere este programa para devolver los resultados y posterior armar el reporte según la lista obtenida.
Solo deben considerar la inclusión de los parámetros de empleados y estructura de personal para que la lista sea a ese nivel de detalla, estos son parámetros de selección del programa.
lo que quieres es una linea por mes y por cada lgart una columna??
si siempre son los lgart create un tipo de tabla con las columas mes, lgart1…lgartn y vete rellenandola
si siempre son los mismos lgart puedes hacerlo asi, si varian lo mejor seria una tabla dinamica pero no se si estas familiarizada
haces un
loop a tu itab
case lgart
when '/170'.
itab2 - col1 = itab1-betrg.
when '/171'
itab2-col2 = itab1-betrg.
...
at end of mes .
append itab2.
enddat .
endloop.
algo así , no tengo ahora mismo acceso al sistema y no me se de memoria lo de at end …endat pero seria para que al acabar de procesar tu mes hagas el append y empieces a general la siguiente linea.
Hola Amiga, lo que estoy trabajando es lo siguiente, envio pantalla de lo qeu llevo hasta el momento.
Esta es la entrada:
Y esta es la salida:
Ahora por cada empleado que coloque debo traer todos lo lgart que tenga para ese rango de fecha, y colocarlo por mes. En la columna 01, van solo el lgart /176, y este usando la funcion HRCM_PAYROLL_RESULTS_GET trae 2 lineas una para cada quincena: por ejemplo para el 176 trae 10.000 para el 01.01.2015 al 15.01.2015 y luego 10.000 monto paar el 16.01-2015 por eso da 20.000 eso lo logre con el collect, el cual lo tengo asi:
IF payroll_inter_rt-lgart = ‘/176’.
wa-mes = payroll_result_tab-inter-versc-paydt+4(2).
wa-lgart = payroll_inter_rt-lgart.
wa-monto = payroll_inter_rt-betrg.
COLLECT wa INTO itab.
CLEAR wa.
mes = payroll_result_tab-inter-versc-paydt+4(2).
ti_datos-tot_c1 = ti_datos-tot_c1 + payroll_inter_rt-betrg.
ti_datos-total_c1 = ti_datos-tot_c1.
ENDIF.
ahora para la segunda columna se debe colocar la suma de los lgart /170 y /171.
y ese lo obtengo asi:
IF payroll_inter_rt-lgart EQ ‘/170’
OR payroll_inter_rt-lgart EQ ‘/171’ .
wa-mes = payroll_result_tab-inter-versc-paydt+4(2).
wa-lgart = payroll_inter_rt-lgart.
wa-monto = payroll_inter_rt-betrg.
COLLECT wa INTO itab.
CLEAR wa.
mes = payroll_result_tab-inter-versc-paydt+4(2).
ti_datos-tot_c2 = ti_datos-tot_c2 + payroll_inter_rt-betrg.
ti_datos-total_c2 = ti_datos-tot_c2.
ENDIF
Como haria para que colocar por mes esa info?