Agora deu outro erro:
*Access of undefined property Validar.*
Nessa linha do componente:
if ( this.editable == true ) {
Validar.dataField(event); <---------------------------
}
2007/12/28, Tião da Obra <[EMAIL PROTECTED]>:
>
> Esqueci de mandar este arquivo Validar.as <http://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 <[EMAIL PROTECTED]>
> *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
-~----------~----~----~----~------~----~------~--~---