FoxPro/Visual FoxPro - Problemas al Generar Rportes

 
Vista:
Imágen de perfil de Guillermo

Problemas al Generar Rportes

Publicado por Guillermo (1 intervención) el 10/09/2016 18:09:58
problema

Tengo el siguiente problema al emitir un reporte en tiempo de ejecucion. Cuando lo muestra por primera vez y teniendo mas lineas que las que permite el BODY, me muestra bien, pero cuando quiero ver alguna pagina antes de imprimir, me pone el cursor de los registros del cuerpo en el ultimo. Es decir que si la tabla a mostrar tiene 20 registros y el reporte muestra de a 10 registros, en la primer vista salen bien los 10; pero si toco para ver o adelantar una pagina, se muestra solamente el ultimo registro. Cuál es el problema porque cuando lo estoy diseñando ese detalle no aparece y lo muestra bien , pero cuando creo el ejecutable y proceso ese mecanismo no lo muestra bien, y faltan datos??

En las imagenes la tabla a mostrar tiene 13 registros. y el reporte muestra de a 5 registros. Cuando avanzo una pagina (imagen 2), muestra el ultimo que mostro en la pagina uno. No muestra el 6,7,8,9,10. Y ni hablar de la 3º pagina.

Qué es lo que me falta insertar en el codigo fuente para que esto no pase ?

problema-2

el codigo que uso es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
FUNCTION EmiteReporteDEFrx(nLaSalida1,cTemporalFrx1,nAreaNuevaFrx1,cPrinterDeSalida1,xFormulario1)
LOCAL nSetReportBehavior1 ,cDevices1, cNameForm1
* -----------------------------------------------
* nLaSalida1 = 1 emite a un archivo
* nLaSalida1 = 2 emite a la impresora determinada
* nLaSalida1 = 3 muestra con vista preliminar
* cTemporalFrx1 = Archivo FRX
* nAreaNuevaFrx1 = area de trabajo del FR
* cPrinterDeSalida1 = destino de la impresion
* xFormulario1 = formulario donde lo muestro
* -----------------------------------------------
	IF nLaSalida1 = 1 .or. nLaSalida1 = 2
		nSetReportBehavior1 = SET("ReportBehavior")
		SET PRINTER TO
		SET REPORTBEHAVIOR 80
	ENDIF
	IF nLaSalida1 = 2
		cPrinterDeSalida1 = cPATH + 'SALIDA_IMPRESORA.TXT'
	ENDIF
	USE (cTemporalFrx1) ALIAS 'tbfrx' IN (nAreaNuevaFrx1)
	SELECT 'tbfrx'
	LOCATE FOR Objtype = 1 AND Objcode = 53
	IF FOUND('tbfrx')
		REPLACE Tag WITH "" IN 'tbfrx'
		REPLACE Tag2 WITH "" IN 'tbfrx'
		cDevices1 = 'DEVICE='+cPrinterDeSalida1 +CHR(13)+CHR(10)+'OUTPUT='+cPrinterDeSalida1
		replace EXPR WITH cDevices1 IN 'tbfrx'
	ENDIF
	USE IN 'tbfrx'
	IF nLaSalida1 = 1
		IF !EMPTY(cPrinterDeSalida1)
			SET PRINTER TO NAME (cPrinterDeSalida1)
		ENDIF
		REPORT FORM (cTemporalFrx1) TO PRINTER NOCONSOLE
	ENDIF
	IF nLaSalida1 = 2
		REPORT FORM (cTemporalFrx1) TO FILE (cPrinterDeSalida1) ASCII NOCONSOLE
	ENDIF
	IF nLaSalida1 = 3
		cNameForm1 = xFormulario1.name
   		REPORT FORM (cTemporalFrx1) ENVIRONMENT NOCONSOLE NOWAIT PREVIEW IN WINDOW (cNameForm1) NODIALOG
	ENDIF
	IF nLaSalida1 = 1 .or. nLaSalida1 = 2
	   	SET PRINTER TO
	   	SET PRINT OFF
	   	SET REPORTBEHAVIOR &nSetReportBehavior1
   	ENDIF
RETURN cMuroFrx1
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