Asignar impresora por terminal?
Asignar impresora por terminal?
Foreros:
Cómo o donde definen ustedes las impresoras por cada terminal?, me explico un poco más
Mi aplicación utiliza, en una red LAN, en cada terminal, dos tipos de impresoras, una laser y una para tickets
La impresora laser esta definida como pre determinada, y cuando el usuario imprima
un ticket no debe salir en la impresora pre determinada (laser), entiendo que debo tener
especificada la salida hacia la impresora de tickets, y esa es mi duda, cómo o donde la
definen ustedes, consideren que son varias terminales y cada terminal tiene físicamente
un par de impresoras, laser y tickets de diferentes marcas y modelos.
Espero haber explicado mi duda, parece que hoy mi cerebro no da más.
Saludos
Cómo o donde definen ustedes las impresoras por cada terminal?, me explico un poco más
Mi aplicación utiliza, en una red LAN, en cada terminal, dos tipos de impresoras, una laser y una para tickets
La impresora laser esta definida como pre determinada, y cuando el usuario imprima
un ticket no debe salir en la impresora pre determinada (laser), entiendo que debo tener
especificada la salida hacia la impresora de tickets, y esa es mi duda, cómo o donde la
definen ustedes, consideren que son varias terminales y cada terminal tiene físicamente
un par de impresoras, laser y tickets de diferentes marcas y modelos.
Espero haber explicado mi duda, parece que hoy mi cerebro no da más.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Asignar impresora por terminal?
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Asignar impresora por terminal?
Karinha:
Gracias por la respuesta, mi necesidad es que sin intervención del usuario la impresión
salga a la impresora apropiada, si es un reporte que salga a la impresora laser pero si
es un ticket salga a la impresora de tickets, insisto, sin intervención del usuario.
Por lo anterior debo especificar, en algún lugar o por algún medio, la impresora apropiada.
Saludos
Gracias por la respuesta, mi necesidad es que sin intervención del usuario la impresión
salga a la impresora apropiada, si es un reporte que salga a la impresora laser pero si
es un ticket salga a la impresora de tickets, insisto, sin intervención del usuario.
Por lo anterior debo especificar, en algún lugar o por algún medio, la impresora apropiada.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Asignar impresora por terminal?
En mi caso tengo, para cada tipo de documento, una edicion-asignacion de impresora para cada usuario
Re: Asignar impresora por terminal?
Muchas gracias Paquito.
Es una excelente alternativa, habrá alguna otra?, solo para hacer una tormenta de ideas, no porque tu sugerencia me parezca mala.
Saludos
Es una excelente alternativa, habrá alguna otra?, solo para hacer una tormenta de ideas, no porque tu sugerencia me parezca mala.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Asignar impresora por terminal?
las defino en un .ini en el disco duro local
y ya
y ya
Code: Select all | Expand
cToPrinterTicket := LeeIniFile("CONFIG", "PRINTER_TICKET", "C:\CONFIG\PRINTERS.INI" )
cToPrinterLaser := LeeIniFile("CONFIG", "PRINTER_LAER", "C:\CONFIG\PRINTERS.INI" )
cToPinterCodeBar := LeeIniFile("CONFIG", "PRINTER_ZEBRA", "C:\CONFIG\PRINTERS.INI" )
SetPrintDefault( cToPrinterLaser )
PRINTER oPrn to cToPrinterLaser
FUNCTION LeeIniFile(cSection, cVal, cFile )
local oIni
LOCAL cStr := ''
INI oIni FILE cFile
GET cStr SECTION cSection ENTRY cVal OF oIni DEFAULT ""
ENDINI
RETURN ( cStr )
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: Asignar impresora por terminal?
Armando, ¿por qué no guardas el usuario, la estación (terminal) que está usando el usuario, la serie de computadora y la impresora a usar en un *.DBF?
Tks
Regards, saludos.
Tks
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Asignar impresora por terminal?
Amigos del foro:
Todas las sugerencias son válidas y funcionan, tal vez me decante por usar un archivo .INI
Saludos y muchas gracias
Todas las sugerencias son válidas y funcionan, tal vez me decante por usar un archivo .INI
Saludos y muchas gracias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Asignar impresora por terminal?
Armando, para poder hacer esto, si o si debes tener algo en la terminal en modo local, o bien, identificar cada terminal por, por ejemplo, su IP o nombre de equipo en una base de datos centralizada.
La idea de SysCtrol es muy buena, puedes usar un archivo INI o un DBF pero guardado en una carpeta local.
La opcion de una dbf es más fácil, porque incluso puedes hacer un modulo para modificar sobre ella.
En caso que quieras utilizar los datos almacendos en una base centralizada (ya sea DBF o MySql) puedes tener una tabla con las terminales instaladas, referenciando a ellas por el nombre del equipo, que logras obtener con la funcion GetHostName()
Las alternativas son varias
Luego en las impresiones que tienes que dirigir a una impresora determinada, haces lo que bien comenta sysctrl2 , haces PRINTER oPrn to cPrinterTicket
Mi granito de arena
La idea de SysCtrol es muy buena, puedes usar un archivo INI o un DBF pero guardado en una carpeta local.
La opcion de una dbf es más fácil, porque incluso puedes hacer un modulo para modificar sobre ella.
En caso que quieras utilizar los datos almacendos en una base centralizada (ya sea DBF o MySql) puedes tener una tabla con las terminales instaladas, referenciando a ellas por el nombre del equipo, que logras obtener con la funcion GetHostName()
Las alternativas son varias
Luego en las impresiones que tienes que dirigir a una impresora determinada, haces lo que bien comenta sysctrl2 , haces PRINTER oPrn to cPrinterTicket
Mi granito de arena
Re: Asignar impresora por terminal?
César:
Excelente explicación y muy completa, siempre son buenas las tormentas de ideas.
Saludos
Excelente explicación y muy completa, siempre son buenas las tormentas de ideas.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
-
- Posts: 262
- Joined: Sun Jan 31, 2010 3:30 pm
- Location: Bucaramanga - Colombia
Re: Asignar impresora por terminal?
Buen dia..
Tener almacenado por cada estación los datos de las impresoras : remotas o como segundas opciones
y segun necesidad del documento a imprimir
IF cImpFac == "S"
IMPRIMIR(cFilImp,"")
else
IMPRIMIR(cFilImp,"2") ... // IMPRIMIR(cFilImp,"3")
endif
Tener almacenado por cada estación los datos de las impresoras : remotas o como segundas opciones
y segun necesidad del documento a imprimir
IF cImpFac == "S"
IMPRIMIR(cFilImp,"")
else
IMPRIMIR(cFilImp,"2") ... // IMPRIMIR(cFilImp,"3")
endif
Code: Select all | Expand
FUNCTION IMPRIMIR(cFilImp,cNroImp)
LOCAL cNomRem := ""
IF cNroImp == "3" // REMOTA X RESTAURANTES .. COMO TERCERA IMPRESORA
cNomRem := M->cImpRemNr3
ENDIF
IF cNroImp == "2" // REMOTA X RESTAURANTES .. COMO SEGUNDA IMPRESORA
cNomRem := M->cImpRemNr2
ENDIF
IF EMPTY(cNomRem)
cNomRem := M->cImpRemNr1
ENDIF
IF EMPTY(cNomRem)
cNomRem := "DEFAULT"
ENDIF
IF cNomRem <> "DEFAULT"
setprintdefault()
ENDIF
shellexecute(0,"print",cFilImp,,,.f.)
RETURN
Re: Asignar impresora por terminal?
russmicro:
Muchas gracias por la idea.
Saludos
Muchas gracias por la idea.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- VitalJavier
- Posts: 242
- Joined: Mon Jun 10, 2013 6:40 pm
Re: Asignar impresora por terminal?
Armando, que tal.
Oye yo tengo 2 impresoras en una caja de cobro
1.- Grande para un tipo de notas
2.- Una pequeña de tickets para unos comprobantes que se dan
Asi imprimo sobre la impresora que esta por default determinada
sPrinterName := PRNGETNAME() <<= Esto lo pongo al inicio del programa para tomar la impresora por default
SetPrintDefault(sPrinterName) <<= Esto al momento de la impresión, por si pierdo en algún momento la impresora
E imprimo en hoja Grande.
Con esto, Tengo instalada una mini printer que le puse de nombre "TIKET" y sobre ella imprime
cPrint := "TICKET"
PRINT oPrn TO cPrint
Espero y te sirva.
Saludos.
Oye yo tengo 2 impresoras en una caja de cobro
1.- Grande para un tipo de notas
2.- Una pequeña de tickets para unos comprobantes que se dan
Asi imprimo sobre la impresora que esta por default determinada
sPrinterName := PRNGETNAME() <<= Esto lo pongo al inicio del programa para tomar la impresora por default
SetPrintDefault(sPrinterName) <<= Esto al momento de la impresión, por si pierdo en algún momento la impresora
E imprimo en hoja Grande.
Con esto, Tengo instalada una mini printer que le puse de nombre "TIKET" y sobre ella imprime
cPrint := "TICKET"
PRINT oPrn TO cPrint
Espero y te sirva.
Saludos.
Re: Asignar impresora por terminal?
Armando,
Regards, saludos.
Code: Select all | Expand
/*
Purpose : Save and restore the current printer.
Notes : When an application is run, the current printer always defaults to the
Windows default printer. Here is how default to the last used printer in
the application. Each user can have a different default printer. The printer
name is saved in a user.ini file under the user's section.
Author : James Bott, jbott@compuserve.com
Date : 04/09/04 10:53:04
Language: Fivewin Harbour 2.4. Harbour 43 Alpha.
*/
#include "fivewin.ch"
// --- Test
FUNCTION Main()
LOCAL oIni, cPrinter := "", oUser
INI oIni FILE ".\user.ini"
oUser := TUser():new()
oUser:name := "James"
// Get application default printer for oUser
GET cPrinter section oUser:name entry "DefaultPrinter" DEFAULT prnGetName() of oIni
msgInfo( prnGetName(), "Windows default printer is:" )
msgInfo( cPrinter, "Application default printer from INI file is:" )
// Set the current printer to cPrinter
setPrinter( cPrinter )
msgInfo( prnGetName(), "Application Current printer as set via code is:" )
printerSetup()
// Save current printer as default
SET section oUser:name entry "DefaultPrinter" TO prnGetName() of oIni
RETURN NIL
// --- Set application's current printer. Returns .T. if successful.
// cPrinter must be the name of an existing print device.
FUNCTION setPrinter( cPrinter )
LOCAL cOldPrinter := "", hDC := 0, aPrn, cText := "", lSuccess := .F.
IF cPrinter <> prnGetName()
cText := StrTran( GetProfString( "Devices" ), Chr( 0 ), Chr( 13 ) + Chr( 10 ) )
aPrn := Array( MLCount( cText, 250 ) )
AEval( aPrn, {| v, e | aPrn[ e ] := Trim( MemoLine( cText, 250, e ) ) } )
IF AScan( aPrn, cPrinter ) > 0
cOldPrinter := GetProfString( "windows", "device", "" )
WriteProfString( "windows", "device", cPrinter )
SysRefresh()
PrinterInit()
hDC := GetPrintDefault( GetActiveWindow() )
IF hDC > 0
lSuccess := resetDC( hDC )
ENDIF
SysRefresh()
WriteProfString( "windows", "device", cOldPrinter )
ENDIF
ENDIF
RETURN lSuccess
// --- User class
CLASS TUser
DATA name
METHOD NEW
METHOD END virtual
ENDCLASS
METHOD new()
::name := ""
RETURN self
// eof
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Re: Asignar impresora por terminal?
Javier, Karinha y todos los amigos que respondieron, muchas gracias.
Intentaré los ejemplos y reportaré por cual me decanto, por el momento estoy liado con otro tema.
Saludos y, reitero, muchas gracias.
Intentaré los ejemplos y reportaré por cual me decanto, por el momento estoy liado con otro tema.
Saludos y, reitero, muchas gracias.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero