Power Builder - Tambien he probado..

 
Vista:

Tambien he probado..

Publicado por Titanic (11 intervenciones) el 21/05/2007 16:19:19
También he probado lo siguiente :

dw_imprime.Object.DataWindow.Printer = "Acrobat Distiller"

Y me da un error de acceso a un objecto externo incorrecto.

Saludos.
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:Cambiar de impresora

Publicado por achafio (88 intervenciones) el 21/05/2007 17:20:23
Titanic,
Utiliza este código, a mí me ha funcionado muy bien

printsetup()
sle_impresora.text = dw_1.describe('datawindow.printer')
dw_1.Print()

sle_impresora.text mostrará la impresora seleccionada.

Espero te sirva, avísame.
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:Cambiar de impresora

Publicado por Titani (11 intervenciones) el 22/05/2007 06:38:06
Hola achafio.

Gracias por tu respuesta pero creo que no me sirve. Con tú código saldrá la ventana de dialogo para que el usuario cambie de impresora, yo no quiero que el usuario tenga que intervenir en el cambio de impresora, es decir, el programa debe hacerlo sólo.

Saludos y gracias.
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:Cambiar de impresora

Publicado por Leopoldo Taylhardat (710 intervenciones) el 22/05/2007 14:04:36
Saludos desde Maracay, Venezuela...

Creo que esto es lo que necesitas, no sé cual fué la pregunta original...
pero por tu respuesta...

Buscar y asigar impresora.

/ Obtener la Impresora Default (Listados)
// Existe una tabla llamada 'IMPRESORA'que contiene dos (2) columnas fijas y una opcional si se maneja pro estación.:

FUNCION_IMPRESORA = Para que se utiliza: (Primary Key) varchar(12)
ej... listados, laser, facturas, etc...
DIRECCION_IMPRESORA = La dirección fisica de la impresora: varchar(128)

// Nota: a la tabla de impresoras puedes crear una columna que contenga el nombre de la estación y buscar la impresora que corresponda a esa estación....

IMPRESORA.ESTACION= Nombre de la estación de trabajo si se desea: varchar(24)
… ver más adelante…

/*
Con esta función obtengo cual es la impresora asignada por defecto y actualizo el valor del DW
donde actualizo mi lista de impresoras en la tabla 'IMPRESORA'
Este proceso lo hago con todas las impresoras,
es decir asigno una como impresora por defecto y la meto en la tabla, luego asigno otra por defecto
y la meto en la tabla... por supuesto con nombres diferentes (FUNCION_IMPRESORA) y así sucesivamente...

yo hice una ventanita con un boton con esta funcion (Buscar Impresora) para hacer esto.
*/

string printer_default

//BUSCAR EL SISTEMA OPERATIVO Y OBTENER IMPRESORA POR DEFECTO..

CHOOSE CASE env.OSType

CASE Windows!
gs_os="Win_95_98"
// Asignar la Impresora Default
RegistryGet("HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers", "default", printer_default)
//MessageBox("Windows sPrinter Asignada", printer_default)
CASE WindowsNT!
gs_os="Win_Nt"
// Asignar la Impresora Default
RegistryGet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device",printer_default )
//MessageBox("Windows NT Printer Asignada", printer_default)
END CASE

dw_impresoras.SetItem(dw_tablas.GetRow(),"direccion_impresora",printer_default)

// Repito ciclo....hasta definir todas las impresoras...

//BUSCAR EL SISTEMA OPERATIVO Y ESTABLECER IMPRESORA POR DEFECTO..

//Para NT (xp; 2000): Asignar la Impresora Default

RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device",printer_default )

// Para todos los windows...

CHOOSE CASE env.OSType

CASE Windows!
gs_os="Win_95_98"
// Asignar la Impresora Default
RegistrySet("HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers", "default", printer_default)
//MessageBox("Windows sPrinter Asignada", printer_default)
CASE WindowsNT!
gs_os="Win_Nt"
// Asignar la Impresora Default
RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device",printer_default )
//MessageBox("Windows NT Printer Asignada", printer_default)

END CASE


// Con esta función busco en la tabla
//y tengo una que es por defecto para toda la aplicación llamada 'DEFAULT' (FUNCION_IMPRESORA)
// Selecciono la que es por defecto para todos los procesos de la aplicación (valor de FUNCION_IMPRESORA='DEFAULT')
string printer_default
//
SELECT DBA.IMPRESORA.DIRECCION_IMPRESORA
INTO :printer_default
FROM DBA.IMPRESORA
WHERE DBA.IMPRESORA.FUNCION_IMPRESORA = 'DEFAULT' ;
//
// o la que necesite para el proceso (dependiendo de como la haya llamado...etc...
//
// WHERE DBA.IMPRESORA.FUNCION_IMPRESORA = 'LISTADOS' ;
// aquí puedes agregar otro WHERE si lo manejas por ESTACION..
// AND DBA.IMPRESORA.ESTACION=:is_NOMBRE_ESTACION;

// Asignar la Impresora Default que haya buscado...
// Para NT:
// RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device",printer_default )
//
/Para todos lo windows...

CHOOSE CASE env.OSType

CASE Windows!
gs_os="Win_95_98"
// Asignar la Impresora Default
RegistrySet("HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers", "default", printer_default)
//MessageBox("Windows sPrinter Asignada", printer_default)
CASE WindowsNT!
gs_os="Win_Nt"
// Asignar la Impresora Default
RegistrySet("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device",printer_default )
//MessageBox("Windows NT Printer Asignada", printer_default)

//
END CHOOSE

Espero que te sirva...

L.T.
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:Cambiar de impresora

Publicado por Titanic (11 intervenciones) el 22/05/2007 14:39:37
Hola Leopoldo.

Lo que tú propones es cambiar el registro ¿no?. Lo he hecho y en lugar de asignarme la nueva impresora por defecto me da un "?" y me deja el sistema operativo sin impresora predeterminada.
Pensé que podría ser que no pongo el nombre exacto de la impresora pero si lo hago.

Saludos y gracias Leopoldo.
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:Cambiar de impresora

Publicado por Leopoldo Taylhardat (710 intervenciones) el 22/05/2007 16:55:46
No pongas el nombre sino la dirección...

Asígnala como impresora compartida y busca la dirección en la red...
por ej...

\\servidor\HP870

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