DEFINE fldcat_add1.
ls_fldcat-fieldname = &1.
ls_fldcat-ref_tabname = &2.
ls_fldcat-ref_fieldname = &3.
ls_fldcat-reptext_ddic = &4.
ls_fldcat-outputlen = &5.
ls_fldcat-no_out = &6.
ls_fldcat-tech = &7.
append ls_fldcat to lt_fldcat.
END-OF-DEFINITION.
*--[ Mostramos un ALV para seleccionar Datos
data: begin of alv_zja_bp_e_0004 OCCURS 0.
include STRUCTURE zja_bp_e_0004.
data: flg(1),
end of alv_zja_bp_e_0004.
DATA: wreturn LIKE ddshretval OCCURS 0 WITH HEADER LINE,
wstep LIKE sy-stepl.
DATA wsel1 VALUE 'X'. wsel1 = 'X'.
DATA : listtitle(30),
l_lines LIKE sy-tabix,
ls_fldcat TYPE slis_fieldcat_alv,
lt_fldcat TYPE slis_t_fieldcat_alv,
ls_selfield TYPE slis_selfield.
* progname = sy-repid.
* dynnum = sy-dynnr.
REFRESH : lt_fldcat.
* fldcat_add1 'PARTNER' 'T_FIRMANTES' 'PARTNER' 'BP' '25' '' ''.
* fldcat_add1 'PDESC' 'ZALTAB_PARAM' 'PDESC' 'Process Description' '40'.
* fldcat_add1 'FLG' 'ALV_ZJA_BP_E_0004' 'FLG' 'BP' '25' '' ''.
fldcat_add1 'MANDT' 'ALV_ZJA_BP_E_0004' 'MANDT' 'BP' '4' 'X' 'X'.
fldcat_add1 'PARTNER' 'ALV_ZJA_BP_E_0004' 'PARTNER' 'Partner' '10' '' ''.
fldcat_add1 'TIPO_FIRMA' 'ALV_ZJA_BP_E_0004' 'TIPO_FIRMA' 'Tipo Firma' '25' 'X' 'X'.
fldcat_add1 'SITUACION' 'ALV_ZJA_BP_E_0004' 'SITUACION' 'Situación' '25' 'X' 'X'.
fldcat_add1 'PARTNER_FIRMA' 'ALV_ZJA_BP_E_0004' 'PARTNER_FIRMA' 'Partner' '25' 'X' 'X'.
fldcat_add1 'CLASE' 'ALV_ZJA_BP_E_0004' 'CLASE' 'BP' '25' 'X' 'X'.
fldcat_add1 'ORGGEST' 'ALV_ZJA_BP_E_0004' 'ORGGEST' 'BP' '25' 'X' 'X'.
fldcat_add1 'BNAME' 'ALV_ZJA_BP_E_0004' 'BNAME' 'Usuario' '12' '' ''.
fldcat_add1 'CARGO' 'ALV_ZJA_BP_E_0004' 'CARGO' 'Cargo' '25' '' ''.
fldcat_add1 'CARGO_AMPL' 'ALV_ZJA_BP_E_0004' 'CARGO_AMPL' 'BP' '25' 'X' 'X'.
fldcat_add1 'DELEG_COMP' 'ALV_ZJA_BP_E_0004' 'DELEG_COMP' 'BP' '25' 'X' 'X'.
fldcat_add1 'FECHA_INI' 'ALV_ZJA_BP_E_0004' 'FECHA_INI' 'BP' '25' 'X' 'X'.
fldcat_add1 'FECHA_FIN' 'ALV_ZJA_BP_E_0004' 'FECHA_FIN' 'BP' '25' 'X' 'X'.
fldcat_add1 'SMTP_ADDR' 'ALV_ZJA_BP_E_0004' 'SMTP_ADDR' 'BP' '25' 'X' 'X'.
fldcat_add1 'NAME_FIRST' 'ALV_ZJA_BP_E_0004' 'NAME_FIRST' 'Nombre' '25' '' ''.
fldcat_add1 'NAME_LAST' 'ALV_ZJA_BP_E_0004' 'NAME_LAST' 'Apellido' '25' '' ''.
fldcat_add1 'TAXTYPE' 'ALV_ZJA_BP_E_0004' 'TAXTYPE' 'BP' '25' 'X' 'X'.
fldcat_add1 'TAXNUM' 'ALV_ZJA_BP_E_0004' 'TAXNUM' 'NIF' '16' '' ''.
fldcat_add1 'E_MAIL' 'ALV_ZJA_BP_E_0004' 'E_MAIL' 'email' '25' '' ''.
fldcat_add1 'DESC_TIPO_FIRMA' 'ALV_ZJA_BP_E_0004' 'PARTNER' 'BP' '25' 'X' 'X'.
listtitle = 'Firmantes'.
refresh alv_zja_bp_e_0004.
loop at t_firmantes into l_wa_firmantes .
move-CORRESPONDING l_wa_firmantes to alv_zja_bp_e_0004.
append alv_zja_bp_e_0004.
endloop.
DESCRIBE TABLE alv_zja_bp_e_0004 lines sy-pagno.
if sy-pagno > 10.
sy-pagno = 20.
else.
sy-pagno = 10 + sy-pagno + 2.
endif.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
i_title = listtitle
i_selection = wsel1
i_zebra = ' '
I_SCREEN_START_COLUMN = 10
I_SCREEN_START_LINE = 10
I_SCREEN_END_COLUMN = 150
I_SCREEN_END_LINE = sy-pagno
i_checkbox_fieldname = 'FLG'
i_tabname = 'ALV_ZJA_BP_E_0004'
it_fieldcat = lt_fldcat
TABLES
t_outtab = alv_zja_bp_e_0004
EXCEPTIONS
program_error = 1
OTHERS = 2.
DATA wfl1. CLEAR wfl1.
refresh t_firmantes.
LOOP AT alv_zja_bp_e_0004 where flg = 'X'.
MOVE-CORRESPONDING alv_zja_bp_e_0004 to l_wa_firmantes .
append l_wa_firmantes to t_firmantes.
ENDLOOP.
*--[ Mostramos un ALV para seleccionar Datos