FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Clases
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Clases
Posted: Tue Oct 02, 2007 01: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

Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Clases
Posted: 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

Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Clases
Posted: Fri Oct 05, 2007 01: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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Clases
Posted: Fri Oct 05, 2007 05: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
Posts: 652
Joined: Wed Oct 19, 2005 12:03 PM
Clases
Posted: Sat Oct 06, 2007 08: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

Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re:
Posted: 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/

Continue the discussion