Esqueci de mandar este arquivo Validar.as

package br.com.agroquima.util
{
 import mx.validators.NumberValidator;
 import mx.validators.CurrencyValidator;
 import mx.events.FlexEvent;
 import mx.controls.TextInput;
 import mx.events.ValidationResultEvent;
 import mx.validators.DateValidator;
 import mx.controls.Alert;
 import mx.messaging.messages.ErrorMessage;
 import flash.events.Event;
 import flash.events.EventDispatcher;
 import flash.events.ErrorEvent;
 import mx.utils.StringUtil;
 import mx.controls.DateField;
 import mx.utils.ArrayUtil;
 import flash.utils.ByteArray;
 
 [Bindable]
 public class Validar
 {
  
  private static var numerico:NumberValidator;
  private static var monetario:CurrencyValidator;
  private static var data:DateValidator;
  
  public function Validar() {
   numerico.integerError = "Número Inválido";         
         numerico.negativeError = "Número Inválido";
         numerico.property = "text";
         numerico.invalidCharError = "Número Inválido";
         numerico.separationError = "Número Inválido";
         numerico.decimalPointCountError = "Uso incorreto do separador decimal";
         numerico.requiredFieldError = "Preenchimento Obrigatório";
  }
  
  public static function numero(event:FlexEvent):void {          
         if ( numerico == null ) {
          numerico = new NumberValidator();
          numerico.domain = "int";
          numerico.integerError = "Número Inválido";
          numerico.allowNegative = false;
          numerico.negativeError = "Número Inválido";
          numerico.property = "text";
          numerico.invalidCharError = "Número Inválido";
          numerico.separationError = "Número Inválido";
          numerico.decimalPointCountError = "Uso incorreto do separador 
decimal"; 
          numerico.required = false;         
         }
         numerico.source = TextInput(event.target);
         numerico.validate();
       }      
        
       public static function moeda(event:FlexEvent):void {
        if ( monetario == null ) {
         monetario = new CurrencyValidator();
         monetario.allowNegative = true;
         monetario.negativeError = "Não é permitido valor negativo";
         monetario.decimalSeparator = ",";
         monetario.decimalPointCountError = "Uso incorreto do separador 
decimal";
         monetario.separationError = "Uso incorreto do separador de milhares";
         monetario.thousandsSeparator = ".";       
         monetario.precision = 2;
         monetario.precisionError = "O valor deve ter no máximo 4 casas 
decimais";
         monetario.invalidCharError = "Valor Inválido";
         monetario.property = "text";
         monetario.required = false;
        }
        
        monetario.source = TextInput(event.target);         
         monetario.validate();
         //var vResult:ValidationResultEvent = monetario.validate();            
                    
        }
        
        public static function dataField(event:FlexEvent):void {
         var df:DateField = event.target as DateField;
         var validador:DateValidator = new DateValidator();
         validador.source = df;
         validador.property = "text";
         validador.inputFormat = "DD/MM/YYYY";
         validador.allowedFormatChars = "/";  
         
         validador.invalidCharError = "Data Inválida";
         validador.wrongDayError = "Dia Incorreto";
         validador.wrongLengthError = "Data Inválida";
         validador.wrongMonthError = "Mês Incorreto";
         validador.wrongYearError = "Ano Incorreto";
         validador.requiredFieldError = "Preenchimento Obrigatório";
                
         validador.validate();
        }
        
        public static function campoData(valor:String):void {          
         var error:Error = new Error("Erro, A Data é Invalida");
         if (( valor != null ) && (StringUtil.trim(valor) != "")) {
          try {
           
          
           if (StringUtil.trim(valor).length < 8) {
             throw new Error("Erro, Data Invalida");
           }
             var dia:Number = Number(valor.substring(0,2));
             var mes:Number = Number(valor.substring(2,4));
             var ano:Number = Number(valor.substring(4,8));
         
         if (isNaN(dia)) {
          throw new Error("Erro, Dia Invalido");
         }
         if (isNaN(mes)) {
          throw new Error("Erro, Mês Invalido");
         }
         if (isNaN(ano)) {
          throw new Error("Erro, Ano Invalido");
         }

         
         
          if (( dia < 1 ) || (dia > 31)) {
           throw new Error("Erro, Dia Invalido");
          }
          
          if (( mes < 1 ) || (mes > 12)) {
           throw new Error("Erro, Mês Invalido");
          }
          
          if (( ano < 1900 ) || (ano > 2100)) {
           throw new Error("Erro, Ano Invalido");
          }
          
          if ( mes == 2 ) {
           if ( (((ano % 4) == 0) && ((ano % 100) != 0 ))) {
      if (dia > 29 ) {
             throw new Error("Error, Dia Invalido, o ano não é Bissexto");
            }
           } else {
            if (dia > 28 ) {
             throw new Error("Error, Dia Invalido");
            }
           }
          }
          
          } catch (e:Error) {
           Alert.show(e.message);
          }
         
         }
         
       }
       
       public static function CPF(value:String):Boolean {
        var d1:int
        var d2:int;
   var digito1:int;
   var digito2:int;
   var resto:int;
   var digitoCPF:int;
   var strCpf:String = "";
   
   var nDigResult:String;
 
   d1 = d2 = 0;
   digito1 = digito2 = resto = 0;
   
   var i:int;
   for ( i = 0; i < value.length; i++ ) {
    if ( !isNaN(Number(value.charAt(i))) ) {
     strCpf += value.charAt(i);
    } 
   }
    
   for ( i = 1; i < strCpf.length - 1; i++) {
    digitoCPF = Number(strCpf.substring(i - 1, i));
 
    // multiplique a ultima casa por 2 a seguinte por 3 a seguinte por 4
    // e assim por diante.
    d1 = d1 + (11 - i) * digitoCPF;
 
    // para o segundo digito repita o procedimento incluindo o primeiro
    // digito calculado no passo anterior.
    d2 = d2 + (12 - i) * digitoCPF;
   }
   ;
 
   // Primeiro resto da divisão por 11.
   resto = (d1 % 11);
 
   // Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11
   // menos o resultado anterior.
   if (resto < 2)
    digito1 = 0;
   else
    digito1 = 11 - resto;
 
   d2 += 2 * digito1;
 
   // Segundo resto da divisão por 11.
   resto = (d2 % 11);
 
   // Se o resultado for 0 ou 1 o digito é 0 caso contrário o digito é 11
   // menos o resultado anterior.
   if (resto < 2) {
    digito2 = 0;
   } else {
    digito2 = 11 - resto;
   }
 
   // Digito verificador do CPF que está sendo validado.
   var nDigVerific:String = strCpf.substring(strCpf.length - 2, strCpf.length);
 
   // Concatenando o primeiro resto com o segundo.
   nDigResult = String(digito1) + String(digito2);
 
   // comparar o digito verificador do cpf com o primeiro resto + o segundo
   // resto.
   return ( nDigVerific == nDigResult );
       }
       
       public static function CNPJ(value:String):Boolean {
        var str_cnpj:String = "";
        var chr_cnpj:Array = new Array();
        
        var i:int;
   for ( i = 0; i < value.length; i++ ) {
    if ( !isNaN(Number(value.charAt(i))) ) {
     str_cnpj += value.charAt(i);     
    } 
   }
   
   for ( i = 0; i < str_cnpj.length; i++ ) {
    chr_cnpj[i] = Number(str_cnpj.charAt(i));
   }
   
   var soma:int = 0;
   var aux:int = 0; 
   var dig:int = 0;
   var cnpj_calc:String = str_cnpj.substring(0, 12);
 
   if (str_cnpj.length != 14) {
    return false;
   }  
 
   /* Primeira parte */
   for (i = 0; i < 4; i++) {
    if (chr_cnpj[i] >= 0 && chr_cnpj[i] <= 9) {
     soma += (chr_cnpj[i]) * (6 - (i + 1));
    }     
   }
    
   for (i = 0; i < 8; i++) {
    if (chr_cnpj[i + 4] >= 0 && chr_cnpj[i + 4] <= 9) {
     soma += (chr_cnpj[i + 4]) * (10 - (i + 1));
    }
   }
   
   dig = 11 - (soma % 11);
 
   cnpj_calc += (dig == 10 || dig == 11) ? "0" : String(dig);
 
   /* Segunda parte */
   soma = 0;
   for (i = 0; i < 5; i++) {
    if (chr_cnpj[i] >= 0 && chr_cnpj[i] <= 9) {
     soma += (chr_cnpj[i]) * (7 - (i + 1));
    }
   }
   
   for (i = 0; i < 8; i++) {
    if (chr_cnpj[i + 5] >= 0 && chr_cnpj[i + 5] <= 9) {
     soma += (chr_cnpj[i + 5]) * (10 - (i + 1));
    }
   }
   
   dig = 11 - (soma % 11);
   cnpj_calc += (dig == 10 || dig == 11) ? "0" : String(dig);
 
   return ( str_cnpj == cnpj_calc );
       }
       
       public static function inscricaoEstadual(inscricaoEstadual:String, 
uf:String):Boolean {
        return ValidarInscricaoEstadual.validar(inscricaoEstadual, uf);
       }
        
 }
}

  ----- Original Message ----- 
  From: Manoel junior 
  To: [email protected] 
  Sent: Friday, December 28, 2007 1:50 PM
  Subject: [flexdev] Re: data trocada no datafield


  Tentei usar e deu esse erro:

  Definition br.com.agroquima.util:Validar could not be found. 

  ande esta: import br.com.agroquima.util.Validar;
   

   
  Em 27/12/07, Tião da Obra <[EMAIL PROTECTED]> escreveu: 

    Eu criei um componente chamado DateFieldBR, funciona que é uma beleza. Daí,
    ao invez de usar o <mx:DateField> vc pode usar esse. 


    <?xml version="1.0" encoding="utf-8"?>
    <mx:DateField
    xmlns:mx="http://www.adobe.com/2006/mxml";
    dayNames="{dias}" 
    monthNames="{meses}"
    formatString="DD/MM/YYYY"
    showToday="true"
    creationComplete="configApp();"
    yearNavigationEnabled="true"
    editable="true"
    restrict="0-9"
    width="94"
    valueCommit="validar(event);">

    <mx:Script>
    <![CDATA[
      import mx.events.FlexEvent;
      import br.com.agroquima.util.Validar;


      private function configApp():void {
       this.selectedDate = new Date();
      }

      private function validar(event:FlexEvent):void {
       var str:String = event.target.text as String;
       if ( str.charAt(2) != "/" || str.charAt(5) != "/" ) {
        var mask:String;
        if ( str.length == 6 ) {
         mask = str.substr(0, 2) + "/" + str.substr(2,2) + "/" + str.substr(4,
    4);
         event.target.text = mask;
        } else if ( str.length == 8 ) {
         mask = str.substr(0, 2) + "/" + str.substr(2,2) + "/" + str.substr(4,
    4);
         event.target.text = mask;
        }
       }

       if ( this.editable == true ) {
        Validar.dataField(event);
       }
      }
    ]]>
    </mx:Script>

    <mx:Array id="dias">
        <mx:String>D</mx:String>
        <mx:String>S</mx:String> 
        <mx:String>T</mx:String>
          <mx:String>Q</mx:String>
          <mx:String>Q</mx:String>
        <mx:String>S</mx:String>
        <mx:String>S</mx:String> 
    </mx:Array>

    <mx:Array id="meses">
        <mx:String>Janeiro</mx:String>
        <mx:String>Fevereiro</mx:String>
        <mx:String>Março</mx:String>
          <mx:String>Abril</mx:String>
          <mx:String>Maio</mx:String>
        <mx:String>Junho</mx:String>
        <mx:String>Julho</mx:String>
        <mx:String>Agosto</mx:String> 
        <mx:String>Setembro</mx:String>
        <mx:String>Outubro</mx:String>
        <mx:String>Novembro</mx:String>
        <mx:String>Dezembro</mx:String>
    </mx:Array> 
    </mx:DateField>







    ----- Original Message -----
    From: <[EMAIL PROTECTED]>
    To: "flexdev" < [email protected]>
    Sent: Thursday, December 27, 2007 4:46 PM
    Subject: [flexdev] data trocada no datafield



    ola pessoal

    tenho um datefield que esta me dando a data no seguinte formato 
    MM/DD/AAAA e quando tento altera esse formato ele fica muito
    doido com as datas todas erradas...
    dia mes e ano completamente errados...







  

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Attachment: Validar.as
Description: Binary data

Responder a