Usp de STAR DOC

Topic Specific Tutorials and Tips.

Moderator: Rathinagiri

Post Reply
joposadas

Usp de STAR DOC

Post by joposadas »

Grupo,

¿Alguien tiene un ejemplo de como se usa STAR DOC..END DOC, ya que estoy haciendo pruebas, pero no obtengo resultado que deseo, es decir, tengo un PRG donde tengo los cabeceros de las impresiones
algo asi como esto
PROCEDURE PrintHeader(PnNumHead)
DO CASE
START PRINTDOC
START PRINTPAGE
CASE PnNumHead == 0001
... imprime el encabezado con los titulos para ese reporte en especial
END PRINTPAGE
END PRINTDOC
ENDCASE
RETURN

Y en el codigo que imprime el detalle tengo:

START PRINTDOC
START PRINTPAGE
DO WHILE !emp->(EOF())


IF plinea = 0
PrintHead(0001)
ENDIF
... imprime los detalle
ENDDO
END PRINTPAGE
END PRINTDOC


Mucho agradecer si alguien me envia un ejemplo para entenderlo y poderlo aplicar , de antemano muchas gracias por la ayuda.



Pero no he logrado que me imprima el cabecero
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Usp de STAR DOC

Post by danielmaximiliano »

Hola Jorge :

este ejemplo a sido sacado de C:\hmg.3.2\samples\Controls\PRINTEAN13\demo.prg

Code: Select all

SELECT PRINTER DEFAULT PREVIEW ;
			ORIENTATION	PRINTER_ORIENT_PORTRAIT ;
			PAPERSIZE	PRINTER_PAPER_A4 ;
			QUALITY		PRINTER_RES_MEDIUM
	
	START PRINTDOC name 	'TEST ' 
	START PRINTPAGE

	// left margin
	nOffset := 10
	nModuleWidth := 0.33
	nBeginRow := 20
	nEndRow := 40
	
	@ nEndRow+2, nOffset print cKodEAN13 ;
					FONT "ARIAL CE" ;
					SIZE 11 ;
					COLOR BLACK

	lWhiteStrip := .f.

	for i:=1 to len(cPreparedEAN13)
		nStripWidth := val( substr(cPreparedEAN13,i,1) )
		if lWhiteStrip
			//@ nBeginRow, nOffset print rectangle to nEndRow, nOffset + nModuleWidth*nStripWidth penwidth 0.1 color WHITE
		else
			//print black strip
			@ nBeginRow, nOffset print rectangle to nEndRow, nOffset + nModuleWidth*nStripWidth penwidth 0.01 color BLACK FILLED
		endif
		
		//switch colors		
		lWhiteStrip := !lWhiteStrip
		
		nOffset += nModuleWidth*nStripWidth
	next i

		
	END PRINTPAGE
	END PRINTDOC
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Usp de STAR DOC

Post by Javier Tovar »

Hola joposadas

Yo también he empezado a practicar lo de la impresión y me estoy guiando con la ayuda que esta en el IDE-AYUDA-REFERENCIA DE HMG-Print System, ahí he encontrado lo necesario para empezar, todavía no tengo una aplicación completa, estoy en la etapa de acierto-error. Espero que también te sirva.

Saludos.
joposadas

Re: Usp de STAR DOC

Post by joposadas »

Max,

Gracias pero eso no me sirve, yo ya he logrado imprimir el detalle o el encabezado, PERO no he logrado hacer que me imprima el encabezado y luego el detalle y después al cambio de hoja imprima de buevo el encabezado y continue con el detalle y así sucesivamente hasta el fin del archivo.

Uos la version HMG3.0.46 y en los ejemplo que he visto no he encontrado lo que necesito, por esta razón recurro al forum.


Gracis de nuevo por tu comentario.
User avatar
danielmaximiliano
Posts: 2612
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Usp de STAR DOC

Post by danielmaximiliano »

Hola de nuevo Jorge :

si te fijas el Referencia de HMG : file:///C:/hmg.3.2/doc/data/index.htm
veras que es simple

Code: Select all

SELECT PRINTER <cPrinter> | DEFAULT 
START PRINTDOC [ NAME <cPrintJobName> ]
START PRINTPAGE
PRINT DATA 
END PRINTPAGE 
START PRINTPAGE
PRINT DATA 
......
......todas las paginas que necesitas, 
.......
END PRINTDOC 

Simple...
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: Usp de STAR DOC

Post by Javier Tovar »

Hola joposadas

Bueno ya sabiendo tu inquietud, se me ocurre que debes de llevar una variable que te vaya contando el número de detalles que llevas ya impresos. Pues bien si en tu página llevas 20 y esos son todos los que caben en tu hoja y haces tu salto de pagina, entonces la variable la regresar a := 0, entonces pones un IF nVariable=0 entonces imprime el encabezado y después el detalle... No lo he hecho, pero como te digo estoy empezando a practicar.
Espero te sirva.

Saludos.
martingz
Posts: 395
Joined: Wed Nov 18, 2009 11:14 pm
Location: Mexico

Re: Usp de STAR DOC

Post by martingz »

Jorge yo ,lo que hago en tu caso es

plinea:=1
START PRINTDOC
START PRINTPAGE
Hearder(1)
DO WHILE !emp->(EOF())
... imprime los detalle
IF plinea <=50
PLINEA++
ELSE
END PRINTPAGE
START PRINTPAGE
PLINEA:=1
Header(1)
ENDIF
ENDDO
END PRINTPAGE
END PRINTDOC

function header
DO CASE
CASE PnNumHead = 1
... imprime el encabezado con los titulos para ese reporte en especial
CASE PnNumHead = 2
... imprime el encabezado con los titulos para ese reporte en especial
ENDCASE
return Nil
joposadas

Re: Usp de STAR DOC

Post by joposadas »

Martingz

Muchas gracias por tú sugerencia, lo hice y me funcionó tal y como lo necesitaba, ahora a podré completas todos los reportes que me hacen falta de nuevo muchas gracias,
JALMAG
Posts: 262
Joined: Sun Jan 10, 2010 7:05 pm
DBs Used: DBF, MariaDB
Location: España - Spain

Re: Usp de STAR DOC

Post by JALMAG »

joposadas wrote:Martingz

Muchas gracias por tú sugerencia, lo hice y me funcionó tal y como lo necesitaba, ahora a podré completas todos los reportes que me hacen falta de nuevo muchas gracias,
Hola, en Minigui extended (carpeta BASIC incluso en ADVANCED) tienes ejemplos de lo que necesitas.
Post Reply