In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Report de un DBBrowse

Foro de Xailer profesional en español
Responder
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

¿Se pueden agregar columnas a un Reporte dentro de un For...Next?... la
idea es hacer un report de un browse, por ejm
For nI := 1 To Len( oBrw:aCols )
With Object oCol := oRpt:AddColumn()
:bHeader := { &( "{|| oBrw:aCols[" + Str(nI) + '] }' }
:bData := { &( "{|| oBrw:aCols[" + Str(nI) +
']:oDataField:FieldGet() }' }
End
Next
No se en que me estoy equivocando pero me da un error en runtime, cuando
evalúa el bData, el bHeader lo hace bien, si alguien tiene algún ejemplo o
se le ocurre alguna idea, será bienevenido.
Gracias.
Antonio F. Ortega
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Report de un DBBrowse

Mensaje por ignacio »

Antonio,
El problema es que nI siempre vale para cualquier columna Len( oBrw:aCols )
+ 1 ya que es el valor que tiene cuando se ejecutan los codeblock.
El truco consiste en hacer lo que se llama 'detached locals' que se ha
explicado en multitud de ocasiones en este y otros foros de Harbour. Te
ruego por favor lo busques entre los mensajes del foro. Gracias
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Antonio F. Ortega" <antonio.ortega@puentelibros.com> escribió en el mensaje
news:47219fb7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ¿Se pueden agregar columnas a un Reporte dentro de un For...Next?... la
> idea es hacer un report de un browse, por ejm
>
> For nI := 1 To Len( oBrw:aCols )
> With Object oCol := oRpt:AddColumn()
> :bHeader := { &( "{|| oBrw:aCols[" + Str(nI) + '] }' }
> :bData := { &( "{|| oBrw:aCols[" + Str(nI) +
> ']:oDataField:FieldGet() }' }
> End
> Next
>
> No se en que me estoy equivocando pero me da un error en runtime, cuando
> evalúa el bData, el bHeader lo hace bien, si alguien tiene algún ejemplo o
> se le ocurre alguna idea, será bienevenido.
>
> Gracias.
>
> Antonio F. Ortega
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
desarrollo
Mensajes: 109
Registrado: Lun Abr 02, 2007 10:12 am

Report de un DBBrowse

Mensaje por desarrollo »

Antonio,
Hay un mensaje mio en el foro publico del 19.09 (TReport con arrays) en el
que pongo un ejemplo de como usar FOR ... NEXT con TReport. Mira a ver si te
vale.
Saludos
Jose A. Suarez
"Antonio F. Ortega" <antonio.ortega@puentelibros.com> escribió en el mensaje
news:47219fb7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> ¿Se pueden agregar columnas a un Reporte dentro de un For...Next?... la
> idea es hacer un report de un browse, por ejm
>
> For nI := 1 To Len( oBrw:aCols )
> With Object oCol := oRpt:AddColumn()
> :bHeader := { &( "{|| oBrw:aCols[" + Str(nI) + '] }' }
> :bData := { &( "{|| oBrw:aCols[" + Str(nI) +
> ']:oDataField:FieldGet() }' }
> End
> Next
>
> No se en que me estoy equivocando pero me da un error en runtime, cuando
> evalúa el bData, el bHeader lo hace bien, si alguien tiene algún ejemplo o
> se le ocurre alguna idea, será bienevenido.
>
> Gracias.
>
> Antonio F. Ortega
>
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

Gracias JASM, claro que me vale, ya lo he visto y lo he aplicado
For nI := 1 To nLen
cDato := "oBrw:aArrayData[ nFila," + AllTrim( Str(nI) ) + " ]"
cTitle := "oBrw:aCols[" + AllStr(nI) + " ]:cHeader"
With Object oCol := oReport:AddColumn()
:aTitle := { { || &cTitle. } } **** ¿ Que es esto ? ****
:aData := { { || &cDato. } } **** ¿ Que es esto ? ****
:Create()
End With
Next
El &cTitle. no lo sabí­a no lo habí­a visto nunca me reifiero claro esta al punto del final. por eso pregunto **** ¿Que es esto? ****
Ignacio:
lo de las 'detached locals' lo se y lo he aplicado ... pero aún así­ se ve que no lo he hecho bien y me daba un error en runtime , y pensé que habí­a otra forma de hacerlo, de hecho que he encontrado lo que hizo JASM y no lo habí­a visto nunca, no se si será también valido para los DBBrowse, si me lo puedes confirmar te lo agradeceré.
Gracias.
Antonio F. Ortega
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Report de un DBBrowse

Mensaje por ignacio »

Antonio,
Jose Alfonso utiliza macros que también son perfectamente válidos (el punto indica el final de la macro) pero que no son 'detached locals'.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Antonio F. Ortega" <antonio.ortega@puentelibros.com> escribió en el mensaje news:4721bd8d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Gracias JASM, claro que me vale, ya lo he visto y lo he aplicado
For nI := 1 To nLen
cDato := "oBrw:aArrayData[ nFila," + AllTrim( Str(nI) ) + " ]"
cTitle := "oBrw:aCols[" + AllStr(nI) + " ]:cHeader"
With Object oCol := oReport:AddColumn()
:aTitle := { { || &cTitle. } } **** ¿ Que es esto ? ****
:aData := { { || &cDato. } } **** ¿ Que es esto ? ****
:Create()
End With
Next
El &cTitle. no lo sabí­a no lo habí­a visto nunca me reifiero claro esta al punto del final. por eso pregunto **** ¿Que es esto? ****
Ignacio:
lo de las 'detached locals' lo se y lo he aplicado ... pero aún así­ se ve que no lo he hecho bien y me daba un error en runtime , y pensé que habí­a otra forma de hacerlo, de hecho que he encontrado lo que hizo JASM y no lo habí­a visto nunca, no se si será también valido para los DBBrowse, si me lo puedes confirmar te lo agradeceré.
Gracias.
Antonio F. Ortega
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

Gracias Ignacio, se ve que sin el punto final la macro no funciona, no sabí­a que deben llevar punto.
Antonio F. Ortega
--
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

Me corrijo, si funciona sin el punto.
Antonio F. Ortega
--
desarrollo
Mensajes: 109
Registrado: Lun Abr 02, 2007 10:12 am

Report de un DBBrowse

Mensaje por desarrollo »

Antonio,
El punto es una costumbre clippera. Esa construccion no funcionaba en Clipper sin el punto.
Saludos
Jose A. Suarez
"Antonio F. Ortega" <antonio.ortega@puentelibros.com> escribió en el mensaje news:4721cf78$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Me corrijo, si funciona sin el punto.
Antonio F. Ortega
--
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

Ignacio, tení­a la sensación de que no era cuestión de 'trucos' o 'magia'
:-) , pero lo querí­a confirmar y efectivamente el código del primer
mensaje es correcto, porque estoy utilizando macros. luego de revisar y
revisar el código y de consultarlo con un colega me doy cuenta que el
problema es el siguiente, un DBBrowse que tiene un DataSet que es un
TSQLQuery ( SQLiteDataSource ) muestra los datos correctamente, pero
cuando intento lanzar el reporte, los valores Nil que si admite el
DBBrowse, no son admitidos por el Report.
¿ En tu opinión cuál es la solución ?.
Gracias.
Saludos.
Antonio F. Ortega
Ignacio Ortiz de Zúñiga escribió:
> Antonio,
>
> El problema es que nI siempre vale para cualquier columna Len( oBrw:aCols )
> + 1 ya que es el valor que tiene cuando se ejecutan los codeblock.
>
> El truco consiste en hacer lo que se llama 'detached locals' que se ha
> explicado en multitud de ocasiones en este y otros foros de Harbour. Te
> ruego por favor lo busques entre los mensajes del foro. Gracias
>
> Un saludo
>
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

el problema es el siguiente, un DBBrowse que tiene un DataSet que es un
TSQLQuery ( SQLiteDataSource ) muestra los datos correctamente, pero
cuando intento lanzar el reporte, los valores Nil que si admite el
DBBrowse, no son admitidos por el Report.
¿ Como lo puedo solucionar ?
Antonio F. Ortega
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9459
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Report de un DBBrowse

Mensaje por ignacio »

Antonio,
Utilizar expresiones del tipo:
IIF( oDataField:Value != NIL, oDataFieldValue, "" )
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Antonio F. Ortega" <antonio.ortega@ono.com> escribió en el mensaje
news:472302ee$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio, tenía la sensación de que no era cuestión de 'trucos' o 'magia'
> :-) , pero lo quería confirmar y efectivamente el código del primer
> mensaje es correcto, porque estoy utilizando macros. luego de revisar y
> revisar el código y de consultarlo con un colega me doy cuenta que el
> problema es el siguiente, un DBBrowse que tiene un DataSet que es un
> TSQLQuery ( SQLiteDataSource ) muestra los datos correctamente, pero
> cuando intento lanzar el reporte, los valores Nil que si admite el
> DBBrowse, no son admitidos por el Report.
>
> ¿ En tu opinión cuál es la solución ?.
>
> Gracias.
>
> Saludos.
>
> Antonio F. Ortega
>
>
> Ignacio Ortiz de Zúñiga escribió:
>> Antonio,
>>
>> El problema es que nI siempre vale para cualquier columna Len(
>> oBrw:aCols ) + 1 ya que es el valor que tiene cuando se ejecutan los
>> codeblock.
>>
>> El truco consiste en hacer lo que se llama 'detached locals' que se ha
>> explicado en multitud de ocasiones en este y otros foros de Harbour. Te
>> ruego por favor lo busques entre los mensajes del foro. Gracias
>>
>> Un saludo
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
antonio.ortega
Mensajes: 124
Registrado: Mié May 17, 2006 10:50 am

Report de un DBBrowse

Mensaje por antonio.ortega »

Ignacio,
Vale, es lógico para salir del paso, me imagino que es deseable que lo
controle la clase report, puesto que ya lo controla la clase browse.
Gracias.
Antonio F. Ortega
Responder