Paulo1361303230 Posted November 17, 2008 Report Share Posted November 17, 2008 Olá colegas, boa tarde! Assunto: Impressora Elgin MFD FIT 1E Comandos: Utilizei os mesmos comandos da Bematech, alterando somente para Elgin Resposta: Nada é impresso, apresentando o erro abaixo. Estou enviando uma cópia parcial do fonte na forma como utilizo a DLL. Não consigo imprimir uma simplex Leitura X Onde será que estou errando? Desde já agradeço. Application =========== Path and name: C:\PLUS\fpdv00.exe Size: 1,940,800 bytes Max files handles permited: ( SetHandleCount() ) 255 Error ocurred at: 17/11/2008, 15:59:50 Error description: Error BASE/1070 Argument error: == Args: [ 1] = U [ 2] = N Stack Calls =========== Called from LOCKERRHAN(0) Called from (b)INITHANDL$(0) Called from EGRVCMDFIS(423) Called from EVERPAPEL(928) Called from ELEITURAX(916) ******************************* FUNCTION eStart() ******************************* LOCAL hBorland,bAction SET 3DLOOK ON mensagem1:='' //------------------------> CARREGA DLL eDll:=' ' beep(16) MsgRun("Carregando arquivo de comunicação da Impressora Fiscal","Aguarde...",{||eDll:=loadlib32('elgin.dll')}) MsgRun("Estabelecendo comunicação com a Impressora Fiscal","Aguarde...",{||elprintlig()}) RETURN nil //VERIFICA SE TEM IMPRESSORA LIGADA ELSEIF nCmd=10 IF(enRet:=ElPrintLig())=1 RETURN .T. ELSE RETURN .F. ENDIF //Verifica se tem impressora ligada DLL32 FUNCTION ElPrintLig( ) AS LONG PASCAL ; FROM "Elgin_VerificaImpressoraLigada" LIB eDll //EMITE LEITURA X ELSEIF nCmd = 16 enRet := ElLeituraX() *************************** function eleiturax() *************************** if fx15='X' noaut() return nil endif semaces:='S' if ycartao='S' if yleitx='S' pedecartao() endif endif if semaces='N' return nil endif if imprfis=5 beep(8) if MsgNoYes("Confirma a Execução da Leitura X?","LEITURA X" ) beep(30) MsgRun('Relatório Gerencial',"Leitura X",{||eDll:=loadlib32('elgin.dll')}) eDll := LoadLib32("elgin.dll") everpapel() MsgRun("Emissão da Leitura X (Relatório Gerencial) ","Aguarde",{||Elleiturax()}) // fpdvelg endif endif return nil José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com Quote Link to comment Share on other sites More sharing options...
Paulo1361303230 Posted November 17, 2008 Author Report Share Posted November 17, 2008 Olá colegas, boa tarde! Assunto: Impressora Elgin MFD FIT 1E Comandos: Utilizei os mesmos comandos da Bematech, alterando somente para Elgin Resposta: Nada é impresso, apresentando o erro abaixo. Estou enviando uma cópia parcial do fonte na forma como utilizo a DLL. Não consigo imprimir uma simplex Leitura X Onde será que estou errando? Desde já agradeço. Application =========== Path and name: C:\PLUS\fpdv00.exe Size: 1,940,800 bytes Max files handles permited: ( SetHandleCount() ) 255 Error ocurred at: 17/11/2008, 15:59:50 Error description: Error BASE/1070 Argument error: == Args: [ 1] = U [ 2] = N Stack Calls =========== Called from LOCKERRHAN(0) Called from (b)INITHANDL$(0) Called from EGRVCMDFIS(423) Called from EVERPAPEL(928) Called from ELEITURAX(916) ******************************* FUNCTION eStart() ******************************* LOCAL hBorland,bAction SET 3DLOOK ON mensagem1:='' //------------------------> CARREGA DLL eDll:=' ' beep(16) MsgRun("Carregando arquivo de comunicação da Impressora Fiscal","Aguarde...",{||eDll:=loadlib32('elgin.dll')}) MsgRun("Estabelecendo comunicação com a Impressora Fiscal","Aguarde...",{||elprintlig()}) RETURN nil //VERIFICA SE TEM IMPRESSORA LIGADA ELSEIF nCmd=10 IF(enRet:=ElPrintLig())=1 RETURN .T. ELSE RETURN .F. ENDIF //Verifica se tem impressora ligada DLL32 FUNCTION ElPrintLig( ) AS LONG PASCAL ; FROM "Elgin_VerificaImpressoraLigada" LIB eDll //EMITE LEITURA X ELSEIF nCmd = 16 enRet := ElLeituraX() *************************** function eleiturax() *************************** if fx15='X' noaut() return nil endif semaces:='S' if ycartao='S' if yleitx='S' pedecartao() endif endif if semaces='N' return nil endif if imprfis=5 beep(8) if MsgNoYes("Confirma a Execução da Leitura X?","LEITURA X" ) beep(30) MsgRun('Relatório Gerencial',"Leitura X",{||eDll:=loadlib32('elgin.dll')}) eDll := LoadLib32("elgin.dll") everpapel() MsgRun("Emissão da Leitura X (Relatório Gerencial) ","Aguarde",{||Elleiturax()}) // fpdvelg endif endif return nil José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com Quote Link to comment Share on other sites More sharing options...
valdecir Posted November 17, 2008 Report Share Posted November 17, 2008 Uso desta maneira, e não tenho nenhum problema: DllFiscal:=LoadLib32(".\DLL32\ELGIN.DLL") ELLeituraX() FreeLib32(DllFiscal) //Declaração - leitura X Elgin DLL32 FUNCTION ElLeituraX( ) AS LONG PASCAL ; FROM "Elgin_LeituraX" LIB DllFiscal Quote Link to comment Share on other sites More sharing options...
Paulo1361303230 Posted November 17, 2008 Author Report Share Posted November 17, 2008 Olá Valdecir Agradeço por responder, minhas declarações acredito que estejam corretas, o problema maior deve ser para o sistema localizar a Dll. Portanto, ainda acho que deve ser alguma coisa na abertura da impressora fiscal conform expus acima. A sugestão que voce postou está praticamente iguais às minhas. Tentei várias formas sem obter êxito. Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com Quote Link to comment Share on other sites More sharing options...
valdecir Posted November 17, 2008 Report Share Posted November 17, 2008 José Paulo, por isso mesmo coloquei a declaração que uso, pois é praticamente igual e alem disso é uma herança das declarações da bematech. Editado por - valdecir on 17/11/2008 16:57:03 Quote Link to comment Share on other sites More sharing options...
Paulo1361303230 Posted November 17, 2008 Author Report Share Posted November 17, 2008 Valdecir Só não consigo entender porque não está funcionando, tendo em vista que utilizei todos os comandos da Bematech substituindo para Elgin Ex.: Onde era Bematech_FI_LeituraX mudei para Elgin_LeituraX Ainda acho que o problema está ao verificar se a impressora está em linha ou não. Se voce possuir algum exemplo a respeito, agradeço-lhe imensamente. Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com Quote Link to comment Share on other sites More sharing options...
valdecir Posted November 17, 2008 Report Share Posted November 17, 2008 abaixo e exemplo imprimindo o CF de uma venda, as declarações eu fiz como vc escreveu acima.... DllFiscal:=LoadLib32(".\DLL32\ELGIN.DLL") // Checar se a impressora est instalada... IF ( nRet := ELPrintLig() ) = 1 ELSE MsgInfo("Impressora Fiscal, nao esta pronta....","Atencao") RETURN .F. ENDIF // Abertura do cupom fiscal If (nRet := ElAbreCup(_CPF)) !=1 MsgInfo("Problemas na abertura do Cupom Fiscal","") Return .f. End SysRefresh() //Pra pegar o numero do CF cNumCupomFiscal := Space(6) If (nRet := ElNumCupom(@cNumCupomFiscal)) !=1 MsgInfo("Problemas na numeração do Cupom Fiscal","") Return .f. End VenTmp->(DbGoTop()) nSub:=0 cMensa:="Vendedor: "+StrZero(mCodVend,3)+"-"+mNomVend cST:="03" cTpQtd:="I" cDeci:="000" cTpDes:="%" cDesc:="00000,00" While VenTmp->(!Eof()) cDescr:=VenTmp->Tamanho+"/"+Left(VenTmp->Fabrica,10)+"/"+VenTmp->Refer+"/"+Left(VenTmp->Cor,4) If (nRet := ElVendItem(StrZero(VenTmp->CODPRO,6),; Left(cDescr,29),; "03",; "I",; StrZero(( VenTmp->QTDVenda ),4),; 0,; StrZero(( VenTmp->PrVenda * 100),8),; "%",; "0000") ) !=1 MsgInfo("Problemas ao enviar o item para a Impressora Fiscal.","") //fazer o cancelamento ElCanCupom() return .f. End nSub+=VenTmp->QTDVenda*VenTmp->PrVenda VenTmp->(DbSkip()) End cVarDesc:=AllTrim(Left(Str(nJuros,10,2),7)+Right(Str(nJuros,10,2),2)) If (nRet:=ElIniFechamento("A","$",nJuros))!=1 MsgInfo("Problemas ao Iniciar o Fechamento do Cupom Fiscal. ("+AllTrim(Str(nRet))+")","") ElCanCupom() return .f. End SysRefresh() If cFormaPag=="OUTROS" cFormaPag:="A PRAZO" End nPgto := (nSub+nJuros) If (nRet:=ElFormaPagto(cFormaPag,Right("000000000000"+Alltrim(Subst(str(nPgto),1,len(str(nPgto))-3))+Right(Str(nPgto),2),14)))!=1 MsgInfo("Problemas na Forma de Pagamento do Cupom Fiscal. ("+AllTrim(Str(nRet))+")","") ElCanCupom() return .f. End If cForma=="CREDIARIO" cMensa:=Str(Cliente->CodCli,5)+ "-" + Left(Cliente->NomCLi,30) + CHR(13) + CHR(10) + ; "RG.: "+Cliente->Rg + CHR(13) + CHR(10) + ; "Vendedor: "+StrZero(mCodVend,3)+"-"+mNomVend+ CHR(13) + CHR(10) Else cMensa:=vItXX+ CHR(13) + CHR(10) + ; vIt02 + CHR(13) + CHR(10) + ; "Vendedor: "+StrZero(mCodVend,3)+"-"+mNomVend End If ELTerminaFechamento(cMensa)!=1 MsgInfo("Problemas no Fechamento do Cupom","Atenção") Return .t. End FreeLib32(DllFiscal) Editado por - valdecir on 17/11/2008 17:21:39 Quote Link to comment Share on other sites More sharing options...
Paulo1361303230 Posted November 17, 2008 Author Report Share Posted November 17, 2008 Obrigado Valdecir, vou verificar, funcionando ou não eu lhe avisarei ok? Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com Editado por - Paulo on 17/11/2008 17:35:17 Editado por - Paulo on 17/11/2008 17:35:59 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.