Página 1 de 1

Nueva demo de FastReport

Publicado: Vie Oct 18, 2013 1:48 pm
por ignacio
Nueva funcionalidad de FastReport para Xailer: Previsualización de FastReport en formulario de Xailer.
Demo: http://www.xailer.com/download?es&file=104



Attached files

Nueva demo de FastReport

Publicado: Vie Oct 18, 2013 10:44 pm
por Claudio[1]
Estimados.
Al convertir viejos programas de la version xharbour de xailer a harbour
obtengo error al compilar isKindOf() . ( no existe el método )
Este método me permití­a saber si un objeto pertenecí­a a una clase ( en
forma directa o heredada)
Quisiera certificar que en harbour no exite el método y en su caso como
reemplazarlo (si se puede).
Por ahora uso classname() y comparo con el nombre esperado pero no es la
misma funcionalidad (de seguro voy a tener problemas).
De antemano agradezco su tiempo.
Claudio.

Nueva demo de FastReport

Publicado: Vie Oct 18, 2013 11:39 pm
por xmessoft
En harbour hay una función llamada __objDerivedFrom( oObject, xSuper )
Ojo no es un método...
Si tu usas:
if miObj:isKindOf( "oPadre" )
....
Con esta función se harí­a:
if __objDerivedFrom( miObj, "oPadre" )
....
Así­ funciona en Harbour y xHarbour ;-)
Saludos
Manu Expósito
El 18/10/2013 22:44, Contacto en Xailer escribió:
> Estimados.
>
> Al convertir viejos programas de la version xharbour de xailer a harbour
> obtengo error al compilar isKindOf() . ( no existe el método )
>
> Este método me permití­a saber si un objeto pertenecí­a a una clase ( en
> forma directa o heredada)
>
> Quisiera certificar que en harbour no exite el método y en su caso como
> reemplazarlo (si se puede).
>
> Por ahora uso classname() y comparo con el nombre esperado pero no es la
> misma funcionalidad (de seguro voy a tener problemas).
>
> De antemano agradezco su tiempo.
>
> Claudio.
--
Tu vecino Manu

Nueva demo de FastReport

Publicado: Sab Oct 19, 2013 12:04 am
por Claudio[1]
Gracias Manu por tu pronta respuesta.
Funciona perfecto.
Claudio.
El 18/10/2013 18:39, Manu escribió:
> En harbour hay una función llamada __objDerivedFrom( oObject, xSuper )
> Ojo no es un método...
>
> Si tu usas:
>
> if miObj:isKindOf( "oPadre" )
> ...
>
> Con esta función se harí­a:
>
> if __objDerivedFrom( miObj, "oPadre" )
> ...
>
> Así­ funciona en Harbour y xHarbour ;-)
>
> Saludos
> Manu Expósito
>
> El 18/10/2013 22:44, Contacto en Xailer escribió:
>> Estimados.
>>
>> Al convertir viejos programas de la version xharbour de xailer a harbour
>> obtengo error al compilar isKindOf() . ( no existe el método )
>>
>> Este método me permití­a saber si un objeto pertenecí­a a una clase ( en
>> forma directa o heredada)
>>
>> Quisiera certificar que en harbour no exite el método y en su caso como
>> reemplazarlo (si se puede).
>>
>> Por ahora uso classname() y comparo con el nombre esperado pero no es la
>> misma funcionalidad (de seguro voy a tener problemas).
>>
>> De antemano agradezco su tiempo.
>>
>> Claudio.
>
>

Nueva demo de FastReport

Publicado: Sab Oct 19, 2013 9:33 am
por joselalinf
Claudio,
> Al convertir viejos programas de la version xharbour de xailer a harbour
> obtengo error al compilar isKindOf() . ( no existe el método )
el método isKindOf() exisste y puedes comprobar que se está usando en los
fuentes de Xailer así­ que el error tiene que venir de otra parte.
¿Qué versión de Xailer estás usando?
Saludos,
José Lalí­n

Nueva demo de FastReport

Publicado: Lun Oct 21, 2013 9:07 am
por Toni
Grande Ignacio.
Crear formularios e incrustar en ellos listados FastReport con imágenes, gráficos, etc.
Muy bueno.
Saludos
Toni Sales

Nueva demo de FastReport

Publicado: Mié Oct 23, 2013 4:05 am
por Claudio[1]
Hola José y gracias por tu respuesta.
Como era de esperar tenés razón: isKindOf() funciona perfecto.
Demoré en responderte porque quise averiguar el por qué del mensaje que
me daba.
En el mensaje original que envié al foro cometí­ un error ya que "no
existe el método" no lo daba al compilar sino al ejecutar (runtime).
Y lo daba porque el objeto al que le solicitaba iskindof() no estaba
inicializado ( era NIL ) de allí­ el mensaje.
De todas formas implementé una pequeña funcion que verifica que el
objeto no es nulo y luego chequea verifica la clase.
//--------------------------------------
function esdDeLaClase( o ,cClase )
if isObject( o ) ; return __objDerivedFrom( o, cClase ) ; endif
return .f.
Que la converti para chequear isKindOf asi:
//--------------------------------------
function esdDeLaClase( o ,cClase )
if isObject( o ) ; return o:isKindOf( cClase ) ; endif
return .f.
Y funciona perfecto.
Nuevamente gracias,
Claudio.
El 19/10/2013 4:33, José Lalí­n escribió:
> Claudio,
>
>> Al convertir viejos programas de la version xharbour de xailer a harbour
>> obtengo error al compilar isKindOf() . ( no existe el método )
>
> el método isKindOf() exisste y puedes comprobar que se está usando en
> los fuentes de Xailer así­ que el error tiene que venir de otra parte.
>
> ¿Qué versión de Xailer estás usando?
>
> Saludos,
> José Lalí­n
>

Nueva demo de FastReport

Publicado: Mié Oct 23, 2013 10:13 pm
por xmessoft
De cualquier modo te digo que la función es más rápida ya que le método
lo que hace es llamarla así­ que al menos te ahorrarí­as un paseito por la
máquina virtual de harbour.
tu función un poco más optimizada podrí­a quedar así­:
function esdDeLaClase( o, cClase )
return( if( isObject( o ), __objDerivedFrom( o, cClase ), .f. ) )
Y más optimizada aún (hace una llamada al wrapper de la función en C:
function esdDeLaClase( o, cClase )
return( if( isObject( o ), __clsParent( o:ClassH, cClase ), .f. ) )
--
Tu vecino Manu

Nueva demo de FastReport

Publicado: Jue Oct 24, 2013 1:08 am
por Claudio[1]
Gracias Manu por tu respuesta
De ahora en más utilizaré esta version optimizada para validar los
objetos que recibo como parámetro en métodos y funciones.
Por otro lado estoy tranquilo que todo el código que tení­a escrito con
el metodo isKindOf funcionará perfecto.
Saludos,
Claudio
El 23/10/2013 17:13, Manu escribió:
> De cualquier modo te digo que la función es más rápida ya que le método
> lo que hace es llamarla así­ que al menos te ahorrarí­as un paseito por la
> máquina virtual de harbour.
>
> tu función un poco más optimizada podrí­a quedar así­:
>
> function esdDeLaClase( o, cClase )
> return( if( isObject( o ), __objDerivedFrom( o, cClase ), .f. ) )
>
> Y más optimizada aún (hace una llamada al wrapper de la función en C:
>
> function esdDeLaClase( o, cClase )
> return( if( isObject( o ), __clsParent( o:ClassH, cClase ), .f. ) )
>
>
>