Clarion - Alguien conoce en forma el LinePrint?

   
Vista:

Alguien conoce en forma el LinePrint?

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 05/12/2011 20:03:02
Resulta ser que necesito capturar una impresora matricial que esta conectada a un equipo en la red y bueno por logica no puedo ponerle esto.

OLinePrint('LPT1')
Porque o sino caeria en el puerto de la maquina en que se abre la aplicacion.

Quiero esto:

OLinePrint('\\servidor2003\EpsonLX300')

Pero envio la impresion y no me da bolilla, necesito saber que esta mal, porque no reconoce el template esta orden.

Realmente pude imprimir en la matricial pero haciendo otro truco con variables locales:

L:Printer_Ant = PRINTER{PROPPRINT:DEVICE}
L:Printer_Des = '\\192.168.123.157\lp1'
PRINTER{PROPPRINT:DEVICE}=L:Printer_Des


y en el Kill Procedure
PRINTER{PROPPRINT:DEVICE}=L:Printer_Ant !Devuelve la impresora predeterminada.

Pero me quede con la espina de que no funciona el Linesprint de esa manera y quisiera que alguien me lo pueda resolver. Muchas gracias, ...a proposito tengo el template de Nova que incluye el lineprint
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
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

Alguien conoce en forma el LinePrint?

Publicado por fvalencia (85 intervenciones) el 05/12/2011 22:40:40
Federico:

Hay otro template que se usa para imprimir en matriciales llamado PRINTDRV.
Es mas versátil pues la impresora puede estar conectada a un puerto usb o en un punto de la red.
Inicializas la impresora con el nombre que te aparece en tu listado de impresoras de windows (Debes darla de alta en windows)

Usando PrinterDialog puedes hacer una forma para grabar en una tabla la impresora que usas para tickets y despues la retomas



CLEAR(CET:RECORD)
CET:IdConfiguracion = 1
ACCESS:CFG_ET.FETCH(CET:PKIdConfiguracion)
LOC:Impresora = CET:ImpresoraTickets
LOC:CopiaImpresora = Printer{PROPPRINT:Device}
Printer{PROPPRINT:Device} = LOC:Impresora


x# = PRINTDRV::Initialise(Clip(LOC:Impresora)) ! Inicializo impresion
PRINTDRV::WriteText(center(SUC:Nombre,40)) ! Encabezado
...............
el template lo encuentras en www.clarionwiki.com.ar
Espero te sirva
saludos
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

Alguien conoce en forma el LinePrint?

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 06/12/2011 16:10:30
CLEAR(CET:RECORD)
CET:IdConfiguracion = 1
ACCESS:CFG_ET.FETCH(CET:PKIdConfiguracion)
LOC:Impresora = CET:ImpresoraTickets

Hasta aqui guardas en un campo de esta tabla los parametros varios de tu aplicacion no?

LOC:CopiaImpresora = Printer{PROPPRINT:Device}
!Guardas la predeterminada
Printer{PROPPRINT:Device} = LOC:Impresora
!Y pones la impresora parametrizada


x# = PRINTDRV::Initialise(Clip(LOC:Impresora)) ! Inicializo impresion
PRINTDRV::WriteText(center(SUC:Nombre,40)) ! Encabezado

la pregunta, ¿como terminas la impresion? y como manejas los saltos y la finalizacion?

Es una opcion muy buena la que me diste y te agradezco mucho pero no estoy familiarizado con este template y si voy a reemplazarlo debo saber los detalles mas finos.

Federico
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

Alguien conoce en forma el LinePrint?

Publicado por fvalencia (85 intervenciones) el 06/12/2011 20:44:25
Federico:

Este es el source que uso para imprimir un ticket.
la impresora para los tickets es una epson (por las secuencias de escape para cortar papel y abrir cajón de dinero)
solo uso 3 instrucciones
x# = PRINTDRV::Initialise(Clip(LOC:Impresora)) ! Inicializo impresion
PRINTDRV::WriteText(center(SUC:Nombre,40)) ! Encabezado
PRINTDRV::Finalise()
***************************************

LOC:Cajon = par:cajon
LOC:IdVenta = par:idventa
clear(ven:record)
VEN:IdVenta = LOC:IdVenta
access:ventas.fetch(VEN:PKIdVenta)

CLEAR(CET:RECORD)
CET:IdConfiguracion = 1
ACCESS:CFG_ET.FETCH(CET:PKIdConfiguracion)
LOC:Impresora = CET:ImpresoraTickets
LOC:CopiaImpresora = Printer{PROPPRINT:Device}
Printer{PROPPRINT:Device} = LOC:Impresora

CLEAR(SUC:RECORD)
SUC:IdSucursal = VEN:IdSucursal
ACCESS:SUCURSALES.FETCH(SUC:PKIdSucursal)
LOC:PoblacionEstado = clip(SUC:Poblacion) & ',' & clip(SUC:Estado)

CLEAR(CLI:Record)
CLI:IdCliente = VEN:IdCliente
ACCESS:CLIENTES.FETCH(CLI:PKIdCliente)
LOC:NumeroaLetra = NumeroaLetra(VEN:GranTotal)
LOC:Cambio = VEN:Recibido - VEN:GranTotal

x# = PRINTDRV::Initialise(Clip(LOC:Impresora)) ! Inicializo impresion
PRINTDRV::WriteText(center(SUC:Nombre,40)) ! Encabezado
PRINTDRV::WriteText(center(SUC:Comercial,40))
if VEN:Tipo = 'DEVOLUCION'
PRINTDRV::WriteText('DEVOLUCION DE MERCANCIA')
else
PRINTDRV::WriteText(format(SUC:Calle,@s25) & ';COL:' & format(SUC:Colonia,@s12))
PRINTDRV::WriteText(format(LOC:PoblacionEstado,@s40))
PRINTDRV::WriteText('C.P. ' & format(SUC:CP,@s10) & ' Tel:' & format(SUC:Telefono,@s12))
PRINTDRV::WriteText(center('RFC: ' & clip(SUC:RFC),40))
end
PRINTDRV::WriteText('FECHA: ' & format(VEN:Fecha,@d6) & ' ' & format(VEN:Hora,@t1))
PRINTDRV::WriteText('CLIENTE: ' & format(CLI:RazonSocial,@s40))
PRINTDRV::WriteText('---------------------------------------')
PRINTDRV::WriteText('Cant Descripcion pu Importe')
PRINTDRV::WriteText('---------------------------------------')
CLEAR(VED:RECORD)
VED:IdVenta = VEN:IdVenta
SET(VED:FKIdVenta,VED:FKIdVenta)
LOOP UNTIL ACCESS:VENTASDE.NEXT() OR VED:IdVenta <> VEN:IdVenta
if VED:PorcentajeIva >0
LOC:Gravado = 'G'
else
LOC:Gravado = 'E'
end
CLEAR(ART:RECORD)
ART:IdArticulo = VED:IdArticulo
ACCESS:ARTICULOS.FETCH(ART:PKIdArticulo)
if VED:ImporteDescuento > 0 then
PRINTDRV::WriteText(format(VED:Cantidad,@n_7.3)& ' ' &format(ART:Descripcion,@s14)& ' ' &format(VED:PrecioUnitario,@n_6.2)& ' ' &format(VED:Total,@n_8.2-))
PRINTDRV::WriteText(' Menos Descuento $:' & format(VED:ImporteDescuento,@n_8.2)& ' Usted Paga ' &format(VED:TotalFinal,@n_8.2-)& LOC:Gravado)
else
PRINTDRV::WriteText(format(VED:Cantidad,@n_7.3)& ' ' &format(ART:Descripcion,@s14)& ' ' &format(VED:PrecioUnitario,@n_6.2)& ' ' &format(VED:TotalFinal,@n_8.2-)& LOC:Gravado)
end
END
PRINTDRV::WriteText('IVA DE LA VENTA 16% --> ' & format(VEN:ImporteIva,@n_8.2) )

PRINTDRV::WriteText('Total --> ' & format(VEN:GranTotal,@n_8.2))
PRINTDRV::WriteText('Pago --> ' & format(VEN:Recibido,@n_8.2) )
PRINTDRV::WriteText('Cambio --> ' & format(LOC:Cambio,@n_8.2) )
PRINTDRV::WriteText(LOC:NumeroaLetra,1)

PRINTDRV::WriteText('Caja: ' & VEN:Caja & ' ' & 'Folio: ' & VEN:Ticket)
if VEN:Tipo = 'DEVOLUCION'
PRINTDRV::WriteText('DEVOLUCION DE MERCANCIA')
PRINTDRV::WriteText('DEVOLUCION DE MERCANCIA')
else
PRINTDRV::WriteText(SUC:Leyenda1)
PRINTDRV::WriteText(SUC:Leyenda2)
end
loop I# = 1 TO 6 BY 1
PRINTDRV::WriteText('') !!! seis saltos de página
end
PRINTDRV::WriteText('<27,105>') !!! corte de hoja
if GLO:Cajon = 1 then
if LOC:Cajon = 1 then PRINTDRV::WriteText('<27,112,48,25,75>') end
end !!! abro cajon de dinero
PRINTDRV::Finalise() ! Cierro impresion
Printer{PROPPRINT:Device} = LOC:CopiaImpresora
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

Alguien conoce en forma el LinePrint?

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 06/12/2011 22:44:39
muchisimas gracias por tu ayuda, necesitaba el PRINTDRV::Finalise(), cualquier cosa a la orden, no soy un guru del clarion pero ya hice muchas aplicaciones en este lenguaje, si t puedo ayudar con mucho gusto.
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

Alguien conoce en forma el LinePrint?

Publicado por Marcelo Madelon (572 intervenciones) el 10/12/2011 23:09:33
Imprimir con LinePrint (Tempalte Free)
Te paso una parte de código como para que se orienten.
Espero les sirva,
Saludos desde Venado Tuerto


LinePrint('<27,64>',,0) ! Inicializo Impresora
LinePrint('<27,67,72>',,0) ! Longitud pagina a 72 Líneas
LinePrint('<27,102,1,1>',,0) ! Salta 1 Lineas
LinePrint(CHR(27)&CHR(18)&' '&ATI:DenominacionCbte)
LinePrint('<27,102,1,2>',,0) ! Salta 2 Lineas
LinePrint(CHR(27)&CHR(18)&' FECHA EMISION: '|
&(format (FAC1:FechaEmision,@d6)))
LinePrint('<27,102,1,4>',,0) ! Salta 4 Lineas
LinePrint(CHR(27)&CHR(18)&' '&AC1:ApellidoNombre)
LinePrint(CHR(27)&CHR(18)&' '&AC1:Direccion)
LinePrint(CHR(27)&CHR(18)&Format(AC1:CodPostal,@P(####-##)P)&' '&AEN:Localidad |
&' '&Format(AC1:Cuit,@P##-########-#P)&' '|
&ASI:Abreviatura)

LinePrint('<27,102,1,2>',,0) ! Salta 2 Lineas
..
.
.
.
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

Alguien conoce en forma el LinePrint?

Publicado por Federico (43 intervenciones) el 04/04/2012 21:24:02
Mister, no entiendo viejo, baje del sitio donde me dijeron este template ç, el printdrv.tpl, lo registre en mi Clarion y ni bolilla me da cuando lo paso al source de mi procedimiento, segui los pasos correspondientes de poner el template dentro de la global de mi aplicacion y nada viejo. Me gustaria que me indiques que hay que poner mas para que este codigo o similar a este funcione. Con este template compilo, no me da un solo error, todo al pelo, pero cuando lo ejecuto no pasa nada, dirtectamente ni siquiera da muestras de que esta en linea con la impresora, probe de darle un hoja de prueba a la matricial y funciona sin dramas, pero le envio el codigo de este template y no me lee nada. Tenes alguna sugerencia porque podria no funcionarme?
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

Alguien conoce en forma el LinePrint?

Publicado por Joan (69 intervenciones) el 16/12/2011 13:47:12
Hola mira si quieres usar una impresora de RED con LinePrint como si se tratara de una impresora local se puede hacer asi: se trata de mapear la impresora de RED como LPT2 es decir una segunda impresora local.

se hace asi

desde linea de comendos del pc (inicio/ejecutar/CMD)
pones
NET USE LPT2: \\nombredel servidordeimpresion\nombredeimpresora

a partir de ahi ya puedes usar la impresora de RED que has mapeado como si fuera una impresora local LPT2:

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

Alguien conoce en forma el LinePrint?

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 17/12/2011 21:14:38
Joan, te agradezco muchisimo por tu aporte pero no es era esa mi consulta, el tema de red no hay drama, mi problema es que internamente en el sorce de mi proceso pueda reconocer el template la impresora que en la red me reconoce sin dramas. Es una cuestion de codigo nada mas. De todos modos te agradezco mucho que me hayas contestado, saludos
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

Alguien conoce en forma el LinePrint?

Publicado por Marcelo Madelon (572 intervenciones) el 18/12/2011 15:59:37
Federico


Si queres imprimir en una impresora determinada podes usar el campo de un archivo donde tenes el path y el nombre de la impresora
Yo uso el archivo Impresora, donde tengo un ID, NombreImpresora, Local
antes de comenzar la imrpesión, leo la impresora que detine para hacer esa impresión
el campo IMP:NombreImpresora poderá tener si es local
IMP:NombreImpresora = 'Epson LX 300' ! Debe ser el nombre que le das cuando la instalas

en caso de que sea una impresora de red
IMP:NombreImpresora = '\\Servidor\Sistemas\Epson LX 300'

IF LOCAL = 'si'
LinePrint('<27,64>',,0) ! Inicializo Impresora
LinePrint('<27,67,72>',,0) ! Longitud pagina a 72 Líneas
LinePrint('<27,102,1,1>',,0) ! Salta 1 Lineas
LinePrint(CHR(27)&CHR(18)&' FECHA EMISION: ' & (format (FAC1:FechaEmision,@d6)))
LinePrint('<27,102,1,4>',,0) ! Salta 4 Lineas
LinePrint(CHR(27)&CHR(18)&' '&AC1:ApellidoNombre)

ELSE
LinePrint('<27,64>',IMP:NombreImpresora,0) ! Inicializo Impresora
LinePrint('<27,67,72>',IMP:NombreImpresora,0) ! Longitud pagina a 72 Líneas
LinePrint('<27,102,1,1>',IMP:NombreImpresora,0) ! Salta 1 Lineas
LinePrint(CHR(27)&CHR(18)&' FECHA EMISION: ' & (format(FAC1:FechaEmision,@d6)),IMP:NombreImpresora)
LinePrint('<27,102,1,4>',IMP:NombreImpresora,0) ! Salta 4 Lineas
LinePrint(CHR(27)&CHR(18)&' '&AC1:ApellidoNombre,IMP:NombreImpresora)
END

Espero te sirva

Saludos desde Venado Tuerto - 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

Alguien conoce en forma el LinePrint?

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 23/12/2011 13:45:22
Creo que con lo tuyo le pegamos en el clavo amigo, a simple vista ya me di cuenta de que tiene otro procedimiento, lo voy a probar. Desde ya muchas gracias por el favor y por tomarte la molestia de contestar mi consulta. Decime, eso funcionaria si yo le pongo que imprima en una ip determinada? concretamente tengo 3 printservers en la res y en la que deseo es \\192.168.123.157 , se podra hacer eso? muchas gracias y Felices Fiestas.
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

Alguien conoce en forma el LinePrint?

Publicado por Marcelo Madelón (572 intervenciones) el 23/12/2011 15:57:42
Federico

No lo he probado, pero supongo que si.
Ya que estás cuando lo purebes reportá el resultado en el foro.

Gracias.

Feliz Navidad!!!!


Saludos desde Venado Tuerto

Marcelo Madelón
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

Alguien conoce en forma el LinePrint?

Publicado por Federico (43 intervenciones) el 17/02/2012 18:33:00
Chicos, he probado las dos formas y ninguna me ha funcionado,

tengo colgada de mi maquina la epson lx-300+, le digo con prindrv las instucciones y ni caso le hace a la impresora, antes con el lineprint que tenia de nova40 me salia bien la impresion solo que se iba de repente unas lineas mas y por eso era que puse esta duda en el foro.
Digo los pasos que segui.

registre el template en mi clarion
luego pase ttodas mis lineas de lineprint() a prindrv() y jamas ni siquiera me dio vida a la impresora. encima como guarnicion puse la impresora matricial como predeterminada y ni bolilla le dio tampoco.
cree en una tabla de configuracion un campo para guardar el nombre de la impresora
'Epson LX-300+' y leer sobre la marcha, tampoco le dio bolilla, esta muerta mi impresora con los comandos de printdrv()
lamentablemente no tengo otra opcion que volver de nuevo a lineprint(), pero hete aqui que desde que instale el template printdrv() me mando al congo varios comandos del lineprint() como

OLinePrint() iniciar impresora

CLinePrint() finalizar impresora

Gracias de todos modos a todos pero nada de lo que pusieron aqui me sirvio.
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

Alguien conoce en forma el LinePrint?

Publicado por Carlos Espinoza carlosmartinsespinoza@hotmail.com (4 intervenciones) el 01/03/2012 13:52:18
abajo sigue una parte de mi código con el template LINEPRINT.......

LinePrint(Format(Today(),@d06)&ALL(' ',20)&Format(Clock(),@T04),Glo:SaidaCuponVenda)
LineToPrint = CLIP(EMP:RazaoSocial)
LinePrint(CENTER(FORMAT(LineToPrint,@S38)),Glo:SaidaCuponVenda)
LineToPrint = 'Tel / Fax.: '&CLIP(EMP:Telefone)
LinePrint(CENTER(FORMAT(LineToPrint,@S38)),Glo:SaidaCuponVenda)
LinePrint('CNPJ.:'&FORMAT(EMP:CNPJ,@P##.###.###/###-##P),Glo:SaidaCuponVenda)
LinePrint('Insc. Est.:'&FORMAT(CLIP(EMP:InscricaoEstadual)),Glo:SaidaCuponVenda)
LinePrint = EMP:Endereco
LinePrint(CENTER(FORMAT(LineToPrint,@S38)),Glo:SaidaCuponVenda)
LinePrint(CLIP(BAI:Bairro)&','&CLIP(CID:Cidade)&','&CLIP(EST:SiglaUF),Glo:SaidaCuponVenda)
LinePrint(' ',Glo:SaidaCuponVenda)

en la variable Glo:SaidaCuponVenda, tengo la direcion de la impressora....si es LPT1,LPT2 o COM1, COM2 ...o si es para un archivo......para imprimir a una impressora en la red....tenes que compartir la impressora y en una variable poder su camino, en este caso en Glo:SaidaCuponVenda


tendriamos esto

Glo:SaidaCuponVenda = '\\pc\lx300'

o

Glo:SaidaCuponVenda = '\\otropc\hp4500'

tan solo eso...utilizo de esta forma desde larga fecha e siempre me funciono....y se imprime desde vários puntos en la red a una sola impressora
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