FabianoCunha
-
Total de ítens
148 -
Registro em
-
Última visita
-
Days Won
2
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por FabianoCunha
-
-
Obrigado Juliomar.
Fiz uma pequena alteração na unit em anexo da Classe TACBrBALFilizola, para tratar o retorno de balanças que possuem o carácter terminador como sendo #13(CR). Em anexo se encontra a unit para analise dos moderadores.
//Deverá buscar a primeira ocorrência do TX e trarar a Sting.
if pos(ETX,wResposta) > 0 then
wResposta := Copy(wResposta, 1, pos(ETX,wResposta) - 1);
else
if pos(CR,wResposta) > 0 then //tratativa para o modelo C&F C6MT
wResposta := Copy(wResposta, 1, pos(CR,wResposta) - 1);Para essa balança funcione é necessário executar os passos que estão no manual acima, item "Tecla I" e alterar conforme prints em anexo. A opção "Ciclo" é o item correspondente a tecla 8.
- 1
-
Moderadores,
Fiz uma pequena correção na função "InterpretarRepostaPeso", na classe TACBrBALFilizola, a qual é do componente ACBrBAL. Essa correção foi necessária, pois como pode ser observado no LOG da balança ela retorna TX duas vezes, e a função citada apenas considerada a existência do "TX", apenas uma única vez e no final da string.
-> LOG: Balança:
- 00:36:46:401 RX <- [STX]02255[ETX][ETX]
UltimoPesoLido: 2,255 - Resposta: [STX]02255[ETX][ETX]Trecho antigo:
if (Copy(wResposta, Length(wResposta), 1) = ETX) then
wResposta := Copy(wResposta, 1, Length(wResposta) - 1);Nova versão:
if pos(ETX,wResposta) > 0 then
wResposta := Copy(wResposta, 1, pos(ETX,wResposta) - 1);Arquivo completo se encontra em anexo.
Att, Fabiano Cunha
- 1
-
Boa Tarde!
Alguém já conseguiu integrar a balança C&F C 6 MT (pelo que entendi é segunda linha da Filizola). Utilizei o Demo do ACBR balança, configurei Filizola, ele consegue capturar uma string que contem as informações que preciso, PESO principalmente, porém traz também PREÇO e TOTAL. Usando o Hyperterminal, consegui monitorar o retorno da balança. Em anexo os arquivo de log da balança.
Gostaria de saber, se neste caso é apenas "formatar" a saída da resposta da balança? Pois tem duas propriedades de PosInicio e PosFim, que a principio fazem "Corte" na string de retorno. Olhando a classe da Filizola, não considera essas duas propriedade no comando "COPY".
Neste caso basta eu criar uma classe para esse novo tipo de balança e implementar na função de formatação da resposta para retornar apenas o Peso?
Gostaria apenas de orientação, pois assim posso contribuir para o ACBR.
Conseguindo algum progresso, deixarei registrado aqui para histórico.
Obrigado.
-
Eudis, tive este erro de assinatura recentemente com um certificado de Goias. Qual é a certificadora do certificado? No meu caso era um certificado A1 da DocCloud, após a instalação ele funcionava certinho do site da sefaz, receita federal, porém ao fazer a transmissão dava erro.
Só resolveu depois que fiz a instalação da cadeia de certificado Autoridade da Certificadora.
-
Eu sempre salvo no banco o xml assinado e validado. Executo os dois métodos (assinar e validar), salvo no banco de dados e depois chamo a função de enviar. Na tabela de Nota fiscal eu controlo o status da NF desta forma eu sei como proceder numa eventual necessidade de reenviar.
Att, Fabiano Cunha
-
5 minutos atrás, [email protected] disse:
Eu instalei o driver pelo spoler e consultando no gerenciador de dispositivos, estava demonstrando sinal de ! .. e uma mensagem no texto, informando um problema no certificado digital. Tenho windows 7, consultei pela mensagem, e verifiquei que num blog, uma pessoa indicou para desabilitar a leitura do certificado digital ao iniciar o computador, mas esse procedimento não é realizado uma unica vez, toda vez que desligo ele tenho que fazer o mesmo procedimento.
Minha preocupação é nos clientes, a maioria usa windows 7.
Fernanda, estou no meio deste problema, agora numa máquina windows 7 64bits, num outra máquina windows 7 32 bits, deu certinho. Se você achar uma outra solução deste problema da assinatura do certificado do driver da bematech, compartilha que estou em busca dessa solução neste momento.
Eu mandei um e-mail para a Bematech, porque no windows 7 32 deu certo e no windows 7 64 bits, não?
Att, Fabiano Cunha
-
5 minutos atrás, Daniel Simoes disse:
Limite o Buffer de impressão... Exemplo para limitar em 8kb
ACBrPosPrinter1.Device.SendBytesCount := 8192 ;
OK, vou fazer este teste, Obrigado.
Att, Fabiano Cunha
-
6 horas atrás, [email protected] disse:
Olá Fabiano Cunha,
O programa teste não consegui acessar, mas peguei uma outra impressora, a MP 4200, mas agora a dificuldade é acionar a gilhotinha, o comando ascii não está funcionando ESC 119.
Fernanda, você esta utilizando a impressora MP 4200 TH não fiscal USB? Se sim, no cliente que estou fazendo a implantação, eu fiz a instalação dos drivers Bematech. Após ver qual a porta da impressora no windows, utilizei o programa de teste do ACBRPosPrinter, e funcionou perfeitamente todas as funções, inclusive o corte total e parcial. Utilizei windows 10 64bits, impressora USB (sem nenhum conversor).
Att, Fabiano Cunha
-
Fernanda,
Achei a solução do problema. Instalei o driver da bematech Spoler de impressão para o modelo MP 2100 TH. Fiz o download no site da Bematech. E no programa de teste do ACBRPosPrint, deve usar a porta RAW:xxxxx, onde xxxx é o nome da impressora. Funcionou perfeitamente com o programa de teste. Fiz a impressão de 100 itens varias vezes e não deu mais o erro de timeout 997. Se utilizar a porta COM dá erro de timeout 997.
Windows 7 32 bits. Impressora MP2100 TH, serial (Sem utilizar conversor).
-
Fernanda,
Você conseguiu resolver o problema da impressão na bematech MP 2100 TH não fiscal. Já fiz testes usando o Programa teste ACBrPosPrinter e esta dando um erro 9997, TimeOut, Este erro acontece quando é enviado muitas linhas. Se for poucas não apresenta erro.
Já fiz alteração no timeout do Device do componente e mesmo assim o erro acontece.
Obrigado.
-
Pessoal, eu resolvi este problema no windows 10 64bits, usando o drivers 64 da impressora Bematech MP4200 TH, utilizei o programa que acompanha o driver da impressora(Bematech Printers User Software - Bematech User Software v2.7.0 for 64 bits) e fiz uma alteração no setup da impressora. Baixei a temporização do corte para 2. Na aba de "comandos especiais" alterei o tipo de comando para "ESC/POS@", no mais deixei igual. Percebi que é necessário um tempo entre o Ativar da impressora e você mandar os primeiros comandos para ela. Coloquei um Sleep(1000). Pois faço a ativação do componente ACBrPosPrinter1, a cada vez que mando imprimir. Não tive mais problemas
-
Eu acho que esta situação de exclusão é bug do windows. Se você, formatar um computador, ao fazer a instalação do windows, deixar o certificado conectado no computador, o windows, apaga o certificado.
Ou então é o bug do driver do certificado.
Não tem como, o ACBr apagar a chave, pois não executa nenhum comando para tal ação.
Att,
Fabiano Cunha
-
Carlos, Bom dia!
Minha regra de negócio é só aparecer no caixa o que realmente converteu em caixa. Tudo que foi vendido, cuja forma de pagamento não é a vista, eu gero um contas a receber. Se for cartão, eu gero o título em nome da operadora de cartão, pois assim, eu sei quanto tenho a receber de cada operadora e também a data de vencimento do título é a data que normalmente a operadora faz os pagamentos D+3, D+10, etc. Inclusive os cartões de débito entram na mesma rotina. O cheque eu gero o título no nome do cliente.
Quando o usuário fizer a conciliação bancaria, ele tem que fazer as baixas dos títulos e o dinheiro vai para o caixa. Os dados complementares para geração do título estão cadastrados na tabela de forma de pagamento.
- 1
-
Concordo com a forma apresentada pelo RickMao, apenas acrescentaria uma sugestão, após terminar o rateio, verificar se por erros de arredondamento, o valor total final do desconto ficou correto, considerando duas casas decimais, se não ficou, a diferença positiva ou negativa, deve ser aplicado no item mais "caro", pois assim não corre o risco de ficar negativo os valores do rateio, assim, ao totalizar as linhas os valores fecham.
Esta formula acima serve para fazer o rateio de qualquer coisa na NFe.
-
Amigos,
Apenas fiz a criação no meu sistema de uma tabela de cadastro de CEST e coloquei um campo no cadastro do Item para o usuário dizer qual o CEST. Não vou implementar a complexidade de relacionamento N para M entre NCM e CEST.
Para auxiliar na carga inicial, vou pegar a relação de NCM dos itens do cliente e gerar em XLS para ajudar o contador a fazer a co-relação para mim.
-
Antonio,
Coloque aqui no forum todo o codigo que você esta usando para fazer a inclusão do SQL, inclusive com a linha do group by. Desconfio que o problema esteja no comando SQL e não nos componentes do Delphi.
-
Em 18/08/2016 at 18:25, alessandro pancotte disse:
Amigo,
Uso o Delphi 2007, meu exe estava dando cerca de 40mega compilando como release e 76mega como debug
Mudei pro Xe7 e o exe foi para 106mega e nao da diferenca do debub pra release
Tenho outra aplicacao menor que no 2007 estava dando 9mega e no xe7 foi para 16mega
Detalhe esta aplicacao tem umas 6 telas somente, pois é um programinha que serve somente para emitir nfe/nfce
O teu exe tambem aumentou?
Alessandro, o meu executável saiu de quase 3 mega para uns 17 mega, também não deu diferença entre release e debug. Não sei o motivo de ter aumentado o tamanho. Vou testar ainda aqueles programas que tem na internet que dizem fazer a redução do exe.
Em 21/08/2016 at 19:06, doidopb disse:Olá Fabiano, tudo bom?
Rapaz, eu migrei do Delpi 7 para o Delphi 2010 também sem muitas complicações.
Assim como no seu caso, o Delphi 2010 reclamou do tipo dos campos Fields gerados pelo Zeoslib, e assim como você tentei utilizar o localizar e substituir tudo de TStringField para TWideStringField. Mas no meu caso fiquei recebendo o erro1.jpg em anexo. Ao responder YES ele tenta marcar o field novamente como TStringField na unit e ao responder NO ele deixa como está, mas no Object Inspector (erro2.jpg) ele continua como TStringField e ao compilar acabo recebendo o erro3.jpg.
Para resolver tal problema tive que ir em cada ZQuery e apagar todos os fields de cada uma, e depois inseri novamente (CTRL + F), forçando o componente criar os fields com o tipo correto, no caso TWideStringField. Só que desse jeito é bem mais demorado.
Como você conseguiu só pelo Localizar/Substituir?
Abraços
Amigo, no meu caso deu certo apenas a operação de localizar e substituir. Não precisei apagar os fields do objeto query e inseri-los novamente. Só porque eu utilizei o programa TextPad para fazer a substituição. Dentro do programa TextPad, existe uma opção de "localizar em arquivos" Find in Files. Procurei em todos os arquivos *.dfm e *.pas. Localizar a palavra TStringField. Quando listar todos os arquivos, é só pedir para o textPad abrir todos. E em seguida fazer a substituição em todos os documentos abertos. Salvar tudo e abrir o Delphi.
Att,
Fabiano Cunha
-
Zildo, Boa noite,
Eu comecei estudando o exemplo do caminho: ..\Exemplos\ACBrDFe\ACBrNFe\Delphi\ . Vai te ajudar muito a emitir uma NFCe.
-
Migrei o meu sistema do Delphi 7 para Xe7, sem muita complicações. Em delphi 7 era zeoslib + Rxlib. Fiz a conversão para Xe7 para Zeoslib + JVCL. Para migrar do Rxlib para JVCL existe uma utilitário que faz a alteração do nome das classes no seu código fonte. Algumas classes ele não fez a mudança, neste caso utilizei o TextPad (localizar e substituir), pois encontrei na internet a referência entre as classes Rxlib e JVCL. Foi tranquilo.
No delphi Xe7 ele vai reclamar do tipo dos campos Fields gerados pelo Zeoslib, Neste caso utilizei o localizar e substituir novamente e tudo certo. TstringFields para TwideStringFields.
O que deu um pouco de trabalho, foi uns componentes meus. Tive que refazê-los. Os que utilizadam algoritmo de criptografia parou de funcionar, neste caso eu mudei para a lib DCPCrypt-master.
Levei uma semana para fazer a migração, trabalhando só 3 horas por dia.
-
Jean, uma opção criar o cadastro de PDV e associar a este o número da Serie que ele utilizará no Modelo 65.
Lembrando aos colegas que dentro de cada serie quando chegar ao número 999.999.999, você poderia retornar para a nota 1, pois existe um campo chamado "giro", que deve ser incrementado. Podendo assim ser reiniciando a numeração da NF. Ou poderá criar uma nova série.
Esta questão do giro é muito utilizada nas NF de conta de telefone/ água/ energia. E agora existe uma legislação especifica para empresas de telecom/provedores de internet. Onde poderá reiniciar a numeração das notas todo mês. Creio que deverá fazer isso, utilizando o "giro"
- 1
-
Licerio, Bom dia!
Dá uma olhada neste tópico:
-
Everson Luis,
Eu uso os componentes ZeosLib no Delhi 7. Usando apenas objetos DataSet (zquery) + DataSource padrão do delphi. + objeto ZupdateSQL (ZeosLib). Este desenho você terá os mesmo controle de uso que fazia quando usamos os objetos Table do Delphi.
qryCliente (contendo o SQL que busca pela chave primaria da tabela todos os campos da mesma).
Você deverá dizer no Zquery qual é o UpdateSQL.
updCliente( clique duplo, ele abre o editor de Fields, só pedi gerar o sql dos comandos (INSERT, UPDATE e delete).
O código poderá colocar no evento que você terá as informações para passar no parâmetro da query.
qryCliente.close;
qryCliente.Params[0].value:= 'valor';
qryCliente.open;
if (qryCliente.RecordCount > 0 ) then
begin
qry.Cliente.edit;
end
else
begin
qryCliente.insert;
end;
Para salvar os dados:
try
if (dsCliente.State in [dsInsert, dsEdit]) then
begin
qryCliente.post; //salva as alterações.
qryCliente.Connection.commit; //Apos a operação de POST, você faz o COMMIT da transação.
end;
except on ex:exception do
begin
qryCliente.Connection.Roolback;
MessageBox(handle,PAnsiChar(ex.Message),'ERRO: Gravar dados',MB_OK);
end;
end;
Espero que consiga de ajudar. Qualquer coisa me fala que preparo um exemplo para você.
Balança Prix 3
em ACBrSerial
Postado
Renan, não me lembro ao certo o que fiz num cliente com a Prix 3, mas fiz o download do manual da balança (https://www.toledobrasil.com.br/app/institucional/files/manuais/MU_Prix_3.pdf) e fiz uma alteração na configuração da balança, ativando o envio do peso liquido. Depois você conseguirá fazer a leitura do peso. Pelo LOG, a balança não esta devolvendo nenhuma informação. Vou procurar se ainda tenho o manual que utilizei na época e coloco aqui no fórum.
att, Fabiano Cunha