Pasar un rango a una subrutina
Hola:
Quiero crearme una subrutina genérica que me llene los rangos. Para ello quiero pasarle por referencia un rango y por valor el signo, la opción, el valor máximo y el mínimo o una lista de valores. Bueno, el problema le tengo, al declarar el valor del rango. Me devuelve un error indicándome que mi rango no tiene la propiedad sign y no sé como decirle que se trata de un tipo rango. Muchas gracias. Saludos. |
para ello utiliza los define.
*----------------------------------------------------------------------* * DEFINE load_sel * *----------------------------------------------------------------------* DEFINE load_sel. * Clear header clear: &1. * Fields initialize &1-sign = &2. &1-option = &3. &1-low = &4. &1-high = &5. * Append... append &1. END-OF-DEFINITION. "load_sel. y como lo llamas desde tu programa facil EJEMPLO 1 load_sel ZT_RAN33 'I' 'EQ' 'KD' ' '. load_sel ZT_RAN33 'I' 'EQ' 'KE' ' '. load_sel ZT_RAN33 'I' 'EQ' 'KG' ' '. EJEMPLO 2 LOAD_SEL: R_BLART 'I' 'EQ' 'VR' ' ', R_BLART 'I' 'EQ' 'KR' ' ', R_BLART 'I' 'EQ' 'VG' ' ', R_BLART 'I' 'EQ' 'KG' ' ', R_BLART 'I' 'EQ' 'VD' ' '. EJEMPLO 3 SELECT BLART INTO VBLARTA FROM ZTSRICLA WHERE GRUPO IN S_GRUPO AND BLART IN S_BLART. LOAD_SEL R_BLART 'I' 'EQ' VBLARTA ' '. ENDSELECT. |
Hola ... puedes crear un tipo local de esta manera:
la tabla y campo debera estar apuntando al tipo de dato que quieres, ahora crear una variable simple como tabla interna: Y cuando quieras llamar a la subrutina la haces de esta manera: Ahi ya te admitirá los campos sign., option, low y high dentro de la subrutina, espero pueda servir :D |
Muchas gracias a los dos. Voy a probar ambas opciones. No conocía los define y tienen buena pinta.
Un saludo. |
Otra manera
Hola, lo que yo hago por ejemplo:
START-OF-SELECTION. SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-y01. SELECT-OPTIONS: ...... seldatab FOR wa_seltrip-DATB1. SELECTION-SCREEN END OF BLOCK 1. ..... AT SELECTION-SCREEN. ..... PERFORM SELDATAB_Ini TABLES seldatab[]. ..... FORM SELDATAB_INI TABLES P_SELDATAB. DATA: .... * tr_seldatab LIKE RANGE OF wa_seltrip-DATB1 "Esta es otra manera * wr_seldatab LIKE LINE OF tr_seldatab. RANGES: tr_seldatab FOR wa_seltrip-DATB1. ..... * Creo el criterio de seleccion tr_seldatab-sign = 'I'. tr_seldatab-option = 'BT'. tr_seldatab-low = vl_Ini_Data_Sel. tr_seldatab-high = vl_Fin_Data_Sel. APPEND tr_seldatab. p_seldatab[] = tr_seldatab[]. ENDFORM. " SELDATAB_INI |
Husos Horarios son GMT. La hora en este momento es 09:47:40. |
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web