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

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

Postby Bayron » Wed Jun 27, 2012 10:31 pm

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

Originalmente se muestra así:
Image

Ahora:
Image

Code: Select all  Expand view  RUN
  DATA lEject INIT .f.
 


Method StartGroup():
Code: Select all  Expand view  RUN
  if ::aGroups[ nGroup]:lHeader
      ::StartLine( ::aGroups[ nGroup]:nHeaderHeight )
      ::aGroups[ nGroup]:Header( ::nRow)
      ::EndLine( ::aGroups[ nGroup]:nHeaderHeight )
   endif

 

Code: Select all  Expand view  RUN
  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 view  RUN

      ::nRow := ::nTitleRow
 

Code: Select all  Expand view  RUN
  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...

Postby Bayron » Wed Jun 27, 2012 10:46 pm

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

Code: Select all  Expand view  RUN
  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...

Postby Bayron » Wed Jun 27, 2012 10:53 pm

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...

Postby Bayron » Wed Jun 27, 2012 11:28 pm

Otra modificación en ColTitle():

Code: Select all  Expand view  RUN
  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...

Postby Bayron » Thu Jun 28, 2012 6:55 pm

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
Bayron
 
Posts: 815
Joined: Thu Dec 24, 2009 12:46 am
Location: Philadelphia, PA

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

Postby Antonio Linares » Thu Jun 28, 2012 9:06 pm

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
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby Bayron » Thu Jun 28, 2012 9:29 pm

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...

Postby Bayron » Thu Jun 28, 2012 9:52 pm

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...
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...

Postby RSalazarU » Fri Jun 29, 2012 1:32 am

Byron:

Yo tengo un codigo que utilizo para situaciones algo parecidas.

Code: Select all  Expand view  RUN
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 view  RUN
ChkNeedNewPage( oRpt, oRpt:nRow + oRpt:nStdLineHeight*1.05 * 14/*numero de lineas*/ )
 


tu deberias hacer algo asi:
Code: Select all  Expand view  RUN
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 view  RUN

::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

O.T. para Antonio

Postby RSalazarU » Fri Jun 29, 2012 1:36 am

Cual es la diferencia entre:

Programador de sistemas y programador de aplicaciones??

Perdon por la ignorancia.

De antemano gracias por la respuesta.

Atentamente.

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

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

Postby Marcelo Via Giglio » Fri Jun 29, 2012 11:57 am

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
Marcelo Via Giglio
 
Posts: 1071
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: O.T. para Antonio

Postby Antonio Linares » Fri Jun 29, 2012 12:55 pm

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
Antonio Linares
Site Admin
 
Posts: 42203
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

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

Postby Bayron » Fri Jun 29, 2012 3:51 pm

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...
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...

Postby jbrita » Fri Jun 29, 2012 5:00 pm

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
jbrita
 
Posts: 504
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 17 guests