He compilado el código que ya tenía escrito de la versión anterior de FWH con la nueva versión 16.12 y aparte de GetCurDir() que lo he tenido que modificar los path y con esto se ha resuelto, también me hace mal el oPrn:Setup() ya que me saca la ventana de selección de impresora, me deja seleccionar una diferente a la predeterminada pero no funciona dicha selección porque selecciones la que sea siempre imprime por la prederterminada.
Si alguien le ha pasado esto y conoce la solución le estaría muy agradecido por sus indicaciones.
Gracias
oPrn:Setup() en FWH 16.12
Re: oPrn:Setup() en FWH 16.12
João Santos - São Paulo - Brasil
Re: oPrn:Setup() en FWH 16.12
Code: Select all
// Printing in portrait and in landscape
#include "fivewin.ch"
#define PAD_LEFT 0
#define PAD_RIGHT 1
#define PAD_CENTER 2
function Main()
local oPrn, oFont, oPen
Local nLinI, nColI, nLinF, nColF
//PRINT oPrn NAME "Impresión en Vertical.." PREVIEW
PRINT oPrn NAME "Impresión en Vertical.." PREVIEW MODAL
DEFINE FONT oFont NAME "Arial" SIZE 0, -10 BOLD OF oPrn
DEFINE PEN oPen WIDTH 2 OF oPrn
oPrn:Setup()
oPrn:SetPage(9) // A4
oPrn:SetPortrait() //Vertical
PAGE
nLinI := 0.90
nColI := 0.90
nLinF := 28.6
nColF := 20.0
oPrn:Cmtr2Pix(@nLinI, @nColI)
oPrn:cmtr2Pix(@nLinF, @nColF)
oPrn:Box(nLinI, nColI, nLinF, nColF, oPen )
oPrn:cmSay( 1.0, 1.0, "Superior Izquierda", oFont,,CLR_BLACK,,PAD_LEFT )
oPrn:cmSay( 1.0, 10.5, "Superior Centro", oFont,,CLR_BLACK,,PAD_CENTER )
oPrn:cmSay( 1.0, 20.0, "Superior Derecha", oFont,,CLR_BLACK,,PAD_RIGHT )
oPrn:cmSay(28.0, 1.0, "Inferior Izquierda", oFont,,CLR_BLACK,,PAD_LEFT )
oPrn:cmSay(28.0, 10.5, "Inferior Centro", oFont,,CLR_BLACK,,PAD_CENTER )
oPrn:cmSay(28.0, 20.0, "Inferior Derecha", oFont,,CLR_BLACK,,PAD_RIGHT )
ENDPAGE
ENDPRINT
PRINT oPrn NAME "Impresion Horizontal..." PREVIEW
DEFINE FONT oFont NAME "Arial" SIZE 0, -10 BOLD OF oPrn
DEFINE PEN oPen WIDTH 2 OF oPrn
oPrn:SetPage(9) //a4
oPrn:SetLandscape() // HORIZONTAL
PAGE
nLinI := 0.90
nColI := 0.90
nLinF := 20.1
nColF := 28.6
oPrn:Cmtr2Pix(@nLinI, @nColI)
oPrn:cmtr2Pix(@nLinF, @nColF)
oPrn:Box(nLinI, nColI, nLinF, nColF, oPen )
oPrn:cmSay( 1.0, 1.0, "Superior Izquierda", oFont,,CLR_BLACK,,PAD_LEFT )
oPrn:cmSay( 1.0, 14.8, "Superior Centro", oFont,,CLR_BLACK,,PAD_CENTER )
oPrn:cmSay( 1.0, 28.0, "Superior Derecha", oFont,,CLR_BLACK,,PAD_RIGHT )
oPrn:cmSay(19.5, 1.0, "Inferior Izquierda", oFont,,CLR_BLACK,,PAD_LEFT )
oPrn:cmSay(19.5, 14.8, "Inferior Centro", oFont,,CLR_BLACK,,PAD_CENTER )
oPrn:cmSay(19.5, 28.0, "Inferior Derecha", oFont,,CLR_BLACK,,PAD_RIGHT )
ENDPAGE
ENDPRINT
return nil
João Santos - São Paulo - Brasil
-
- Posts: 47
- Joined: Wed Oct 12, 2005 6:58 pm
Re: oPrn:Setup() en FWH 16.12
Muchas gracias por tu respuesta karinha. No tengo ningún problema para cambiar la orientación, horizontal o vertical.
El problema que tengo es que si compilo con la version de FWH 11.07 cuando se ejecuta oPrn:Setup() me presenta Windows la ventana de Seleccionar Impresora con las impresoras instaladas en el PC, selecciono una que no es la predeterminada y me imprime por la que yo selecciono.
Sin embargo compilo el mismo código con FWH versión 16.12 cuando se ejecuta oPrn:Setup() me presenta Windows la ventana de Seleccionar Impresora con las impresoras instaladas en el PC, selecciono una que no es la predeterminada y me imprime por la predeterminada y no por la que yo he seleccionado.
Gracias.
El problema que tengo es que si compilo con la version de FWH 11.07 cuando se ejecuta oPrn:Setup() me presenta Windows la ventana de Seleccionar Impresora con las impresoras instaladas en el PC, selecciono una que no es la predeterminada y me imprime por la que yo selecciono.
Sin embargo compilo el mismo código con FWH versión 16.12 cuando se ejecuta oPrn:Setup() me presenta Windows la ventana de Seleccionar Impresora con las impresoras instaladas en el PC, selecciono una que no es la predeterminada y me imprime por la predeterminada y no por la que yo he seleccionado.
Gracias.
Re: oPrn:Setup() en FWH 16.12
Creo, sea esto:
nueva function de PRINTER.PRG de FWHX16.12
Saludos.
Code: Select all
FUNCTION DefaultPrinter()
LOCAL nPrn, nRet
// Abre a tela para a seleção da impressora
/*
GetPrintDC( GetActiveWindow() )
// Coloca a impressora selecionada como Default do Windows
SetDefaultPrinter( PRNGETNAME() )
*/
nRet := PrinterSetUp()
nPrn := PrnGetName()
IF( nRet # 0 )
// NADA A FAZER MUDA O DEFULT DA IMPRESSORA EM TEMPO REAL.
SetDefaultPrinter( PRNGETNAME() ) // MUDA O DEFAULT DA IMPRESSORA
// Mensageria
ELSE
// mensageria
RETURN( .F. )
ENDIF
RETURN NIL
Code: Select all
function SetPrintDefault( cModel )
local cDriver := StrToken( GetProfString( "Devices", cModel, "" ), 1, "," )
local cPort := StrToken( GetProfString( "Devices", cModel, "" ), 2, "," )
WriteProfString( "Windows", "Device", cModel + "," + cDriver + "," + cPort )
return nil
João Santos - São Paulo - Brasil