#1
|
||||
|
||||
Botones ALV
Buen día a todos.
Tengo un problemilla con un ALV. Tengo que agregar una tercia de botones a mi reporte, apenas hice uno de prueba pero cuando paso de la pantalla de selección desaparecen todos los botones y solo me queda el botón que agregue. Debugeando veo que al menos hace algo. (Se va a una transacción de prueba). Aquí el código sin includes. REPORT z_test_gui NO STANDARD PAGE HEADING MESSAGE-ID ap. * Include de tipos. TYPE-POOLS: slis. * Tipos globales. TYPES: BEGIN OF ty_rows, saknr TYPE saknr, "No. Cta. mitkz TYPE mitkz, "Cuenta asociada. xspeb TYPE xspeb, "Indicador: cta. bloqueada. txt50 TYPE txt50, "Texto largo. END OF ty_rows. * Declaración de tabla interna. DATA: gt_rows TYPE STANDARD TABLE OF ty_rows WITH HEADER LINE. * Declaraciones para el ALV. DATA: gs_layout TYPE lvc_s_layo, gt_catalog TYPE lvc_t_fcat, gs_catalog TYPE lvc_s_fcat. * Pantalla de selección. SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001. PARAMETERS: pa_bukrs TYPE bukrs OBLIGATORY. SELECTION-SCREEN: END OF BLOCK b1. SKIP 1. PARAMETERS: pa_ctblo AS CHECKBOX. START-OF-SELECTION. PERFORM obtener_datos. END-OF-SELECTION. IF gt_rows IS INITIAL. MESSAGE s400 WITH 'No existen datos de selección'. ELSE. PERFORM mostrar_alv. ENDIF. *&---------------------------------------------------------------------* *& Form OBTENER_DATOS *&---------------------------------------------------------------------* FORM obtener_datos . * Tipos locales. TYPES: BEGIN OF ty_ska1, "Plan de Ctas. ktopl TYPE ktopl, "Plan de Ctas. sakan TYPE sakan, "No. Cta. END OF ty_ska1, BEGIN OF ty_skb1, "Sociedades. saknr TYPE saknr, "No. Cta. mitkz TYPE mitkz, "Cta. Asociada. xspeb TYPE xspeb, "Indicador: cta. bloqueada. END OF ty_skb1, BEGIN OF ty_skat, "Denominaciones. saknr TYPE saknr, "No. Cta. txt50 TYPE txt50, "Texto largo. END OF ty_skat. * Declaraciones locales. DATA: lt_ska1 TYPE STANDARD TABLE OF ty_ska1 WITH HEADER LINE, lt_skb1 TYPE STANDARD TABLE OF ty_skb1 WITH HEADER LINE, lt_skat TYPE STANDARD TABLE OF ty_skat WITH HEADER LINE, lv_ktopl TYPE ktopl, numc10(10) TYPE n. * Determinar plan de cuentas de la sociedad. SELECT SINGLE ktopl FROM t001 INTO lv_ktopl WHERE bukrs EQ pa_bukrs. IF sy-subrc EQ 0. * Extracción de cuentas por plan de cuentas. SELECT ktopl sakan FROM ska1 INTO TABLE lt_ska1 WHERE ktopl EQ lv_ktopl. IF pa_ctblo IS INITIAL. * No mostrar cuentas bloqueadas. * Extraer cuentas por sociedad. SELECT saknr mitkz xspeb FROM skb1 INTO TABLE lt_skb1 FOR ALL ENTRIES IN lt_ska1 WHERE bukrs EQ pa_bukrs AND saknr EQ lt_ska1-sakan AND xspeb EQ 'X'. ELSE. * Mostrar todas las cuentas. * Extraer cuentas por sociedad. SELECT saknr mitkz xspeb FROM skb1 INTO TABLE lt_skb1 FOR ALL ENTRIES IN lt_ska1 WHERE bukrs EQ pa_bukrs AND saknr EQ lt_ska1-sakan. ENDIF. IF sy-subrc EQ 0. * Extraer descripciones de cuentas. SELECT saknr txt50 FROM skat INTO TABLE lt_skat FOR ALL ENTRIES IN lt_skb1 WHERE spras EQ sy-langu AND ktopl EQ lv_ktopl AND saknr EQ lt_skb1-saknr. ENDIF. * Armado de datos a visualizar. LOOP AT lt_skb1. CLEAR gt_rows. MOVE lt_skb1 TO gt_rows. READ TABLE lt_skat WITH KEY saknr = lt_skb1-saknr. IF sy-subrc EQ 0. gt_rows-txt50 = lt_skat-txt50. ENDIF. APPEND gt_rows. ENDLOOP. ENDIF. ENDFORM. " OBTENER_DATOS *&---------------------------------------------------------------------* *& Form MOSTRAR_ALV *&---------------------------------------------------------------------* FORM mostrar_alv . * Preparar catálogo de campos. PERFORM catalogo_alv. * Definir layout. PERFORM layout_alv. * Mostrar ALV. PERFORM show_alv. ENDFORM. " MOSTRAR_ALV *&---------------------------------------------------------------------* *& Form CATALOGO_ALV *&---------------------------------------------------------------------* FORM catalogo_alv . PERFORM addfields USING: 'SAKNR' 'GT_ROWS' '10' 'X' 'Cta Contable' ' ' ' ' ' ' ' ' ' ', 'TXT50' 'GT_ROWS' '50' 'X' 'Descripción' ' ' ' ' ' ' ' ' ' ', 'MITKZ' 'GT_ROWS' '20' ' ' 'Cuenta Asociada' 'X ' 'X' ' ' ' ' 'MITKZ'. * Mostrar columna bloqueada si se activo el parámetro. IF pa_ctblo EQ 'X'. PERFORM addfields USING: 'XSPEB' 'GT_ROWS' '16' ' ' 'Cuenta Bloqueada' ' ' ' ' ' ' ' ' ' '. ENDIF. ENDFORM. " CATALOGO_ALV *&---------------------------------------------------------------------* *& Form LAYOUT_ALV *&---------------------------------------------------------------------* FORM layout_alv . gs_layout-zebra = 'X'. ENDFORM. " LAYOUT_ALV *&---------------------------------------------------------------------* *& Form SHOW_ALV *&---------------------------------------------------------------------* FORM show_alv . * Variables locales. DATA: lv_numr TYPE i, lv_numtxt TYPE string, lv_numreg TYPE lvc_title. DESCRIBE TABLE gt_rows LINES lv_numr. lv_numtxt = lv_numr. CONCATENATE 'Número de registros:' lv_numtxt INTO lv_numreg SEPARATED BY space. * Llamar ALV. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-repid i_callback_pf_status_set = 'SET_PF_STATUS' i_callback_user_command = 'USER_COMMAND' i_grid_title = lv_numreg is_layout_lvc = gs_layout it_fieldcat_lvc = gt_catalog TABLES t_outtab = gt_rows. 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. " SHOW_ALV *&---------------------------------------------------------------------* *& Form ADDFIELDS *&---------------------------------------------------------------------* FORM addfields USING value(p_0339) value(p_0340) value(p_0341) value(p_0342) value(p_0343) value(p_0344) value(p_0345) value(p_0346) value(p_0347) value(p_0348). * Agregar los valores de los campos. CLEAR gs_catalog. gs_catalog-fieldname = p_0339. gs_catalog-tabname = p_0340. gs_catalog-outputlen = p_0341. gs_catalog-key = p_0342. gs_catalog-seltext = p_0343. gs_catalog-scrtext_l = p_0343. gs_catalog-scrtext_m = p_0343. gs_catalog-scrtext_s = p_0343. gs_catalog-edit = p_0344. gs_catalog-f4availabl = p_0345. gs_catalog-domname = p_0346. gs_catalog-ref_table = p_0347. gs_catalog-ref_field = p_0348. APPEND gs_catalog TO gt_catalog. ENDFORM. " ADDFIELDS * Inicio AarónCruz.MX 03.09.2014 FORM set_pf_status USING rt_extab TYPE slis_t_extab. SET PF-STATUS 'GUI_ALV'. ENDFORM. "set_pf_status *&---------------------------------------------------------------------* *& Form user_command *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->R_UCOMM text * -->RS_SELFIELD text *----------------------------------------------------------------------* FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. * Determinar acción CASE sy-ucomm. WHEN '&BT1'. CALL TRANSACTION 'YPRUEBA_21'. ENDCASE. ENDFORM. "user_command * Final AaronCruz.MX 03.09.2014 Espero me puedan ayudar, Saludos
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP. |
#2
|
||||
|
||||
Botones ALV
Quedó resuelto!!
Saludos.
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|