FoxPro/Visual FoxPro - Problema con Impresion

 
Vista:

Problema con Impresion

Publicado por ANDRES CORTEZ M (162 intervenciones) el 09/09/2009 18:05:51
Hola amigos

espero todos esten bien

Mi consulta es que tuve que desarrollar una impresion de factura por codigo sin el report ya que este no me servia. por el formato de la factura, bueno todo bien. para imprimir use

set decive to printer prompt

para que me mostrara el cuadro de dialogo para seleccionar impresoras.

Si le doy aceptar todo bien imprime

pero si le digo cancelar o cierro esta ventana, alli esta problema igual me imprime

como valido esa opcion

gracias

ACM
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:Problema con Impresion

Publicado por Pablo (Argentina) (433 intervenciones) el 09/09/2009 22:51:29
Hola, no deberia, como tenes el report form?, o que es lo que queres imprimir?

en un report seria algo asi

report form "tu archivo" to printer prompt nodialog preview

Suerte!!!!

Pablo - Argentina
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:Problema con Impresion

Publicado por ANDRES CORTEZ M (162 intervenciones) el 10/09/2009 00:26:37
Hola pablo

gracias por contestar

No estoy usando el report estoy usando codigo @x,y say

y antes que comienze la impresion le puse

set device to print prompt

para seleccionar la impresora donde quiere imprimir y al darle escape o cerrar igual imprime, se supone que se esta cancelando la impresion

acm.
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:Problema con Impresion

Publicado por andy (228 intervenciones) el 10/09/2009 17:29:00
Esta rutina te permite interpretar el Boton CANCELAR del dialogo de Impresion de Windows. espero te sirva:

Do setPrinterPrompt
#Define PD_ALLPAGES 0
#Define PD_RETURNDC 256
#Define PD_USEDEVMODECOPIESANDCOLLATE 262144
#Define PD_RETURNDEFAULT 1024

lnFlags = PD_USEDEVMODECOPIESANDCOLLATE + PD_RETURNDC
lcStruct = num2dword(66) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(lnFlags) +;
num2word(65535) +;
num2word(65535) +;
num2word(1) +;
num2word(65535) +;
num2word(1) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0) +;
num2dword(0)
If PrintDlg (@lcStruct) <> 0
hDc = buf2dword (Substr (lcStruct, 17, 4))
= Messagebox("El usuario eligio Imprimir", 0+16,"Impresora" )
ELSE
= Messagebox("El usuario canceló la Impresión", 0+16,"Impresora" )
Endif

Function num2dword (lnValue)
#Define m0 256
#Define m1 65536
#Define m2 16777216
Local b0, b1, b2, b3
b3 = Int(lnValue/m2)
b2 = Int((lnValue - b3 * m2)/m1)
b1 = Int((lnValue - b3*m2 - b2*m1)/m0)
b0 = Mod(lnValue, m0)
Return Chr(b0)+Chr(b1)+Chr(b2)+Chr(b3)

Function num2word (lnValue)
Return Chr(Mod(m.lnValue,256)) + Chr(Int(m.lnValue/256))

Function buf2dword (lcBuffer)
Return Asc(Substr(lcBuffer, 1,1)) + ;
Asc(Substr(lcBuffer, 2,1)) * 256 +;
Asc(Substr(lcBuffer, 3,1)) * 65536 +;
Asc(Substr(lcBuffer, 4,1)) * 16777216

Procedure SetPrinterPrompt
Declare Integer DeleteDC In gdi32 Integer hdc
Declare Integer PrintDlg In comdlg32;
STRING @ lppd
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