Tira essa parte e a importação. :D
----- Original Message -----
From: Manoel junior
To: [email protected]
Sent: Friday, December 28, 2007 2:29 PM
Subject: [flexdev] Re: data trocada no datafield
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
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
-~----------~----~----~----~------~----~------~--~---