Página 1 de 1

Validar Gets

Enviado: 11 Out 2007 16:56
por ederxc
Seguinte , esta função é apenas valida para este Get , porem se eu clikar no botão de sair wonerbotton, ele chama afunção de cvAZIO() , se eu clikar em outro botão , wonerbotton ele chama a função e exibe a mensagem msginfo() , agora a questão , como faço apara que o não ative cVzio quando quiser sair abandonar o sistema ?

Sera que eu terei de avisar na função que estou clikando em um botton e retonar .t. ???




Código: Selecionar todos

@100,94  GET oForn    var vForn   Font oFont PICTURE REPL("X",50);   
size 450,20  STYLE ES_AUTOHSCROLL VALID {||cVazio(vforn)}



**************************<verifica se esta vazio>***************
static func cVazio(vforn)
priv ok:=.t.
do while ok
  if empty(vforn)     
     MSGINFO("Preeencha os campos corretamente")
     ok:=.f.
     exit
  else
    ok=.t.
    exit
  endif
enddo
return ok

Enviado: 11 Out 2007 17:22
por sygecom
Eder, vou encarnar o Eolo agora....deu um problema no meu micro aqui que não consigo ver nenhum botton no seu post....please...coloca o codigo inteiro...que em cima do seu post...eu mostro pra vc como se faz...

Abraços
Leonardo Machado

Enviado: 11 Out 2007 19:45
por ederxc
Se eu clikar em qualquer botão é como se fize-se um read no get ,e ele entra na função e retorna .f. pois o get é vazio ....


Código: Selecionar todos

function forn(TIP_CAD) 


#include "windows.ch"
#include "guilib.ch"
#INCLUDE "inkey.ch"



**************************

SELECT C
  USE FORNEC shared
  SET INDEX TO xNfor,xCforn,xPimpfor

SELECT F
  Use CEP shared
  set index to xNCep, xCcidade
  
***************************************************
	
Sele C

private ojarfor,oBrw,oWin,oR1,oR2,oFont,oBoton1, oBoton2,oBoton3,oBoton4
private vWidth:= GetdesktopWidth()
private vHeight:=GetdesktopHeight()
private iniciar:=.f.

private oimagem1:=def+"\sysfia\image\"
private oimagem2:=def+"\sysfia\image\"
private oimagem3:=def+"\sysfia\image\"
private oimagem4:=def+"\sysfia\image\"    


If TIP_CAD="INCLUIR"
   novo_for()
elseif TIP_CAD="ALTERAR"
   msginfo("Em constru‡Æo")
endif	   
         


************************(adicionar novo)************************
Function NOVO_for(lcolor)   
       
If lColor <> Nil
      SetColorinFocus( lColor )
EndIf

private oR3,oR4,ojar_inclu
private oCOD,oFORN,oCNPj,oIE,oEND,oBAIRRO,oCIDADE,oESTADO,oCEP;
,oFONE,oFAX,oDATCAD,oSITE,oEMAIL,oOBS

private vCOD:=0
private vFORN:=space(50)
private vCNPJ:=space(18)
private vIE:=space(15)
private vEND:=space(50)
private vBAIRRO:=space(50)
private vCIDADE:=space(50)
private vESTADO:=space(50)
private VCEP:=0
private vFONE:=space(12)
private vFAX:=space(12)
private vDATCAD:=space(50)
private vSITE:=space(50)
private vEMAIL:=space(50)
private vOBS:=space(50)   

if GETDESKTOPWIDTH()=1024
   vWidth=vWidth-445
	vheight=vheight-300
else
	vWidth=vWidth-220
	vheight=vheight-150
endif	

PREPARE FONT oFont NAME "LUCIDA CONSOLE" WIDTH 0 HEIGHT -11

INIT DIALOG oJar_inclu CLIPPER NOEXIT TITLE "FORNECEDORES";     
	  AT 00,00;     
	  FONT oFont;
     SIZE vWIDTH,vHEIGHT; 	  	  
     STYLE DS_CENTER;
	  ICON oIcone                                                   
	  
	  @ 00,00 PANEL oPanel SIZE getdesktopwidth(),60
     
     @ 00,00,vWIDTH,vHEIGHT-390  RECT oR3 of ojar_inclu RECT_STYLE 3
     @ 10,85,vWIDTH-15,vHEIGHT-50  RECT oR4 of ojar_inclu RECT_STYLE 3
          
     @ 06,03 OWNERBUTTON oBoton1 OF opanel ID 108 ON CLICK {||salva()};
             SIZE 50,55 FLAT TEXT "Salvar" ;
             FONT oFont COORDINATES 0,35,0,0 ;
             BITMAP oimagem1+"46.bmp"TRANSPARENT  COORDINATES 0,4,0,0;
             TOOLTIP "Salvar"
       
     @ 60,03 OWNERBUTTON oBoton2 OF oPanel ID109 ON CLICK {||sair()} ;
             SIZE 55,55 FLAT ;
             TEXT "Sair" FONT oFont COORDINATES 0,35,0,0 ;
             BITMAP oimagem2+"sair.bmp" COORDINATES 0,4,0,0 ;
             TOOLTIP "Sair"                
             
     PREPARE FONT oFont NAME "ARIAL" WIDTH 0 HEIGHT -15
     
     @24,95  say "Fonecedor" FONT ofont size 80,20 
     @24,125 SAY "CEP"       FONT ofont size 80,20 
     @24,155 SAY 'Endereco'  FONT ofont size 80,20 
     @24,185 SAY 'Bairro'    FONT ofont size 80,20 
     @24,215 SAY 'Cidade'    FONT ofont size 80,20 
     @400,215 say'Estado'    FONT ofont  size 80,20 
     @24,245 say "Site"      FONT ofont size 80,20 
	  @24,275 SAY 'e-mail'    FONT ofont  size 80,20 
     @24,305 SAY 'Tel.'      FONT ofont  size 80,20 
     @215,305 SAY 'Fax'      FONT ofont  size 80,20 
     @350,305 SAY 'Data'     FONT ofont  size 80,20 
     @24,335  SAY 'CNPJ'     FONT ofont  size 80,20      
     @265,335 say 'IE'       FONT ofont  size 80,20 
     
     PREPARE FONT oFont NAME "LUCIDA CONSOLE" WIDTH 0 HEIGHT -13
                                                      
     @100,94  GET oForn    var vForn   Font oFont PICTURE REPL("X",50)    size 450,20  STYLE ES_AUTOHSCROLL VALID {||cVazio(vforn)}
	  @100,124 GET oVcep    var Vcep    Font oFont picture '99999-999'     size 80,20         
	  @100,155 GET oEnd     var vEnd    Font oFont picture REPL("X",50)    size 450,20  STYLE ES_AUTOHSCROLL        
	  @100,185 GET oBairro  var vBairro Font oFont picture REPL("X",50)    size 200,20  STYLE ES_AUTOHSCROLL  
	  @100,215 GET oCidade  var vCidade Font oFont picture REPL("X",50)    size 250,20  STYLE ES_AUTOHSCROLL  	  
	  @450,215 GET oEstado  var vEstado Font oFont picture REPL("!",02)    size 25,20  	  
	  @100,245 GET oSite    var vSite   Font oFont picture REPL("X",50)    size 450,20  STYLE ES_AUTOHSCROLL          
     @100,275 GET oEmail   var vEmail  Font oFont picture REPL("X",50)    size 450,20  STYLE ES_AUTOHSCROLL     
	  @100,305 GET oFone    var vFone   Font oFont picture '99-9999-9999'  size 105,20            
     @240,305 GET oFax     var vFax    Font oFont picture '99-9999-9999'  size 105,20                
     vDatcad:=date()
	  @385,305 say vDatcad  size 80,20  
	  @100,335 GET ocnpj var vCnpj      Font oFont  picture '99.999.999/9999-99' size 155,20   
	  @280,335 GET oIE var vIE          Font oFont  picture '999.999.999.999'    size 130,20   
     
ACTIVATE DIALOG oJar_inclu        



**************************<verifica se esta vazio>***************
static func cVazio(vforn)
priv ok:=.t.
do while ok
  if empty(vforn)     
     MSGINFO("Preeencha os campos corretamente")
     ok:=.f.
     exit
  else
    ok=.t.
    exit
  endif
enddo
return ok

Enviado: 12 Out 2007 02:49
por sygecom

Código: Selecionar todos

     @ 60,03 OWNERBUTTON oBoton2 OF oPanel ID109 ON CLICK {||EndDialog(),sair()} ;
             SIZE 55,55 FLAT ;
             TEXT "Sair" FONT oFont COORDINATES 0,35,0,0 ;
             BITMAP oimagem2+"sair.bmp" COORDINATES 0,4,0,0 ;
             TOOLTIP "Sair"

Enviado: 12 Out 2007 20:26
por ederxc
sygecom escreveu:

Código: Selecionar todos

     @ 60,03 OWNERBUTTON oBoton2 OF oPanel ID109 ON CLICK {||EndDialog(),sair()} ;
             SIZE 55,55 FLAT ;
             TEXT "Sair" FONT oFont COORDINATES 0,35,0,0 ;
             BITMAP oimagem2+"sair.bmp" COORDINATES 0,4,0,0 ;
             TOOLTIP "Sair"

Isso não funciona , veja que na minha função sair() é justamente pra isso ...

Código: Selecionar todos

**************<sair>**********

function sair()     
oJar_inclu:close() 
return 

Acho que ainda não intendeu o que acontece ..

No GET vforn"nome fornecedor" tem uma função que verifica se esta vazio , ou seja , se estiver vazio retorno .f. e não deixa sair desse Gets até que seja preenchido um nome para fornecedor , bão ...

Quando eu clicko com o MOUSE em um botton qualquer todos os gets são lidos e no caso do fornecedor que esta vazio retona .f. e não deixa fechar a DIALOG ...

enfim , o que preciso é quando clickar em um botton "desabilitar" a função
que verifica se fornecedor esta vazio , e assim o botton encerra a janela normalmente.



:f

Enviado: 13 Out 2007 08:30
por sygecom
Então faça suas validações a partir do botão SALVAR....ou seja faça a verificação dos valid somente quando presscissonar o o botão Salvar

Enviado: 13 Out 2007 09:09
por ederxc
Entendi , vai ter que ser assim mesmo nesse caso até da pra fazer assim ...