Pregunta: | 317 - REPORTES EN FOXPROW 2.6 |
Autor: | Maria |
Estoy realizando un sistema en FOXPROW 2.6 pero en el modulo de generar reportes (no con el generador que posee el FOX) sino escribiendo mi propio programa envio o ejecuto la opcion y se queda en el buffer de la impresora y jamas se imprime. Debo indicar que con las instrucciones que utilizo estos mismos reportes si se generan en una version anterior para DOS. Pero el problema esta que se instalo FOXPROW 2.6 y debo sacar este sistema lo mas pronto posible Desde Guayaquil-Ecuador Gracias anticipadas por sus comentarios |
Respuesta: | Luis Carlo Elias |
La estructura dede ser similar a esto:
SET TALK off SET ECHO off SET DEVICE TO print ??? CHR(27)+CHR(18) && 2 linea=5 && 5 @ linea,103 say TXTFECHAFAC @ linea,120 say txtfolfac linea=7 && 7 @ linea,4 say txtnombre @ linea,123 say txtcliente linea=linea+1 && 8 @ linea,4 say txtdir linea=linea+1 && 9 @ linea,4 say txtcol @ linea,123 say txtfolio linea=linea+1 && 10 @ linea,4 say txtdeleg linea=linea+1 && 11 @ linea,4 say txtedo @ linea,123 say SUBSTR(txtncondp,1,10) linea=linea+1 && 12 @ linea,4 say txtcp linea=linea+1 && 13 @ linea,4 say txtrfc linea=linea+1 && 14 @ linea,4 say 'Tel. '+txttel1+txttel2 @ linea,123 say txtruta linea=17 SELECT arcdet SET ORDER TO codigo_art GO top DO WHILE NOT EOF() @ linea,4 say SUBSTR(codigo_art,1,10) @ linea,15 say SUBSTR(nombre,1,20)+' '+SUBSTR(presenta,1,20) *@ linea,40 say SUBSTR(presenta,1,20) @ linea,69 say cantidad_s picture "9,999" @ linea,77 say scargo picture "999" @ linea,83 say coferta picture "999" @ linea,89 say cantsuma picture "9,999" @ linea,99 say precio_uni picture "9,999.99" @ linea,112 say porc_desc1 picture "99.99" @ linea,121 say ROUND(VALIMP1+VALIMP2+VALIMP3+VALIMP4+VALIMP5+VALIMP6+VALIMP7+VALIMP8+VALIMP9+VALIMP10,2) picture "99.99" @ linea,128 say importe_ne picture "99,999.99" linea=linea+1 SKIP ENDDO linea=46 @ linea,3 say letrero @ linea,123 say txtsubt picture "9,999,999.99" linea=linea+1 && 47 @ linea,123 say txtiva picture "9,999,999.99" linea=linea+1 && 48 @ linea,3 say "NO SE ACEPTAN DEVOLUCIONES DESPUES DE 8 (OCHO) DIAS" *LINEA=LINEA+1 @ LINEA,123 SAY TXTTOTAL PICTURE "9,999,999.99" linea=linea+18 @ linea,0 say '.' *EJECT *??? CHR(12) LINEA=5 *@ linea,0 say '.' *SET PRINTER OFF SET PRINTER TO && esta instruccion Forza a que se libere el buffer de la impresora ponla al final de tu rutina de impresion SET DEVICE TO SCREEN flush |
Respuesta: | Henry Martinez |
Cuando pasas de DOS a WIndows es el mayor de los problemas es la impresion, yo tambien soy de Guayaquil Ecuador me puedes llamar al 098086355 y te puedo ayudar.
Cuando imprimes en modo windows es preferible formar la linea de impresion y luego mandarla a la impresora por ejemplo: tstr=cli.codigo+' '+padr(allt(cli.apellidos)+' '+allt(cli.nombres),40)+transf(cli.cupo,'999,999,999.99') @tlinea,0 SAY tstr font 'Courier New',10 de esta manera tambien no se te descuadra la impresion y ademas el programa te puede seguir funcionando tando en modo DOS como en modo WIndows sin ningún problema, te lo aseguro. Yo tengo un sistema que funciona tanto en DOS como en Windos y en ambos casos el reporte es el mismo lo unico que cambia son las pantallas. Bye, llamame. |
Respuesta: | Dante Romero |
Hola, al principio enviaba directamente mis reportes a la impresora, pero ahora siempre los genero a un archivo texto y los envio con un simple TYPE <nombre archivo> TO PRINTER.
Suerte Saludos desde Peru |
Respuesta: | Manuel Medina |
Hola amigo:
Debe tener claro que cuando hace un programa para reporte y lo ejecuta, todos los registros son enviados al mismo tiempo y suele dar problemas dependiendo de la capacidad que tenga la impresora para solportar. Una vez lo intente y regrese a mis reportes generado ya que les dan a la impresora poco a poco. |
Respuesta: | Anastasio Almada |
Para solucionar el problema de impresión generado con programas .PRG, es lo siguiente.
al terminar el ciclo de instrucciones para impresion debes escribir la sentencia SET PRINTER TO LPT1 EJEMPLO Procedure Imprime SET DEVICE TO PRINT do while !eof() @fila,columna say campo @fila,columna say campo sekip enddo SET PRINTER TO LPT1 RETURN Espero que te sirva, cualquier cosa esribeme Un saludo desde Asinción Paraguay |
Respuesta: | Anastasio Almada |
Para solucionar el problema de impresión generado con programas .PRG, es lo siguiente.
al terminar el ciclo de instrucciones para impresion debes escribir la sentencia SET PRINTER TO LPT1 EJEMPLO Procedure Imprime SET DEVICE TO PRINT do while !eof() @fila,columna say campo @fila,columna say campo skip enddo SET PRINTER TO LPT1 RETURN Espero que te sirva, cualquier cosa esribeme Un saludo desde Asinción Paraguay |
Respuesta: | Ali Flores V. |
Para liberar el reporte de la memoria use el comamdo: SET PRINTER TO después de que terminas enviar el reporte. |