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
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)