Preview FWH12.04:= Necesito que me hechen una manita...

Post Reply
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Cabeceras de columnas no son pintadas cuando EJECT es incluido en GROUP

Originalmente se muestra así:
Image

Ahora:
Image

Code: Select all | Expand

  DATA lEject INIT .f.
 


Method StartGroup():

Code: Select all | Expand

  if ::aGroups[ nGroup]:lHeader
      ::StartLine( ::aGroups[ nGroup]:nHeaderHeight )
      ::aGroups[ nGroup]:Header( ::nRow)
      ::EndLine( ::aGroups[ nGroup]:nHeaderHeight )
   endif

 

Code: Select all | Expand

  if ::aGroups[ nGroup]:lHeader
      if !::aGroups[ nGroup]:lEject .and. ! ::lFirstRow
         ::TotalLine( ::nTotalLine, GRID_ABOVE )
         ::lEject := .f.
         ::ColTitle()
      else
         ::lEject := .t.
      endif

      ::StartLine( ::aGroups[ nGroup]:nHeaderHeight )
      ::aGroups[ nGroup]:Header( ::nRow)
      ::EndLine( ::aGroups[ nGroup]:nHeaderHeight )
   endif

 


Method ColTitle():

Code: Select all | Expand


      ::nRow := ::nTitleRow
 

Code: Select all | Expand

  if !::lEject .and. ! ::lFirstRow
      ::nRow := ::nRow
   else
      ::nRow := ::nTitleRow
   endif
 


Pero tengo algunos problemillas:
Cuando la página se llena, distorciona las siguientes 2 hojas y después continúa imprimiendo normalmente...

Seguiré investigando a ver que pasa...
Last edited by Bayron on Wed Jun 27, 2012 10:50 pm, edited 1 time in total.
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview:= Necesito que me hechen una manita...

Post by Bayron »

Después de la ultima modificación en ColTitle(), tuve que añadir esta condicion:

Code: Select all | Expand

  if !::lEject .and. ! ::lFirstRow
      ::nRow := ::nRow
   else
      ::nRow := ::nTitleRow
   endif
   
   if ::nRow >= ::nBottomRow
      ::nRow := ::nTitleRow
   endif

 


Ahora se genera aparentemente bien, pero nesito hacer más pruebas...

Haciendo más pruebas...
Last edited by Bayron on Wed Jun 27, 2012 10:55 pm, edited 1 time in total.
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Si alguien pudiera proporcionarme un ejemplo autocontenido con su base de datos, que maneje 2 o más Grupos, sería grandioso para hacer las pruebas respectivas...

Si alguien cree que ésta no es la manera correcta de general el reporte, quisiera escuchar sus opiniones... especialmente de FiveTech...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview:= Necesito que me hechen una manita...

Post by Bayron »

Otra modificación en ColTitle():

Code: Select all | Expand

  if !::lEject .and. ! ::lFirstRow
      ::nRow := ::nRow

      if ::nRow >= ( ::nBottomRow - ::nTitleHeight )
         ::nRow := ::nTitleRow
      endif
   
   else
      ::nRow := ::nTitleRow
   endif
 

Ahora tambien se genera aparentemente bien con samples\report.prg

Haciendo más pruebas... Necesito más ejemplos...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Image

Como puede verse en la imagen, ya casi hace lo que quiero, pero no he encontrado como obligar al reporte que continúe en la siguiente página al darse ciertas condiciones, y por ahora está imprimiendo así...

Ya pasé todo el día con la clase, yo creo que se me va a hacer más fácil hacer el reporte a mano...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Antonio Linares »

Bayron,

Te agradecemos tus pruebas y contribuciones.

Yo personalmente no uso mucho los reportes (soy un programador de sistemas, no de aplicaciones) :-)

Te ayudaremos en todo lo posible, aunque nadie mejor que tu mismo en las condicones en que lo necesitas, para probarlo

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Gracias Antonio, a mi nada mas me gusta dar lata con los detalles...

Soy de la idea que todo tiene que quedar casi tan perfecto como sea posible...

Por eso me encanta este foro donde puedo encontrar la manera de hacer lo que quiero...

Yo nunca he usado reportes (ni siquiera en Clipper), pero ya que ahora estoy probando con uno, porqué no dar la lata para retocar la clase???

Si pudieras darme una idea de como forzar manualmente el reporte a iniciar una nueva página...!!!!

He intentado con ::EndPage ::EndGroup , etc. etc. pero aun no he podido... He tratado de ver en la clase que es lo que produce el cambio de página, pero no puedo verlo...
El asunto es que no se si puedo forzarlo, porque al hacerlo, podría causar problemas con la clase...

Con el simple hecho de forzar el ColTitle(), he notado algunos cambios en la conducta de otros reportes...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Antonio,
No se si va a ser posible utilizar la clase report para hacer la impresion de la manera que creo debería ser la correcta...

Lo que quiero hacer es lo siguiente:

Dadas las condiciones que tengo ahora: CelView(), Group with title, Columns with header and footer

Quisiera pre-procesar los grupos para saber la cantidad de espacio que ocupan, para poder calcular en qué momento terminar la página y continuar en la siguiente... dependiendo de la cantidad de página utilizada hasta el momento...Por ejemplo, si ya se utilizó un 80% de la página y el siguiente grupo es mayor que el espacio disponible, inicarlo en la siguiente página... evitando así, que solo el título del grupo se imprima en la página actual, por ejemplo....
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
RSalazarU
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia
Contact:

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by RSalazarU »

Byron:

Yo tengo un codigo que utilizo para situaciones algo parecidas.

Code: Select all | Expand

function ChkNeedNewPage(oRpt,nRow)
   if nRow >= oRpt:nBottomRow
      oRpt:oDevice:EndPage()
      oRpt:StartPage()
      oRpt:nRow += 1 * oRpt:nStdLineHeight
   endif
return nil
 


y la invoco asi:

Code: Select all | Expand

ChkNeedNewPage( oRpt, oRpt:nRow + oRpt:nStdLineHeight*1.05 * 14/*numero de lineas*/ )
 


tu deberias hacer algo asi:

Code: Select all | Expand

ChkNeedNewPage( oRpt, oRpt:nRow + < Numero de lineas del HeaderCol x alto de cada linea del HeaderCol > )
 


TReport tiene unas datas que te dan directamente el alto del HeaderCol, no lo recuerdo en este momento, pero puedes calcularlo...

Seria ideal que esta funcion sea parte de TReport.

Ademas, en otras situaciones parecidas (Grupos multilinea, totales multilinea, graficas que se imprimiran en otra hoja, etc) uso bastante los siguientes metodos:

Code: Select all | Expand


::oReport:EndLine( nHeight )               //RSU avanzamos una linea en el reporte (el tamaño de nHeight)
::oReport:StartLine( nHeight )             //RSU verifica si se puede imprimir mas lineas en la pagina
 


Espero te sirva

Atentamente,

Rolando
Cochabamba, Bolivia
RSalazarU
Posts: 211
Joined: Wed Jul 16, 2008 12:59 pm
Location: Cochabamba-Bolivia
Contact:

O.T. para Antonio

Post by RSalazarU »

Cual es la diferencia entre:

Programador de sistemas y programador de aplicaciones??

Perdon por la ignorancia.

De antemano gracias por la respuesta.

Atentamente.

Rolando
Marcelo Via Giglio
Posts: 1079
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia
Has thanked: 1 time
Been thanked: 1 time

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Marcelo Via Giglio »

Byron,

siendo que estas mejorando la clase report, puede que te sirva estas modificaciones que las hice un tiempo atras, en el zip esta un ejemplo para ver las posibilidades y genera el código

https://www.box.com/shared/1hxlyck0za

saludos

Marcelo
User avatar
Antonio Linares
Site Admin
Posts: 42655
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 67 times
Been thanked: 96 times
Contact:

Re: O.T. para Antonio

Post by Antonio Linares »

RSalazarU wrote:Cual es la diferencia entre:

Programador de sistemas y programador de aplicaciones??

Perdon por la ignorancia.

De antemano gracias por la respuesta.

Atentamente.

Rolando


Rolando,

A grandes rasgos, un programador de aplicaciones construye aplicaciones para usuarios finales, y un programador de sistemas construye herramientas que son usadas por otros programadores. En realidad no es algo que esté delimitado al 100%, pero sirve como aproximación :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Bayron
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by Bayron »

Gracias Rolando.... efectivamente he hecho pruebas con nRow >= oRpt:nBottomRow, y he tratado on oRpt:oDevice:EndPage(), y hace lo que quiero con la primera página, ppppppeeeeeeerrrrrrrooooo, en un reporte de 2 páginas, me distorciona una segunda y tercera página y luego continúa bien el la cuarta...

Lo más seguro es que yo no esté usando bien las instrucciones o las esté usando en el lugar equivocado... Si pudieras publicar un ejemplito de como la usas tu, o enviarmelo a mi correo, nos ayudaría a todos....

Marcelo, las clases de FiveWin son muy poderosas, con solo haberle modificado un par de líneas es que estoy consiguiendo todo esto... estoy también utilizando las modificaciones muy acertadas de Francisco Alegría...
=====>

Bayron Landaverry
(215)2226600 Philadelphia,PA, USA
+(502)46727275 Guatemala
MayaBuilders@gMail.com

FWH12.04||Harbour 3.2.0 (18754)||BCC6.5||UEstudio 10.10||
Windows 7 Ultimate

FiveWin, One line of code and it's done...
jbrita
Posts: 507
Joined: Mon Jan 16, 2006 3:42 pm

Re: Preview FWH12.04:= Necesito que me hechen una manita...

Post by jbrita »

Amigo prueba esto.
en printer.prg agregas esto:

METHOD CmRoundBox( nRow, nCol, nBottom, nRight, nWidth, nHeight, oPen, nBGColor ) INLINE ; // <new193-7>
::Cmtr2Pix( @nRow, @nCol ),;
::Cmtr2Pix( @nBottom, @nRight ),;
::RoundBox( nRow, nCol, nBottom, nRight, nWidth, nHeight, oPen, nBGColor )


y luego lo llamas asi

oPrn:CmRoundBox(3.8,1.2,4.5,19.5,,,,CLR_LCELES )

saluds
Post Reply