Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Varejo | ||||
Módulo: | Controle de Lojas | ||||
Rotina: |
| ||||
Requisitos do Hardware: |
| ||||
País(es): | Brasil | ||||
Sistema(s) Operacional(is): | Windows | ||||
Fontes do Pacote: | LOJA121.PRW 30/09/2016 15:22:36 07 LOJA1305.PRW 25/07/2016 10:51:30 07 STFECFCONTROL.PRW 27/09/2016 19:31:12 07 STFSTRATEGYECF.PRW 18/07/2016 17:15:27 07 STWECFCONTROL.PRW 23/08/2016 13:57:01 07 LOJXECF.PRX 30/09/2016 15:24:50 07 SIGALOJA.DLL (ID 0.3.140.5) AUTOCOM.DLL (ID 3.4.1.5) TOTVSAPI.DLL (ID 1.0.16.9) P05.dll borlndmm.dll cp3240mt.dll Testebalancatoledo.exe | ||||
Pacote: | TWEJHT.zip |
Implementação no Cadastro de Estação (LOJA121) para seleção e uso da Balança Toledo 9091.
. Para utilização desse modelo de balança é necessário que a placa da balança seja Unidirecional On-Board (conforme informado em resquisitos de Hardware ) para que a comunicação com a DLL do protheus seja realizada com sucesso
. Utilize as DLLs da balança que estão no pacote desta ficha: P05.dll, Borlndmm.dll e cp3240.dll ; estas devem estar na pasta 'SmartClient' do ambiente
. Versão da DLL Fiscal SIGALOJA.DLL: 0.3.140.5; deve estar na pasta 'SmartClient' do ambiente
. Será possível via user function a comunicação com a balança , apenas utilizando a DLL SIGALOJA sem utilizar o módulo Controle de Lojas
. Para teste de comunicação e verificação do retorno do peso entre Windows e DLL P05.dll, utilize o executável TesteBalancaToledo.exe (em anexo no pacote desta ficha)
. Configurar o arquivo SIGALOJA.INI:
[TOLEDO]
BaudRate= ____ ( Configurar aqui a velocidade de comunicação da porta de comunicação)
DataBits= __ ( Configurar aqui a quantidade de bits de paridade da porta de comunicação)
Parity= _ ( Configurar a paridade )
ATENÇÃO: Esta configuração é primordial para a comunicação com a balança.
Toledo 9091
Toledo 9094
Toledo 8217
Modelo Toledo 9091
BaudRate= 9600
DataBits= 7
Parity= 2
Modelo Toledo 9094
BaudRate= 9600
DataBits= 8
Parity= 0
1 - Emissão de Mensagem de "Peso Instavel". Como resolver?
Verifique a configuração do arquivo SIGALOJA.INI ( acima ), verificando se a velocidade, a paridade e a quantidade de bits.
Pode efetuar o teste utilizando o executável de teste para a balança. Em anexo nesse chamado : TesteBalancaToledo.exe
Exemplo:
1. Insira as dlls desse pacote P05.dll, Borlndmm.dll,cp3240.dl e sigaloja.dll na pasta 'SmartClient' do ambiente
2. No Controle de Lojas (SIGALOJA), acesse Atualizações / Ponto de Venda / Estação (LOJA121).
3. Selecione o modelo de balança Toledo 9091.
4. Efetue venda pela rotina Venda Assistida (LOJA701) dos produtos que usem balança ou use de forma customizada.
5. Verifique que o peso do produto é capturado.
Atenção!
Exemplo 1:
#include "protheus.ch"
User Function UsaBalanca()
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9091" //deve ser mandado exatamente este nome
Local cPeso := Space(8) //contem o peso que retorna da balança
Local lUsaBalan := .F.
Local lLeBalan := .T.
Local nRet := -1
Local nTentativa:= 1
Private nHdlBalan := -1
aBalanca := {cModelo,cPorta}
If !Empty(aBalanca[1]).AND. !Empty(aBalanca[2]) .AND. nHdlBalan == -1
//Abertura de comunicação com o equipamento
nHdlBalan := BalancaAbr(aBalanca[1],aBalanca[2])
lUsaBalan := nHdlBalan > 0
EndIf
If !lUsaBalan
Alert("Sem comunicação com a balanca " + aBalanca[1])
Else
Alert("Comunicação efetuada com sucesso")
While lLeBalan
nRet := BalancaPegaPeso(nHdlBalan,@cPeso)
If nRet <> 0
lLeBalan := .F.
EndIf
If lLeBalan
lLeBalan := NoRound(Val(cPeso),3 ) <> 0
EndIf
If !lLeBalan
If nTentativa > 3
Alert("Tentativas de leitura de peso excedidas")
Else
lLeBalan := .T.
nTentativa += 1
EndIf
EndIf
End
EndIf
If lUsaBalan
//Encerra a comunicação com o equipamento
BalancaFec(nHdlBalan,aBalanca[2])
nHdlBalan := -1
EndIf
Return lUsaBalan
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Exemplo 2:
#include "protheus.ch"
//Efetua a abertura de comunicação com o equipamento
User Function AbreComunicacao()
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9094" //deve ser mandado exatamente este nome
Local lUsaBalan := .F.
Local nHdlBalan := -1
PutMV("MV_AUTOCOM",0)
aBalanca := {cModelo,cPorta}
If !Empty(aBalanca[1]).AND. !Empty(aBalanca[2]) .AND. nHdlBalan == -1
//Abertura de comunicação com o equipamento
nHdlBalan := BalancaAbr(aBalanca[1],aBalanca[2])
lUsaBalan := nHdlBalan > 0
WritePProString("TOLEDO", "Conectado", AllTrim(Str(nHdlBalan)), GetClientDir()+"SIGALOJA.INI")
EndIf
If !lUsaBalan
Alert("Sem comunicação com a balanca " + aBalanca[1])
Else
Alert("Comunicação efetuada com sucesso")
EndIf
Return lUsaBalan
//Efetua a captura do peso na balança
User Function CapturaPeso()
Local lLeBalan := .T.
Local nRet := -1
Local nTentativa:= 1
Local cPeso := "" //contem o peso que retorna da balança
Local nPeso := 0
Local nHdlBalan := 0
While lLeBalan
nHdlBalan := Val(GetPvProfString("TOLEDO","Conectado", "-1", GetClientDir()+"SIGALOJA.INI"))
nRet := BalancaPegaPeso(nHdlBalan,@cPeso)
If nRet <> 0
lLeBalan := .F.
EndIf
If lLeBalan
lLeBalan := NoRound(Val(cPeso),3 ) <> 0
EndIf
If !lLeBalan
If nTentativa > 3
Alert("Tentativas de leitura de peso excedidas")
cPeso := "0"
Else
lLeBalan := .T.
nTentativa += 1
EndIf
EndIf
End
Alert("Peso capturado: " + cPeso)
nPeso := Val(cPeso)
Return nPeso
//Efetua o fechamento de comunicação com a balança
User Function FechaComunicacao()
Local nHdlBalan := 0
Local nRet := 0
Local aBalanca := {}
Local cPorta := "COM7"
Local cModelo := "Toledo 9094" //deve ser mandado exatamente este nome
aBalanca := {cModelo,cPorta}
//Encerra a comunicação com o equipamento
nHdlBalan := Val(GetPvProfString("TOLEDO","Conectado", "-1", GetClientDir()+"SIGALOJA.INI"))
nRet := BalancaFec(nHdlBalan,aBalanca[2])
lUsaBalan := nRet > 0
nRet := -1
Return lUsaBalan