ERRO GETS

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

ERRO GETS

Mensagem 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
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: ERRO GETS

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Laudelino Scarmagnani
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Fev 2007 10:54

Re: ERRO GETS

Mensagem 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.
Responder