0% found this document useful (0 votes)
26 views8 pages

Programa Lanzar Report en Fondo

Uploaded by

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

Programa Lanzar Report en Fondo

Uploaded by

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

Botón en un alv que generará un expediente con las posiciones todas las líneas del alv.

Se hace
guardando los datos en tabla de BD y llamando a un report en fondo (job)

FORM f_fondo .
DATA: jobname LIKE tbtcjob-jobname,
jobcount LIKE tbtcjob-jobcount.

DATA: l_wa_salida TYPE zja_ga_e_pie,


l_salida TYPE zja_ga_t_pie,
l_ret TYPE zja_ga_t_retenc,
l_wa_ret TYPE zja_ga_e_retenciones.

READ TABLE g_t_salida WITH KEY bvtyp = space TRANSPORTING NO FIELDS.


IF sy-subrc = 0.
MESSAGE s138(zja_ga_ms_01) DISPLAY LIKE 'E'.
EXIT.
ENDIF.
READ TABLE g_t_salida WITH KEY importe = 0 TRANSPORTING NO FIELDS.
IF sy-subrc = 0.
MESSAGE s148(zja_ga_ms_01) DISPLAY LIKE 'E'.
EXIT.
ENDIF.
jobname = 'PIE'.

CALL FUNCTION 'JOB_OPEN'


EXPORTING
delanfrep = ' '
jobgroup = ' '
jobname = jobname
sdlstrtdt = sy-datum
sdlstrttm = sy-uzeit
IMPORTING
jobcount = jobcount
EXCEPTIONS
cant_create_job = 01
invalid_job_data = 02
jobname_missing = 03.

IF sy-subrc = 0.

*guardamos los datos del expediente en las tablas


LOOP AT g_t_salida INTO l_wa_salida.
CLEAR l_salida.
MOVE-CORRESPONDING l_wa_salida TO l_salida.
l_salida-mandt = sy-mandt.
l_salida-jobname = jobname.
l_salida-jobcount = jobcount.
INSERT zja_ga_t_pie FROM l_salida.
ENDLOOP.
LOOP AT g_t_retenciones INTO l_wa_ret.
CLEAR l_ret.
MOVE-CORRESPONDING l_wa_ret TO l_ret.
l_ret-mandt = sy-mandt.
l_ret-jobname = jobname.
l_ret-jobcount = jobcount.
INSERT zja_ga_t_retenc FROM l_ret.
ENDLOOP.

SUBMIT zja_ga_r_0019 AND RETURN


WITH pg_cges = pg_cges
WITH pg_posi = pg_posi
WITH pg_fondo = pg_fondo
WITH pg_proy = pg_proy
WITH pg_bukrs = pg_bukrs
WITH pg_orges = pg_orges
WITH pg_kostl = pg_kostl
WITH pg_gjahr = pg_gjahr
WITH pg_title = pg_title
USER sy-uname
VIA JOB jobname
NUMBER jobcount.

IF sy-subrc <> 0.
ENDIF.

CALL FUNCTION 'JOB_CLOSE'


EXPORTING
jobcount = jobcount
jobname = jobname
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 01
invalid_startdate = 02
jobname_missing = 03
job_close_failed = 04
job_nosteps = 05
job_notex = 06
lock_failed = 07
OTHERS = 99.

IF sy-subrc = 0.

* El proceso se ha lanzado en fondo.


MESSAGE s754(zja_ep_ms_01).
WAIT UP TO 1 SECONDS.
ENDIF.

ENDIF.

ENDFORM. " F_FONDO

Report zja_ga_r_0019:
*&--------------------------------------------------------------------
-*
*& Report ZJA_GA_R_0018
*&
*&--------------------------------------------------------------------
-*
*&
*&
*&--------------------------------------------------------------------
-*

REPORT zja_ga_r_0019.

TABLES: pruefwerte.

DATA:g_t_salida TYPE TABLE OF zja_ga_e_pie,


l_wa_salida TYPE zja_ga_e_pie,
g_t_retenciones TYPE STANDARD TABLE OF zja_ga_e_retenciones
INITIAL SIZE 0,
l_wa_retenciones TYPE zja_ga_e_retenciones,
l_t_return TYPE TABLE OF zja_ga_e_return.

DATA: l_t_pie TYPE TABLE OF zja_ga_t_pie,


l_wa_pie TYPE zja_ga_t_pie,
l_t_ret TYPE TABLE OF zja_ga_t_retenc,
l_wa_ret TYPE zja_ga_t_retenc.

DATA: jobname LIKE tbtcjob-jobname,


jobcount LIKE tbtcjob-jobcount.

DATA g_t_fieldcatalog TYPE lvc_t_fcat.

DATA g_wa_layout TYPE lvc_s_layo.

SELECTION-SCREEN BEGIN OF BLOCK bloque_01 WITH FRAME TITLE text-000.

PARAMETERS: pg_cges TYPE /ieci/tc_e_ppresu_alv-fistl,


pg_posi TYPE /ieci/tc_e_ppresu_alv-fipex,
pg_fondo TYPE /ieci/tc_e_ppresu_alv-geber,
pg_proy TYPE /ieci/tc_e_ppresu_alv-posid,
pg_bukrs TYPE bukrs,
pg_orges TYPE /gex/_orggest,
pg_kostl TYPE kostl ,
pg_gjahr TYPE gjahr,
pg_title TYPE /gex/_titulo.

SELECTION-SCREEN END OF BLOCK bloque_01.

*recuperamos los datos para generar el expediente


* datos job
CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
IMPORTING
jobcount = jobcount
jobname = jobname
EXCEPTIONS
no_runtime_info = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

* datos de la tabla
SELECT * FROM zja_ga_t_pie
INTO TABLE l_t_pie
WHERE jobcount = jobcount
AND jobname = jobname.
IF sy-subrc = 0.
LOOP AT l_t_pie INTO l_wa_pie.
MOVE-CORRESPONDING l_wa_pie TO l_wa_salida.
APPEND l_wa_salida TO g_t_salida.
ENDLOOP.
ENDIF.

SELECT * FROM zja_ga_t_retenc


INTO TABLE l_t_ret
WHERE jobcount = jobcount
AND jobname = jobname.
IF sy-subrc = 0.
LOOP AT l_t_ret INTO l_wa_ret.
MOVE-CORRESPONDING l_wa_ret TO l_wa_retenciones.
APPEND l_wa_retenciones TO g_t_retenciones.
ENDLOOP.
ENDIF.

* function que hace el proceso de generar el expediente


CALL FUNCTION 'ZJA_GA_F_FONDO_PIE'
EXPORTING
i_bukrs = pg_bukrs
i_orges = pg_orges
i_title = pg_title
i_posi = pg_posi
i_fondo = pg_fondo
i_proy = pg_proy
i_kostl = pg_kostl
i_gjahr = pg_gjahr
i_cges = pg_cges
TABLES
t_datos = g_t_salida
t_retenciones = g_t_retenciones
t_return = l_t_return.

* una vez ejecutada la función borramos las tablas del sistema


DELETE FROM zja_ga_t_pie
WHERE jobcount = jobcount
AND jobname = jobname.

DELETE FROM zja_ga_t_retenc


WHERE jobcount = jobcount
AND jobname = jobname.

IF l_t_return[] IS NOT INITIAL.


* Mostrar mensajes de lo procesado
PERFORM f_mostrar_mensajes TABLES l_t_return.
ENDIF.

*&--------------------------------------------------------------------
-*
*& Form f_mostrar_mensajes
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
* -->P_T_MENSAJES text
* -->P_T_FIELDCAT text
* -->P_WA_LAYOUT text
*---------------------------------------------------------------------
-*
FORM f_mostrar_mensajes TABLES p_t_mensajes STRUCTURE zja_ga_e_return.

* Configurar layout ALV


PERFORM f_config_layout_alv." CHANGING p_wa_layout.

* Configurar fieldcatalog ALV


PERFORM f_config_fieldc_alv." TABLES p_t_fieldcat.

* Mostrar ALV
PERFORM f_mostrar_alv TABLES p_t_mensajes.

ENDFORM. "f_mostrar_mensajes

*&--------------------------------------------------------------------
-*
*& Form f_config_layout_alv
*&--------------------------------------------------------------------
-*
* text
*---------------------------------------------------------------------
-*
* -->P_WA_LAYOUT text
*---------------------------------------------------------------------
-*
FORM f_config_layout_alv." CHANGING p_wa_layout TYPE slis_layout_alv.

CLEAR g_wa_layout.

g_wa_layout-zebra = 'X'.
g_wa_layout-sel_mode = 'A'.

ENDFORM. " F_CONFIG_LAYOUT_ALV


*&--------------------------------------------------------------------
-*
*& Form F_CONFIG_FIELDC_ALV
*&--------------------------------------------------------------------
-*
* Configurar el fieldcatalog del ALV
*---------------------------------------------------------------------
-*
* -->P_T_FIELDCAT text
*---------------------------------------------------------------------
-*
FORM f_config_fieldc_alv.

DATA l_wa_fieldcat TYPE lvc_s_fcat.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'TYPE'.
l_wa_fieldcat-key = 'X'.
l_wa_fieldcat-no_zero = 'X'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'ID'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'NUMBER'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'MESSAGE'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'MESSAGE_V1'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

CLEAR l_wa_fieldcat.
l_wa_fieldcat-fieldname = 'MESSAGE_V2'.
APPEND l_wa_fieldcat TO g_t_fieldcatalog.

ENDFORM. " F_CONFIG_FIELDC_ALV


*&--------------------------------------------------------------------
-*
*& Form F_MOSTRAR_ALV
*&--------------------------------------------------------------------
-*
* Mostrar el ALV
*---------------------------------------------------------------------
-*
* -->P_T_MENSAJES text
* -->P_T_FIELDCAT text
* -->P_WA_LAYOUT text
*---------------------------------------------------------------------
-*
FORM f_mostrar_alv TABLES p_t_mensajes STRUCTURE zja_ga_e_return.

DATA l_repid LIKE sy-repid.


DATA: l_variant TYPE disvariant,
l_t_quitar_botones TYPE slis_t_extab.

l_repid = sy-repid.
l_variant-report = 'ZJA_GA_R_0018'.
l_variant-username = sy-uname.
l_variant-handle = '0001'.

APPEND cl_gui_alv_grid=>mc_fc_graph TO l_t_quitar_botones.


APPEND cl_gui_alv_grid=>mc_fc_info TO l_t_quitar_botones.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'


EXPORTING
i_callback_program = l_repid
is_layout_lvc = g_wa_layout
it_fieldcat_lvc = g_t_fieldcatalog
it_excluding = l_t_quitar_botones
i_save = 'A'
is_variant = l_variant
TABLES
t_outtab = p_t_mensajes
EXCEPTIONS
program_error = 1
OTHERS = 2.

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

ENDFORM. " F_MOSTRAR_ALV

You might also like