PDA

Ver la Versión Completa : Tipos de Datos Devuelto en Funcion


El_Raso
11-11-2014, 18:34:47
Saludos Hermanos Foristas

Estoy programando para imprimir facturas fiscales en una impresora Star 650 de VMAX, los numeros
debo de enviarlo a la impresora de forma entero y sin punto por Ejemplo: 152.00 debo enviar 15200
He creado esta funcion:
function CIntX100(Number: Extended) : Cardinal;
var
NumeroSTR: string;
begin
NumeroSTR := floatToStr(Number);
NumeroSTR := StringReplace(NumeroSTR, '.', '', [rfReplaceAll]);
result := StrToInt(NumeroSTR) * 100;
end;

Para convertirlo y enviarlo a una funcion que esta declarada en la DLL del fabricante asi:
function PagoCF(iTipo: LongWord; iForma: String; lMonto: LongWord): LongWord;
var
lRet: LongWord;
sCommand: String;
sCommandEx: String;
begin
PurgeMessage();
sCommand := Chr(10) + Chr(5);
sCommandEx := Chr(0) + Chr(iTipo);
AddMessageField(sCommand, 2); //Comando
AddMessageField(sCommandEx, 2); //Extensión de comando
AddMessageField(iForma,3); //Campo 1: Tipo de Pago
AddMessageField(IntToStr(lMonto), Length(IntToStr(lMonto))); //Campo 2: Monto de Pago
// AddMessageField('', 0); //Campo 3: Descripcion adicional 1
// AddMessageField('', 0); //Campo 4: Descripcion adicional 2
// AddMessageField('', 0) ; //Campo 5: Descripcion adicional 3
SendSerialMessage();
repeat
lRet := GetCommunicationState();
until lRet <> IDLE;
lRet := GetLastCommError();
Result:= lRet;
end;


Pero siembre me sale repetido la forma de pago en la factura:
EFECTIVO 152.00
EFECTIVO 152.00

y la impresora como que se aloca y a veces no termina de cerrar la factura fiscal.

Que esta mal?

Uso Delphi XE2