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
cCadena := QuitarCaracteres(cCadena);
Posted 25 November 2008 - 02:29 PM
cCadena := QuitarCaracteres(cCadena);
Posted 25 November 2008 - 03:47 PM
Posted 25 November 2008 - 04:04 PM
[OFF TOPIC]¿Alguién sabe de algún tutorial, manual o recurso para el manejo de las impresiones de este tipo?[/OFF TOPIC]
Posted 25 November 2008 - 04:06 PM
function QuitarCaracteres(Str: String): String; var i: Integer; begin Result:= EmptyStr; for i:= 1 to Length(Str) do if Str[i] < #128 then Result:= Result + Str[i]; end;
Posted 25 November 2008 - 04:10 PM
Posted 25 November 2008 - 08:26 PM
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
[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?
Posted 26 November 2008 - 07:32 AM
Posted 26 November 2008 - 08:50 AM
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.
Posted 26 November 2008 - 08:59 AM
Posted 26 November 2008 - 09:47 AM
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)...lo has entendido bien, solo que ticket = Factura
Posted 26 November 2008 - 10:00 AM
Posted 26 November 2008 - 10:02 AM
procedure TfrEpson.EnviarFactura; var cCadena: String; begin //abre la factura fiscal // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // cmd - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 cCadena := #64#28 + 'EDUARDO COLMENARES' + #28 + 'V-14116252' + #28#127#28#127#28#127#28#127#28 + 'T' + #28#127#28#127; EnviarComando(cCadena); //espera que este lista la impresora lEsperar := True; nVan := 0; while lEsperar do begin Application.ProcessMessages; end; //texto en factura fiscal // 1 2 3 4 5 //CMD - 1 - 2 cCadena := #65#28 + 'DIRECCION: FUNDACION MENDOZA' + #28 + 'S'; EnviarComando(cCadena); //espera que este lista la impresora lEsperar := True; nVan := 0; while lEsperar do begin Application.ProcessMessages; end; //imprimir item // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 // CMD - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 cCadena := #66#28 + 'CORTE' + #28 + '1000' + #28 + '2385' + #28 + '0900' + #28 + 'M' + #28#127#28#127#28#127; EnviarComando(cCadena); //espera que este lista la impresora lEsperar := True; nVan := 0; while lEsperar do begin Application.ProcessMessages; end; //CERRAR FACTURA FISCAL // 1 2 3 // cmd - 1 cCadena := #69#28 + 'T'; EnviarComando(cCadena); //espera que este lista la impresora lEsperar := True; nVan := 0; while lEsperar do begin Application.ProcessMessages; end; end;
procedure TfrEpson.enviarcomando(Comando: String); var nSuma, nSecuencia, I: Integer; cCadena: String; const _ESPERA = 800; begin //Envia un comando a la impresora //Toma la secuencia nSecuencia := 0; while (nSecuencia < 32) or (nSecuencia > 126) do begin nSecuencia := Random(127); end; //Arma la primera parte de la cadena //STX + SEC + COMANDO + ETX + BCC cCadena := #2 + chr(nSecuencia) + Comando + #03; //calcula BCC nSuma := 0; For i := 0 To Length(cCadena) do begin //calcula el valor en ASCII de una cadena. nSuma := Integer(Char(cCadena[i])) + nSuma; //y lo devuelve en suma. end; //Agrega el bcc a la cadena cCadena := cCadena + InttoHex(nSuma, 4); txEnvios.Lines.Add(cCadena); Port.PutString(cCadena); end;
Posted 26 November 2008 - 10:29 AM
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?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.
Posted 26 November 2008 - 10:35 AM
Posted 26 November 2008 - 10:38 AM
¿Que tan diferentes podrian ser?...es una fiscal y no una TMU normal?
Posted 26 November 2008 - 10:44 AM
Posted 26 November 2008 - 10:49 AM
Posted 26 November 2008 - 10:58 AM
Posted 26 November 2008 - 11:00 AM
Posted 26 November 2008 - 11:11 AM
Re-graciasEn 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.
¿Ahora me daras la culpa a mi?Sí Eduardo, sé la diferencia, sólo que Felipe no especificó
, y lo dije en sentido general