Copias de informes

Hola a todos.
Tengo un formulariio con una caja de texto que en ella debo incarle el numero de copias que debe imprimirse el reporte o informe.
Atentamente Gracias

1 Respuesta

Respuesta
1
Esta información está sacada tal cual de la página de ayuda y soporte de Microsoft.
En Microsoft Visual FoxPro, no hay ninguna forma directa para establecer el número de copias que se va a imprimir. Sin embargo, hay varias formas para imprimir varias copias. Uno es imprimir el informe en un bucle, pero ésta es la forma más lenta para hacerlo. Otro es utilizar la palabra clave mensaje en el comando Form informe, pero esto requiere una acción del usuario adicional, aunque sólo es presionar la tecla ENTRAR. La forma más eficaz es modificar el archivo FRx directamente para incluir el número apropiado de copias.
En el código siguiente se modifica un informe para imprimir el número correcto de copias. Para utilizarla, guarde el código a un programa nuevo (denominado MULTIREPO. PRG, por ejemplo) y llamarlo desde la ventana comandos con esta sintaxis:
MULTIREPO with [completa ruta de acceso a tabla de informe], [Número de copias deseadas]
Ejemplo: MULTIREPO with "C:\MYREPORT.FRX", 2
LPARAMETER lcFRX, lnCopies
LOCAL lcNewExpr, lnStartCopiesLine, lcStartAtCopiesLine, lnEndCopiesLine, ;
lnLenCopiesLine, lcTop, lcBottom
#DEFINE vfCRLF CHR(13) + CHR(10)
IF !(UPPER(RIGHT(lcFRX, 4)) = ".FRX")
lcFRX = lcFRX + ".FRX"
ENDIF
USE (lcFRX)
LOCATE FOR objType = 1 AND objCode = 53
IF EMPTY(EXPR)
lcNewExpr = "COPIES=" + ALLT(STR(lnCopies)) + vfCRLF
ELSE
lnStartCopiesLine = ATC("COPIES", EXPR)
lcStartAtCopiesLine = SUBSTR(EXPR, lnStartCopiesLine)
lnEndCopiesLine = ATC(vfCRLF, lcStartAtCopiesLine)
lnLenCopiesLine = LEN(SUBSTR(lcStartAtCopiesLine, 1, lnEndCopiesLine))
lcTop = SUBSTR(EXPR, 1, lnStartCopiesLine - 1)
lcBottom = SUBSTR(EXPR, (LEN(lcTop) + lnLenCopiesLine))
lcNewExpr = lcTop + "COPIES=" + ALLT(STR(lnCopies)) + lcBottom
ENDIF
REPLACE EXPR WITH lcNewExpr
USE IN (lcFRX)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas