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




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 12/04/12, 09:11:54
davidmc davidmc is offline
Junior Member
 
Fecha de Ingreso: mar 2011
Mensajes: 2
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.
Responder Con Cita
  #2  
Viejo 12/04/12, 13:10:55
Avatar de kibo
kibo kibo is offline
Senior Member
 
Fecha de Ingreso: may 2011
Localización: Quilmes - Argentina
Mensajes: 177
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...
Responder Con Cita
  #3  
Viejo 12/04/12, 14:27:11
davidmc davidmc is offline
Junior Member
 
Fecha de Ingreso: mar 2011
Mensajes: 2
Muchas gracias por tu ayuda, ahora me sale correctamente .
Responder Con Cita
  #4  
Viejo 12/04/12, 15:08:32
kilysap kilysap is offline
Junior Member
 
Fecha de Ingreso: abr 2011
Mensajes: 3
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
Responder Con Cita
Respuesta


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 22:50:07.


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