Clarion - Consolidar en Queue

 
Vista:

Consolidar en Queue

Publicado por Edgar Monges (33 intervenciones) el 30/10/2009 20:50:07
Saludos a todos,

En realidad tengo dos consultas:
1) Me gustaria saver si alguno me puede guiar como consolidar datos en una queue, es decir tengo algo parecido al siguiente ejemplo:

QE:Sucursal
QE:Caja
QE:Factura
QE:TPago1
QE:TPago2
QE:TPago3
...

Los datos los extraigo de una tabla de tipos de pagos en sonde puede existir "n" cantidad de pagos por factura, y mi identificador unico es Sucursal, Caja, Factura

Mi intension es consolidar los pagos de la factura en una sola linea.

2) Una vez echa la consolidacion como le ago para imprimir desde la queue....

espero hayan com prendido la consulta.

Utilizo c55ee, abc, tps

Desde ya les estoy muy agradecido

Saludos desde ASU-PY
EM
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Consolidar en Queue

Publicado por Marcelo Madelon (572 intervenciones) el 04/11/2009 13:26:50
Hola Edgar:
Lo que haría es incluir también la fecha del pago para poder listar en un rango
! Usaría las variables de fechas: LOC:FechaDesde y LOC:FechaHasta
! Leo Pagos y Cargo Queue

Clear(QResumen) ! Limpio la Queue
I# = 0 ! Cargo la variable en cero
PAG:Fecha = LOC:FechaDesde ! Cargo LOC:FechaDesde al campo PAG:Fecha
SET(PAG:KeyFecha, PAG:KeyFecha) ! Me posiciono a partir de esa fecha
LOOP UNTIL Access:Pagos.Next() OR LOC:FechaHasta > PAG:Fecha ! Leo hasta fecha Tope
! Cargo la Queue y la grabo
I# += 1
QE:Fecha = PAG:Fecha
QE:Sucursal = PAG:Sucursal
QE:Caja = PAG:Caja
QE:Factura = PAG:Factura
QE:TPago1 = PAG:TPago1 ! Usaría un solo campo para guardar los pagos
ADD(QResumen,I#) ! Grabas
IF ERRORCODE() THEN STOP(ERROR()). ! Controlas el error
END !Loop

! Luego ordenaria la Queue por factura y PODRÍAS AGREGARLE LA FECHA
SORT(QResumen, QE:Factura, QE:Fecha)
!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!! Si quieres ordenar solo por factura sería: SORT(QResumen, QE:Factura)
!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Imprimir desde una Queue a mano
Loop I#= 1 to Records(QResumen)
Get(QResumen,I#)
Print(RPT:Detail)
End
EndPage(Report)

! Fín imprimir desde una Queue

Saludos desde Venado Tuerto - Argentina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consolidar en Queue

Publicado por Edgar Monges (33 intervenciones) el 04/11/2009 19:47:44
Te agradesco, pero lo que yo deseo aser mas presisamente es algo parecido a esto

PAG:Fecha = LOC:FechaDesde ! Cargo LOC:FechaDesde al campo PAG:Fecha
SET(PAG:KeyFecha, PAG:KeyFecha) ! Me posiciono a partir de esa fecha
LOOP UNTIL Access:Pagos.Next() OR LOC:FechaHasta > PAG:Fecha ! Leo hasta fecha Tope
! esto lo haria si fuese una tabla temporal
TMP:Sucursal = PAG:Sucursal
TMP:Caja = PAG:Caja
TMP:Factura = PAG:Factura
GET(TEMPORAL,KEY_SucCajFact)
IF ERRORCODE()=35
TMP:Fecha = PAG:Fecha
TMP:Sucursal = PAG:Sucursal
TMP:Caja = PAG:Caja
TMP:Factura = PAG:Factura
TMP:TPago1 = PAG:TPago1 ! Usaría un solo campo para guardar los pagos
ADD(TEMPORAL) ! Grabas
ELSE
TMP:TPago1 += PAG:TPago1 ! Usaría un solo campo para guardar los pagos
PUT(TEMPORAL)
END
IF ERRORCODE() THEN STOP(ERROR()). ! Controlas el error
END !Loop

ESto es lo que yo haria utilizando una tabla temporal, y lo mismo lo quiero hacer con una queue, espero me puedas dar una ayudita

saludos
em. asu-py
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Consolidar en Queue

Publicado por Marcelo Madelon (572 intervenciones) el 05/11/2009 10:23:06
Edgar
Para que necesitas leer una tabla temporal.

Puedes cargar la Queue leyendo los archivos de pagos y tantos otros necesites.
Lo que haría es cargar la queue y luego ordenarla

LOOP UNTIL Access:Pagos.Next() OR PAG:Fecha > LOD:FechaHasta
I# += 1 ! sumas 1 a la variable que usas como posición del registro
........................
aca cargas la queue, como creo que lo que necesitas es AGREGAR registros a la queue no tenes necesidad de hacer ninguna lectura como la que haces
TMP:Sucursal = PAG:Sucursal
TMP:Caja = PAG:Caja
TMP:Factura = PAG:Factura
GET(TEMPORAL,KEY_SucCajFact)
IF ERRORCODE()=35

.......................

ADD(QResumen,I#) ! Grabas en la posición que trae I#
End ! Loop
De la forma que te lo pasé te quedaría
Fecha Caja Sucursal Factura Importe
01/05/2009 0001 25 1104 10.22
22/06/2009 0002 06 2508 1.98
11/07/2009 0001 25 1104 20.00

Con la queue ordenada asi SORT(QResumen,QR:Factura,QR:Fecha)

01/05/2009 0001 25 1104 10.22
11/07/2009 0001 25 1104 20.00
22/06/2009 0002 06 2508 1.98

Espero haberte entendido. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consolidar en Queue

Publicado por Edgar Monges (33 intervenciones) el 05/11/2009 19:27:27
Mil gracias por la ayuda, ya concegui lo que queria hacer, y me ayudo bastante el ejemplo que me enviaste para la impresion del codigo de barras, el resto fue con prueba y error.

Saludos

EM, ASU-PY
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

imprimir desde queue

Publicado por Sergio (1 intervención) el 03/03/2011 03:52:00
Hola te queria preguntar si es posible imprimir desde los datos de una queue en el windos visto por la queue.

quiero imprimir la fechas que sean del mes 2 (febrero)

CargarQueue ROUTINE

SET(OBRASSOCIALES)

LOOP UNTIL EOF(OBRASSOCIALES)
NEXT(OBRASSOCIALES)

Nmes = month(OBR:Fecha)

if Nmes = 2

OS:QUEUE.Fecha = OBR:Fecha
ADD(OS:QUEUE)

end



END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar