RE:Mensajes al iniciar la aplicacion
Hola Alejandro:
Te cuento como lo hago yo y ves si te sirve.
En el OpenWindows del menú llamo a Reporte donde le habilito la vista previa y al zoom al 100%. (No te olvides de agregarlo en Procedures)
Cargo una queue y la muestro, el operador sabrá si la imprime o no.
Suponiendo que tenes los archivos:
Clientes donde tenes (el prefijo CLI)
CodCliente este es clave KeyCodCliente
ApellidoNombre
y el resto……..
MovCtas donde tenes (el prefijo MOV)
FechaEmision
FechaVencim Este es clave KeyFechaVencim
CodCliente
Numero
Importe
La Queue la llamo QVencim (el prefijo QV)
Armo un reporte de un archivo que tenga solo un registro para leer,
Modifico la Cabecera y la línea con los datos de la Queue
En TakeRecord uso un código parecido a este:
FREE(QVencim) ! Vacio e inicializo la Queue
I# = 0
Clear(MOV:Record)
SET(MOV:KeyFechaVencim, MOV:KeyFechaVencim)
LOOP UNTIL Access:MovCtas.Next() ! Lee MovCtas hasta el final
IF MOV:FechaVencim Not > Today()
Cycle ! Regreso al loop por que no me importan las que ya se vencieron
End
I# += 1
CLI:CodCliente = MOV:CodCliente
IF Access:Clientes.Fetch(CLi:KeyCodCliente) !Lee Clientes
CLI:ApellidoNombre = ‘INEXISTENTE’ ! Si no lo encuenta le mueve leyenda
END
QV:ApellidoNombre = CLI:ApellidoNombre
QV:FecEmi = MOV:FechaEmision
QV:FecVen = MOV:FechaVencim
QV:Numero = MOV:Numero
QV:Importe = MOV:Importe
QV:Dias = MOV:FechaVencim – Today() ! Calculo los dias al vencimiento
ADD(QVencim,I#) ! Grabo la Queue
IF ERRORCODE() THEN STOP(ERROR()).
END !Loop
La ordeno por cantidad de dias al vencimiento y alfabéticamente por nombre
Sort(QVencim, QV:Dias, QV:ApellidoNombre) ! Orden creciente
! Imprimir desde una Queue
Loop I#= 1 to Records(QVencim)
Get(QVencim,I#)
Print(RPT:Detalle) ! Este es el Detail de la Linea
End
EndPage(Report)
Si quisieras cambiar el orden agregale un signo menos
Sort(QVencim, QV:Dias, -QV:ApellidoNombre) ! Orden alfabetico decreciente
Avisa si te sirve
Saludos desde Venado Tuerto