No consigo un "atached"

No consigo un "atached"

Postby Willi Quintana » Thu Nov 24, 2005 9:31 pm

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
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Postby Antonio Linares » Fri Nov 25, 2005 9:53 am

Willi,

Prueba así:

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

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

Postby Willi Quintana » Fri Nov 25, 2005 3:27 pm

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

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

Postby Willi Quintana » Tue Nov 29, 2005 1:09 am

No hay solucion para mi lio??

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

Postby R.F. » Tue Nov 29, 2005 2:41 am

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.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby Antonio Linares » Tue Nov 29, 2005 7:57 am

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


Return to FiveWin para CA-Clipper

Who is online

Users browsing this forum: No registered users and 12 guests