Ir al contenido


Foto

Función para quitar caracteres especiales...


  • Por favor identifícate para responder
31 respuestas en este tema

#1 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 noviembre 2008 - 02:29

Hola a todos, resulta que estoy trabajando con las impresoras fiscales Epson, estas [ironia]"lindas maquinitas"[/ironia] tienen un detallito, no imprimen los caracteres especiales, que para el español es indispensable (Ñ, á, é, í, ó, ú).

Lo que queria saber es si Delphi trae una función con la cual me pueda deshacer de ellos, o tengo que inventarmela yo mismo?

algo asi como



delphi
  1. cCadena := QuitarCaracteres(cCadena);


  • 0

#2 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 25 noviembre 2008 - 03:47

[OFF TOPIC]¿Alguién sabe de algún tutorial, manual o recurso para el manejo de las impresiones de este tipo?[/OFF TOPIC]

  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 noviembre 2008 - 04:04

[OFF TOPIC]¿Alguién sabe de algún tutorial, manual o recurso para el manejo de las impresiones de este tipo?[/OFF TOPIC]


eso depende de la impresora y del fabricante del chip de la memoria Fiscal, ¿tienes algúna en especifica?
  • 0

#4 seoane

seoane

    Advanced Member

  • Moderador
  • PipPipPip
  • 1.257 mensajes
  • LocationEspaña

Escrito 25 noviembre 2008 - 04:06

¿Probaste a cambiarle el juego de caracteres? Algunas impresoras permiten cambiarle el juego de caracteres, por defecto traen el ingles, intenta cambiarlo a español.

Y para desacerte de los caracteres problemáticos solamente tienes que eliminar los que sean mayores a 127. Es decir:


delphi
  1. function QuitarCaracteres(Str: String): String;
  2. var
  3.  i: Integer;
  4. begin
  5.  Result:= EmptyStr;
  6.  for i:= 1 to Length(Str) do
  7.    if Str[i] < #128 then
  8.      Result:= Result + Str[i];
  9. end;


  • 0

#5 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 25 noviembre 2008 - 04:10

Gracias Seoane, lo probare de inmediato.
  • 0

#6 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 25 noviembre 2008 - 08:26


[OFF TOPIC]¿Alguién sabe de algún tutorial, manual o recurso para el manejo de las impresiones de este tipo?[/OFF TOPIC]


eso depende de la impresora y del fabricante del chip de la memoria Fiscal, ¿tienes algúna en especifica?

Pues la verdad no... en realidad no he tenido que trabajar con estas impresoras, pero si me gustaria conocer algo al respecto... quiza pronto lo tenga que hacer  8-|

PD: El ejemplo no importa, despues de que pueda entender su funcionamiento en común  ;)
  • 0

#7 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 07:32

en verdad no es nada del otro mundo, simplemente le envias los datos del cliente con cierto formato y los datos del producto vendido.  ella se encarga de estructurar el formato de tal manera que salga una factura autorizada por el ministerio o organismo encargado de llevar los impuestos en el pais.

A "grosso modo" ellas lo que tienen es una memoria interna que permite almacenar estos montos por fecha, y a la hora de fiscalizar sacan un reporte llevando el control del impuesto cobrado en ese punto de venta.
  • 0

#8 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 26 noviembre 2008 - 08:50

en verdad no es nada del otro mundo, simplemente le envias los datos del cliente con cierto formato y los datos del producto vendido.  ella se encarga de estructurar el formato de tal manera que salga una factura autorizada por el ministerio o organismo encargado de llevar los impuestos en el pais.

A "grosso modo" ellas lo que tienen es una memoria interna que permite almacenar estos montos por fecha, y a la hora de fiscalizar sacan un reporte llevando el control del impuesto cobrado en ese punto de venta.

:|... bueno, eso no lo sabia y menos que tanto aplica en cada pais...
Normalmente estas son usadas para generar tiquets y cosas por el estilo ¿no?... no se si estoy confundiendo la cosa, ahi perdonaran  :$, pero entonces ya depende de cada modelo el funcionamiento de la misma y el modo en que se trabaje desde Delphi, ¿voy bien?  :D
  • 0

#9 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 08:59

lo has entendido bien, solo que ticket = Factura
  • 0

#10 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 26 noviembre 2008 - 09:47

lo has entendido bien, solo que ticket = Factura

Claro, entonces se registran los codigos e impuestos que aplican para cada pais, ejemplo aca: NIT (Número de Identificación Tributaria), IVA (Impuesto al Valor Agregado)...

Entonces estando claros en eso, mi inquietud (Y causante del desvio del tema  :p  :D) es sobre su programación, ya que es claro que no se generan factuas igual que como con una impresora normal  ^o|... A eso refiero con el ejemplo que me gustaira ver :D

Gracias...
  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 26 noviembre 2008 - 10:00

Si te refieres a cómo diseñar un ticket o cómo se hace el ticket, pues algunos lo hacemos via Canvas otros lo hacen vía reporteador.

Saludos.
  • 0

#12 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 10:02

en verdad quieres ver eso?? jejeje no te lo recomiendo...

a ver un ejemplo para las epson:

Este procedimiento imprime una factura fiscal con un solo producto, los comentarios hacen referencia al campo en el manual.



delphi
  1. procedure TfrEpson.EnviarFactura;
  2. var
  3.   cCadena: String;
  4. begin
  5.   //abre la factura fiscal
  6.           //   1  2            3              4         5          6   7   8  9  10  11 12  13   14     15  16 17  18
  7.           // cmd -                 1          -         2          -   3   -  4  -   5   -  6  -     7      -  8   -  9
  8.   cCadena := #64#28 + 'EDUARDO COLMENARES' + #28 + 'V-14116252' + #28#127#28#127#28#127#28#127#28 + 'T' + #28#127#28#127;
  9.   EnviarComando(cCadena);
  10.  
  11.   //espera que este lista la impresora
  12.   lEsperar := True;
  13.   nVan := 0;
  14.   while lEsperar do
  15.   begin
  16.      Application.ProcessMessages;
  17.   end;
  18.  
  19.   //texto en factura fiscal
  20.           //  1   2        3                             4    5
  21.           //CMD  -                        1             -     2
  22.   cCadena := #65#28 + 'DIRECCION: FUNDACION MENDOZA' + #28 + 'S';
  23.   EnviarComando(cCadena);
  24.  
  25.   //espera que este lista la impresora
  26.   lEsperar := True;
  27.   nVan := 0;
  28.   while lEsperar do
  29.   begin
  30.      Application.ProcessMessages;
  31.   end;
  32.  
  33.   //imprimir item
  34.           //  1   2      3       4       5      6       7      8       9      10    11    12  13 14  15 16  17
  35.           // CMD  -      1       -       2      -       3      -       4       -    5     -    6 -   7  -   8
  36.   cCadena := #66#28 + 'CORTE' + #28 + '1000' + #28 + '2385' + #28 + '0900' + #28 + 'M' + #28#127#28#127#28#127;
  37.   EnviarComando(cCadena);
  38.  
  39.   //espera que este lista la impresora
  40.   lEsperar := True;
  41.   nVan := 0;
  42.   while lEsperar do
  43.   begin
  44.      Application.ProcessMessages;
  45.   end;
  46.  
  47.   //CERRAR FACTURA FISCAL
  48.           //   1  2    3
  49.           // cmd  -    1
  50.   cCadena := #69#28 + 'T';
  51.   EnviarComando(cCadena);
  52.  
  53.   //espera que este lista la impresora
  54.   lEsperar := True;
  55.   nVan := 0;
  56.   while lEsperar do
  57.   begin
  58.      Application.ProcessMessages;
  59.   end;
  60. end;




El siguiente procedimiento es el que se comunica con la impresora, y utiliza los componentes TPApro.



delphi
  1. procedure TfrEpson.enviarcomando(Comando: String);
  2. var
  3.   nSuma, nSecuencia, I: Integer;
  4.   cCadena: String;
  5. const
  6.   _ESPERA = 800;
  7. begin
  8.   //Envia un comando a la impresora
  9.  
  10.   //Toma la secuencia
  11.   nSecuencia := 0;
  12.   while (nSecuencia < 32) or (nSecuencia > 126) do
  13.   begin
  14.      nSecuencia := Random(127);
  15.   end;
  16.  
  17.   //Arma la primera parte de la cadena
  18.            //STX + SEC            + COMANDO + ETX + BCC
  19.   cCadena := #2 + chr(nSecuencia) + Comando + #03;
  20.  
  21.  
  22.   //calcula BCC
  23.   nSuma := 0;
  24.  
  25.   For i := 0 To Length(cCadena) do
  26.   begin                                          //calcula el valor en ASCII de una cadena.
  27.      nSuma := Integer(Char(cCadena[i])) + nSuma;         //y lo devuelve en suma.
  28.   end;
  29.  
  30.   //Agrega el bcc a la cadena
  31.   cCadena := cCadena + InttoHex(nSuma, 4);
  32.  
  33.   txEnvios.Lines.Add(cCadena);
  34.   Port.PutString(cCadena);
  35.  
  36. end;



PD, aqui me ayudo mucho egostar.
  • 0

#13 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 26 noviembre 2008 - 10:29

Gracias eduarcol por tan  :|?... ejemplo  :p jejejeje...
Aparte de todo se entiende el objetivo y era algo que queria conocer...

Si te refieres a cómo diseñar un ticket o cómo se hace el ticket, pues algunos lo hacemos via Canvas otros lo hacen vía reporteador.

Saludos.

Gracias amigo, me imagino que con el canvas tendria algo parecido al ejemplo que me dan, respecto a la complejidad claro; ahora vía reporteador ¿podria ser mas simple?, pero ¿y que tan recomendado?


PD: Tenga en cuenta que pregunto solo por aprender... maestros  ;)
  • 0

#14 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 10:35

este tipo de impresora no tienen los drivers, y no aceptan cambio en el formato, por lo menos en Vzla, ya veo que en Dominicana son mas ligeros al respecto... Por cierto Fernando sabes que es una fiscal y no una TMU normal?
  • 0

#15 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 26 noviembre 2008 - 10:38

...es una fiscal y no una TMU normal?

¿Que tan diferentes podrian ser?
  • 0

#16 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 10:44

En que la Fiscal se le anexa una memoria para guardar el registro de las ventas y del IVA o Impuesto a las ventas, esta memoria no puede ser modificada y solo es leida para sacar los reportes de venta y declaraciones al Fisco.

Una TMU es una impresora mas, común y silvestre, que tiene sus drivers y demas facilidades para programar, mientras que la fiscal debe ser por secuencia de escape tal cual se muestra en el ejemplo.
  • 0

#17 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 26 noviembre 2008 - 10:49

Sí Eduardo, sé la diferencia, sólo que Felipe no especificó ;), y lo dije en sentido general :D
  • 0

#18 eduarcol

eduarcol

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 noviembre 2008 - 10:58

lo pregunte porque me asalta una duda, en Dominicana tu puedes modificar el formato a la factura de una impresora fiscal?

  • 0

#19 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 26 noviembre 2008 - 11:00

Bueno, no te aseguro nada porque no trabajo con ellos, pero sí he visto que cambian los formatos.
  • 0

#20 felipe

felipe

    Advanced Member

  • Moderador
  • PipPipPip
  • 3.283 mensajes
  • LocationColombia

Escrito 26 noviembre 2008 - 11:11

En que la Fiscal se le anexa una memoria para guardar el registro de las ventas y del IVA o Impuesto a las ventas, esta memoria no puede ser modificada y solo es leida para sacar los reportes de venta y declaraciones al Fisco.

Una TMU es una impresora mas, común y silvestre, que tiene sus drivers y demas facilidades para programar, mientras que la fiscal debe ser por secuencia de escape tal cual se muestra en el ejemplo.

Re-gracias  :D... ahora entiendo más cómo funciona la cosa, es entonces el caso de una TMU en donde puedo imprimir desde un reporteador normal, solo ajustandose a su configuración claro...
Entonces ya depende del usuario o cliente cual es la necesidad de la impresora... solo algo más, ¿en un TPV se usan las TMU?

Sí Eduardo, sé la diferencia, sólo que Felipe no especificó  ;), y lo dije en sentido general  :D

¿Ahora me daras la culpa a mi?  :p jejeje... hice la pregunta de ese modo por no saber las diferencias de estas impresoras, pero mira que ahora me es mas claro  ;)
  • 0