Ver Mensaje Individual
  #1  
Antiguo 11-11-2014
El_Raso El_Raso is offline
Miembro
 
Registrado: oct 2003
Posts: 135
Reputación: 21
El_Raso Va por buen camino
Tipos de Datos Devuelto en Funcion

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:
Código Delphi [-]
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:
Código Delphi [-]
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
Responder Con Cita