Clases

Clases

Postby surGom » Tue Oct 02, 2007 1:20 pm

Estoy tratando de hacer un reporte genérico seleccionando los campos que deseo impimir. Estos campos los cargo en un array unidimensional. Ahora bien si hago la selección de un sólo campo me lo imprime bien. El prg lo hice así

REPORT oReport title "Listado de Clientes" preview
COLUMN DATA (oDbf:cAlias)->(&(aImprimo[nAt]))

END REPORT

Ahora probé tratando de hacerlo usando oReport:AddColumn(oColumn ) y luego tratando de utilizar trcolumn, pero realmente no doy con la forma de programarlo. Necesito me orientaran en como realizarlo.

El asunto es por que es un problema de clases y también porque necesito que me den clases . Es decir ese asunto "Clases" abarca dos significados !!!

Gracias desde ya
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Postby surGom » Tue Oct 02, 2007 11:58 pm

Estue buscando en el foro y encontré una referencia de Julio del 2007 hecha por Ollie e hice lo siguiente

REPORT oReport title "Listado de Clientes" preview

for nAt = 1 to len(aBase:aImprimo)
n := odbf:fieldpos(aBase:aImprimo[nAt])

oReport:AddColumn( TrColumn():New({aBase:aImprimo[nAt]},,{odbf:FieldGet( n )},,,,,,,,,,oReport))

next

END REPORT

ACTIVATE REPORT oReport

Me da el siguiente error

Error description: Error BASE/1004 Class: 'CHARACTER' has no exported method: EVAL
Args:

Stack Calls
===========
Called from EVAL(0)
Called from TRCOLUMN:NEW(75)
Called from REPORIMP(96)

Me pueden orientar?

Gracias
Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Postby surGom » Fri Oct 05, 2007 1:07 pm

Bueno lo pude solucionar así

REPORT oReport title "Listado de Clientes" preview



for nAt = 1 to len(aImprimo)
cBase:= aImprimo[nAt]
column title "" DATA &cBase
next


END REPORT

ACTIVATE REPORT oReport

Pero el problema lo tengo con los títulos, ya que si coloco "column title cbase DATA &cBase", me repite el último título en todas las columnas, probé varias cosas pero no encuentro la solución

Si alguien conoce como hacerlo le agradecería me lo informara

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Postby Antonio Linares » Fri Oct 05, 2007 5:59 pm

Luis,

En vez de usar el comando COLUMN ... llama a esta función:

RptAddColumn( { BuildTitle( nAt ) } ,, { BuildData( nAt, aImprimo ) } )
...
function BuildTitle( nAt )

return { || Str( nAt ) }

function BuildData( nAt, aArray )

return { || aArray[ nAt ] }
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41406
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby surGom » Sat Oct 06, 2007 8:35 pm

Gracias Antonio lo probé y funciona pero en las funciones hay que ponerlo así:

function BuildTitle( nAt )

return { || aImprimo[ nAt ] }

function BuildData( nAt, aArray )

return { || &(aArray[ nAt ]) }

Hace como cuatro días que estoy con esto y no le encontraba la vuelta.
Otra vez muchas Gracias

Luis
surGom
 
Posts: 639
Joined: Wed Oct 19, 2005 12:03 pm

Re:

Postby goosfancito » Tue May 26, 2009 10:19 pm

Antonio,
Como se define una fuente para pasarlo como parametro a este rptAddColumn?

Gracias,

Antonio Linares wrote:Luis,

En vez de usar el comando COLUMN ... llama a esta función:

RptAddColumn( { BuildTitle( nAt ) } ,, { BuildData( nAt, aImprimo ) } )
...
function BuildTitle( nAt )

return { || Str( nAt ) }

function BuildData( nAt, aArray )

return { || aArray[ nAt ] }
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: karinha and 54 guests