No consigo un "atached"

Post Reply
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

No consigo un "atached"

Post by Willi Quintana »

Hola Antonio.,..
tengo este lio...
...
...
AaDd(aCabe,"Codigo")
AaDd(aCabe,"Producto")
AaDd(aCabe,"Unidad")

FOR nCont := 1 to 3
COLUMN TITLE aCabe[nCont] DATA SubStr(Almmas->codcta,1,15) NEXT
...
..
En el reporte, la cabecera de las columnas siempre es "Unidad"·,,,,

un hilo please....

Salu2
Willi
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Willi,

Prueba así:

cTitle = aCabe[nCont]
COLUMN TITLE cTitle DATA SubStr(Almmas->codcta,1,15)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

Hola Antonio,,, gracias por responder.... pero es igual,,, siempre se queda con el ultimo elemento.....

Salu2
Willi
User avatar
Willi Quintana
Posts: 859
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú
Contact:

Post by Willi Quintana »

No hay solucion para mi lio??

Salu2
Willi
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Tienes un problema de "late Bindery" o interpretacion tardia, eso pasa muy a menudo con los comando cuando pretendes hacerlos trabajar dentro de ciclos y cosas asi.

Lo que tienes que hacer es trabajar directamente con el metodo constructor de la clase, este metodo constructor recibe como parametro un bloque de codigo que es el que se encarga de pintar la cabecera, el problema es que estas pasando un valor dinamico... imaginate esto:

For nCont := 1 TO 3
COLUMN TITLE aCabe[nCont] DATA .....
Next

la pregunta.... cuanto vale nCont despues de ejecutar el ciclo..... 3....
y tu pusiste que el titulo de la columna es aCabe[ncont], no aCabe[1], no aCabe[2] , si no nCont, y claro ese valor varia.

Cual es la solucion ?, crear una CADENA DE CARACTERES con los valores textuales y luego convertirla en bloque de codigo para pasarla directamente al metodo constructor de la clase, en este caso a la funcion que crea la columna del reporte.
Saludos
R.F.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Willi,

Prueba así, usando "detached locals":

COLUMN oCol TITLE "" DATA SubStr(Almmas->codcta,1,15)

oCol:aTitle = GetTitle( aCabe, nCont )

...

function GetTitle( aCabe, nCont )

return { || aCabe[ nCont ] }

ó prueba a devolver esto:

return { { || aCabe[ nCont ] } }
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply