Jump to content
Fivewin Brasil

Erro num get com leito de codigo e barras


EDUTEK

Recommended Posts

Boa tarde

Tenho um GET num programa para emissao de MDFE, o get e para digitar o codigo do Barras do CT-e ou passar o leitor

quando Digito o sistema não dá erro ou se copio e colo a chave no get

function movsai_mdf_imp_um()     
   local oDlg, oBrush, oFont
   local mxChave  := SPACE(44)
   mxPesq := space(44)   
   mxAverb := space(44)      
   mchave := ""
   lMaisdeUm := .f.
   lCartaCorrecao := .f.
   Set Confirm  on   
   SET SOFTSEEK ON
   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 700,220   ;
          PIXEL TITLE "INFORMA A CHAVE DA CTE A PESQUISAR"
   @ 10,10 SAY "Informe a Chave do CT-e " SIZE 80,12 PIXEL OF oDlg 
   @ 25,10 GET oGet VAR mxPesq Picture "@!" SIZE 170, 12 PIXEL OF oDlg UPDATE          
   @ 3,1   CHECKBOX lmAISDEuM PROMPT "&Tem mais de um CT-e o MDF-e." OF oDlg    
   @ 4,1   CHECKBOX lCartaCorrecao PROMPT "Tem Carta de Correção este CT-e." OF oDlg       
   @ 70,10 SAY "Informe o No. da Averbação " SIZE 120,12 PIXEL OF oDlg    
   @ 85,10 GET oGet2 VAR mxAverb Picture "@!" SIZE 170, 12 PIXEL OF oDlg             
   @ 10,250 BTNBMP PIXEL OF oDlg PROMPT "Executa"   TOOLTIP "Executar a Pesquisa"  FILE mrede_path+"\imagem\CONFIR.bmp" 2007 ACTION {( MOVSAI_MDF_IMP(alltrim(mxPesq),mxAverb),oDlg:end())}  SIZE 32, 32       
   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT  oFont
   SET SOFTSEEK OFF  
   Set Confirm  off    
   dbselectarea("movfin")
   dbseek(mchavefil+MCHAVE)
   ORDSCOPE(TOPSCOPE,mchaveFil)
   ORDSCOPE(BOTTOMSCOPE,mchaveFil)  
   movfin->( dbgotop() )
   movfin->( dbgobottom() )   
   
*   movsai_mdf_R()    
return nil

Mas quando leio pelo leito ele me apresenta o seguinte erro

 

Application
===========
   Path and name: D:\Aplicx\CONES\cones.EXE (32 bits)
   Size: ********* bytes
   Compiler version: xHarbour build 1.0.0 Intl. (SimpLex)
   FiveWin  Version: FWHX 9.04
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 17 secs 
   Error occurred at: 01/06/2018, 13:07:15
   Error description: Error BASE/1111  Argument error: LEN
   Args:
     [   1] = U   

Stack Calls
===========
   Called from:  => LEN( 0 )
   Called from: TGET.prg => TGET:KEYCHAR( 1155 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )
   Called from: tget.prg => GET:OVERSTRIKE( 1256 )
   Called from: TGET.prg => TGET:KEYCHAR( 1146 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: CONTROL.prg => TCONTROL:HANDLEEVENT( 1453 )
   Called from: TGET.prg => TGET:HANDLEEVENT( 588 )
   Called from: WINDOW.prg => _FWH( 3333 )
   Called from:  => DISPOUTAT( 0 )
   Called from: tget.prg => GET:DISPLAY( 621 )

que pode ser feito ?

 

tenho um outro programa identico mas em FWH 18.01 e BCC 7.00 que tem a mesma funcao ele nção dá esse erro,

outra coisa no win 7 não dá mas se executo no Win 10 dá, que dá para fazer neste caso.

 

 

 

 

 

Link to comment
Share on other sites

Normal aqui, veja qual é a linha exata da quebra e veja as alterações como eu vejo o módulo.

 

https://imgur.com/EsBbdgb

EsBbdgb.png

 

#include "FiveWin.ch"
	function movsai_mdf_imp_um()
     
   local oDlg, oBrush, oFont, oBtnPesq
   local mxChave  := SPACE(44)
	   LOCAL MREDE_PATH := "C:\FWH1701"  // retire e pare o PATH
	   mxPesq := space(44)   
   mxAverb := space(44)      
   mchave := ""
   lMaisdeUm := .f.
   lCartaCorrecao := .f.
	   Set Confirm  on   
   SET SOFTSEEK ON
	   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-14
	   DEFINE DIALOG oDlg SIZE 700,220   ;
          TITLE "INFORMA A CHAVE DA CTE A PESQUISAR" PIXEL
	   @ 10,10 SAY "Informe a Chave do CT-e "  OF oDlg SIZE 80,12 PIXEL
	   @ 25,10 GET oGet VAR mxPesq Picture "@!"  OF oDlg UPDATE SIZE 170, 12 PIXEL
	   @ 3,1   CHECKBOX lmAISDEuM PROMPT "&Tem mais de um CT-e o MDF-e." OF oDlg
	   @ 4,1   CHECKBOX lCartaCorrecao PROMPT "Tem Carta de Correção este CT-e." OF oDlg
	   @ 70,10 SAY "Informe o No. da Averbação " OF oDlg SIZE 120,12 PIXEL
	   @ 85,10 GET oGet2 VAR mxAverb Picture "@!" OF oDlg SIZE 170, 12 PIXEL
	   @ 10,250 BTNBMP oBtnPesq PROMPT "&Executar" OF oDlg  PIXEL   ;
      TOOLTIP "Executar a Pesquisa"                 ;
      FILE mrede_path+"\imagem\CONFIR.bmp" 2007     ;
      ACTION ( MOVSAI_MDF_IMP(alltrim(mxPesq), mxAverb ), oDlg:end() ) ;
      SIZE 32, 32 CANCEL
	   ACTIVATE DIALOG oDlg CENTERED
	   RELEASE FONT  oFont
	   SET SOFTSEEK OFF  
   Set Confirm  off
	   dbselectarea("movfin")
   dbseek(mchavefil+MCHAVE)
	   ORDSCOPE(TOPSCOPE,mchaveFil)
   ORDSCOPE(BOTTOMSCOPE,mchaveFil)  
   movfin->( dbgotop() )
   movfin->( dbgobottom() )
   
*   movsai_mdf_R()    
return nil
	FUNCTION MOVSAI_MDF_IMP()
	   ? "pesquisa"
	RETURN NIL


 

Link to comment
Share on other sites

quando copio e colo ou quando digito manualmente funciona sem problemas.

eu coloquei o get multiline e coloquei com umas 4 linhas,  quando passo o leitor ele manda coisa a mais, pois geralmente é um codigo + um CRLF

neste caso ele preenche o campo e salta 2 linhas a mais, parece que dá 2 CRLF., mas isso só ocorre no Win 10, com o fivewin 9.04/bcc 5.5, de uso o fivewin 18.01 e bcc 7 não da o erro.

 

 

 

 

Link to comment
Share on other sites

 

quando copio e colo ou quando digito manualmente funciona sem problemas.

eu coloquei o get multiline e coloquei com umas 4 linhas,  quando passo o leitor ele manda coisa a mais, pois geralmente é um codigo + um CRLF

neste caso ele preenche o campo e salta 2 linhas a mais, parece que dá 2 CRLF., mas isso só ocorre no Win 10, com o fivewin 9.04/bcc 5.5, de uso o fivewin 18.01 e bcc 7 não da o erro.

 

 

 

 

Edu.. pode ser besteira.. mas eu dou um valid no get e du um retorno da variável com o Alltrim(). tentou isso?

Att.

Everton

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...