W Pub: ABAPALVPOPUP Select

  1.   DEFINE fldcat_add1.
  2.     ls_fldcat-fieldname     = &1.
  3.     ls_fldcat-ref_tabname   = &2.
  4.     ls_fldcat-ref_fieldname = &3.
  5.     ls_fldcat-reptext_ddic  = &4.
  6.     ls_fldcat-outputlen     = &5.
  7.     ls_fldcat-no_out        = &6.
  8.     ls_fldcat-tech          = &7.
  9.     append ls_fldcat to lt_fldcat.
  10.   END-OF-DEFINITION.
  11.  
  12. *--[ Mostramos un ALV para seleccionar Datos
  13. data: begin of alv_zja_bp_e_0004 OCCURS 0.
  14.       include STRUCTURE zja_bp_e_0004.
  15. data: flg(1),
  16.       end of alv_zja_bp_e_0004.
  17.  
  18.   DATA: wreturn LIKE ddshretval OCCURS 0 WITH HEADER LINE,
  19.       wstep LIKE sy-stepl.
  20.   DATA wsel1 VALUE 'X'. wsel1 = 'X'.
  21.  
  22.   DATA : listtitle(30),
  23.          l_lines     LIKE sy-tabix,
  24.          ls_fldcat   TYPE slis_fieldcat_alv,
  25.          lt_fldcat   TYPE slis_t_fieldcat_alv,
  26.          ls_selfield TYPE slis_selfield.
  27. *  progname = sy-repid.
  28. *  dynnum   = sy-dynnr.
  29.  
  30.   REFRESH : lt_fldcat.
  31. *  fldcat_add1 'PARTNER' 'T_FIRMANTES' 'PARTNER' 'BP' '25' '' ''.
  32. *  fldcat_add1 'PDESC' 'ZALTAB_PARAM' 'PDESC' 'Process Description' '40'.
  33. *  fldcat_add1 'FLG' 'ALV_ZJA_BP_E_0004' 'FLG' 'BP' '25' '' ''.
  34.   fldcat_add1 'MANDT' 'ALV_ZJA_BP_E_0004' 'MANDT' 'BP' '4' 'X' 'X'.
  35.   fldcat_add1 'PARTNER' 'ALV_ZJA_BP_E_0004' 'PARTNER' 'Partner' '10' '' ''.
  36.   fldcat_add1 'TIPO_FIRMA' 'ALV_ZJA_BP_E_0004' 'TIPO_FIRMA' 'Tipo Firma' '25' 'X' 'X'.
  37.   fldcat_add1 'SITUACION' 'ALV_ZJA_BP_E_0004' 'SITUACION' 'Situación' '25' 'X' 'X'.
  38.   fldcat_add1 'PARTNER_FIRMA' 'ALV_ZJA_BP_E_0004' 'PARTNER_FIRMA' 'Partner' '25' 'X' 'X'.
  39.   fldcat_add1 'CLASE' 'ALV_ZJA_BP_E_0004' 'CLASE' 'BP' '25' 'X' 'X'.
  40.   fldcat_add1 'ORGGEST' 'ALV_ZJA_BP_E_0004' 'ORGGEST' 'BP' '25' 'X' 'X'.
  41.   fldcat_add1 'BNAME' 'ALV_ZJA_BP_E_0004' 'BNAME' 'Usuario' '12' '' ''.
  42.   fldcat_add1 'CARGO' 'ALV_ZJA_BP_E_0004' 'CARGO' 'Cargo' '25' '' ''.
  43.   fldcat_add1 'CARGO_AMPL' 'ALV_ZJA_BP_E_0004' 'CARGO_AMPL' 'BP' '25' 'X' 'X'.
  44.   fldcat_add1 'DELEG_COMP' 'ALV_ZJA_BP_E_0004' 'DELEG_COMP' 'BP' '25' 'X' 'X'.
  45.   fldcat_add1 'FECHA_INI' 'ALV_ZJA_BP_E_0004' 'FECHA_INI' 'BP' '25' 'X' 'X'.
  46.   fldcat_add1 'FECHA_FIN' 'ALV_ZJA_BP_E_0004' 'FECHA_FIN' 'BP' '25' 'X' 'X'.
  47.   fldcat_add1 'SMTP_ADDR'       'ALV_ZJA_BP_E_0004' 'SMTP_ADDR' 'BP' '25' 'X' 'X'.
  48.   fldcat_add1 'NAME_FIRST'      'ALV_ZJA_BP_E_0004' 'NAME_FIRST' 'Nombre' '25' '' ''.
  49.   fldcat_add1 'NAME_LAST'       'ALV_ZJA_BP_E_0004' 'NAME_LAST' 'Apellido' '25' '' ''.
  50.   fldcat_add1 'TAXTYPE'         'ALV_ZJA_BP_E_0004' 'TAXTYPE' 'BP' '25' 'X' 'X'.
  51.   fldcat_add1 'TAXNUM'          'ALV_ZJA_BP_E_0004' 'TAXNUM' 'NIF' '16' '' ''.
  52.   fldcat_add1 'E_MAIL'          'ALV_ZJA_BP_E_0004' 'E_MAIL' 'email' '25' '' ''.
  53.   fldcat_add1 'DESC_TIPO_FIRMA' 'ALV_ZJA_BP_E_0004' 'PARTNER' 'BP' '25' 'X' 'X'.
  54.  
  55.  
  56.  
  57.   listtitle = 'Firmantes'.
  58.   refresh alv_zja_bp_e_0004.
  59.   loop at t_firmantes into l_wa_firmantes .
  60.       move-CORRESPONDING l_wa_firmantes to alv_zja_bp_e_0004.
  61.     append alv_zja_bp_e_0004.
  62.   endloop.
  63.  
  64.   DESCRIBE TABLE alv_zja_bp_e_0004 lines sy-pagno.
  65.  
  66.   if sy-pagno > 10.
  67.       sy-pagno = 20.
  68.   else.
  69.       sy-pagno = 10 + sy-pagno + 2.
  70.   endif.
  71.  
  72.   CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
  73.     EXPORTING
  74.       i_title              = listtitle
  75.       i_selection          = wsel1
  76.       i_zebra              = ' '
  77.       I_SCREEN_START_COLUMN = 10
  78.       I_SCREEN_START_LINE = 10
  79.       I_SCREEN_END_COLUMN = 150
  80.       I_SCREEN_END_LINE = sy-pagno
  81.       i_checkbox_fieldname = 'FLG'
  82.       i_tabname            = 'ALV_ZJA_BP_E_0004'
  83.       it_fieldcat          = lt_fldcat
  84.     TABLES
  85.       t_outtab             = alv_zja_bp_e_0004
  86.     EXCEPTIONS
  87.       program_error        = 1
  88.       OTHERS               = 2.
  89.  
  90.   DATA wfl1. CLEAR wfl1.
  91.   refresh t_firmantes.
  92.   LOOP AT alv_zja_bp_e_0004 where flg = 'X'.
  93.     MOVE-CORRESPONDING alv_zja_bp_e_0004 to l_wa_firmantes .
  94.     append l_wa_firmantes to t_firmantes.
  95.   ENDLOOP.
  96. *--[ Mostramos un ALV para seleccionar Datos
  97.