Jump to content
Fivewin Brasil

Paulo1361303230

Membros
  • Posts

    557
  • Joined

  • Last visited

Everything posted by Paulo1361303230

  1. Boa Noite Colegas.. Alguem teria algum números de cartão do redecard para teste do TEF. grato.. até mais José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  2. Boa Noite Colegas.. Alguem teria algum números de cartão do redecard para teste do TEF. grato.. até mais José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  3. Obrigado pela informação Marcelo, vou dar uma analisada, porem o que acho interessante que chegou a emitir o cupom vinculado. Após emissão de uns tres cupons foi onde ocorreram os problemas de não mais emitir. Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  4. Olá Amigos! Deixei de indicar a Bematech aproximadamente à um ano, pois tudo isto já era previsto por mim em relação à concorrência com nós desenvolvedores. Atualmente indico somente a IF Daruma, que alem de um excelente suporte nos dão tambem uma atenção especial. O suporte da Bematech (que já foi bom), hoje deixa muito a desejar, pois alem de não possuir um contato instantâneo do tipo Skyp ou MSN, a demora no atendimento é grande e o retorno tambem é sofrível, onde nos dias de hoje não podemos mais perder um minuto sequer de tempo. Alem do mais, a IF Daruma possuem ótimos comandos que muito nos facilitam no momento do desenvolvimento evitando-se desta forma enorme perda de tempo. Obs.; Não trabalho na Daruma e nem estou realizando propagandas em prol da mesma, porem, a verdade seja dita, vence que oferecer o melhor. Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  5. Bom dia à todos! Não sei se é do conhecimento de todos, o suporte da BEMATECH junto aos desenvolvedores parece-me que está em decadência em relação à DARUMA onde o suporte está atingindo ao nível de Excelência. A dúvida que formalizarei à seguir, refere-se à emissão do cupom TEF com a IF Bematech onde já solicitei suporte porem a resposta dos mesmos é muito demorada. Conclusão; Os comandos a seguir simplesmente não imprimem o referido Cupom Vinculado (CV), porem observando no log da Bematech indica como se estivesse sido impresso. sArq := fopen( "C:\TEF_DIAL\RESP\INTPOS.001" ) iTamArq := fseek( sArq, 0, 2 ) fclose( sArq ) sArq := fopen( "C:\TEF_DIAL\RESP\INTPOS.001" ) sRetorno := " " sDadosTEF := "" sDados := "" for iConta := 1 to iTamArq sRetorno := " " fread( sArq, @sRetorno, 1 ) if asc( sRetorno ) = 10 if left( sDados, 3 ) = "029" sDados := stuff( sDados, 1, 10, "" ) sDados := strtran( sDados, '"', "" ) sDadosTEF += sDados + chr( 10 ) endif sDados := sRetorno := "" endif sDados += sRetorno next fclose( sArq ) wmsgtef:='Destaque e aguarde a emissão do cupom vinculado!' tempotef() MsgRun('Abrindo o Cupom Vinculado!',"Aguarde",{||bAbrevin21()}) iInicio := 1 do while iInicio < len( sDadosTEF ) sDadosTEF1 := substr( sDadosTEF, iInicio, 48 ) whist:=sdadostef1 MsgRun('Emissão do Cupom Vinculado!',"Aguarde",{||bAbrevin22()}) iInicio := iInicio + 48 enddo MsgRun('Encerramento do Cupom Vinculado!',"Aguarde",{||bAbrevin23()}) Comandos Utilizados em relação à operação acima; ************************************************** function bAbrevin21() // abre Nao Fiscal vinculado ************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(21,NIL,3,@bnRet) RETURN nil ENDIF ************************************************* function bAbrevin22() // usa Nao Fiscal vinculado ************************************************* MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(22,NIL,3,@bnRet) RETURN nil ENDIF *************************************************** function bAbrevin23() // fecha Nao Fiscal vinculado *************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(23,NIL,3,@bnRet) RETURN nil ENDIF //ABRE CUPOM NÃO FISCAL ELSEIF BnCmd = 21 * Bnret := BmCupadAbr(uPar[1],uPar[2],uPar[3]) nval01:=subs(nval,01,14) nval02:=subs(nval01,01,11) nval03:=subs(nval01,13,02) nval04:=nval02+nval03 nval:=alltrim(nval04) Bnret := BmCupAdAbr(oforma,nval,alltrim(str(wcupom))) // Criado com base no recebimento de conta de cliente //USA CUPOM NÃO FISCAL ELSEIF BnCmd = 22 Bnret := BmCupAdUsa( whist ) // Criado com base no recebimento de conta de cliente //FECHA CUPOM NÃO FISCAL ELSEIF BnCmd = 23 Bnret := BmCupAdFec( )//Abre cupom adicional DLL32 FUNCTION BmCupAdAbr( zFormaPgto AS STRING,; zValor AS STRING,; zCupom AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB bDll //Imprime cupom não fiscal vinculado DLL32 FUNCTION BmCupAdUsa( whist AS STRING ) AS LONG PASCAL ; // ( Texto) FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB bDll //Fecha cupom não fiscal DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB bDll Será que omitindo algo ou problema é com a impressora? Agradeço a atenção. abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  6. Bom dia à todos! Não sei se é do conhecimento de todos, o suporte da BEMATECH junto aos desenvolvedores parece-me que está em decadência em relação à DARUMA onde o suporte está atingindo ao nível de Excelência. A dúvida que formalizarei à seguir, refere-se à emissão do cupom TEF com a IF Bematech onde já solicitei suporte porem a resposta dos mesmos é muito demorada. Conclusão; Os comandos a seguir simplesmente não imprimem o referido Cupom Vinculado (CV), porem observando no log da Bematech indica como se estivesse sido impresso. sArq := fopen( "C:\TEF_DIAL\RESP\INTPOS.001" ) iTamArq := fseek( sArq, 0, 2 ) fclose( sArq ) sArq := fopen( "C:\TEF_DIAL\RESP\INTPOS.001" ) sRetorno := " " sDadosTEF := "" sDados := "" for iConta := 1 to iTamArq sRetorno := " " fread( sArq, @sRetorno, 1 ) if asc( sRetorno ) = 10 if left( sDados, 3 ) = "029" sDados := stuff( sDados, 1, 10, "" ) sDados := strtran( sDados, '"', "" ) sDadosTEF += sDados + chr( 10 ) endif sDados := sRetorno := "" endif sDados += sRetorno next fclose( sArq ) wmsgtef:='Destaque e aguarde a emissão do cupom vinculado!' tempotef() MsgRun('Abrindo o Cupom Vinculado!',"Aguarde",{||bAbrevin21()}) iInicio := 1 do while iInicio < len( sDadosTEF ) sDadosTEF1 := substr( sDadosTEF, iInicio, 48 ) whist:=sdadostef1 MsgRun('Emissão do Cupom Vinculado!',"Aguarde",{||bAbrevin22()}) iInicio := iInicio + 48 enddo MsgRun('Encerramento do Cupom Vinculado!',"Aguarde",{||bAbrevin23()}) Comandos Utilizados em relação à operação acima; ************************************************** function bAbrevin21() // abre Nao Fiscal vinculado ************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(21,NIL,3,@bnRet) RETURN nil ENDIF ************************************************* function bAbrevin22() // usa Nao Fiscal vinculado ************************************************* MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(22,NIL,3,@bnRet) RETURN nil ENDIF *************************************************** function bAbrevin23() // fecha Nao Fiscal vinculado *************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(23,NIL,3,@bnRet) RETURN nil ENDIF //ABRE CUPOM NÃO FISCAL ELSEIF BnCmd = 21 * Bnret := BmCupadAbr(uPar[1],uPar[2],uPar[3]) nval01:=subs(nval,01,14) nval02:=subs(nval01,01,11) nval03:=subs(nval01,13,02) nval04:=nval02+nval03 nval:=alltrim(nval04) Bnret := BmCupAdAbr(oforma,nval,alltrim(str(wcupom))) // Criado com base no recebimento de conta de cliente //USA CUPOM NÃO FISCAL ELSEIF BnCmd = 22 Bnret := BmCupAdUsa( whist ) // Criado com base no recebimento de conta de cliente //FECHA CUPOM NÃO FISCAL ELSEIF BnCmd = 23 Bnret := BmCupAdFec( )//Abre cupom adicional DLL32 FUNCTION BmCupAdAbr( zFormaPgto AS STRING,; zValor AS STRING,; zCupom AS STRING ) AS LONG PASCAL ; FROM "Bematech_FI_AbreComprovanteNaoFiscalVinculado" LIB bDll //Imprime cupom não fiscal vinculado DLL32 FUNCTION BmCupAdUsa( whist AS STRING ) AS LONG PASCAL ; // ( Texto) FROM "Bematech_FI_UsaComprovanteNaoFiscalVinculado" LIB bDll //Fecha cupom não fiscal DLL32 FUNCTION BmCupAdFec( ) AS LONG PASCAL ; FROM "Bematech_FI_FechaComprovanteNaoFiscalVinculado" LIB bDll Será que omitindo algo ou problema é com a impressora? Agradeço a atenção. abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  7. Olá Marcelo, agradeço pela atenção. Em relação à minha dúvida, a rotina já estava funcionando, foi descoberto posteriormente que o problema era com o meu equipamento (computador com problemas). Obrigado Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  8. Boa noite colegas! Estou com dificuldades para que o sistema retorne na tela quando está finalizando a bobina ou quando chegou ao final. Já tentei várias alternativas sem sucesso, não sei nem no que estou errando, pois já estou totalmente confuso, se algum colega já passou por isso, tem como fornecer alguma ajuda? Abraços Segue a função que estou usando. ================================ ************************ function xretorno(olbx) ************************ #define ST1_BIT_0 "Número de parametros de CMD inválido" #define ST1_BIT_1 "Cupom aberto" #define ST1_BIT_2 "Comando inexistente" #define ST1_BIT_3 "Primeiro dado de CMD não foi ESC (1Bh)" #define ST1_BIT_4 "Impressora em erro" #define ST1_BIT_5 "Erro no relógio" #define ST1_BIT_6 "Pouco papel" #define ST1_BIT_7 "Fim de papel" #define ST2_BIT_0 "Comando não executado" #define ST2_BIT_1 "CNPJ/IE do proprietário não programados" #define ST2_BIT_2 "Cancelamento não permitido" #define ST2_BIT_3 "Capacidade de alíquotas programáveis lotada" #define ST2_BIT_4 "Alíquota não programada" #define ST2_BIT_5 "Erro na Memória RAM CMOS não volátil" #define ST2_BIT_6 "Memória fiscal lotada" #define ST2_BIT_7 "Tipo de parametro de CMD inválido" uBuf1_status := 0 ubuf2_status := 0 ubuf3_status := 0 nRet := Daretorno(@uBuf1_status,@ubuf2_status,@ubuf3_status) decodifica(ubuf1_status, ubuf2_status,ubuf3_status) // retorno ******************************************* Function Decodifica(ack,st1,st2) // retorno ******************************************* local mensagem1 := '', mensagem2 := '', tem_mensagem := .f. nao_continuar = .f. Bit_st1:=Bit_st2:=Bit_ack:=0 Bit_ack=ACK Bit_st1=ST1 Bit_st2=ST2 //Tratamento do Ack ou NAk if Bit_ack # 6 ? "Problemas ao Enviar o Comando a Impressora Devolveu 21" nao_continuar = .t. endif *************************************************************************** //Aqui é Feito o Tratamento do St1 subtraindo o Byte anterior pelo Seguinte *************************************************************************** if Bit_st1 >= 128;nao_continuar:=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_7;Bit_st1=Bit_st1-128 erro(ST1_BIT_7) endif if Bit_st1 >= 64 ;tem_mensagem:=.t.;mensagem1 := ST1_BIT_6; Bit_st1=Bit_st1-64 erro(ST1_BIT_6) endif if Bit_st1 >= 32 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_5; Bit_st1=Bit_st1-32 erro(ST1_BIT_5) endif if Bit_st1 >= 16 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_4; Bit_st1=Bit_st1-16 erro(ST1_BIT_4) endif if Bit_st1 >= 8 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_3; Bit_st1=Bit_st1-8 erro(ST1_BIT_3) endif if Bit_st1 >= 4 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_2; Bit_st1=Bit_st1-4 erro(ST1_BIT_2) endif if Bit_st1 >= 2 ;erro(ST1_BIT_1);Bit_st1=Bit_st1-2 return nil endif if Bit_st1 >= 1 ;nao_continuar=.t. erro(ST1_BIT_0) endif *************************************************************************** //Aqui é Feito o Tratamento do ST2 subtraindo o Byte anterior pelo Seguinte *************************************************************************** if Bit_ST2 >= 128;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_7; Bit_ST2=Bit_ST2-128 endif if Bit_ST2 >= 64 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_6; Bit_ST2=Bit_ST2-64 endif if Bit_ST2 >= 32 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_5; Bit_ST2=Bit_ST2-32 endif if Bit_ST2 >= 16 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_4; Bit_ST2=Bit_ST2-16 endif if Bit_ST2 >= 8 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_3; Bit_ST2=Bit_ST2-8 endif if Bit_ST2 >= 4 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_2; Bit_ST2=Bit_ST2-4 endif if Bit_ST2 >= 2 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_1; Bit_ST2=Bit_ST2-2 endif if Bit_st2 >= 1 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_0 endif if tem_mensagem erro(mensagem1+CRLF+mensagem2) endif return NIL //Retorna erro extendido DLL32 FUNCTION DaRetorno(@ubuf1_status AS PTR,@ubuf2_status AS PTR,@ubuf3_status AS PTR) AS LONG PASCAL ; FROM "Daruma_FI_RetornoImpressora" LIB xDll José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  9. Boa noite colegas! Estou com dificuldades para que o sistema retorne na tela quando está finalizando a bobina ou quando chegou ao final. Já tentei várias alternativas sem sucesso, não sei nem no que estou errando, pois já estou totalmente confuso, se algum colega já passou por isso, tem como fornecer alguma ajuda? Abraços Segue a função que estou usando. ================================ ************************ function xretorno(olbx) ************************ #define ST1_BIT_0 "Número de parametros de CMD inválido" #define ST1_BIT_1 "Cupom aberto" #define ST1_BIT_2 "Comando inexistente" #define ST1_BIT_3 "Primeiro dado de CMD não foi ESC (1Bh)" #define ST1_BIT_4 "Impressora em erro" #define ST1_BIT_5 "Erro no relógio" #define ST1_BIT_6 "Pouco papel" #define ST1_BIT_7 "Fim de papel" #define ST2_BIT_0 "Comando não executado" #define ST2_BIT_1 "CNPJ/IE do proprietário não programados" #define ST2_BIT_2 "Cancelamento não permitido" #define ST2_BIT_3 "Capacidade de alíquotas programáveis lotada" #define ST2_BIT_4 "Alíquota não programada" #define ST2_BIT_5 "Erro na Memória RAM CMOS não volátil" #define ST2_BIT_6 "Memória fiscal lotada" #define ST2_BIT_7 "Tipo de parametro de CMD inválido" uBuf1_status := 0 ubuf2_status := 0 ubuf3_status := 0 nRet := Daretorno(@uBuf1_status,@ubuf2_status,@ubuf3_status) decodifica(ubuf1_status, ubuf2_status,ubuf3_status) // retorno ******************************************* Function Decodifica(ack,st1,st2) // retorno ******************************************* local mensagem1 := '', mensagem2 := '', tem_mensagem := .f. nao_continuar = .f. Bit_st1:=Bit_st2:=Bit_ack:=0 Bit_ack=ACK Bit_st1=ST1 Bit_st2=ST2 //Tratamento do Ack ou NAk if Bit_ack # 6 ? "Problemas ao Enviar o Comando a Impressora Devolveu 21" nao_continuar = .t. endif *************************************************************************** //Aqui é Feito o Tratamento do St1 subtraindo o Byte anterior pelo Seguinte *************************************************************************** if Bit_st1 >= 128;nao_continuar:=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_7;Bit_st1=Bit_st1-128 erro(ST1_BIT_7) endif if Bit_st1 >= 64 ;tem_mensagem:=.t.;mensagem1 := ST1_BIT_6; Bit_st1=Bit_st1-64 erro(ST1_BIT_6) endif if Bit_st1 >= 32 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_5; Bit_st1=Bit_st1-32 erro(ST1_BIT_5) endif if Bit_st1 >= 16 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_4; Bit_st1=Bit_st1-16 erro(ST1_BIT_4) endif if Bit_st1 >= 8 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_3; Bit_st1=Bit_st1-8 erro(ST1_BIT_3) endif if Bit_st1 >= 4 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem1 := ST1_BIT_2; Bit_st1=Bit_st1-4 erro(ST1_BIT_2) endif if Bit_st1 >= 2 ;erro(ST1_BIT_1);Bit_st1=Bit_st1-2 return nil endif if Bit_st1 >= 1 ;nao_continuar=.t. erro(ST1_BIT_0) endif *************************************************************************** //Aqui é Feito o Tratamento do ST2 subtraindo o Byte anterior pelo Seguinte *************************************************************************** if Bit_ST2 >= 128;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_7; Bit_ST2=Bit_ST2-128 endif if Bit_ST2 >= 64 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_6; Bit_ST2=Bit_ST2-64 endif if Bit_ST2 >= 32 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_5; Bit_ST2=Bit_ST2-32 endif if Bit_ST2 >= 16 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_4; Bit_ST2=Bit_ST2-16 endif if Bit_ST2 >= 8 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_3; Bit_ST2=Bit_ST2-8 endif if Bit_ST2 >= 4 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := CRLF+ST2_BIT_2; Bit_ST2=Bit_ST2-4 endif if Bit_ST2 >= 2 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_1; Bit_ST2=Bit_ST2-2 endif if Bit_st2 >= 1 ;nao_continuar=.t.;tem_mensagem:=.t.;mensagem2 := ST2_BIT_0 endif if tem_mensagem erro(mensagem1+CRLF+mensagem2) endif return NIL //Retorna erro extendido DLL32 FUNCTION DaRetorno(@ubuf1_status AS PTR,@ubuf2_status AS PTR,@ubuf3_status AS PTR) AS LONG PASCAL ; FROM "Daruma_FI_RetornoImpressora" LIB xDll José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  10. Olá amigos Existe alguma forma de protegermos os nossos arquivos em DBF permitindo que funcione em rede mesmo quando voce trabalha com dois executáveis independentes? Ex. Terminal de Caixa.EXE o Administrativo.EXE Tem outro porem, e caso ocorra falta de energia ou desligue o computador com o sistema aberto, acredito que desta forma os arquivos ficariam desprotegidos ao reiniciar o sistema. Portanto, existe alguma função que gerencie a proteção dos DBFs? Desde já agradeço José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  11. Olá amigos Existe alguma forma de protegermos os nossos arquivos em DBF permitindo que funcione em rede mesmo quando voce trabalha com dois executáveis independentes? Ex. Terminal de Caixa.EXE o Administrativo.EXE Tem outro porem, e caso ocorra falta de energia ou desligue o computador com o sistema aberto, acredito que desta forma os arquivos ficariam desprotegidos ao reiniciar o sistema. Portanto, existe alguma função que gerencie a proteção dos DBFs? Desde já agradeço José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  12. Oi João. Utilizo for Clipper Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  13. Olá Francisco, bom dia! Já possuo uma solução, vou procurar nos meus fontes e postarei mais tarde ok? Abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  14. Olá amigos, bom dia! Estou com dificuldades na tentativa de emitir cupom TEF através do relatório gerencial da Impressora Fiscal Daruma. Exemplo:= O relatório inicial imprime normalmente, bem como o texto enviado, porem ao tentar fechar o referido relatório, simplesmente o programa é interrompido através de uma mensagem de erro de FiveWin cuja nomenclatura de erros me foge da memória neste momento. Mas acredito que seja erro de endereçamento de memória. Se alguem já passou por esta situação, e puder dar-me uma Luz eu agradeço. Seguem as declarações. ************************************************************ function abrerger() // Abrir relat¢rio gerencial ************************************************************ abrevin23() // Fechar cupom anterior MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 IF .NOT. GrvCmdFis(24,NIL,3,@nRet) RETURN nil ENDIF ************************************************************ function usarger() // Aplica o texto gerencial ************************************************************ MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 IF .NOT. GrvCmdFis(31,NIL,3,@nRet) RETURN nil ENDIF ************************************************************ function fecharger() // Fecha relat¢rio gerencial ************************************************************ MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 ******************************************************************************* //ABRE RELATÓRIO GERENCIAL ELSEIF nCmd = 24 nRet := DaAbreGer( ) //USA RELATÓRIO GERENCIAL ELSEIF nCmd = 31 nRet := DaCpGerusa( whist ) //FECHA RELAT GERENCIAL ELSEIF nCmd = 25 nRet := DaCpGerFec( ) ******************************************************************************* //Abre relat¢rio gerencial dll32 function DaAbreGer() AS LONG PASCAL ; FROM "Daruma_FI_AbreRelatorioGerencial" LIB xDll //Emite cupom gerencial DLL32 FUNCTION DaCpGerusa( Texto AS STRING ) AS LONG PASCAL ; FROM "Daruma_FI_RelatorioGerencial" LIB xDll //Fecha cupom gerencial DLL32 FUNCTION DaCpGerFec( ) AS LONG PASCAL ; FROM "Daruma_FI_FechaRelatorioGerencial" LIB xDll José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  15. Olá amigos, bom dia! Estou com dificuldades na tentativa de emitir cupom TEF através do relatório gerencial da Impressora Fiscal Daruma. Exemplo:= O relatório inicial imprime normalmente, bem como o texto enviado, porem ao tentar fechar o referido relatório, simplesmente o programa é interrompido através de uma mensagem de erro de FiveWin cuja nomenclatura de erros me foge da memória neste momento. Mas acredito que seja erro de endereçamento de memória. Se alguem já passou por esta situação, e puder dar-me uma Luz eu agradeço. Seguem as declarações. ************************************************************ function abrerger() // Abrir relat¢rio gerencial ************************************************************ abrevin23() // Fechar cupom anterior MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 IF .NOT. GrvCmdFis(24,NIL,3,@nRet) RETURN nil ENDIF ************************************************************ function usarger() // Aplica o texto gerencial ************************************************************ MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 IF .NOT. GrvCmdFis(31,NIL,3,@nRet) RETURN nil ENDIF ************************************************************ function fecharger() // Fecha relat¢rio gerencial ************************************************************ MsgRun("Relatório Gerencial","Aguarde...",{||xdll:=loadlib32('daruma32.dll')}) xDll := LoadLib32("DARUMA32.DLL") nRet := 0 ******************************************************************************* //ABRE RELATÓRIO GERENCIAL ELSEIF nCmd = 24 nRet := DaAbreGer( ) //USA RELATÓRIO GERENCIAL ELSEIF nCmd = 31 nRet := DaCpGerusa( whist ) //FECHA RELAT GERENCIAL ELSEIF nCmd = 25 nRet := DaCpGerFec( ) ******************************************************************************* //Abre relat¢rio gerencial dll32 function DaAbreGer() AS LONG PASCAL ; FROM "Daruma_FI_AbreRelatorioGerencial" LIB xDll //Emite cupom gerencial DLL32 FUNCTION DaCpGerusa( Texto AS STRING ) AS LONG PASCAL ; FROM "Daruma_FI_RelatorioGerencial" LIB xDll //Fecha cupom gerencial DLL32 FUNCTION DaCpGerFec( ) AS LONG PASCAL ; FROM "Daruma_FI_FechaRelatorioGerencial" LIB xDll José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  16. Olá Amigos Gostaria se possível, que alguem pudesse me informar como faço para expandir um determinado texto em um orçamento. Segue abaixo mais especificado. oPrn:CharSay(01,002,alltrim(uscon)) oPrn:CharSay(02,002,alltrim(ustel)) oPrn:CharSay(04,002,'DADOS PESSOAIS') oPrn:CharSay(05,002,'Nome do Cliente') oPrn:CharSay(05,021,nomecli) Onde está posicionada a variável "uscon" que representa o nome fantasia da empresa eu gostaria que este nome estivesse mais destacado. Já na variável "ustel" que representa o nr.do telefone da empresa ficaria abaixo do nome fantasia porem com um fonte de tamanho menor. Onde le-se DADOS PESSOAIS seria em negrito itálico Quanto os demais textos seriam arial tam.12. Antecipadamente agradeço pela informação. abçs Paulo José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  17. Olá Amigos Gostaria se possível, que alguem pudesse me informar como faço para expandir um determinado texto em um orçamento. Segue abaixo mais especificado. oPrn:CharSay(01,002,alltrim(uscon)) oPrn:CharSay(02,002,alltrim(ustel)) oPrn:CharSay(04,002,'DADOS PESSOAIS') oPrn:CharSay(05,002,'Nome do Cliente') oPrn:CharSay(05,021,nomecli) Onde está posicionada a variável "uscon" que representa o nome fantasia da empresa eu gostaria que este nome estivesse mais destacado. Já na variável "ustel" que representa o nr.do telefone da empresa ficaria abaixo do nome fantasia porem com um fonte de tamanho menor. Onde le-se DADOS PESSOAIS seria em negrito itálico Quanto os demais textos seriam arial tam.12. Antecipadamente agradeço pela informação. abçs Paulo José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  18. Olá Evandro Obrigado pela força. Paulo José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  19. Olá Matheus, bom dia! O Meu sistema possui validação inclusive para terminais, onde se um HD for retirado de uma determinada máquina e transferido para outro tambem não funcionará, pois o mesmo solicitará um código de validação. Vou dar uma verificada em meus fontes e enviarei para o teu e-mail ok, sem custo algum. Embora deu algum trabalho mais foi com a ajuda dos colegas presentes aqui no forum. José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  20. Bom dia! Os colegas, saberiam informar se existe alguma forma de converter arquivo TXT para XML? Pelo DBF, é inviável pois o máximo do campo a ser criado é de 10 Caracteres. José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  21. Bom dia! Os colegas, saberiam informar se existe alguma forma de converter arquivo TXT para XML? Pelo DBF, é inviável pois o máximo do campo a ser criado é de 10 Caracteres. José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  22. Boa Tarde à todos! Estou incluindo em uma da minhas funções, o #include "report.ch" no topo do prg Ao compilar, apresenta o seguinte erro: 347K available Compiling FPDVCFG.PRG dbtnBMP.ch(157) Fatal C3048 Preprocessor table overflow Sendo que em outros módulos não ocorrem este tipo de problema, o que poderia ser? Aproveito tambem a opurtunidade para saber se existe a possibilidade de imprimir um determinado valor na cor vermelha etc... Obrigado José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  23. Boa Tarde à todos! Estou incluindo em uma da minhas funções, o #include "report.ch" no topo do prg Ao compilar, apresenta o seguinte erro: 347K available Compiling FPDVCFG.PRG dbtnBMP.ch(157) Fatal C3048 Preprocessor table overflow Sendo que em outros módulos não ocorrem este tipo de problema, o que poderia ser? Aproveito tambem a opurtunidade para saber se existe a possibilidade de imprimir um determinado valor na cor vermelha etc... Obrigado José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  24. Oi Kbelo, agradeço pela atenção, porem conforme informações obtidas com outros colegas da área, os mesmos dizem que os meus comandos não estão errados, porem, se estivessem corretos acho que o cupom seria emitido corretamente. Portanto, a minha dificuldade seria encontrar o parâmetro problemático. abçs José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
  25. Bom Tarde à todos. Estou com dificuldades para imprimir cupom não fiscal vinculado, porem após imprimir o cupom fiscal simplesmente a impressora BEMATECH não imprime o referido cupom adicional e nem apresenta mensagem de erro. Onde será que estou errando? Segue abaixo a rotina parcial correspondente ao referido cupom. Agradeço pela atenção. Obs.: oforma, corresponde a forma de pagamento (Dinheiro,Cheque etc etc) nval, corresponde ao valor da transação (nval:=str(valor,8,2) wcupom, corresponde ao cupom fiscal Lembrando tambem, que na impressora fiscal DARUMA ocorre tudo normalmente sendo que o comando é praticamente semelhante ao da BEMATECH ***************************************************************************** * PROGRAMA: bGrvCmdFis.PRG * * FUNCAO..: Envia comando para impressora fiscal. * ***************************************************************************** static FUNCTION bGrvCmdFis(BnCmd,uPar,nLen,cVar1,cVar2,lMens) LOCAL uBuf,cVar01:=cVar02:=cVar03:=cVar04:=cVar05:=cVar06:=cVar07:=cVar08:="",; uDll,ACK,ST1,ST2,Bnret,uRet:=0,cCgc lMens := If(lMens=NIL,.t.,lMens) //ABRE CUPOM NÃO FISCAL ELSEIF BnCmd = 21 Bnret := BmCupAdAbr(oforma,nval,str(wcupom)) //USA CUPOM NÃO FISCAL ELSEIF BnCmd = 22 Bnret := BmCupAdUsa( whist ) //FECHA CUPOM NÃO FISCAL ELSEIF BnCmd = 23 Bnret := BmCupAdFec( ) ************************************************** function babrevin21() // abre Nao Fiscal vinculado ************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(21,NIL,3,@bnRet) RETURN nil ENDIF ************************************************* function babrevin22() // usa Nao Fiscal vinculado ************************************************* MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(22,NIL,3,@bnRet) RETURN nil ENDIF *************************************************** function babrevin23() // fecha Nao Fiscal vinculado *************************************************** MsgRun("Sangria/Suprimento de Caixa","Aguarde...",{||bdll:=loadlib32('bemafi32.dll')}) bDll := LoadLib32("BEMAFI32.DLL") bnRet := 0 IF .NOT. bGrvCmdFis(23,NIL,3,@bnRet) RETURN nil ENDIF José Paulo H.Rodrigues Santos/SP drplus@uol.com.br adm_house@hotmail.com
×
×
  • Create New...