Página 1 de 1

ERRO GETS

Enviado: 19 Fev 2010 11:28
por Laudelino Scarmagnani
Tenho o seguinte codigo:
@ LIN+1,01 GET WCODIGO[WIND] PICT '999999' valid CONSESPRO_I()
..

Código: Selecionar todos

FUNC CONSESPRO_I

*************************************************
* OBJETIVO.: Montrar a relaçao de tipos de produtos
*************************************************
PARA sgprocod
WCODIGO[wind] = sgprocod
wpegaref=0
wpegacor=0
wpegatip=space(2)
IF .NOT.EMPTY(WCODIGO[wind])
   SELECT ESPRO
   dbgotop()
   SEEK WCODIGO[wind]
   IF EOF()
      WERRO = 1
      RETURN(.F.)
   ENDIF
   WERRO = 2
   RETURN(.T.)
ELSE
   IF SGATIVCON='INDL'
        @24,01 CLEAR TO 24,79
	clear gets
	@24,05 SAY 'Referencia:' get WPEGAREF pict '999999'
	@24,26 say 'Cor:' get wpegacor pict '99'
	@24,34 say 'Tipo:' get wpegatip valid f_tipgrade()
	read
               wpegacorx = str(wpegacor,2)
....
return
...

function f_tipgrade()
LAST_VAR = READVAR() 
WCLAUX=wpegatip
WCLASS=SPACE(2)
TV:=SAVESCREEN(10,32,22,78)
ACCLASS:=ARRAY(11)
select inref
dbgotop()
set softseek on
seek STR(wfilial,3)
set softseek off
w_variav='{[   - M.PRIMA]'
w_x=space(1)
do while !eof()
	IF EMPTY(CDTAM)
		w_variav = w_variav + ',[' + cdtipo + ' - ' + alltrim(inref->notam) + ']'
	ENDIF
	skip
enddo
w_variav=w_variav + '}'	
ACCLASS=&(w_variav)
IF EMPTY(WCLAUX)
   @10,32 CLEAR TO 22,78
   @10,32 TO 22,78 DOUBLE
   WPOS = ACHOICE(11,33,21,77,ACCLASS)
   IF WPOS > 0
      WCLASS = (ACCLASS[WPOS])
   ENDIF
   RESTSCREEN(10,32,22,78,TV)
   WCLAUX=substr(WCLASS,1,2)
   *wpegatip = WCLAUX
   &LAST_VAR = WCLAUX 
ENDIF
return
Na tabela INREF tem:
10 m.longa
11 m.curta
12 m.longa especial

Retorna o seguinte erro:
Referencia: 123 Cor: 1 Tipo: 10 |
|Error BASE/1077 Argument error: .NOT. Arguments: ( [ 1] = Type: U) |
| |
|Error at ...: HBGETLIST:GETPOSTVALIDATE(736) in Module: tgetlist.prg |
|Called from : HBGETLIST:READER(220) in Module: tgetlist.prg |
|Called from : READMODAL(141) in Module: getsys.prg |
|Called from : CONSESPRO_I(788) in Module: FUNCOES.PRG |
|Called from : (b)GET_ITENS_VEN(3858) in Module: VENDA.PRG |
|Called from : HBGETLIST:GETPOSTVALIDATE(702) in Module: tgetlist.prg |
|Called from : HBGETLIST:READER(220) in Module: tgetlist.prg |
|Called from : READMODAL(141) in Module: getsys.prg |
|Called from : VENDA(1435) in Module: VENDA.PRG |
|Called from : SAIDAS(89) in Module: SAIDAS.PRG |
|Called from : MAIN(1008) in Module: SISTEMA.PRG
ao dar enter para buscar um dos tipos de produto.
Como resolvo isso?
Abracos,
Laudelino

Re: ERRO GETS

Enviado: 19 Fev 2010 11:36
por sygecom
No ultimo return acho que está faltando um .T. ou .F. o VALID do seu GET está esperando um return .T. ou .F. tente definir todos os return da FUNCTION CONSESPRO_I para retornar FALSE ou TRUE

Re: ERRO GETS

Enviado: 19 Fev 2010 14:21
por Laudelino Scarmagnani
Ok, Leonardo!
Funcionou!
Quantos "Valid" abandonei por causa deste problema. O sistema poderia estar muito mais amigável ao usuario. É nisso que dá não dominar a linguagem de programação.
Ainda bem que existem possoas, e este forum, que nos ajudam muito.
Obigado!
Laudelino.