Ver Mensaje Individual
  #3  
Viejo 12/06/08, 21:31:15
larmadovr larmadovr is offline
Member
 
Fecha de Ingreso: ene 2008
Localización: Monterrey N.L. México
Mensajes: 77
Thumbs up Por medio de código.

Ejecuta el siguiente reporte y en este viene todo lo que necesitas, desde declarar el gpo ceco y agregar funcionalidad de matchcode, y tambien la funcion para cargar todos los cecos

REPORT zpruebas_lavr NO STANDARD PAGE HEADING.


SELECTION-SCREEN BEGIN OF BLOCK param WITH FRAME TITLE text-001.
PARAMETERS:

* Sociedad
p_soc LIKE zpresupuestos-sociedad
OBLIGATORY,

* Grupo de Centros de costo
p_kstgr LIKE rkpln-ksgru MEMORY ID cec.

SELECTION-SCREEN END OF BLOCK param.


********GRUPO CECO********
* Sets (here groups) with values
TYPES: BEGIN OF kaep_sub_groups,
shortname LIKE sethier-shortname,
title LIKE rgsb4-title,
index LIKE kaep_sets-objgrp_ind,
from LIKE rgsb4-from,
to LIKE rgsb4-to ,
END OF kaep_sub_groups.

TYPES: kaep_t_sub_groups TYPE kaep_sub_groups OCCURS 0.


TYPES: BEGIN OF kaep_groups,
field LIKE setheader-fieldname,
setnr LIKE rgsb4-setnr,
shortname LIKE sethier-shortname, "highest group
sub TYPE kaep_t_sub_groups, "basic sets with values
END OF kaep_groups.


DATA: ld_setid LIKE sethier-setid,
lt_setvalues LIKE rgsb4 OCCURS 0 WITH HEADER LINE,
ld_sub TYPE kaep_sub_groups.

DATA: lr_cosel LIKE cosel OCCURS 0 WITH HEADER LINE.

RANGES: r_ceco FOR zrelusuceco_prep-ceco.


*****************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_kstgr.

PERFORM f4_groups USING 'KOSTL'
p_soc
CHANGING p_kstgr.


*---------------------------------------------------------------------*
* EVENTO START-OF-SELECTION *
*---------------------------------------------------------------------*
START-OF-SELECTION.

PERFORM f_carga_grupo_ceco.

*&---------------------------------------------------------------------*
*& Form f4_groups
*&---------------------------------------------------------------------*
FORM f4_groups USING value(v_field) LIKE rgsbs-field
value(v_searchfield) TYPE any

CHANGING c_group TYPE c.
DATA: ld_searchfield LIKE rgsbs-searchfld.

ld_searchfield = v_searchfield.

CALL FUNCTION 'K_GROUP_SELECT'
EXPORTING
field_name = v_field
searchfld = ld_searchfield
searchfld_input = space
set = c_group
IMPORTING
set_name = c_group
EXCEPTIONS
no_set_picked = 1
OTHERS = 2.
IF sy-subrc NE 0.
CLEAR c_group.
ENDIF.
ENDFORM. " F4_GROUPS
*&---------------------------------------------------------------------*
*& Form f_carga_grupo_ceco
*&---------------------------------------------------------------------*
form f_carga_grupo_ceco.

DATA: l_ceco(10) TYPE n.

*************ESTA CLAVE LA ARMAS PARA CARGAR LOS CECOS

CONCATENATE '0101' p_soc p_kstgr INTO ld_setid. " NO-GAPS.

CALL FUNCTION 'G_SET_GET_ALL_VALUES'
EXPORTING
setnr = ld_setid
no_descriptions = space
TABLES
set_values = lt_setvalues
EXCEPTIONS
set_not_found = 1.
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

* fill range table
LOOP AT lt_setvalues.
ld_sub-index = sy-tabix.
*...take over the values
lr_cosel-low = lt_setvalues-from.
lr_cosel-high = lt_setvalues-to.
IF lr_cosel-high = lr_cosel-low OR
lr_cosel-high IS INITIAL.
lr_cosel-option = 'EQ'.
ELSE.
lr_cosel-option = 'BT'.
ENDIF.
APPEND lr_cosel.
*...take over the set values from the basic sets
MOVE-CORRESPONDING lt_setvalues TO ld_sub.
*...get the external set name
CALL FUNCTION 'G_SET_DECRYPT_SETID'
EXPORTING
setid = lt_setvalues-setnr
IMPORTING
shortname = ld_sub-shortname.

l_ceco = ld_sub-shortname.
r_ceco-sign = 'I'.
r_ceco-option = 'EQ'.
r_ceco-low = l_ceco.
APPEND r_ceco.

CLEAR l_ceco.
ENDLOOP.

DELETE ADJACENT DUPLICATES FROM r_ceco COMPARING low.

****************************************************************
* AL FINAL TIENES TODOS LOS CECOS QUE PERTENECEN AL GPO CECO EN R_CECO
****************************************************************

WRITE: /, 'EL GRUPO ', p_kstgr, 'TIENE LOS SIGUENTES CECOS'.
loop at r_ceco.


write: / r_ceco-low.
endloop.

endform. " f_carga_grupo_ceco
__________________
I.S.C.T. Luis Armando Valdez Rodríguez
Consultor ABAP
correo:
cel: (045) 5537406023

"La vida premia la acción"
Responder Con Cita