Crear un Matchcode en tiempo de Ejecución en un Report común (SIN DYNPRO) enero 6, 2010
Posted by gstortoni in Uncategorized.trackback
Estimados,
he tenido el blog más que despreocupado… pero bueno ahora ya no estoy en abap me cambié a PI por lo que tiempo tengo muy poco…
de todas formas una compañera de trabajo que me preguntó si tenia algún codigo para generar un matchcode en tiempo de ejecución pero que fuera para reportes simples es decir sin el uso de Dynpros. La salvedad que tenía que tener este código es que además permitiera extraer todos los valores del matchcode…
Algunas imagenes:
Aqui les dejo el código… copiar, pegar y probar!!!!!
Disculpen si no pongo los colores como dios manda, pero no tengo tiempo.!!!
Saludos a tod@s
REPORT ygs_prueba.
DATA : BEGIN OF list_of_fields OCCURS 10,
fieldname LIKE dd03l-fieldname,
END OF list_of_fields.
DATA : indice LIKE sy-tabix,
fieldname LIKE dd03l-fieldname,
fields LIKE help_value OCCURS 10 WITH HEADER LINE,
shrinkfields LIKE dynpread OCCURS 0 WITH HEADER LINE,
dynpfields LIKE dynpread OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF ti_almacen OCCURS 0,
lgort LIKE t001l-lgort,
lgobe LIKE t001l-lgobe,
END OF ti_almacen.
TABLES vbap.
SELECTION-SCREEN BEGIN OF BLOCK blq1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS: s_matnr FOR vbap-matnr NO-EXTENSION NO INTERVALS.
SELECTION-SCREEN END OF BLOCK blq1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_matnr-low.
REFRESH: ti_almacen, list_of_fields, fields, shrinkfields.
CLEAR: ti_almacen, list_of_fields, fields, shrinkfields.
*select lgort lgobe
*into corresponding fields of table ti_almacen
*from t001l
*.
ti_almacen-lgort = ’C001′.
ti_almacen-lgobe = ’XXXX’.
APPEND ti_almacen.
ti_almacen-lgort = ’C001′.
ti_almacen-lgobe = ’OOOO’.
APPEND ti_almacen.
ti_almacen-lgort = ’C001′.
ti_almacen-lgobe = ’AAAAA’.
APPEND ti_almacen.
list_of_fields-fieldname = ’T001L-LGORT’.
APPEND list_of_fields.
list_of_fields-fieldname = ’T001L-LGOBE’.
APPEND list_of_fields.
fieldname = ’S_MATNR’.
CALL FUNCTION ’TRANSFER_NAMES_TO_FIELDS’
EXPORTING
selectfield = fieldname
TABLES
fields = fields
namelist = list_of_fields
EXCEPTIONS
wrong_format_given = 01.
CALL FUNCTION ’HELP_VALUES_GET_NO_DD_NAME’
EXPORTING
selectfield = fieldname
titel = ’Almacen de destino’
use_user_selections = ’S’
IMPORTING
ind = indice
TABLES
fields = fields
full_table = ti_almacen
user_sel_fields = shrinkfields
EXCEPTIONS
full_table_empty = 01
no_tablestructure_given = 02
no_tablefields_in_dictionary = 03
more_than_one_selectfield = 04
no_electfield = 05.
READ TABLE ti_almacen INDEX indice.
CONCATENATE ti_almacen-lgort ti_almacen-lgobe
INTO s_matnr-low SEPARATED BY ’-’.



Comentarios»
No comments yet — be the first.