www.clarioneros.com

El rincón de los desarrolladores
Fecha actual Lun Dic 11, 2017 9:06 pm

Todos los horarios son UTC




Nuevo tema Responder al tema  [ 7 mensajes ] 
Autor Mensaje
NotaPublicado: Jue Sep 14, 2017 8:06 pm 
Desconectado

Registrado: Mié Abr 16, 2014 8:23 pm
Mensajes: 35
Ubicación: Buenos Aires - Argentina
Buenas tardes a todos, tengo una Queue que necesito recorrer para hacer una impresion, pero no sale del Loop al terminar de recorrer la cola, sino que vuelve a leer varias veces la Queue. Adjunto codigo que estoy usando a ver si alguno sabe donde esta el error.
Desde ya muchisimas gracias a todos.

LOOP X# = 1 to Records(QAudiDeriva)
dbg('X# = ' & X#)
GET(QAudiDeriva,X#)
IF ERRORCODE() THEN BREAK END
L:COD_NUM = WHAT(QAudiDeriva,1) ! WHAT Retorna un campo especifico
dbg('******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : ' & L:COD_NUM)
END

Y aca una pequeña muestra de lo que me esta haciendo :

[6160] X# = 1
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1129
[6160] X# = 2
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1298
[6160] X# = 3
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1302
[6160] X# = 1
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1129
[6160] X# = 2
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1298
[6160] X# = 3
[6160] ******>>> CODIGO LEVANTADO DE LA QUEUE QUE CARGO EN L:COD_NUM : 1302
[6160] X# = 1
............................ y asi muchas veces


Arriba
 Perfil Email  
 
NotaPublicado: Jue Sep 14, 2017 10:42 pm 
Desconectado

Registrado: Mié Abr 16, 2014 8:23 pm
Mensajes: 35
Ubicación: Buenos Aires - Argentina
Tambien probe contando los Registros cargados en la QUEUE :

Registros# = RECORDS(QAudiDeriva)
dbg('Registros# :' & Registros#)
LOOP x# = 1 TO Registros#
!!! LOOP X# = 1 to Records(QAudiDeriva)
dbg('X# = ' & X#)
GET(QAudiDeriva,X#)
IF ERRORCODE() THEN BREAK.
L:COD_NUM = QUE:COD_NUM
...........
END

Cualquier ayuda sera muy bienvenida.
Saludos

Carlos Weidl


Arriba
 Perfil Email  
 
NotaPublicado: Vie Sep 15, 2017 3:26 pm 
Desconectado

Registrado: Lun Feb 07, 2011 4:45 pm
Mensajes: 358
Ubicación: Santo Domingo,Rep.Dominicana
Hola colega pprueba este codigo



Imprimir Cola de Memoria
Este codigo se coloca el Takerecord de la Proces(Cla) Pp5001

loop X# = 1 to records(QImpresion)
get(QImpresion,X#)
L:Medicamento = what(QImpresion,1)
L:NomComercial = what(QImpresion,2)
L:DrogaPrincipal = what(QImpresion,3)
L:Accion = what(QImpresion,4)
print(RPT:Detail)
end

Tambien te dejo otro codigo

En TakeRecord PP 5001

!Codigo control de Impresion Modelo 2
LOOP C# = 1 to RECORDS(Datos1)
GET(Datos1,C#)
IF ERRORCODE() THEN STOP(ERROR()).
PRINT(RPT:DETAIL)
END!LOOP
ENDPAGE( Report)
Free(datos1)

Nota: En la Propieda del reporte
en filtro poner
FALSE

Espero que te sirva

muchas bendiciones

_________________
Ing. R. Pacheco
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
CRISTO DIJO: "Yo soy el camino, y la verdad,y la vida; nadie viene al Padre, sino por mí". S. Juan 14:6


Arriba
 Perfil Email  
 
NotaPublicado: Vie Sep 15, 2017 5:42 pm 
Desconectado

Registrado: Mié Abr 16, 2014 8:23 pm
Mensajes: 35
Ubicación: Buenos Aires - Argentina
Gracias Ramon por la respuesta, viendo el ejemplo que me pasaste es lo mismo que vengo haciendo. Pero el LOOP no se corta.
Te paso el codigo completo :

Registros# = RECORDS(QAudiDeriva)
LOOP x# = 1 TO Registros#
GET(QAudiDeriva,X#)
IF ERRORCODE() THEN BREAK.
L:COD_NUM = QUE:COD_NUM
!
CLEAR(DES:RECORD)
DES:COD_NUM = L:COD_NUM
Access:DESPACHO.Fetch(DES:key_1)
IF NOT ERROR()
PRINT(RPT:Detail)
!
CLEAR(HIS:RECORD)
HIS:COD_NUM = L:COD_NUM
SET(HIS:key_1,HIS:key_1)
LOOP Until Access:HISTORIAL.Next() OR HIS:COD_NUM <> L:COD_NUM
IF NOT ERROR()
PRINT(RPT:DetailHISTORIAL)
END
END
!
END

Esto lo tenia en el Process Manger - Take Record - Priority 5500 (Ahora tambien probe en 5001 y es lo mismo )

Tengo 2 FILTERS : Detail = FALSE y DetailHISTORIAL = FALSE

Y la declaracion en Tablas esta de la siguiente manera :
Report Procedure -> DESPACHO - DES:key_1
Other Tables - HISTORIAL - HIS:key_1


Me da la impresion que hace el LOOP por cada Registro en DESPACHO. No se, no logro entender que esta mal.
Desde ya muchas gracias por cualquier ayuda.
Saludos

Carlos Weidl


Arriba
 Perfil Email  
 
NotaPublicado: Vie Sep 15, 2017 10:55 pm 
Desconectado

Registrado: Dom Feb 06, 2011 10:02 pm
Mensajes: 253
Ubicación: Trelew, Chubut, Argentina
Hola, en report properties, data source, elegiste la opción memory ?

Saludos

Daniel


Arriba
 Perfil Email  
 
NotaPublicado: Sab Sep 16, 2017 11:10 am 
Desconectado

Registrado: Lun Feb 07, 2011 4:45 pm
Mensajes: 358
Ubicación: Santo Domingo,Rep.Dominicana
Hola colega

Busca en la seccion de truco este
demo de mi autoria llamado asi:
Demo de Queue evitando el Devoldamiento en los reportes

Te enseñara haracer lo que tu quiere

_________________
Ing. R. Pacheco
Analista Programador
Pachecoramon@hotmail.com, Skype:pachecoramon
Santo Domingo, Rep. Dominicana
CRISTO DIJO: "Yo soy el camino, y la verdad,y la vida; nadie viene al Padre, sino por mí". S. Juan 14:6


Arriba
 Perfil Email  
 
NotaPublicado: Sab Sep 16, 2017 10:14 pm 
Desconectado

Registrado: Mié Abr 16, 2014 8:23 pm
Mensajes: 35
Ubicación: Buenos Aires - Argentina
Muchisimas gracias Daniel y Ramon. Al final lo hice sin usar la QUEUE, directamente filtre en cada una de las tablas involucradas y lo mande a imprimir.
Igual el reporte me lo deje para ver, con mas tiempo, por que no salia del LOOP, he hecho varios reportes usando QUEUES y no me habia pasado esto, asi que me quede con la duda.

Si logro ver donde estaba la falla la posteo aca por si alguien se encuentra con el mismo problema.
Nuevamente muchas gracias.
Saludos

Carlos Weidl

PD. : Daniel, buen dato, cuando intentaba imprimir la QUEUE el Data Source lo tenia en File.
Ramon, muy buen aporte el ejemplo de manejo de Queues lo voy a chusmear tranquilo, gracias.


Arriba
 Perfil Email  
 
Mostrar mensajes previos:  Ordenar por  
Nuevo tema Responder al tema  [ 7 mensajes ] 

Todos los horarios son UTC


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado


No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Saltar a:  
cron
Powered by phpBB® Forum Software © phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com