quinta-feira, 10 de julho de 2014

Validando Campos com Validator

Validando os campos com uma única função.


public static function validarCampos(array:Array):Boolean
{
var arrErros:Array = Validator.validateAll(array);
if(arrErros.length > 0){

        //Valida-se caso seja uma viewStack buscando o canvas de onde o erro foi gerado.
        var parent:Object = new Object();
parent = arrErros[0].target.source["parent"];
while(!(parent is Canvas)){
parent = parent["parent"];
if(parent["parent"] is ViewStack){
var vs:ViewStack = parent["parent"];
vs.selectedChild = parent as INavigatorContent;
}
}

Alert.Show("Verifique os campos em vermelho!");
arrErros[0].target.source.setFocus();

if(arrErros[0].target.source is mx.controls.ComboBox || arrErros[0].target.source is spark.components.ComboBox || arrErros[0].target.source is DateField)
{
arrErros[0].target.source.open();
}
ServiceNotificacao.erro(arrErros[0].target.source.document.toString(), "Verifique os campos em vermelho!");
function focaCampo():void{
arrErros[0].target.source.setFocus();
if(arrErros[0].target.source is components.ServiceComboBox)
{
arrErros[0].target.source.selectedIndex = 0;
arrErros[0].target.source.openDropDown();
} else if(arrErros[0].target.source is mx.controls.ComboBox || arrErros[0].target.source is spark.components.ComboBox || arrErros[0].target.source is DateField)
{
arrErros[0].target.source.open();
}
}
;
return false;
}
else{
return true;
}
}

terça-feira, 20 de maio de 2014

Trabalhando com AdvancedDataGrid dinâmica

Utilizando um exemplo implementado em um Fluxo de Caixa Diária vou explicar as formas de se trabalhar dinamicamente com uma AdvancedDataGrid gerando Colunas, Grupos, Summaries e Dados.

A advancedDataGrid em si é gerada por uma Array de AdvancedDataGridColumn() ou AdvancedDataGridColumnGroup() // que seria um array de AdvancedDataGridColumn //.

Para trabalhar a aDG no exemplo utilizo um "ojb:Object" que é um struct vindo do c#, contendo
tres listas e um totalizador.

protected function geraDataGrid(obj:Object):void{
//Array de retorno aonde serão armazenados os columns
var colunas:Array = new Array();


var groupColumn:AdvancedDataGridColumnGroup = new AdvancedDataGridColumnGroup();
var column:AdvancedDataGridColumn = new AdvancedDataGridColumn();

column.headerText = "";        //headerText está vazio pois será a coluna do agrupamento
column.dataField = "nome";     //dataField é a propriedade do objeto na lista
column.editable = false;           //esta coluna não será editável pois é o agrupamento
column.width = 188;
groupColumn.children.push(column);      //insere a coluna no ColumnGroup
colunas.push(groupColumn);                 //insere o ColumnGroup no Array de Colunas

for (var x:int = 1 ; x < Funcoes.diasMeses(dplMes.selectedItem.mes, int(txtAno.text)); x++){
if(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, x).dayUTC == 6){
groupColumn = new AdvancedDataGridColumnGroup();
groupColumn.headerText = x + " - " + Funcoes.diaExtenso(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, x).dayUTC);

column = new AdvancedDataGridColumn();
column.headerText = "Sábado";
column.dataField = "real"+x;
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xebebeb");
groupColumn.children.push(column);
groupColumn.editable = false;
colunas.push(groupColumn);
}else if (new Date(int(txtAno.text), dplMes.selectedItem.mes-1, x).dayUTC == 0){
groupColumn = new AdvancedDataGridColumnGroup();
groupColumn.headerText = x + " - " + Funcoes.diaExtenso(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, x).dayUTC);

column = new AdvancedDataGridColumn();
column.headerText = "Domingo";
column.dataField = "real"+x;
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xebebeb");
groupColumn.children.push(column);
groupColumn.editable = false;
colunas.push(groupColumn);

groupColumn = new AdvancedDataGridColumnGroup();
groupColumn.headerText = "Total Semana " + sem;


column = new AdvancedDataGridColumn();
column.headerText = "Previsto";
column.dataField = "totalPrevSem"+sem;
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xd2d2d2");
groupColumn.editable = false;
groupColumn.children.push(column);

column = new AdvancedDataGridColumn();
column.headerText = "Realizado";
column.dataField = "totalRealSem"+sem;
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xd2d2d2");
groupColumn.children.push(column);
groupColumn.editable = false;
colunas.push(groupColumn);
sem++;
}else {
groupColumn = new AdvancedDataGridColumnGroup();
groupColumn.headerText = x + " - " + Funcoes.diaExtenso(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, x).dayUTC);

column = new AdvancedDataGridColumn();
column.headerText = "Previsto";
column.dataField = "prev"+x;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.editable = true;
groupColumn.children.push(column);

column = new AdvancedDataGridColumn();
column.headerText = "Realizado";
column.dataField = "real"+x;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.editable = false;
groupColumn.children.push(column);
adgAnalise.lockedColumnCount = 1;
colunas.push(groupColumn);
}
}
groupColumn = new AdvancedDataGridColumnGroup();
groupColumn.headerText = "Totais";
column = new AdvancedDataGridColumn();
column.headerText = "Previsto";
column.dataField = "totalPrev";
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xd2d2d2");
groupColumn.children.push(column);

column = new AdvancedDataGridColumn();
column.headerText = "Realizado";
column.dataField = "totalReal";
column.editable = false;
column.width = 94;
column.labelFunction = Funcoes.trataDataGrid;
column.setStyle("backgroundColor", "0xd2d2d2");
groupColumn.children.push(column);

column = new AdvancedDataGridColumn();
column.headerText = "%";
column.dataField = "totalPorc";
column.editable = false;
column.width = 94;
column.formatter = pf;
column.setStyle("backgroundColor", "0xd2d2d2");
groupColumn.children.push(column);
groupColumn.editable = false;

colunas.push(groupColumn);

adgAnalise.groupedColumns = new Array();
adgAnalise.groupedColumns = colunas;

gerarGrupo(obj);
}

protected function gerarGrupo(obj:Object):void{
var arrRetorno:ArrayCollection = new ArrayCollection();
var groupCollection:GroupingCollection2 = new GroupingCollection2();
var group:Grouping = new Grouping();
var gField:GroupingField = new GroupingField();

var sumario:SummaryRow = new SummaryRow();
var sumField:SummaryField2 = new SummaryField2();
var arrSumField:Array = new Array();
var sem:int = 1;
for ( var b:int = 1; b < Funcoes.diasMeses(dplMes.selectedItem.mes, int(txtAno.text)); b++){
sumField = new SummaryField2();
sumField.summaryOperation = "SUM";
//sumField.label = "grupo";
sumField.dataField = "prev" + b;
arrSumField.push(sumField);

sumField = new SummaryField2();
sumField.summaryOperation = "SUM";
//sumField.label = "real" + b;
sumField.dataField = "real" + b;
arrSumField.push(sumField);

if(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, b).day == 0){

sumField = new SummaryField2();
sumField.summaryOperation = "SUM";
//sumField.label = "totalPrevSem" + sem;
sumField.dataField = "totalPrevSem" + sem;
arrSumField.push(sumField);

sumField = new SummaryField2();
sumField.summaryOperation = "SUM";
//sumField.label = "totalRealSem" + sem;
sumField.dataField = "totalRealSem" + sem;
arrSumField.push(sumField);
sem++;
}if(sem == 4) sem = 1;
}

sumario.fields = arrSumField;
sumario.summaryPlacement = "group";

gField.name = "grupo";
gField.summaries = [sumario];


groupCollection.source = gerarDados(obj);
group.fields = [gField];
groupCollection.grouping = group;

var sort:Sort = new Sort();
sort.fields = [new SortField("cenResN1Descricao")];
//groupCollection.source.sort = sort;

adgAnalise.dataProvider = groupCollection;
callLater(function():void{
IHierarchicalCollectionView(adgAnalise.dataProvider).sort = sort;
IHierarchicalCollectionView(adgAnalise.dataProvider).refresh();
groupCollection.refresh();
});
}

public static function objectToXML(obj:ArrayCollection):XML {
var qName:QName = new QName("root");
var xmlDocument:XMLDocument = new XMLDocument();
var simpleXMLEncoder:SimpleXMLEncoder = new SimpleXMLEncoder(xmlDocument);
var xmlNode:XMLNode = simpleXMLEncoder.encodeValue(obj, qName, xmlDocument);
var xml:XML = new XML(xmlDocument.toString());

return xml;
}

/**Gera os dados para Grid.
* Lista por Centro de Resultados(Linha)
* Lista por Dias (Colunas)
* Adiciona os totalizadores **/
protected function gerarDados(obj:Object):ArrayCollection{
arrAnalise = new ArrayCollection();
var objGrid:Object = new Object();
var objOutrasEnt:Object = new Object();
var objOutrasSai:Object = new Object();
var objTotalEnt:Object = new Object();
var objTotalSai:Object = new Object();
var objTotalClean:Object = new Object();


//Totalizadores da grid
var totalPrevSemana:Number = 0;
var totalRealSemana:Number = 0;
var totalPrevObjeto:Number = 0;
var totalRealObjeto:Number = 0;
var sem:int = 1;

for (var x:int = 0; x < obj.listaCentros.length; x++){

objGrid = new Object();
objGrid.cenResN1Codigo = obj.listaCentros[x].cenResN1Codigo;
objGrid.grupo = String(obj.listaCentros[x].vEntDadosCodigoDeDescricao).toUpperCase();
objGrid.cenResN1Descricao = obj.listaCentros[x].cenResN1Descricao;
objGrid["tipo"] = obj.listaCentros[x].cenResN1Tipo;

totalPrevObjeto = 0;
totalPrevSemana = 0;
totalRealObjeto = 0;
totalRealSemana = 0;
for ( var b:int = 1; b < Funcoes.diasMeses(dplMes.selectedItem.mes, int(txtAno.text)); b++){

objGrid["prev"+b] = 0;
objGrid["real"+b] = 0;
//Inicialização das variáveis totalizadoras por dia
if(objTotalEnt["prev"+b] == null) objTotalEnt["prev"+b] = 0;
if(objTotalEnt["real"+b] == null) objTotalEnt["real"+b] = 0;
if(objTotalSai["prev"+b] == null) objTotalSai["prev"+b] = 0;
if(objTotalSai["real"+b] == null) objTotalSai["real"+b] = 0;
if(objTotalEnt["totalPrevSem"+sem] == null) objTotalEnt["totalPrevSem"+sem] = 0;
if(objTotalEnt["totalRealSem"+sem] == null) objTotalEnt["totalRealSem"+sem] = 0;
if(objTotalEnt["totalReal"] == null) objTotalEnt["totalReal"] = 0;
if(objTotalEnt["totalPrev"] == null) objTotalEnt["totalPrev"] = 0;
if(objTotalSai["totalReal"] == null) objTotalSai["totalReal"] = 0;
if(objTotalSai["totalPrev"] == null) objTotalSai["totalPrev"] = 0;
if(objTotalSai["totalPrevSem"+sem] == null) objTotalSai["totalPrevSem"+sem] = 0;
if(objTotalSai["totalRealSem"+sem] == null) objTotalSai["totalRealSem"+sem] = 0;

for ( var z:int = 0; z < obj.listaFluxo.length; z++){

if(obj.listaFluxo[z].cenResN1Codigo == objGrid.cenResN1Codigo &&
obj.listaFluxo[z].vencimento.date == b-1){

//Totalizadores:
if(obj.listaFluxo[z].tipo == "R"){
objTotalEnt["prev"+b] += obj.listaFluxo[z].valPrevisto;
objTotalEnt["real"+b] += obj.listaFluxo[z].valRealizado;

objTotalEnt["totalPrevSem"+sem] += obj.listaFluxo[z].valPrevisto;
objTotalEnt["totalRealSem"+sem] += obj.listaFluxo[z].valRealizado;

objTotalEnt.totalPrev += obj.listaFluxo[z].valPrevisto;
objTotalEnt.totalReal += obj.listaFluxo[z].valRealizado;
}else {
objTotalSai["prev"+b] += obj.listaFluxo[z].valPrevisto;
objTotalSai["real"+b] += obj.listaFluxo[z].valRealizado;

objTotalSai["totalPrevSem"+sem] += obj.listaFluxo[z].valPrevisto;
objTotalSai["totalRealSem"+sem] += obj.listaFluxo[z].valRealizado;

objTotalSai.totalPrev += obj.listaFluxo[z].valPrevisto;
objTotalSai.totalReal += obj.listaFluxo[z].valRealizado;
}

objGrid["prev"+b] = obj.listaFluxo[z].valPrevisto;
objGrid["real"+b] = obj.listaFluxo[z].valRealizado;
totalPrevSemana += objGrid["prev"+b];
totalRealSemana += objGrid["real"+b];
objTotalSai["tipo"] = "T";
objTotalEnt["tipo"] = "T";
//objGrid["tipo"] = obj.listaFluxo[z].tipo == "" ? obj.listaCentros[z].cenResN1Tipo : obj.listaFluxo[z].tipo;
if(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, b).day != 0
&& new Date(int(txtAno.text), dplMes.selectedItem.mes-1, b).day != 6) {
totalPrevObjeto += obj.listaFluxo[z].valPrevisto;
totalRealObjeto += obj.listaFluxo[z].valRealizado;

}
}

}

if(new Date(int(txtAno.text), dplMes.selectedItem.mes-1, b).day == 0){
objGrid["totalPrevSem"+sem] = totalPrevSemana ;
objGrid["totalRealSem"+sem] = totalRealSemana ;

totalPrevSemana = 0;
totalRealSemana = 0;
sem++;
}
if(sem == 4) sem = 1;
}
objGrid.totalPrev = totalPrevObjeto;
objGrid.totalReal = totalRealObjeto;
if(objGrid.totalPrev > 0 && objGrid.totalReal > 0)
objGrid.totalPorc = (totalRealObjeto / totalPrevObjeto) * 100;
else objGrid.totalPorc = 0;

objTotalSai["totalReal"] += objTotalEnt.totalReal;
objTotalSai["totalPrev"] += objGrid.totalPrev;
if(objTotalSai.totalPrev > 0 && objTotalSai.totalReal > 0)
objTotalSai.totalPorc = (objTotalSai["totalReal"] / objTotalSai["totalPrev"]) * 100;
else objTotalSai.totalPorc = 0;

objTotalEnt["totalReal"] += objTotalEnt.totalReal;
objTotalEnt["totalPrev"] += objTotalEnt.totalPrev;
if(objTotalEnt.totalPrev > 0 && objTotalEnt.totalReal > 0)
objTotalEnt.totalPorc = (objTotalEnt["totalReal"] / objTotalEnt["totalPrev"]) * 100;
else objTotalEnt.totalPorc = 0;




arrAnalise.addItem(objGrid);
sem = 1;

}

//Totalizando
sem = 1;
totalPrevObjeto = 0;
totalPrevSemana = 0;
totalRealObjeto = 0;
totalRealSemana = 0;

var objTotalSaldo:Object = new Object();
var objTotalSaldoAnt:Object = new Object();


//Instancias dos totalizadores
objTotalEnt.cenResN1Descricao = "Total Entradas";
objTotalEnt.grupo = "TOTAL";
objTotalSaldoAnt["tipo"] = "R";
objTotalSai.cenResN1Descricao = "Total Saídas";
objTotalSai.grupo = "TOTAL";
objTotalSaldoAnt["tipo"] = "D";


objOutrasEnt.cenResN1Descricao = "Outras Entradas";
objOutrasEnt.grupo = "TOTAL";
objOutrasSai.cenResN1Descricao = "Outras Saídas";
objOutrasSai.grupo = "TOTAL";
objOutrasEnt["tipo"] = "T";
objOutrasSai["tipo"] = "T";

objTotalSaldo.cenResN1Descricao = "Saldo";
objTotalSaldo.grupo = "TOTAL";
objTotalSaldo["tipo"] = "T";

objTotalSaldoAnt.cenResN1Descricao = "Saldo Anterior";
objTotalSaldoAnt.grupo = "TOTAL";
objTotalSaldoAnt["real"+1] = obj.saldoAnterior;
objTotalSaldoAnt["prev"+1] = obj.saldoAnterior;
objTotalSaldoAnt["tipo"] = "T";


objTotalClean["tipo"] = "C";
objTotalClean.grupo = "TOTAL";

for ( var d:int = 1; d < Funcoes.diasMeses(dplMes.selectedItem.mes, int(txtAno.text)); d++){

//Inicializa as variáveis para incremento
if(objOutrasEnt["prev"+d] == null)objOutrasEnt["prev"+d] = 0;
if(objOutrasEnt["real"+d] == null)objOutrasEnt["real"+d] = 0;
if(objOutrasEnt["totalPrev"] == null)objOutrasEnt["totalPrev"] = 0;
if(objOutrasEnt["totalReal"] == null)objOutrasEnt["totalReal"] = 0;
if(objOutrasEnt["totalPrevSem"+sem] == null)objOutrasEnt["totalPrevSem"+sem] = 0;
if(objOutrasEnt["totalRealSem"+sem] == null)objOutrasEnt["totalRealSem"+sem] = 0;

if(objOutrasSai["prev"+d] == null ) objOutrasSai["prev"+d] = 0;
if(objOutrasSai["real"+d] == null) objOutrasSai["real"+d] = 0;
if(objOutrasSai["totalPrev"] == null)objOutrasSai["totalPrev"] = 0;
if(objOutrasSai["totalReal"] == null)objOutrasSai["totalReal"] = 0;
if(objOutrasSai["totalPrevSem"+sem] == null)objOutrasSai["totalPrevSem"+sem] = 0;
if(objOutrasSai["totalRealSem"+sem] == null)objOutrasSai["totalRealSem"+sem] = 0;

if(objTotalSaldo["prev"+d] == null)objTotalSaldo["prev"+d] = 0;
if(objTotalSaldo["real"+d] == null)objTotalSaldo["real"+d] = 0;
if(objTotalSaldo["totalPrevSem"+sem] == null)objTotalSaldo["totalPrevSem"+sem] = 0;
if(objTotalSaldo["totalRealSem"+sem] == null)objTotalSaldo["totalRealSem"+sem] = 0;
if(objTotalSaldo["totalPrev"] == null)objTotalSaldo["totalPrev"] = 0;
if(objTotalSaldo["totalReal"] == null)objTotalSaldo["totalReal"] = 0;

if(objTotalSaldoAnt["prev"+d] == null)objTotalSaldoAnt["prev"+d] = 0;
if(objTotalSaldoAnt["real"+d] == null)objTotalSaldoAnt["real"+d] = 0;
if(objTotalSaldoAnt["totalPrevSem"+sem] == null)objTotalSaldoAnt["totalPrevSem"+sem] = 0;
if(objTotalSaldoAnt["totalRealSem"+sem] == null)objTotalSaldoAnt["totalRealSem"+sem] = 0;
if(objTotalSaldoAnt["totalPrev"] == null)objTotalSaldoAnt["totalPrev"] = 0;
if(objTotalSaldoAnt["totalReal"] == null)objTotalSaldoAnt["totalReal"] = 0;


for ( var c:int = 0; c < obj.listaSemCentro.length; c++){

if(obj.listaSemCentro[c].cenResN1Codigo == objGrid.cenResN1Codigo &&
obj.listaSemCentro[c].vencimento.date == d-1){
if(obj.listaFluxo[c].tipo == "R"){
objOutrasEnt["prev"+d] += obj.listaSemCentro[c].valPrevisto;
objOutrasEnt["real"+d] += obj.listaSemCentro[c].valRealizado;

objOutrasEnt["totalPrevSem"+sem] += obj.listaSemCentro[c].valPrevisto;
objOutrasEnt["totalRealSem"+sem] += obj.listaSemCentro[c].valRealizado;

objOutrasEnt.totalPrev += obj.listaSemCentro[c].valPrevisto;
objOutrasEnt.totalReal += obj.listaSemCentro[c].valRealizado;

}else {

objOutrasSai["prev"+d] += obj.listaSemCentro[c].valPrevisto;
objOutrasSai["real"+d] += obj.listaSemCentro[c].valRealizado;

objOutrasSai["totalPrevSem"+sem] += obj.listaSemCentro[c].valPrevisto;
objOutrasSai["totalRealSem"+sem] += obj.listaSemCentro[c].valRealizado;

objOutrasSai.totalPrev += obj.listaSemCentro[c].valPrevisto;
objOutrasSai.totalReal += obj.listaSemCentro[c].valRealizado;
}
}
}
if( d > 1 ){
objTotalSaldoAnt["real"+d] = objTotalSaldo["real"+(d-1)];
objTotalSaldoAnt["prev"+d] = objTotalSaldo["prev"+(d-1)];
}

objTotalSaldo["real"+d] += objTotalSaldoAnt["real"+d] + ( objTotalEnt["real"+d] - objTotalSai["real"+d]);
objTotalSaldo["prev"+d] += objTotalSaldoAnt["prev"+d] + ( objTotalEnt["prev"+d] - objTotalSai["prev"+d]);

objTotalSaldoAnt["totalPrevSem"+sem] = objTotalSaldoAnt["prev"+d];
objTotalSaldoAnt["totalRealSem"+sem] = objTotalSaldoAnt["real"+d];
objTotalSaldo["totalRealSem"+sem] = objTotalSaldo["real"+d];
objTotalSaldo["totalPrevSem"+sem] = objTotalSaldo["prev"+d];


//Totalizadores por objeto
objOutrasEnt["totalPrev"] = objOutrasEnt.totalPrev;
objOutrasEnt["totalReal"] += objOutrasEnt.totalReal;
if(objOutrasEnt.totalPrev > 0 && objOutrasEnt.totalReal > 0)
objOutrasEnt.totalPorc = (objOutrasEnt["totalReal"] / objOutrasEnt["totalPrev"]) * 100;
else objOutrasEnt.totalPorc = 0;

objOutrasSai["totalPrev"] += objOutrasSai.totalPrev;
objOutrasSai["totalReal"] = objOutrasSai.totalReal;
if(objOutrasSai.totalPrev > 0 && objOutrasSai.totalReal > 0)
objOutrasSai.totalPorc = (objOutrasSai["totalReal"] / objOutrasSai["totalPrev"]) * 100;
else objOutrasSai.totalPorc = 0;

objTotalSaldo["totalPrev"] += objTotalSaldo["totalRealSem"+sem];
objTotalSaldo["totalReal"] += objTotalSaldo["totalRealSem"+sem];
if(objTotalSaldo.totalPrev > 0 && objTotalSaldo.totalReal > 0)
objTotalSaldo.totalPorc = (objTotalSaldo["totalReal"] / objTotalSaldo["totalPrev"]) * 100;
else objTotalSaldo.totalPorc = 0;

objTotalSaldoAnt["totalPrev"] += objTotalSaldoAnt["totalRealSem"+sem];
objTotalSaldoAnt["totalReal"] += objTotalSaldoAnt["totalPrevSem"+sem];
if(objTotalSaldoAnt.totalPrev > 0 && objTotalSaldoAnt.totalReal > 0)
objTotalSaldoAnt.totalPorc = (objTotalSaldoAnt["totalReal"] / objTotalSaldoAnt["totalPrev"]) * 100;
else objTotalSaldoAnt.totalPorc = 0;

if(sem == 4) sem = 1 else sem++


}

//Adiciona os totalizadores na Array
arrAnalise.addItem(objOutrasEnt);
arrAnalise.addItem(objOutrasSai);
arrAnalise.addItem(objTotalSaldoAnt);
arrAnalise.addItem(objTotalEnt);
arrAnalise.addItem(objTotalSai);
arrAnalise.addItem(objTotalSaldo);
arrAnalise.addItem(objTotalClean);

return arrAnalise;
}

protected function btnOkClick(event:MouseEvent):void
{ /// Objeto de Retorno
/* List<fluxoCaixa> listaFluxo;
public List<fluxoCaixa> listaSemCentro;
List<CentroResultadosNivel1> listaCentros;
string retorno;
decimal saldoAnterior
*/
RemoteDestination.Remote2("CentroResultadosNivel1", "tokListaDados", "carregaFluxoCaixa", retornoLista, int(dplConCai.selectedItem.contCaiCodigo), int(dplMes.selectedItem.mes), int(txtAno.text), selecionaEmpresa.empresasSql());
}

protected function retornoLista(ev:ResultEvent):void{
if(ev.result.listaFluxo == null){
ServiceAlert.informacao(ev.result.retorno + "");
}else {
geraDataGrid(ev.result);
}
}

protected function exportExcelClick(event:MouseEvent):void
{
var f:FileReference = new FileReference();

f.save(objectToXML(adgAnalise.dataProvider.source.source as ArrayCollection), "teste.xml");
}

protected function trataIcones(it:Object):Class{
var x:Class;
if(it.children == null) {
if(it.tipo == "C") return null;
return Funcoes.addPoint(it.totalReal > it.totalPrev ? "Green" : (it.totalReal == it.totalPrev ? "Yellow" : "Red"));
}
else {
if(it.children[0].tipo == "R")
x = Funcoes.addPoint("GREENMAIS");
if(it.children[0].tipo == "D")
x = Funcoes.addPoint("ORANGEMENOS");
if(it.children[0].tipo == "T")
x = Funcoes.addPoint("BLUETOTAL");

}
return x;
}

protected function adgAnalise_clickHandler(event:MouseEvent):void
{
// TODO Auto-generated method stub
if(adgAnalise.selectedItem.children == null){
Alert.show(adgAnalise.selectedItem.tipo + "");
}
}

protected function styleColumn(it:Object, col:AdvancedDataGridColumn):Object{
if(it.children != null) {
return {fontWeight: "bold"};
}
else return {chromeColor: "0xFFFFFF"}
}

protected function gridDoubleClick(event:MouseEvent):void
{

}

protected function tratagrid(event:AdvancedDataGridEvent):void
{
if(event.itemRenderer.data.tipo == "T" || event.itemRenderer.data.tipo == "C")
event.preventDefault();
}

protected function editGridEnd(event:AdvancedDataGridEvent):void
{
var objGravacao:CentroResultadosPrevisaoDiaria = new CentroResultadosPrevisaoDiaria();
objGravacao.cenResN1Codigo = event.itemRenderer.data.cenResN1Codigo;
objGravacao.cenResPrevDiaAno = txtAno.text as int;
objGravacao.cenResPrevDiaData = new Date(txtAno.text as int, dplMes.selectedItem.mes, event);
objGravacao.cenResPrevDiaValorPrevisto;
}