MUNDOSAP

Regresar   MUNDOSAP > TRABAJO Y FORMACION > RUEGOS Y PREGUNTAS
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 08/05/16, 05:06:45
Avatar de ABellamy
ABellamy ABellamy is offline
Member
 
Fecha de Ingreso: dic 2011
Mensajes: 44
Ayuda ALV

Hola, buenas noches. Estoy haciendo un reporte ALV en el que entre otras cosas se muestra la diferencia de días desde cuando se crea, asigna (primera aprobación) y las diferentes aprobaciones que ha tenido una solicitud (rev-trac).
Cuando se hace el cálculo para una sola solicitud no hay problema alguno. La diferencia que se hace entre fecha de creación y primera aprobación está bien; así como entre fecha de aprobación conforme va ejecutándose el loop.
El problema se da cuando se tiene más de una solicitud ya que en vez de validarse fecha de creación y fecha de aprobación de la solicitud actual está tomando la fecha de aprobación anterior que corresponde a la solicitud anterior. Más sin embargo, la segunda posición de la solicitud actual (en el ejemplo sería la 379) hace el cálculo de días con la fecha anterior y así sucesivamente hasta que termina de forma correcta.
Este problema que menciono solo lo tengo cuando amplio el rango desde la desde la pantalla de selección así como para la primera posición de una segunda, tercera, ..., solicitud (rev-trac). Si solo hay una solicitud, no hay problema.
<<Destaco que mis datos ya están ordenados por lo cual sé que el orden presente es el correcto; mismo que lo hago en un FORM anterior.>>

|Rev-Trac|Fec.Creac.| Fec.Aprobc. | Hr.Aprobc. | Días|
103 18.12.2014 29.12.2014 17:46:04 11 <<<< ok 29.12.2014 - 18.12.2014 = 11
103 18.12.2014 29.12.2014 17:46:57 0 <<<< ok 29.12.2014 - 29.12.2014 = 0
103 18.12.2014 29.12.2014 17:26:50 0 <<<< ok 29.12.2014 - 29.12.2014 = 0
379 07.07.2015 24.09.2015 13:26:28 265 <<<< X 24.09.2015 - 07.07.2015 son las fechas que debería de tomar
379 07.07.2015 24.09.2015 13:27:05 0 <<<< ok 24.09.2015 - 24.09.2015 = 0
379 07.07.2015 27.10.2015 21:56:06 33 <<<< ok 27.10.2015 - 24.09.2015 = 33
379 07.07.2015 07.12.2015 12:37:14 40 <<<< ok 07.12.2015 - 27.10.2015 = 40
379 07.07.2015 07.12.2014 12:38:01 0 <<<< ok 07.12.2015 - 07.12.2015 = 0

Hasta ahora mi código y lo último agregado:

*---------------------------------------------------------------------*
FORM imprime_datos .

* Declaración de variables locales.
DATA: lv_date_last TYPE sy-datum, "Última fecha
lv_date_current TYPE sy-datum, "Fecha actual
lv_index TYPE i.

* Inicio modif. 06.05.2016.
DATA: lv_rt_current TYPE zreq,
lv_rt_last TYPE zreq,
lv_flag TYPE i.
* Fin modif. 06.05.2016.

LOOP AT lt_app.
lv_index = sy-tabix.
lv_flag = sy-tabix. "Add 06.05.2016

CLEAR lv_diff.

* Lectura de datos por solicitud.
READ TABLE lt_req WITH KEY request = lt_app-request.

SELECT SINGLE texto
FROM zstapp
INTO lv_txtst
WHERE status EQ lt_app-status.

IF sy-subrc EQ 0.
lt_out-txtst = lv_txtst.
ENDIF.

IF sy-subrc = 0.
* Validación de la primera fecha.
IF lv_index = 1.
lv_date_last = lt_req-cdate.
ENDIF.
CLEAR lv_index.

* Inicio modif. 06.05.2016
IF lv_flag = 1.
lv_date_current = lv_date_last.
CLEAR lv_flag.
ENDIF.
* Fin modif. 06.05.2016.
ENDIF.

CLEAR: lv_date_current.
lv_date_current = lt_app-mdate.

* Diferencia de días entre status.
CALL FUNCTION 'DAYS_BETWEEN_TWO_DATES'
EXPORTING
i_datum_bis = lv_date_current
i_datum_von = lv_date_last "Aprobación.
IMPORTING
e_tage = lv_diff.

IF sy-subrc EQ 0.
lt_out-diasdif = lv_diff.
ENDIF.

* Inicio modif. 06.05.2016.
lv_rt_current = lt_app-request.
IF lv_rt_current NE lv_rt_last.
lv_flag = 0.
ENDIF.

lv_rt_last = lt_app-request.

* Fin modif. 06.05.2016.

* Traspaso de registros en tablas.
MOVE-CORRESPONDING lt_req TO lt_out.
MOVE-CORRESPONDING lt_app TO lt_out.

* Agregar registros.
APPEND lt_out.

lv_date_last = lv_date_current.

ENDLOOP.
ENDFORM. " IMPRIME_DATOS
*---------------------------------------------------------------------*

Podrían orientarme de favor.
De antemano gracias.


Saludos.
__________________
Es más fácil encontrar el final del arcoíris que el de un estándar SAP.
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 15:41:43.


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