MUNDOSAP

Regresar   MUNDOSAP > TRABAJO Y FORMACION > RUEGOS Y PREGUNTAS
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 03/09/14, 17:41:35
Avatar de ABellamy
ABellamy ABellamy is offline
Member
 
Fecha de Ingreso: dic 2011
Mensajes: 44
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.
Responder Con Cita
  #2  
Viejo 03/09/14, 21:47:44
Avatar de ABellamy
ABellamy ABellamy is offline
Member
 
Fecha de Ingreso: dic 2011
Mensajes: 44
Botones ALV

Quedó resuelto!!







Saludos.
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 06:36:39.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web