Página 1 de 1

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 20 Mai 2013 13:36
por indusoft
Olá pessoal,

Estou utilizando em meu sistema a BEMAFI32.DLL.
Consigo abrir o CUPOM FISCAL, mas ao enviar
o comando para imprimir os itens, retorna o
ERRO: -2 Parâmetro inválido para a função.
Já tentei utilizar de várias formas, mas sem sucesso.
aDLL_Retorno:=hb_dynCall({"Bematech_FI_VendeItemDepartamento","BEMAFI32.DLL",HB_DYN_CALLCONV_STDCALL,
"12345678901234","Caneta","01","0,250","10,000","0,00","0,00","01","UN"},
@R1,@R2,@R3,@R4,@R5,@R6,@R7,@R8,@R9)

Atenciosamente,

Vanderlei

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 20 Mai 2013 15:48
por alxsts
Olá!

Nunca usei esta DLL mas, pela mensagem, o problema é com os parâmetros. Já tentou usar ponto decimal ao invés de vírgula, como mostra o teu exemplo, já alterado por mim?

Código: Selecionar todos

aDLL_Retorno:=hb_dynCall({"Bematech_FI_VendeItemDepartamento","BEMAFI32.DLL",HB_DYN_CALLCONV_STDCALL,
"12345678901234","Caneta","01","0.250","10.000","0.00","0.00","01","UN"},@R1,@R2,@R3,@R4,@R5,@R6,@R7,@R8,@R9)

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 20 Mai 2013 17:02
por indusoft
amigo, tentei colocando PONTO no lugar da VIRGULA,
mas não tive sucesso.

muito obrigado.

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 20 Mai 2013 17:35
por DLZ
Ola
esse erro podem ser várias coisas..
vamos por partes, diria o Jak.. ehehe

Primeiro, vamos ver o que diz a documentação da Bemafi32.dll

Codigo: STRING até 49 caracteres com o código do produto.
Descricao: STRING até 201 caracteres com a descrição do produto.
Aliquota: STRING com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice)
ValorUnitario: STRING com até 9 dígitos para o valor (tres casas decimais).
Quantidade: STRING com até 7 dígitos para a quantidade. Na venda com departamento a quantidade é fracionária e são 3 casas decimais.
Acrescimo: STRING com o acréscimo por valor com até 10 dígitos (2 casas decimais).
Desconto: STRING com o desconto por valor com até 10 dígitos (2 casas decimais).
IndiceDepartamento: STRING com o índice do departamento com 2 dígitos.
UnidadeMedida: STRING com no máximo 2 caracteres para a unidade de medida. Caso não seja passado nenhum caracter a unidade não é impressa.

Pelo q entendi , vc está passando assim:
aDLL_Retorno:=hb_dynCall({"Bematech_FI_VendeItemDepartamento","BEMAFI32.DLL",HB_DYN_CALLCONV_STDCALL,
2 "12345678901234","Caneta","01","0.250","10.000","0.00","0.00","01","UN"},@R1,@R2,@R3,@R4,@R5,@R6,@R7,@R8,@R9)

Pelo q estou vendo, vc está passando a lengenda 01para tributação do ECF. Para q isso funcione, é necessário que uma alíquota de ICMS esteja carregada no ECF na posição 01. Só para efeito de teste, vc pode passar "II" no lugar de "01" o q fará com que o ítem seja registrado como Isento.

Espero ter ajudado..
ABraços

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 20 Mai 2013 17:53
por indusoft
caro amigo, infelizmente ainda não consegui.
o interessante é que consigo abrir o cupom e depois cancelá-lo.

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 21 Mai 2013 10:12
por DLZ
Vc tentou registrar com "II" ???
Qual o modelo do ECF que vc está usando ?

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 23 Mai 2013 23:14
por lucimauro
Voce est usando harb ou Xharb?

Bematech_FI_VendeItemDepartamento ERRO -2 Parametro invalido

Enviado: 27 Mai 2013 08:18
por sambomb
Segue o exemplo da bematech de como fazer a chamada:

Código: Selecionar todos

// Exemplo em Visual Basic

iRetorno = Bematech_FI_VendeItemDepartamento("123", "Caneta", "1200", "0,25", "10", "0", "0", "01", "UN")
 

// Exemplo em Delphi

cCodigo    := '123';
cDescricao := 'Caneta';
cAliquota  := '1200';
cValor     := '0,250';
cQtde      := '10,000';
cAcresc    := '0';
cDesc      := '0';
cIndice    := '01';
cUnidade   := 'UN';

iRetorno := Bematech_FI_VendeItemDepartamento( pchar( cCodigo ), pchar( cDescricao ), pchar( cAliquota ), pchar( cValor ), pchar( cQtde ), pchar( cAcresc ), pchar( cDesc ), pchar( cIndice ), pchar( cUnidade ) );

Como pode ver o separador é vírgula e tem que verificar a configuração do ECF para ver qual o tamanho de decimais que está cadastrado, passando 3 decimais para um ECF configurado para 2 decimais apenas ( Quantidade OU Preço ) pode gerar esse problema.