#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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. |
#3
|
||||
|
||||
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
__________________
David Carballido Córdova |
#4
|
|||
|
|||
Muchas gracias a los dos. Voy a probar ambas opciones. No conocía los define y tienen buena pinta.
Un saludo. |
#5
|
|||
|
|||
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 Úlima edición por osoro fecha: 16/01/14 a las 21:29:00. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|