Página 1 de 1

Bloque de código y REPORT

Publicado: Jue Mar 19, 2009 7:16 pm
por Israel Solis
Amigos:
Existe alguna manera de resolver lo siguiente:
Dentro de una clase que utilizo para la impresión de un Reporte tengo un método donde se crean las columnas disponibles para el reporte, pero en un punto debo crear unas columnas que no sé cuantas serán en total por lo que hago un ciclo FOR
FOR nCampo := 1 TO Len(aUsrFields)
nCol := COL_CreUsuario + nCampo
cCampo := AllTrim(aUsrFields[nCampo, USRFLD_Campo])
bData := &("{|| ::aReporte[::nRenArr, " + StrTrim(nCol) + "]}") // Aquí­ necesito crear el código de Bloque que deberá ser interpretado al ejecutar el REPORT
AAdd(::aColumnas2, {{{||""}, CharToBlock(CHR(34) + cCampo + CHR(34))}, bData, {"Campo" + StrTrim(nCampo), "C", 50}, nCol, nCol})
NEXT
En tiempo de ejecución, al intentarse formar el REPORT marca el error:
----------------------- Información detallada del error -----------------------
Subsistema: BASE
Código de error: 1003
Estado: .F.
Descripción: No existe la variable
Operación: SELF
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
(b)TFRMREPEMPLEADO:COLUMNAS (325) // Método y lí­nea donde se crea el código de bloque (mencionado arriba)
TRPTCOLUMN:PRINTDATA (1537)
TREPORT:RUN (479)
TFRMREPEMPLEADO:REPTOPRINT (670)
La pregunta es ¿Cuál serí­a la mejor manera de crear un reporte que incluya columnas creadas a través de código de bloque con macro-expresión donde se hace referencia a DATAS de la misma clase donde se construye el reporte?
Espero haber sido claro, ojalá puedan ayudarme,
MIL GRACIAS
Saludos!!
Israel
--

Bloque de código y REPORT

Publicado: Jue Mar 19, 2009 10:48 pm
por zeasoftware
Al inicio de tu proceso pon:
MemVar oSelf
oSelf := SELF
bData := &("{|| oSelf:aReporte[::nRenArr, " + StrTrim(nCol) + "]}")
La cuestion es que en los bloques de codigo no se alcanzan las variables locales, y SELF se define como LOCAL.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
--

Bloque de código y REPORT

Publicado: Jue Mar 19, 2009 10:50 pm
por zeasoftware
MemVar oSelf
oSelf := SELF
bData := &("{|| oSelf:aReporte[oSelf::nRenArr, " + StrTrim(nCol) + "]}")
La cuestion es que en los bloques de codigo no se alcanzan las variables locales, y SELF se define como LOCAL.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
--

Bloque de código y REPORT

Publicado: Vie Mar 20, 2009 1:04 am
por Israel Solis
Ramón:
Funcionó PERFECTO, MIL GRACIAS!!
SALUDOS!!
Israel
"Ramón Zea" <zeasoftware@hotmail.com> escribió en el mensaje de noticias news:[email=49c2bd96@svctag-j7w3v3j....]49c2bd96@svctag-j7w3v3j....[/email]
Al inicio de tu proceso pon:
MemVar oSelf
oSelf := SELF
bData := &("{|| oSelf:aReporte[::nRenArr, " + StrTrim(nCol) + "]}")
La cuestion es que en los bloques de codigo no se alcanzan las variables locales, y SELF se define como LOCAL.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
--