kleyber Posted March 23, 2006 Report Share Posted March 23, 2006 Pessoal, Alguém tem? No site da impressora só tem exemplos pra Delphi e VB... :=(( De já agradeço, Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
kleyber Posted March 23, 2006 Author Report Share Posted March 23, 2006 Pessoal, Alguém tem? No site da impressora só tem exemplos pra Delphi e VB... :=(( De já agradeço, Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
kleyber Posted March 23, 2006 Author Report Share Posted March 23, 2006 Pessoal, Alguém tem? No site da impressora só tem exemplos pra Delphi e VB... :=(( De já agradeço, Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
miragerr Posted March 23, 2006 Report Share Posted March 23, 2006 Ola amigo Uso a AFRAC para a MECAF 500 IF, creio que pode te ajudar, se precisar tamos aki Jackson Douglas Boa Vista - RR FWH 2.6 Last Build + WS + XH 0.99.2 + ADS + (Ja comprei a SQLLIB, e em breve irei usa-la ) Quote Link to comment Share on other sites More sharing options...
kleyber Posted March 24, 2006 Author Report Share Posted March 24, 2006 Olá jackson, Obrigado por responder. na verdade, eu baixei a ECF32M.DLL pra usar com a impressora Mecaf/Digisat modelo ECF1E, mas os exemplos só estão em Delphi e VB. Se você tiver as declarações com esta dll ou alguém mais tiver, agradeço. Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
ecmsoft Posted March 26, 2006 Report Share Posted March 26, 2006 Ola Kleyber ! Segue exemplo: // ----------------------------------- // // DECLARANDO DLL DIGISAT - ECF32M.DLL // ----------------------------------- // DLL32 FUNCTION OpenCif() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION CloseCif() AS LONG PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION LeituraX(RelGer AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION CancelaCupomFiscal() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION ReducaoZ(RelGer AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION AbreCupomFiscal() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION VendaItemStr(fmt AS STRING, qtd AS STRING, punit AS STRING, trib AS STRING, tdesc AS STRING, valor AS STRING, unid AS STRING, cod AS STRING, ex AS STRING,descr AS STRING, legop AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION TotCupomDescValor(valor AS STRING, legop AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION TotCupomSemDescAcres() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION Pagamento(reg AS STRING , vpgto AS STRING , troco AS LONG ) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION FechaCupomFiscal(tam_msg AS STRING , msg AS STRING ) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION EsperaResposta(buf_ret AS STRING ) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION OperRegNaoVinculado(reg AS STRING, valor AS STRING , oper AS LONG, toper AS LONG, valorop AS STRING ,legop AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION AbreCupomNaoVinculado() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION ProgramaLegenda(reg AS LPSTR, leg AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION LeMemFiscalData(datai AS STRING, dataf AS STRING,res AS _INT) AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION EncerraCupomNaoFiscal() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION CancelaCupomNaoFiscal() AS _INT PASCAL LIB "ECF32M.DLL" DLL32 FUNCTION ImprimelinhanaoFiscal(par AS STRING , msg AS STRING) AS _INT PASCAL LIB "ECF32M.DLL" ECM SISTEMAS Marciano Queiroz Teixeira de Freitas-Ba ecmsoft.tx@ig.com.br FW 2.6 + xHarbour 0.99.4 | FW2.7 + xHarbour 0.99.51 Quote Link to comment Share on other sites More sharing options...
kleyber Posted March 27, 2006 Author Report Share Posted March 27, 2006 Olá Marciano, Muito obrigado. Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 3, 2006 Author Report Share Posted April 3, 2006 Marciano, Você tem algum exemplo de comunicação com esta impressora? Estou seguindo os passos do manual, mas só consigo executar bem o comando OpenCif() e só. Se executo a LeituraX() por exemplo, me dá "Falha de abertura da serial" mas está definida certinha na COM1. Grato, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
miragerr Posted April 3, 2006 Report Share Posted April 3, 2006 Ola Kleyber Naum gosto desta DLL naum ela é problematica mesmo, uso a ECFAFRAC.DLL DLL32 FUNCTION AFRAC_ProgramarFormasDePagamento( Indice AS STRING,; Descricao AS STRING,; Vinculado AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_EmitirLeituraMemoriaFiscal( Ttipo AS STRING,; TInicio AS STRING,; TFinal AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_ProgramarTributacao( Tributacao AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_AbrirPorta( Porta AS PTR ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_FecharPorta() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_LeituraX() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_ReducaoZ( Dt AS LPSTR ) AS LONG lib LibAfrac DLL32 FUNCTIOn AFRAC_AjustarRelogio( Hr AS LPSTR) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_EntrarHorarioVerao() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_SairHorarioVerao() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_AbrirCupom() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_CancelarCupom() AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_LerAliquotas( Pt AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_LerTodasFormasPagamento( Pt AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_CancelarItem(Item AS STRING) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_FecharCupom(nVinc AS BOOL) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_InformarMensagemCupom(nMensa AS STRING) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_LerValorTotalAliquotas( Retorno AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_RetornarFeatures( Retorno AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_AbrirDia( Tdata AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_AcrescimoDescontoCupom( TAcresDesc AS STRING ,; Tpercvalor AS STRING ,; TValor AS STRING ,; Descri AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_FecharAcrescimoDesconto( padrao_desc AS STRING ,; padrao_acres AS STRING ,; valor_liquido AS STRING ) AS LONG lib LibAfrac DLL32 FUNCTIOn AFRAC_FormaPagamento( nForma AS STRING ,; nIndice AS STRING ,; nValor AS STRING ,; nMensa AS STRING) AS LONG lib LibAfrac DLL32 Function AFRAC_PegarCodigoErro( @Cod AS STRING,; @Msg AS STRING,; @Acao AS PTR) AS LONG lib LibAfrac DLL32 Function AFRAC_Fabricante(@mFab AS STRING, @mCro AS STRING) AS LONG lib LibAfrac DLL32 Function AFRAC_LerInformacaoImpressora(@Cod AS STRING,; @Msg AS STRING) AS LONG lib LibAfrac DLL32 FUNCTION AFRAC_VenderItem( nCodigo AS STRING, ; // ( Com tamanho de 20 ) nDescr AS STRING ,; // ( com Tamanho de 200 ) nQtde AS STRING ,; // ( com Tamanho de 16 Ex: 12.34 Kg = "0000000000012.34" nVlUnit AS STRING ,; // ( com Tamanho de 16 Ex: R$ 2.34 Kg = "0000000000002.34" nAcrDes AS STRING ,; // ( ou String ou LPSTR ) ("0"=Acrescimo, "1"=Desconto) nPerVal AS STRING ,; // ( ou String ou LPSTR ) ("0"=Percentual, "1"=Valor) nVlAcDes AS STRING ,; // ( com Tamanho de 16 Ex: R$ 0.12 = "0000000000000.12" nVlTotal AS STRING ,; // ( com Tamanho de 16 Ex: R$ 123.45 = "0000000000123.45" nAliq AS STRING ,; // ( ou LPSTR Ex: "M1200" = Aliquota de 12 % M=Mercadoria ) nUnid AS STRING ,; nFImp AS STRING ) ; // ( .T. para imprimir em uma unica linha ) AS LONG PASCAL LIB LibAfrac //nAliq AS STRING ,; // ( ou LPSTR Ex: "M1200" = Aliquota de 12 % M=Mercadoria ) DLL32 FUNCTION AFRAC_AbrirGaveta() AS LONG PASCAL LIB LibAfrac Veja se lhe atente, caso vc num consiga é só gritar Jackson Douglas Boa Vista - RR FWH 2.6 Last Build + WS + XH 0.99.2 + ADS + (Ja comprei a SQLLIB, e em breve irei usa-la ) Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 4, 2006 Author Report Share Posted April 4, 2006 Grande Jackson, blz? Quais os problemas da ECF32M.DLL? A da AFRAC funciona sem problemas? A tua impressora é Mecaf/Digisat modelo ECF1E? Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
miragerr Posted April 4, 2006 Report Share Posted April 4, 2006 Ola Kleyber Funciona sem problemas a AFRAC, o problema da outra DLL não sei lhe dizer o PORQUE mais comigo dava sempre pau, perdi até um cliente por causa disso, depois que mudei para a AFRAC acabou os meus problemas Jackson Douglas Boa Vista - RR FWH 2.6 Last Build + WS + XH 0.99.2 + ADS + (Ja comprei a SQLLIB, e em breve irei usa-la ) Quote Link to comment Share on other sites More sharing options...
Anderson.OL Posted April 4, 2006 Report Share Posted April 4, 2006 Blz, este topico caiu como uma luva ! Mas deixa eu fazer uma pergunta, acho q li em outros topicos q esta AFRAC serve para outros modelos de impressora, se isto é verdade? Abraços /*--------------------------------------------------*/ Anderson.OL(Space MSN) Itaocara - RJ //Clpr 5.3b/FW 2.6/WS 4.5/Blinker 7.0/Med// Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 4, 2006 Author Report Share Posted April 4, 2006 Valeu, Jackson, Aproveitando o ensejo: Onde eu pego a DLL da AFRAC? Eu vi a DLL no site do fabricante da Mecaf/Digisat, mas não sei se é a mais recente. Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
personal Posted April 4, 2006 Report Share Posted April 4, 2006 Seguinte: A .DLL AFRAC, na realidade não tem nada a ver com a AFRAC, e sim com um padrao de comunicação quase que unificado, mais ou menos como o caso da FREBRABAN, sendo assim cada fabricante teria que fornecer sua .DLL no padrao da AFRAC. Exemplos a QUATTRO tem a sua .DLL de forma unica, já no caso da MECAF, são duas .DLL, esta ultima pelo seu padrao, são usados por varios digamos montadores PROCOMP,ELGIN,DIGSAT. Eu uso para QUATTRO e PROCOMP, e até agora nao tive problemas, alem do que, na .DLL padrao AFRAC, exitem comandos que podem ser enviados na forma NATIVA da impressora, ou seja, se por ventura uma determinada função não foi implementada da .DLL AFRAC, voce poderia usar esta função, para enviar e receber comandos para impressora, como é o caso: // Fabricante - funcoes direta do fabricante DLL32 Function AFRAC_700(@mFab AS STRING, @mCro AS STRING) AS LONG PASCAL lib xDll Oliveira, Sérgio A. PERSONAL Comp. e Sitemas.id=green> Lins - SP ** sergio@personal.com.br FWH 2.5, xharbour 0.99.4, brMake Quote Link to comment Share on other sites More sharing options...
ecmsoft Posted April 7, 2006 Report Share Posted April 7, 2006 Kleyber, eu estou usando a DLL ECF32M sem nenhum problema. Te mandei um exemplo por e-amil. Talvez você esteja com uma versão antiga da DLL. ECM SISTEMAS Marciano Queiroz Teixeira de Freitas-Ba ecmsoft.tx@ig.com.br FW 2.6 + xHarbour 0.99.4 | FW2.7 + xHarbour 0.99.51 Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 12, 2006 Author Report Share Posted April 12, 2006 Marciano, citação: Kleyber, eu estou usando a DLL ECF32M sem nenhum problema.Te mandei um exemplo por e-amil. Talvez você esteja com uma versão antiga da DLL. id=quote>id=quote> Eu não recebi teu email e deve ser isso mesmo: A dll deve estar desatualizada. Então pergunto: Onde pego a mais atual, com manual e tudo mais? Bom, eu estou testando a ECFAFRAC.DLL e funciona legal com vários comandos, mas na hora de vender Ãtens dá um problema que não consigo descobrir. Tem a função AFRAC_PegarCodigoErro() que não consigo usar de jeito nenhum. Alguma idéia? Tô começando a ficar muito preocupado com isto. Abraço, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
personal Posted April 12, 2006 Report Share Posted April 12, 2006 //cancelar item Retorno:=AFRAC_003(qItem) If (retorno > 0) TratarErroEcf() EndIf *----------------------------* * Tratamento de Erros do ECF * *----------------------------* Function TratarErroEcf() *----------------------------* Erro := space(4) Mensagem := Space(80) Acao := 0 retorno := AFRAC_604( @Erro, @Mensagem, @Acao) QualErro:=Val(erro) If (QualErro > 0) // Erros tratáveis 1 ate 999 // Erros pré-definidos, para situações em que é possÃvel ao aplicativo tratar. // Padrão para todos os ECFs. If (QualErro==001) ; xMsgErro:="001 - Cupom fiscal não aberto." ElseIf (QualErro==002) ; xMsgErro:="002 - Dia já encerrado" ElseIf (QualErro==003) ; xMsgErro:="003 - Item não registrado no cupom fiscal." ElseIf (QualErro==004) ; xMsgErro:="004 - Acréscimo ou desconto não registrado no cupom fiscal "+CRLF+"(fechamento de acréscimo/desconto exclusivamente)." ElseIf (QualErro==005) ; xMsgErro:="005 - Já houve desconto/acréscimo para este item." ElseIf (QualErro==006) ; xMsgErro:="006 - Acréscimo/desconto não fechado." ElseIf (QualErro==007) ; xMsgErro:="007 - Pagamento não realizado." ElseIf (QualErro==008) ; xMsgErro:="008 - Pagamento não completado." ElseIf (QualErro==009) ; xMsgErro:="009 - Cupom fiscal aberto." ElseIf (QualErro==010) ; xMsgErro:="010 - AlÃquota informada não cadastrada ou fora da faixa." ElseIf (QualErro==011) ; xMsgErro:="011 - Tipo da situação tributária inválido." ElseIf (QualErro==012) ; xMsgErro:="012 - Forma de Pagamento não Cadastrada." ElseIf (QualErro==013) ; xMsgErro:="013 - Preço total igual a zero." ElseIf (QualErro==014) ; xMsgErro:="014 - Desconto maior ou igual ao valor do cupom." ElseIf (QualErro==015) ; xMsgErro:="015 - Quantidade excede ao limite permitido." ElseIf (QualErro==016) ; xMsgErro:="016 - Preço unitário excede ao limite permitido." ElseIf (QualErro==017) ; xMsgErro:="017 - Preço total excede ao limite permitido." ElseIf (QualErro==018) ; xMsgErro:="018 - Cupom já cancelado." ElseIf (QualErro==019) ; xMsgErro:="019 - Último documento não é um cupom fiscal." ElseIf (QualErro==020) ; xMsgErro:="020 - Tempo de tolerância para Redução Z excedido." ElseIf (QualErro==021) ; xMsgErro:="021 - Excedeu à quantidade de autenticações permitida." ElseIf (QualErro==022) ; xMsgErro:="022 - Troco não permitido para esta forma de pagamento." ElseIf (QualErro==023) ; xMsgErro:="023 - Limite de itens do cupom fiscal excedido." ElseIf (QualErro==024) ; xMsgErro:="024 - Limite de linhas para mensagem publicitária excedido." ElseIf (QualErro==025) ; xMsgErro:="025 - ImpossÃvel realizar troco. (não foi feito reforço)." ElseIf (QualErro==026) ; xMsgErro:="026 - Cupom finalizado com total nulo." ElseIf (QualErro==027) ; xMsgErro:="027 - Cupom anterior não pode ser cancelado." ElseIf (QualErro==028) ; xMsgErro:="028 - Cupom já totalizado." ElseIf (QualErro==029) ; xMsgErro:="029 - Necessário totalizar cupom antes de fechar." ElseIf (QualErro==030) ; xMsgErro:="030 - Troco não realizado." ElseIf (QualErro==031) ; xMsgErro:="031 - Necessário programar legenda." ElseIf (QualErro==032) ; xMsgErro:="032 - Acréscimo inválido." ElseIf (QualErro==033) ; xMsgErro:="033 - Desconto inválido." ElseIf (QualErro==034) ; xMsgErro:="034 - Repetição de desconto inválida." ElseIf (QualErro==035) ; xMsgErro:="035 - IOF não habilitado em MIT." ElseIf (QualErro==036) ; xMsgErro:="036 - Não permitido desconto em ISSQN." // cupom fiscal nao vinculado - 100 a 149 ElseIf (QualErro==100) ; xMsgErro:="100 - Cupom não vinculado não aberto." ElseIf (QualErro==101) ; xMsgErro:="101 - Cupom não vinculado sendo emitido." ElseIf (QualErro==102) ; xMsgErro:="102 - Comando não permitido durante cupom não fiscal não vinculado." ElseIf (QualErro==103) ; xMsgErro:="103 - Necessário abrir cupom não fiscal." ElseIf (QualErro==104) ; xMsgErro:="104 - Já houve lançamento em acumulador positivo." ElseIf (QualErro==105) ; xMsgErro:="105 - Já houve lançamento em acumulador negativo." // Cupom vinculado (150 a 199) ElseIf (QualErro==150) ; xMsgErro:="150 - Cupom vinculado não aberto." ElseIf (QualErro==151) ; xMsgErro:="151 - Cupom vinculado sendo emitido." ElseIf (QualErro==152) ; xMsgErro:="152 - Não há cupom vinculado para ser emitido." ElseIf (QualErro==153) ; xMsgErro:="153 - Cupom vinculado pendente. Pendências precisam ser emitidas." ElseIf (QualErro==154) ; xMsgErro:="154 - Excesso de cupons vinculados pendentes (máximo 30 pendências)." ElseIf (QualErro==155) ; xMsgErro:="155 - Não existem vÃnculos programados na impressora. " ElseIf (QualErro==156) ; xMsgErro:="156 - Excedeu número de vias." ElseIf (QualErro==157) ; xMsgErro:="157 - COO não existe." // Relatório Gerencial (200 a 249) ElseIf (QualErro==200) ; xMsgErro:="200 - Relatório Gerencial não aberto." ElseIf (QualErro==201) ; xMsgErro:="201 - Relatório Gerencial sendo emitido." ElseIf (QualErro==202) ; xMsgErro:="202 - Relatório Gerencial não cadastrado (novo convênio)." // Movimento (250 a 299) ElseIf (QualErro==250) ; xMsgErro:="250 - Redução Z já emitida. Impressora inoperante até 0:00 horas." ElseIf (QualErro==251) ; xMsgErro:="251 - É necessário executar redução Z." ElseIf (QualErro==252) ; xMsgErro:="252 - Dia já aberto." ElseIf (QualErro==253) ; xMsgErro:="253 - Dia não aberto." ElseIf (QualErro==254) ; xMsgErro:="254 - Necessário executar Leitura X." ElseIf (QualErro==255) ; xMsgErro:="255 - Posição da tabela de alÃquotas já ocupada." ElseIf (QualErro==256) ; xMsgErro:="256 - A tabela de pagamentos não foi inicializada na impressora." // Autenticação (300 a 349) ElseIf (QualErro==300) ; xMsgErro:="300 - Autenticação não permitida." ElseIf (QualErro==301) ; xMsgErro:="301 - Excedeu à s repetições de autenticação." // Relógio (350 a 399) ElseIf (QualErro==350) ; xMsgErro:="350 - Entrada no horário de verão não pode provocar mudança de data." ElseIf (QualErro==351) ; xMsgErro:="351 - Não foi emitida Redução Z." ElseIf (QualErro==352) ; xMsgErro:="352 - O relógio já está em horário de verão." ElseIf (QualErro==353) ; xMsgErro:="353 - O relógio não está em horário de verão." ElseIf (QualErro==354) ; xMsgErro:="354 - Não é possÃvel ajustar um horário inferior ao da redução Z." ElseIf (QualErro==355) ; xMsgErro:="355 - Excedeu o tempo de execução do comando." ElseIf (QualErro==356) ; xMsgErro:="356 - Data inválida." ElseIf (QualErro==357) ; xMsgErro:="357 - Hora inválida." ElseIf (QualErro==358) ; xMsgErro:="358 - Ajuste de hora diário já foi realizado." // Comunicação (400 a 449) ElseIf (QualErro==400) ; xMsgErro:="400 - Porta não aberta." ElseIf (QualErro==401) ; xMsgErro:="401 - Erro na comunicação serial."+CRLF+CRLF+"Iniciar porta da Impressora." ElseIf (QualErro==402) ; xMsgErro:="402 - Detectado algum problema na impressora (paper jam, sobretensão, etc)." ElseIf (QualErro==403) ; xMsgErro:="403 - Erro - Time Out - Computador não consegue estabelecer comunicação." // Papel (450 a 499) ElseIf (QualErro==450) ; xMsgErro:="450 - Fim de papel." ElseIf (QualErro==451) ; xMsgErro:="451 - Papel acabando." // Cheques (500 a 600) ElseIf (QualErro==500) ; xMsgErro:="500 - Cheque não inserido." ElseIf (QualErro==501) ; xMsgErro:="501 - Não permitido na impressão de cheque." ElseIf (QualErro==502) ; xMsgErro:="502 - Cheque: parâmetro fora de faixa." ElseIf (QualErro==503) ; xMsgErro:="503 - Cheque: erro no campo valor." ElseIf (QualErro==504) ; xMsgErro:="504 - Cheque: erro no campo local de emissão." ElseIf (QualErro==505) ; xMsgErro:="505 - Cheque: erro no formato do pacote." ElseIf (QualErro==506) ; xMsgErro:="506 - Cheque: erro no campo data." ElseIf (QualErro==507) ; xMsgErro:="507 - Cheque: erro no campo favorecido." ElseIf (QualErro==508) ; xMsgErro:="508 - Cheque: erro no campo 1ª linha de comentário." ElseIf (QualErro==509) ; xMsgErro:="509 - Cheque: erro no campo 2ª linha de comentário." ElseIf (QualErro==510) ; xMsgErro:="510 - Cheque: número de caracteres das 2 linhas de comentários somados superior a 120." ElseIf (QualErro==511) ; xMsgErro:="511 - Cheque: soma dos deslocamentos verticais superior a DLSV." ElseIf (QualErro==512) ; xMsgErro:="512 - Cheque: valor não pode ser impresso nas dimensões especificadas." ElseIf (QualErro==513) ; xMsgErro:="513 - Cheque: valor por extenso não pode ser impresso nas dimensões especificadas." ElseIf (QualErro==514) ; xMsgErro:="514 - Cheque: favorecido não pode ser impresso nas dimensões especificadas." ElseIf (QualErro==515) ; xMsgErro:="515 - Cheque: data e local não podem ser impressos nas dimensões especificadas." ElseIf (QualErro==516) ; xMsgErro:="516 - Cheque: 1ª linha de comentário não pode ser impressa nas dimensões especificadas." ElseIf (QualErro==517) ; xMsgErro:="517 - Cheque: 2ª linha de comentário não pode ser impressa nas dimensões especificadas." ElseIf (QualErro==518) ; xMsgErro:="518 - Cheque: caractere de preenchimento inválido." ElseIf (QualErro==519) ; xMsgErro:="519 - Cheque: primeira linha de extenso em branco. " ElseIf (QualErro==520) ; xMsgErro:="520 - Está em estado de impressão de cheque." ElseIf (QualErro==521) ; xMsgErro:="521 - Não está em estado de impressão de cheque." ElseIf (QualErro==522) ; xMsgErro:="522 - Necessário inserir cheque." ElseIf (QualErro==523) ; xMsgErro:="523 - Erro de leitura de CMC7." ElseIf (QualErro==524) ; xMsgErro:="524 - Banco não cadastrado." ElseIf (QualErro==525) ; xMsgErro:="525 - Erro cadastro dos bancos. Arquivo BANCO ou equivalente." ElseIf (QualErro==526) ; xMsgErro:="526 - Excedeu o tamanho do extenso." ElseIf (QualErro==527) ; xMsgErro:="527 - Moeda não cadastrada." ElseIf (QualErro==528) ; xMsgErro:="528 - Usuário deve virar o cheque para realizar impressão no verso." // Erros de sintaxe (acima de 800) ElseIf (QualErro==800) ; xMsgErro:="800 - Intervalo inconsistente." ElseIf (QualErro==801) ; xMsgErro:="801 - A string TOTAL não é aceita." ElseIf (QualErro==802) ; xMsgErro:="802 - Argumentos inválidos." ElseIf (QualErro==803) ; xMsgErro:="803 - Comando inexistente." ElseIf (QualErro==804) ; xMsgErro:="804 - Sintaxe de comando errada." ElseIf (QualErro==805) ; xMsgErro:="805 - Comando desabilitado." ElseIf (QualErro==806) ; xMsgErro:="806 - Comando só aceito em intervenção fiscal." ElseIf (QualErro==807) ; xMsgErro:="807 - Comando enviado fora da seqüência lógica da impressora."+CRLF+CRLF+"Provavelmete esteja enviando um comando que já foi efetuado." ElseIf (QualErro==808) ; xMsgErro:="808 - Atributo de formatação inválido." ElseIf (QualErro==809) ; xMsgErro:="809 - Função não implementada." ElseIf (QualErro==810) ; xMsgErro:="810 - Parâmetro não aceito pelo ecf." ElseIf (QualErro==811) ; xMsgErro:="811 - Informação não disponibilizada pelo ecf." Else xMsgErro:=AllTrim(Str(QualErro))+ " - Erro não identificado" EndIF EndIf MsgInfo(xMsgErro+" ", "Atenção") Return(.t.) Oliveira, Sérgio A. PERSONAL Comp. e Sitemas.id=green> Lins - SP ** sergio@personal.com.br FWH 2.5, xharbour 0.99.4, brMake Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 12, 2006 Author Report Share Posted April 12, 2006 Valeu, Sérgio, muito obrigado. Abraços, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
Edvaldo1361303230 Posted April 17, 2006 Report Share Posted April 17, 2006 Ok. Tambem estou com esse erro, ou sejam: Usando ECM32M.DLL quanto mando o Opencif() nao me retorna nada e dai nao consigo executar nenhum comando. Quanto a AFRAC consigo mandar todos os comandos, menos o Venderitem, que me retorna erro nos parametros. Gostaria que alguem que usa a Afrac postasse uma exemplo prático da venda de um item conforme a declaracao acima postada. Obrigado Quote Link to comment Share on other sites More sharing options...
kleyber Posted April 17, 2006 Author Report Share Posted April 17, 2006 Edvaldo, //----- Imprimir itens da venda sele VEN set order to 1 seek vnupd vdesc:=strzero(VEN->desc,16) sele VEI set order to 1 cUnid:="un" nVDesc:=strtran(str(VEN->desc,2),",",".") nVDesc:=StrZero(Val(nVDesc),16,2) seek vnupd do while VEI->nupd=vnupd select PRO seek VEI->codpro sele VEI cCodProduto:=padl(VEI->codpro,13,"0") cDescProduto:=left(PRO->nome,38) nQuantidade:=strtran(str(VEI->quant,2),",",".") nQuantidade:=StrZero(Val(nQuantidade),16,2) nPreco:=strtran(str(VEI->preun,2),",",".") nPreco:=StrZero(Val(nPreco),16,2) nTotal:=StrZero(Val(nQuantidade)*Val(nPreco),16,2) if PRO->icm=17 cTrib:="MT03" elseif PRO->icm=25 cTrib:="MT04" elseif PRO->icm=12 cTrib:="MT02" elseif PRO->icm=7 // .or. PRO->icm=5 cTrib:="MT01" elseif PRO->icm=5 cTrib:="MT01" elseif PRO->icm<1 cTrib:="MI00" endif cDescProduto:=PRO->nome MsgRun("Imprimindo Ãtem...","Aguarde...",{|| nRet:=AFRAC_VenderItem( cCodProduto, ; cDescProduto, ; nQuantidade, ; nPreco, ; "1", ; "1", ; nVDesc, ; nTotal, ; cTrib, ; cUnid, ; "0")}) if nRet>0 Mensag_ECF(@nRet) endif skip enddo //-------------------- Abraços, Kleyber Derick xHarbour 0.99.4 + FWH 2.5 Visite São LuÃs - MA A Ilha dos Amores Quote Link to comment Share on other sites More sharing options...
Edvaldo1361303230 Posted April 18, 2006 Report Share Posted April 18, 2006 Ok. Kleiber, diga pra onde quer viajar que eu mando a passagem. O exemplo funcionou perfeitamente. Abraços Quote Link to comment Share on other sites More sharing options...
Anderson.OL Posted August 24, 2006 Report Share Posted August 24, 2006 Pessoal, não configo fazer a funcao AFRAC_PegarCodigoErro... Já declarei das seguintes maneiras: DLL32 FUNCTION A_RETORNOI( @id=green>Codigo AS PTRid=green>, @id=green>Msg AS PTRid=green>, @id=green>Act AS PTRid=green>); AS _INT PASCAL FROM "AFRAC_PegarCodigoErro" ; LIB "ECFAFRAC.DLL" DLL32 FUNCTION A_RETORNOI( @id=green>Codigo AS STRINGid=green>, @id=green>Msg AS STRINGid=green>, @id=green>Act AS STRINGid=green>); AS _INT PASCAL FROM "AFRAC_PegarCodigoErro" ; LIB "ECFAFRAC.DLL" DLL32 FUNCTION A_RETORNOI( Codigo AS STRINGid=green>, Msg AS STRINGid=green>, Act AS STRINGid=green>); AS _INT PASCAL FROM "AFRAC_PegarCodigoErro" ; LIB "ECFAFRAC.DLL" id=code>id=code>para executar eu coloquei assim: //-- ja tentei com e sem @ cCodigo := Space(06) cBuffer_Ret := Space(81) cAct := Space(07) A_RETORNOI(@cCodigo , @cBuffer_Ret , @cAct) id=code>id=code>Mas não funciona ¬¬ Abraços Anderson.OL(Space MSN) Itaocara - RJ //Clpr 5.3b/FW 2.6/WS/Blnk 7.0/Med// Quote Link to comment Share on other sites More sharing options...
personal Posted August 24, 2006 Report Share Posted August 24, 2006 *-------------------------* DLL32 FUNCTION AFRAC_AbrirPorta( Porta AS PTR ) AS LONG lib xDll DLL32 FUNCTION AFRAC_FecharPorta() AS LONG lib xDll DLL32 FUNCTION AFRAC_LeituraX() AS LONG lib xDll DLL32 FUNCTION AFRAC_ReducaoZ( Dt AS LPSTR ) AS LONG lib xDll DLL32 FUNCTIOn AFRAC_AjustarRelogio( Hr AS LPSTR) AS LONG lib xDll DLL32 FUNCTION AFRAC_EntrarHorarioVerao() AS LONG lib xDll DLL32 FUNCTION AFRAC_SairHorarioVerao() AS LONG lib xDll DLL32 FUNCTION AFRAC_AbrirCupom() AS LONG lib xDll DLL32 FUNCTION AFRAC_CancelarCupom() AS LONG lib xDll DLL32 FUNCTION AFRAC_LerAliquotas( Pt AS STRING ) AS LONG lib xDll DLL32 FUNCTION AFRAC_LerTodasFormasPagamento( Pt AS STRING ) AS LONG lib xDll DLL32 FUNCTION AFRAC_CancelarItem(Item AS STRING) AS LONG lib xDll DLL32 FUNCTION AFRAC_FecharCupom(nVinc AS BOOL) AS LONG lib xDll DLL32 FUNCTION AFRAC_InformarMensagemCupom(nMensa AS STRING) AS LONG lib xDll DLL32 Function AFRAC_Fabricante(@mFab AS STRING, @mCro AS STRING) AS LONG lib xDll DLL32 FUNCTIOn AFRAC_FormaPagamento( nForma AS STRING ,; nIndice AS STRING ,; nValor AS STRING ,; nMensa AS STRING) AS LONG lib xDll DLL32 Function AFRAC_PegarCodigoErro( @Cod AS STRING,; @Msg AS STRING,; @Acao AS PTR) AS LONG lib xDll DLL32 Function AFRAC_LerInformacaoImpressora(@Cod AS STRING,; @Msg AS STRING) AS LONG lib xDll DLL32 FUNCTION AFRAC_AcrescimoDescontoCupom( nDscCup AS STRING, ; nPrcCup AS STRING, ; nVlrCup AS STRING ) AS LONG lib xDll DLL32 FUNCTION AFRAC_FecharAcrescimoDesconto( nDscFch AS STRING, ; nPrcFch AS STRING, ; @nVlrFch AS STRING ) AS _INT lib xDll DLL32 FUNCTION AFRAC_VenderItem( nCodigo AS STRING, ; // ( Com tamanho de 20 ) nDescr AS STRING ,; // ( com Tamanho de 200 ) nQtde AS STRING ,; // ( com Tamanho de 16 Ex: 12.34 Kg = "0000000000012.34" nVlUnit AS STRING ,; // ( com Tamanho de 16 Ex: R$ 2.34 Kg = "0000000000002.34" nAcrDes AS STRING ,; // ( ou String ou LPSTR ) ("0"=Acrescimo, "1"=Desconto) nPerVal AS STRING ,; // ( ou String ou LPSTR ) ("0"=Percentual, "1"=Valor) nVlAcDes AS STRING ,; // ( com Tamanho de 16 Ex: R$ 0.12 = "0000000000000.12" nVlTotal AS STRING ,; // ( com Tamanho de 16 Ex: R$ 123.45 = "0000000000123.45" nAliq AS STRING ,; // ( ou LPSTR Ex: "M1200" = Aliquota de 12 % M=Mercadoria ) nUnid AS STRING ,; nFImp AS STRING) ; // ( .T. para imprimir em uma unica linha ) AS _INT PASCAL LIB xDll Oliveira, Sérgio A. PERSONAL Comp. e Sitemas.id=green> Lins - SP ** sergio@personal.com.br FWH 2.5, xharbour 0.99.4, SqlLib, MySql, brMake. TWBrowse(),C5Menu,vPrinter Quote Link to comment Share on other sites More sharing options...
Anderson.OL Posted August 24, 2006 Report Share Posted August 24, 2006 Não é necessario informar PASCAL FROM "AFFRAC_PegarCodigoErro" ???? Testei da maneira que vc me instruiu e exibe uma mensagem de erro Error description: Error BASE/1003 Variable does not exist: XDLL Sendo que eu declaro e aponto um valor para XDLL: Local XDLL XDLL := LoadLib32("ECFAFRAC.DLL") id=code>id=code>E agora??? Abraços Anderson.OL(Space MSN) Itaocara - RJ //Clpr 5.3b/FW 2.6/WS/Blnk 7.0/Med// Quote Link to comment Share on other sites More sharing options...
personal Posted August 24, 2006 Report Share Posted August 24, 2006 xDll:=Loadlib32("AfracQuattro.dll") veja bem, a AFRAC, não é uma .DLL, e sim voce ter .DLL de impressoras com comandos unificados. No caso acima, estou usando uma impressora QUATTRO IIF... para tanto, baixei do site da QUATTRO, a .DLL correspondente a AFRAC. Isto nao quer dizer que todas as impressoras tem e podem usar a AFRAC. No caso da sua, parece ser padrão mercaf, teriar que baixar do site deles a .DLL correspondente a AFRAC. Oliveira, Sérgio A. PERSONAL Comp. e Sitemas.id=green> Lins - SP ** sergio@personal.com.br FWH 2.5, xharbour 0.99.4, SqlLib, MySql, brMake. TWBrowse(),C5Menu,vPrinter Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.