Power Builder - Impresiones

 
Vista:

Impresiones

Publicado por achafio (88 intervenciones) el 26/12/2006 19:01:36
Hola a todos, espero me puedan ayudar.
Tengo unos reportes las cuales debo imprimir dos copias, una en una impresiora local, y la otra en una impresora remota (en red), pero tiene que ser automàticamente, es decir sin que el usuario deba seleccionar la impresión, como puedo hacer eso.

Gracias de antemano.
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:Impresiones

Publicado por Leopoldo Taylhardat (710 intervenciones) el 27/12/2006 17:34:12
Saludos y Feliz Navidad...

Aquí lo tienes...
Yo hice solo una versión para NT y lo modifiqué para tener una tabla de impresoras donde busco cual es la que necesito en ese momento y la asigno...

/ Obtener la Impresora Default (Listados)
// Existe una tabla llamada 'IMPRESORA'que contiene dos (2) columnas:

DIRECCION_IMPRESORA = La dirección fisica de la impresora.
FUNCION_IMPRESORA = Para que se utiliza.
// 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....


/*
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 para esta funcion (Buscar Impresora).
*/

string printer_default

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

CHOOSE CASE env.OSType

CASE Windows!
gs_os="Win_95_98"
// Obtener 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"
// Obtener 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

//BUSCAR EL SISTEMA OPERATIVO Y ESTABLECER IMPRESORA POR DEFECTO..
//Para NT: 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

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

// Si lo manejas con una tabla como expliqué...

// 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' ;
// aqui 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
//
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

Nota Adicional.

Publicado por Leopoldo Taylhardat (710 intervenciones) el 29/12/2006 13:16:18
Saludos.

La función de usar una tabla es que eso me permite cambiar impresoras en cualquier momento a otra máquina. Solo hay que cambiar en la tabla la dirección de la impresora que necesito para ese proceso.

Saludos desde Maracay, Venezuela.

Felíz año 2007 para todos.
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