QUEUE - No sale del Loop

Consultas, trucos, consejos. Todo sobre Clarion en todas sus versiones
Responder
CWeidl
Novato
Mensajes: 38
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

QUEUE - No sale del Loop

Mensaje por CWeidl » Jue Sep 14, 2017 8:06 pm

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


CWeidl
Novato
Mensajes: 38
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por CWeidl » Jue Sep 14, 2017 10:42 pm

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

R.Pacheco
Al nivel de RZ
Mensajes: 358
Registrado: Lun Feb 07, 2011 4:45 pm
Ubicación: Santo Domingo,Rep.Dominicana
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por R.Pacheco » Vie Sep 15, 2017 3:26 pm

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

CWeidl
Novato
Mensajes: 38
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por CWeidl » Vie Sep 15, 2017 5:42 pm

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

HDMadeira
Al nivel de RZ
Mensajes: 261
Registrado: Dom Feb 06, 2011 10:02 pm
Ubicación: Trelew, Chubut, Argentina
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por HDMadeira » Vie Sep 15, 2017 10:55 pm

Hola, en report properties, data source, elegiste la opción memory ?

Saludos

Daniel

R.Pacheco
Al nivel de RZ
Mensajes: 358
Registrado: Lun Feb 07, 2011 4:45 pm
Ubicación: Santo Domingo,Rep.Dominicana
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por R.Pacheco » Sab Sep 16, 2017 11:10 am

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

CWeidl
Novato
Mensajes: 38
Registrado: Mié Abr 16, 2014 8:23 pm
Ubicación: Buenos Aires - Argentina
Contactar:

Re: QUEUE - No sale del Loop

Mensaje por CWeidl » Sab Sep 16, 2017 10:14 pm

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.


Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados