Clarion - NO ENCUENTRA EL REPORTE

 
Vista:

NO ENCUENTRA EL REPORTE

Publicado por WALTER (6 intervenciones) el 06/05/2009 14:58:29
TENGO UN REPORTE DONDE MUESTRO LOS DATOS DE UNA TALBA FILTRADO POR LA CLAVE PRINCIPAL. MUESTRO DESDE EL BROWSE EL REGISTRO EN EL QUE ESTOY POSISIONADO.
Y TENGO UNA TABLA HIJA Y MUESTRO EL REPORTE DE DICHA TABLA EN EL EVENTO CLOSE WINDOW DEL REPOTE ANTES NOMBRADO. TENGO UN INDICE POR EL CAMPO DE LA ANTERIOR. PERO AL HACER UN FILTRO EN EL RPOR PROPERTY ME SALE UNA VENTANA QUE DICE "NO SE ENCONTRARON REGISTROS DISPONIBLES PARA PROCESAR". ESTO DEBERIA HACER MEDIANTE UNA BUSQUEDA Y UN LOOP WHILE O EXISTE OTRA FORMA, O QUIZAS EL EVENTO QUE ELEGI ES INCORRECTO. LOS DATOS QUE IMPRIMO EN EL SUGUNDO REPORTE ESTAN GUARDADOS PREVIAMENTE OSEA QUE EL REGISTRO EXISTE. DESDE YA GRACIAS Y SALUDOS. WALTER
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:NO ENCUENTRA EL REPORTE

Publicado por Marcelo Madelon (572 intervenciones) el 08/05/2009 15:45:30
Walter no entiendo bien tu problema. Te cuento como lo hago y ves si te sirve.
Tengo en cada proyecto un archivo que tiene solo un registro grabado (SoloUno.Tps)
¿Por qué un archivo con un solo registro? Para que pase solo una vez por TakeRecord
Defino Variables Globales. Las necesarias para poder leer la factura. (O paso parámetros pero para hacerlo mas facil uso variables globales)
¡ al reporte lo llamo: RptFactura
En el Embeds CloseWindows
Las cargo y llamo al reporte
GLO:NroFactura = FAC:NroFactura ! las cargo
RptFactura ¡ Llamo al reporte

Genero un reporte de SoloUno.Tps
Modifico el Encabezado con los datos del Padre y el detail con los datos del Hijo
Creo todos los details que necesite. Voy a usar los Detail: Detalle y Totales
En TODOS los Detail les vas a tildar la opción FALSE en:
RerportProperties ---- Filters properties --- Tilda: FALSE y ExcludeUnfiltered

Vamos a armar el código para una factura. Padre/Hijo (Factura.Tps / DetaFac.Tps)
En: TakeRecord
FAC:NroFactura = GLO:NroFactura ¡ Cargo el campo por el que voy a leer
IF Access:Factura.Fetch(EMP:KeyNroFactura) !Lee Factura
MESSAGE('No Encuentra Registro en Factura…,'Mensaje del Sistema',ICON:Exclamation)
RETURN Level:Fatal ! Salir del programa
END
LOC:Total = 0 ! Variable local, para sumar el importe total
DET:NroFactura = FAC:NroFactura
SET(DET:KeyNroFactura,DET:KeyNroFactura)
LOOP UNTIL Access:DetaFac.Next() or DET:NroFactura <> FAC:NroFactura
! acá haces los cálculos, cargas variables etc y por luego imprimís el detalle
LOC:Total += DET:TotalItem
Print(RPT:Detalle) ¡ Imprimo el detalle
End ! Loop DetaFact

Print(RPT:Totales) ¡ Imprimo los totales

! Fin espero te sirva.
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