MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
 
 
Herramientas Buscar en Tema Desplegado
Prev Mensaje Previo   Próximo Mensaje Próx
  #3  
Viejo 06/05/08, 22:42:37
Avatar de Claudia Valdespino
Claudia Valdespino Claudia Valdespino is offline
Member
 
Fecha de Ingreso: mar 2007
Localización: Lima - Perú
Mensajes: 54
Matchcodes programados

Hola Eduardo, puedes emplear una ayuda de búsqueda programada para tu desarrollo. Te explico con un ejemplo de creación de distritos:

1. Tienes tu pantalla 0150 con los campos departamento, provincia, distrito, descripción del distrito y los botones grabar y cancelar. En la lógica de proceso de la pantalla tienes:

process before output.
module status_0150. (vacío)

process after input.
module grabar. (lógica para grabar el registro en una tabla)

process on value-request.
field w_codprov module f4_provincias.
field w_coddis module f4_distritos.

2. El código del module f4_provincias es el siguiente:

* Obtienes el valor del campo departamento mediante la función GET_DYNP_VALUE:
DATA: w(4) TYPE c.
CALL FUNCTION 'GET_DYNP_VALUE'
EXPORTING
i_field = 'W_CODDEP2' (nombre del campo)
i_repid = 'ZPS_MNT_TAB_LOCAL' (nombre del programa)
i_dynnr = '0150' (número de la pantalla)
CHANGING
o_value = w. (valor del campo solicitado)

* Selecciona todas las provincias que pertenecen al departamento seleccionado:
REFRESH itab_prov_dep. CLEAR v_depa.
CONCATENATE '%' w '%' INTO v_depa.
SELECT codprov desprov INTO TABLE itab_prov_dep
FROM zamprovincia
WHERE coddep LIKE v_depa.

* Tabla de campos a mostrar
REFRESH h_field_tab.

* Código de provincia
CLEAR h_field_tab.
h_field_tab-tabname = 'ITAB_PROV_DEP'.
h_field_tab-fieldname = 'CODPROV'.
h_field_tab-scrtext_s = 'Cód. Prov.'.
h_field_tab-scrtext_m = 'Cód. Provincia'.
h_field_tab-scrtext_l = 'Código Provincia'.
h_field_tab-position = '1'.
h_field_tab-offset = '0'.
h_field_tab-leng = '2'.
h_field_tab-outputlen = '2'.
h_field_tab-intlen = '2'.
APPEND h_field_tab.

* Descripción de provincia
CLEAR h_field_tab.
h_field_tab-tabname = 'ITAB_PROV_DEP'.
h_field_tab-fieldname = 'DESPROV'.
h_field_tab-scrtext_s = 'Descripción Provincia'.
h_field_tab-scrtext_m = 'Descripción Provincia'.
h_field_tab-scrtext_l = 'Descripción Provincia'.
h_field_tab-position = '2'.
h_field_tab-offset = '2'.
h_field_tab-leng = '22'.
h_field_tab-outputlen = '22'.
h_field_tab-intlen = '22'.
APPEND h_field_tab.

* Se llama a la función para mostrar la ventana (pop-up) con los valores de la provincias por departamento:
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CODPROV' (Campo a recuperar)
dynpprog = 'ZPS_MNT_TAB_LOCAL' (Nombre del programa)
dynpnr = '0150' (Número de la pantalla)
dynprofield = 'W_CODDEP2' (Nombre del campo origen)
value_org = 'S'
TABLES
value_tab = itab_prov_dep (Tabla interna de valores propuestos)
field_tab = h_field_tab (Tabla interna de campos mostrar)
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.

IF sy-subrc NE 0.
MESSAGE ID sy-msgid
TYPE sy-msgty
NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

3. El código del module f4_distritos para obtener los distritos por departamento tiene la misma lógica que el module f4_provincias, solo que para llenar la tabla interna ahora consultas la tabla de distritos.

Espero el código te sea de ayuda. Suerte!!!
__________________
Saludos,

Claudia V.
Responder Con Cita
 


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 04:30:59.


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