Power Builder - Ayuda con Impresiones

 
Vista:

Ayuda con Impresiones

Publicado por David (97 intervenciones) el 16/10/2003 17:30:43
Tengo un Informe que se imprime en una hoja especial de 68 cms. de alto mi problema es que tengo que imprimirla en una FX - 1170 pero cuando le envio la impresión me hace un salto de pagina y no tiene que ser asi.. no me respeta los parametros que le doy...

no se que estoy haciendo mal... les paso el script y agradeceria desde ya su ayuda....

gdw_datawindow = cdw_uno

job = PrintOpen("MI Informe")
PrintSend(Job, char(27) + char(64))
PrintSend(Job, char(27) + char(67)+ char(500))
PrintDataWindow(Job, gdw_datawindow)
PrintClose(Job)

Estos comandos los saque del manual de la Epson, en Visual Fox Pro si me respeta pero en PB lastimosamente no..

por favor si saben alguna otra forma, sea cual fuere.. si me ayudan..
uso Power builder 8.0
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Impresiones

Publicado por Oscar (1178 intervenciones) el 17/10/2003 00:35:55
No te respeta porque la función Char en Visual FoxPro y PB tiene un significado diferente.
* En Visual Fox es: ? Chr(27), es similar a Clipper.
* En Visual Basic es: Chr$()
En todos los casos, se convierte la tecla pulsada a su correspondiente carácter ASCII; pero en Power Builder, se debe trabajar con valores hexadecimales. En PB, un número Hexadecimal empieza con el símbolo "~". Si observas los ejemplos de PrinSend, verás que es así.

Ahora, si puedes convertir, esas teclas de Chr() a "~", estará bien. Por ejemplo: La teclas Chr(27) de Visual FoxPro, que se refiere a la tecla ESC, en PB la misma tecla en hexadecimal es ~1B.

Sin embargo, tengo dudas que funcione. Mejor, primero probá usando el método de WSH (Windows Scripting Host): Primero al DW lo mandamos a imprimir a ARCHIVO (es lo mismo que activar la casilla, imprimir a archivo en cualquier caja de dialogo de impresión). Es decir, te convertirá a un archivo prn, luego lo mandamos a imprimir desde el MS-DOS.

En el proximo post, está el código...
(CONTINUÁ...)

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Impresiones (continuación...)

Publicado por Oscar (1178 intervenciones) el 17/10/2003 00:38:51
//(CONTINUACIÓN...)
En limpio tenemos:

1. Para convertir el DW a prn, ejecutá con un botón el siguiente script:

dw_1.Object.DataWindow.Print.Filename='datos.prn'
dw_1.Print()

2. Una vez que ya tenemos el archivo datos.prn (guardado en la misma carpeta o en la ruta que quieras). Debemos mandarlo a impresión Desde PB:

int li_rc
OleObject ole_print
ole_print = CREATE OleObject

li_rc = ole_print.ConnectToNewObject( "WScript.Shell" )
// imprimo el archivo
ole_print.Run("Cmd.exe /c copy /b datos.prn lpt1",0)

// desalojo de la memoria
ole_print.DisconnectObject()

Aclaraciones:
* El cero al final, significa que el archivo permanece oculto.
* /c (envía la cadena de caracteres que le especifiques).
* copy /b datos.prn lpt1" (imprime desde el MS-DOs, un archivo cualquiera con la extensión prn).
*La palabra Cmd.exe (se usa en Win XP y 2000. En win 98, debes usar command.com)
* Finalmente, imprime bien en otras impresoras; pero no hice la prueba con Epson.

Suerte...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar