Fórum Separar Dados #484976
09/07/2014
0
Tom com uma dificuldade na separacao de dados dessa string
Essa e a string abaixo ta funcionando Hoje 100% no meu sistema
[img]http://arquivo.devmedia.com.br/forum/imagem/376746-20140709-111211.jpg[/img]
Com essa Separacao de dados
Código:
if COD_ECF = DARUMA then
begin
For i := 1 To 1027 Do Formas := Formas + ' ';
iRetorno := Daruma_FI_VerificaFormasPagamentoEx(Formas);
ecfMSG := cECF_Analisa_Retorno(cod_ecf);
if ecfMSG = OK then
begin
sRet := cECF_Retorno_Impressora(cod_ecf);
if sRet = OK then
begin
Y := 0;
for i := 1 to length(Formas) do
begin
if Y > 30 then break;
if i = 1 then // inicio da variavel
x := 1
else
if i >= length(Formas) then // final da variavel
begin
frmModulo.tbForma_Pgto.Insert;
frmModulo.tbForma_Pgto.FieldByName('id').asinteger := y;
frmModulo.tbForma_Pgto.FieldByName('Nome').asstring := copy(Formas,x,16);
svalor := copy(Formas,x+16,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Acumulado').asfloat :=
strtofloat(svalor);
svalor := copy(Formas,x+26,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Ultimo_Cupom').asfloat
:= strtofloat(svalor);
INC(Y);
end
else
begin
if Formas[i] = ',' then
begin
frmModulo.tbForma_Pgto.Insert;
frmModulo.tbForma_Pgto.FieldByName('id').asinteger := y;
frmModulo.tbForma_Pgto.FieldByName('Nome').asstring := copy(Formas,x,16);
svalor := copy(Formas,x+16,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Acumulado').asfloat :=
strtofloat(svalor);
svalor := copy(Formas,x+26,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Ultimo_Cupom').asfloat :=
strtofloat(svalor);
INC(Y);
x := i + 1;
end;
end;
end;
Result := OK;
end
else
Result := sRet;
end
ELSE
Result := ecfMSG;
end
else
O pessoal fizeram mudancas na DLL agora ficou assim, sao 30 formas de pagamento onde tem esses Y e porque a posicao de pagamento ta em Branco entao nao preciso desses Y.
alguem pode me ajudar qualquer coisa se for complicado passo acesso remoto da maquina, pago pelo servico pois preciso urgente
agradeco
[img]http://arquivo.devmedia.com.br/forum/imagem/376746-20140709-111335.jpg[/img]
Essa e a string abaixo ta funcionando Hoje 100% no meu sistema
[img]http://arquivo.devmedia.com.br/forum/imagem/376746-20140709-111211.jpg[/img]
Com essa Separacao de dados
Código:
if COD_ECF = DARUMA then
begin
For i := 1 To 1027 Do Formas := Formas + ' ';
iRetorno := Daruma_FI_VerificaFormasPagamentoEx(Formas);
ecfMSG := cECF_Analisa_Retorno(cod_ecf);
if ecfMSG = OK then
begin
sRet := cECF_Retorno_Impressora(cod_ecf);
if sRet = OK then
begin
Y := 0;
for i := 1 to length(Formas) do
begin
if Y > 30 then break;
if i = 1 then // inicio da variavel
x := 1
else
if i >= length(Formas) then // final da variavel
begin
frmModulo.tbForma_Pgto.Insert;
frmModulo.tbForma_Pgto.FieldByName('id').asinteger := y;
frmModulo.tbForma_Pgto.FieldByName('Nome').asstring := copy(Formas,x,16);
svalor := copy(Formas,x+16,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Acumulado').asfloat :=
strtofloat(svalor);
svalor := copy(Formas,x+26,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Ultimo_Cupom').asfloat
:= strtofloat(svalor);
INC(Y);
end
else
begin
if Formas[i] = ',' then
begin
frmModulo.tbForma_Pgto.Insert;
frmModulo.tbForma_Pgto.FieldByName('id').asinteger := y;
frmModulo.tbForma_Pgto.FieldByName('Nome').asstring := copy(Formas,x,16);
svalor := copy(Formas,x+16,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Acumulado').asfloat :=
strtofloat(svalor);
svalor := copy(Formas,x+26,20);
if svalor <then> 0 then
svalor := floattostr(strtofloat(svalor)/100);
end
else
svalor := '0';
frmModulo.tbForma_Pgto.FieldByName('Valor_Ultimo_Cupom').asfloat :=
strtofloat(svalor);
INC(Y);
x := i + 1;
end;
end;
end;
Result := OK;
end
else
Result := sRet;
end
ELSE
Result := ecfMSG;
end
else
O pessoal fizeram mudancas na DLL agora ficou assim, sao 30 formas de pagamento onde tem esses Y e porque a posicao de pagamento ta em Branco entao nao preciso desses Y.
alguem pode me ajudar qualquer coisa se for complicado passo acesso remoto da maquina, pago pelo servico pois preciso urgente
agradeco
[img]http://arquivo.devmedia.com.br/forum/imagem/376746-20140709-111335.jpg[/img]
Bsb Software
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)