Page 1 of 1

Cambiar altura area Easy Report Tiempo Ejecución SOLUCIONADO

PostPosted: Sat Jan 04, 2020 3:17 pm
by leandro
Bueno días para todos,

Como dice el encabezado, requiero cambiar el alto de una área en tiempo de ejecución, de antemano gracias.

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sat Jan 04, 2020 3:44 pm
by MOISES
Prueba a hacer un xBrowse al objeto del área para ver sus propiedades, y así poder cambiarlas en tiempo de ejecución.

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sat Jan 04, 2020 3:55 pm
by leandro
Moises gracias por responder, perdóname debí haber sido mas especifico, eso ya lo estoy haciendo, pero al asignar el valor de la nueva altura no me funciona. Quería saber si había un ejemplo funcional para cambio de altura por ítem (en una factura) en tiempo de ejecución... algo de código.
Code: Select all  Expand view

//msginfo(oVRD:aAreaHeight[aAreaItem[vArea]])
oVRD:aAreaHeight[aAreaItem[vArea]] := 8
PRINTAREA aAreaItem[vArea] OF oVRD ;
ITEMIDS {   vFactor+1,vFactor+2,vFactor+3,;
            vFactor+4,vFactor+5,vFactor+6,;
        vFactor+7,vFactor+8,vFactor+9,vFactor+10} ;
 

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sat Jan 04, 2020 5:06 pm
by MOISES
Prueba a poner ovrd:aAreaHeight después de definir el área.

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sun Jan 05, 2020 5:16 pm
by Armando
Leandro:

Supongo que el problema es cuando quieres imprimir un campo tipo MEMO y la altura del renglón
no es suficiente. Si es así, creo que ampliar la altura del área te puede dar problemas cuando estés
al final de una página. Si te interesa te puedo sugerir algo que te puede ayudar con este lío.

Saludos

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Wed Jan 08, 2020 12:14 pm
by leandro
Hola Armando como vas, como siempre gracias por la respuesta,

Si claro me interesa :D

De antemano gracias

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Wed Jan 08, 2020 5:59 pm
by Armando
Leandro:

Como te comente en mi post anterior, si amplias el área te vas a enfrentar a un problema
cuando el área se debe imprimir al final de la página, es decir parte del texto debe caer
al pie de la página y el resto del texto debe caer al inicio de la siguiente página.

Para dar solución al problema de imprimir campos tipo memo yo hago lo siguiente:

Code: Select all  Expand view

STATIC FUNCTION PrtArea02(oVrd)
    LOCAL nLineas   := 0
    LOCAL nLargo    := oRsFdf:Fields("FOL_ANC"):Value
    LOCAL cDes      := ""
    LOCAL nLoop     := 0

    IF oRsDet:RecordCount() > 0
        oRsDet:MoveFirst()
        nLoop   := 0
        DO WHILE ! oRsDet:EOF()
            nLineas := MLCOUNT(ALLTRIM(oRsDet:Fields("DET_DES"):Value),nLargo)
            FOR nLoop := 1 TO nLineas
                cDes    := MEMOLINE(ALLTRIM(oRsDet:Fields("DET_DES"):Value),nLargo,nLoop)
                IF nLoop == 1
                    PRINTAREA 2 OF oVrd;
                        ITEMIDS {201,202,203,204,205,206};
                        ITEMVALUES {TRANSFORM(oRsDet:Fields("DET_CTD"):Value,"@Z 99,999.999"),;
                                        oRsDet:Fields("DET_UDM"):Value,;
                                        oRsDet:Fields("DET_CDP"):Value,;
                                        cDes,;
                                        TRANSFORM(oRsDet:Fields("DET_PUN"):Value,"@Z 999,999,999.99"),;
                                        TRANSFORM(oRsDet:Fields("DET_IMP"):Value,"@Z 999,999,999.99")}
                ELSE
                    PRINTAREA 2 OF oVrd;
                        ITEMIDS {204};
                        ITEMVALUES {cDes}
                ENDIF

                IF oVRD:nNextRow > oVRD:nPageBreak
                    PRINTAREA 3 OF oVrd
                    PAGEBREAK oVRD
                    PrtArea01(oVrd)
                ENDIF
            NEXT
            oRsDet:MoveNext()
        ENDDO
    ENDIF
RETURN(.T.)
 


El truco esta en seccionar el campo memo en diferentes tramos de un x tamaño, en mi
caso la longitud la defino en nLargo, de esta manera imprimo varios renglones cuidando
al llegar al fin de la página, mira el código IF oVRD:nNextRow > oVRD:nPageBreak.

Ojala que esto te sirve a apoyo, cualquier duda estoy por aquí.

Saludos

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sun Jan 12, 2020 12:31 am
by leandro
Gracias Armando, por tu ayuda.

Voy a probarlo, y cualquier cosa comento. No había podido mirar con calma el foro, estaba super ocupado en un proyecto que debía entregar, pero esta semana que viene si Dios quiere retomo.

Muchas gracias por la ayuda.

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sun Jan 12, 2020 12:38 am
by leandro
Armando que pena molestarte, :oops: :oops: :oops: pero serias tan amable, de enviarme el vrd para saber como esta definido, de paso una imagen con el resultado final. :mrgreen: :mrgreen: :mrgreen:

De antemano gracias y de nuevo que pena molestarte.

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Sun Jan 12, 2020 5:42 pm
by Armando
Leandro:

Sin pena, dame un correo por favor.

Saludos

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Mon Jan 13, 2020 10:08 am
by leandro

Re: Cambiar altura area Easy Report Tiempo Ejecución

PostPosted: Fri Jan 31, 2020 2:22 am
by leandro
Excelente Armando, muchas gracias :D

Funciono a las mil maravillas.

Desconocía la existencia de las funciones MLCOUNT() y MEMOLINE().

Pdta. No me había quedado tiempo de mirar el código. Hemos estado un poco ocupados con el tema de la facturación electrónica.

Re: Cambiar altura area Easy Report Tiempo Ejecución SOLUCIONADO

PostPosted: Fri Jan 31, 2020 2:49 am
by Armando
Leandro:

Excelente !.

Saludos