#1
|
|||
|
|||
Meter variable por defecto en un SELECT-OPTIONS
Buenos dias,
Tengo un problema que no consigo solucionar, y es que tengo un rango de fechas el cual quiero que tenga como valor por defecto la semana actual, es decir que en el valor low tenga el lunes anterior y el valor high el domingo siguiente a la fecha de hoy. Lo he conseguido hacer cuando pulso la ayuda de busqueda, pero necesito que se haga cuando aparece la pantalla al ejecutar el programa. Este es el codigo que estoy usando, con este codigo me sale bien pero cuando pulso el boton de la ayuda de busqueda, lo he intentado en el AT SELECTION-SCREEN OUTPUT y en el INITIALIZATION pero no me aparece nada. * PANTALLA DE SELECCIÓN SELECTION-SCREEN BEGIN OF BLOCK param WITH FRAME TITLE text-100. SELECT-OPTIONS: s_fecha FOR sy-datum. SELECTION-SCREEN END OF BLOCK param. ------------------------------------------------------------------------ AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_fecha-low. PERFORM f_lunes_ant. " Subrutina que calcula la fecha del lunes anterior CLEAR v_setvalue. CONCATENATE v_fecha_lun+6(2) '.' v_fecha_lun+4(2) '.' v_fecha_lun(4) INTO v_setvalue. CALL FUNCTION 'SET_DYNP_VALUE' " Función que coloca el valor en el campo de la pantalla EXPORTING i_field = 'S_FECHA-LOW' i_repid = sy-repid i_dynnr = sy-dynnr i_value = v_setvalue. AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_fecha-high. PERFORM f_domingo_des. " Subrutina que calcula la fecha del domingo siguiente CLEAR v_setvalue. CONCATENATE v_fecha_dom+6(2) '.' v_fecha_dom+4(2) '.' v_fecha_dom(4) INTO v_setvalue. CALL FUNCTION 'SET_DYNP_VALUE' " Función que coloca el valor en el campo de la pantalla EXPORTING i_field = 'S_FECHA-HIGH' i_repid = sy-repid i_dynnr = sy-dynnr i_value = v_setvalue. Espero haberme explicado bien, cualquier ayuda lo agradeceria. Úlima edición por davidmc fecha: 12/04/12 a las 09:15:46. |
#2
|
||||
|
||||
Esto debes hacerlo en el evento INITIALIZATION
Deberias de completar el rango del SO y en ese evento... algo asi seria INITIALIZATION PERFORM f_lunes_ant using s_fecha-low. PERFORM f_domingo_des using s_fecha-high. s_fecha-sign = 'I'. s_fecha-option = 'BT'. Append s_fecha. Calculo que con esto va a caminar... |
#3
|
|||
|
|||
Muchas gracias por tu ayuda, ahora me sale correctamente .
|
#4
|
|||
|
|||
select option por default
buen dia yo lo encare distinto y me funciono. . .te paso lo que hice.
Espero te sirva !!! DATA: v_fecha_lun TYPE d, v_fecha_dom TYPE d, p_repid TYPE d020s-prog, p_dynnr TYPE d020s-dnum. p_repid = sy-repid. p_dynnr = sy-dynnr. * PANTALLA DE SELECCIÓN SELECTION-SCREEN BEGIN OF BLOCK param WITH FRAME TITLE t1. SELECT-OPTIONS: s_fecha FOR sy-datum . SELECTION-SCREEN END OF BLOCK param. INITIALIZATION. *CONSIGO EL VALOR DEL LUNES PERFORM f_lunes_ant. *CONSIGO EL VALOR DEL DOMINGO v_fecha_dom = v_fecha_lun + 6. *CARGO EL RANGO DEL SELECT CON LOS VALORES OBTENIDOS MOVE: 'I' TO s_fecha-sign, 'BT' TO s_fecha-option, v_fecha_lun TO s_fecha-low, v_fecha_dom TO s_fecha-high. APPEND s_fecha. **** TITULO DEL FRAME t1 = 'comienzo y fin de la semana'. *&---------------------------------------------------------------------* *& Form F_LUNES_ANT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f_lunes_ant . DATA: f_week TYPE scal-week, f_data TYPE d. *CONSIGO SEMANA DEL AÑO CALL FUNCTION 'DATE_GET_WEEK' EXPORTING date = sy-datum IMPORTING week = f_week EXCEPTIONS date_invalid = 1 OTHERS = 2. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. *CONSIGO PRIMER DIA DE LA SEMANA CALL FUNCTION 'WEEK_GET_FIRST_DAY' EXPORTING week = f_week IMPORTING date = v_fecha_lun EXCEPTIONS week_invalid = 1 OTHERS = 2. IF sy-subrc <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. ENDFORM. " F_LUNES_ANT |
Herramientas | Buscar en Tema |
Desplegado | |
|
|