I ae Daniel... É mais ou menos isso...

É um sisteminha de controle de horas trabalhadas...

O usuário entra, seleciona o mês e o ano e eu leio um xml trazendo os dados
se já existirem, ou caso não existam eu apenas preencho o dataGrid com os
dias do mês selecionado.

Aí o cara preenche as horas trabalhadas conforme o dia.

O que eu quero é percorrer esse grid, recuperar os dados e gerar um xml.

Já consigo gerar o xml, o que tô penando mesmo é em percorrer o grid pra
recuperar os dados.



On Nov 21, 2007 7:40 AM, Daniel Schmitz <[EMAIL PROTECTED]> wrote:

>
> Olá,
>
> eu acho q o rowcount mostra menos porque mostra somente as linhas que
> estão visiveis na grid.
>
> Você tentou criar um dataProvider (array) vazio e depois verificar se
> a medida que o usuário digita informações no grid você as obtém
> através do dataProvider ?
>
> Abs,
>  Daniel Schmitz
>
>
> On 21 nov, 07:29, Tião da Obra <[EMAIL PROTECTED]> wrote:
> > Precisava exportar os dados de um Datagrid para o excel, daí no google
> apareceu esta opção:http://mannu.livejournal.com/348299.html
> >
> > Uma das modificações necessárias foi os números, já que eu precisava
> arredondálos antes de mandar pro clipboard então modifiquei um dos métodos
> da classe de exemplo.
> >
> > Não sei se ajuda mas vê se algum destes métodos te dá alguma idéia, uma
> luz. :D
> >
> > Bons códigos,
> > -Daniel
> >
> > ================================ CODIGO ORIGINAL
> ==================================================
> > <?xml version="1.0"?>
> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";>
> >   <mx:Script>
> >     <![CDATA[
> >     import flash.events.KeyboardEvent;
> >
> >     private function dataGridKeyDownHandler(event:KeyboardEvent):void
> >     {
> >       if (event.ctrlKey && !dataGrid.getChildByName("clipboardProxy"))
> >       {
> >         // Add an invisible TextField object to the DataGrid
> >
> >         var textField:TextField = new TextField();
> >         textField.name = "clipboardProxy";
> >         dataGrid.addChild(textField);
> >         textField.visible = false;
> >
> >         textField.type = TextFieldType.INPUT;
> >         textField.multiline = true;
> >
> >         // Populate the TextField with selected data in TSV format
> >
> >         textField.text = getTextFromItems(dataGrid.selectedItems);
> >         textField.setSelection(0, textField.text.length - 1);
> >
> >         // Listen for textInput event
> >
> >         textField.addEventListener(TextEvent.TEXT_INPUT,
> >             clipboardProxyPasteHandler);
> >
> >         // Set player-level focus to the TextField
> >
> >         systemManager.stage.focus = textField;
> >       }
> >     }
> >
> >     private function dataGridKeyUpHandler(event:KeyboardEvent):void
> >     {
> >       if (!event.ctrlKey)
> >       {
> >         var textField:TextField = TextField(dataGrid
> >             .getChildByName("clipboardProxy"));
> >         if (textField)
> >           dataGrid.removeChild(textField);
> >       }
> >     }
> >
> >     private function clipboardProxyPasteHandler(event:TextEvent):void
> >     {
> >       // Extract values from TSV format and populate the DataGrid
> >
> >       var items:Array = getItemsFromText(event.text);
> >       for each (var item:Object in items)
> >         dataGrid.dataProvider.addItem(item);
> >     }
> >
> >     private function getItemsFromText(text:String):Array
> >     {
> >       var rows:Array = text.split("\n");
> >       if (!rows[rows.length - 1])
> >         rows.pop();
> >
> >       var columns:Array = dataGrid.columns;
> >       var itemsFromText:Array = [];
> >
> >       for each (var rw:String in rows)
> >       {
> >         var fields:Array = rw.split("\t");
> >
> >         var n:int = Math.min(columns.length, fields.length);
> >         var item:Object = {};
> >         for (var i:int = 0; i < n; i++)
> >           item[columns[i].dataField] = fields[i];
> >
> >         itemsFromText.push(item);
> >       }
> >
> >       return itemsFromText;
> >     }
> >
> >     private function getTextFromItems(items:Array):String
> >     {
> >       var columns:Array = dataGrid.columns;
> >       var textFromItems:String = "";
> >
> >       for each (var it:Object in items)
> >       {
> >         for each (var c:DataGridColumn in columns)
> >           textFromItems += it[c.dataField] + "\t";
> >         textFromItems += "\n";
> >       }
> >
> >       return textFromItems;
> >     }
> >     ]]>
> >   </mx:Script>
> >
> >   <mx:DataGrid id="dataGrid" editable="true"
> >     keyDown="dataGridKeyDownHandler(event)"
> >     keyUp="dataGridKeyUpHandler(event)">
> >     <mx:columns>
> >       <mx:DataGridColumn headerText="Scheduled Date"
> >         dataField="scheduledDate" />
> >       <mx:DataGridColumn headerText="Home Team"
> >         dataField="homeTeam" />
> >       <mx:DataGridColumn headerText="Away Team"
> >         dataField="awayTeam" />
> >       <mx:DataGridColumn headerText="Field"
> >         dataField="field" />
> >     </mx:columns>
> >     <mx:dataProvider>
> >       <mx:Object scheduledDate="4/1/2006" homeTeam="Chester Bucks"
> >         awayTeam="Long Valley Hitters" field="Dawn Field" />
> >     </mx:dataProvider>
> >   </mx:DataGrid>
> >
> > </mx:Application>
> >
> > ================================ CODIGO EDITADO
> ==================================================
> >
> > package classes
> > {
> >  import flash.events.KeyboardEvent;
> >  import mx.controls.DataGrid;
> >  import flash.events.TextEvent;
> >  import flash.text.TextField;
> >  import flash.text.TextFieldType;
> >  import mx.controls.dataGridClasses.DataGridColumn;
> >  import flash.system.System;
> >  import mx.utils.ObjectProxy;
> >
> >  public class DataGridCopyLine
> >  {
> >   private var dataGrid:DataGrid;
> >   private var formatador:FormatadorNumerico = new FormatadorNumerico();
> >
> >   public function DataGridCopyLine(dataGrid:Object) {
> >    super();
> >    this.dataGrid = dataGrid as DataGrid;
> >   }
> >
> >   public function dataGridKeyDownHandler(event:KeyboardEvent):void
> >   {
> >    if (event.ctrlKey && !dataGrid.getChildByName("clipboardProxy"))
> >       {
> >        // Add an invisible TextField object to the DataGrid
> >
> >           var textField:TextField = new TextField();
> >           textField.name = "clipboardProxy";
> >           dataGrid.addChild(textField);
> >           textField.visible = false;
> >
> >           textField.type = TextFieldType.INPUT;
> >           textField.multiline = true;
> >
> >           // Populate the TextField with selected data in TSV format
> >
> >           textField.text = getTextFromItems(dataGrid.selectedItems);
> >           textField.setSelection(0, textField.text.length - 1);
> >
> >           // Listen for textInput event
> >
> >           textField.addEventListener(TextEvent.TEXT_INPUT,
> >               clipboardProxyPasteHandler);
> >
> >           // Set player-level focus to the TextField
> >
> >           //systemManager.stage.focus = textField;
> >
> >           dataGrid.stage.focus = textField;
> >
> >         }
> >   }
> >
> >   public function dataGridKeyUpHandler(event:KeyboardEvent):void
> >   {
> >    if (!event.ctrlKey)
> >       {
> >        var textField:TextField = TextField(dataGrid.getChildByName
> ("clipboardProxy"));
> >           if (textField) {
> >             dataGrid.removeChild(textField);
> >           }
> >       }
> >   }
> >
> >   private function clipboardProxyPasteHandler(event:TextEvent):void
> >   {
> >         // Extract values from TSV format and populate the DataGrid
> >
> >    var items:Array = getItemsFromText(event.text);
> >       for each (var item:Object in items)
> >           dataGrid.dataProvider.addItem(item);
> >   }
> >
> >   private function getItemsFromText(text:String):Array
> >   {
> >    var rows:Array = text.split("\n");
> >       if (!rows[rows.length - 1])
> >           rows.pop();
> >
> >       var columns:Array = dataGrid.columns;
> >       var itemsFromText:Array = [];
> >
> >       for each (var rw:String in rows)
> >       {
> >        var fields:Array = rw.split("\t");
> >
> >           var n:int = Math.min(columns.length, fields.length);
> >           var item:Object = {};
> >
> >           for (var i:int = 0; i < n; i++)
> >             item[columns[i].dataField] = fields[i];
> >
> >           itemsFromText.push(item);
> >       }
> >
> >       return itemsFromText;
> >   }
> >
> >   private function getTextFromItems(items:Array):String
> >   {
> >    var columns:Array = dataGrid.columns;
> >       var textFromItems:String = "";
> >
> >       for (var i:int = 1; i <= items.length; i++ )
> >       {
> >        var it:Object = items[items.length-i] as Object;
> >        for each (var c:DataGridColumn in columns) {
> >         var item:Object = it[c.dataField];
> >
> >            if ( item is Number ) {
> >               textFromItems += formatador.format(item) + "\t";  //Esta
> classe é um NumberFormatter
> >              } else {
> >               var texto:String = String(item);
> >
> >               if ( texto != "null" ) {
> >                textFromItems += item + "\t";
> >               } else {
> >                textFromItems += "\t";
> >               }
> >
> >              }
> >        }
> >
> >           textFromItems += "\n";
> >       }
> >
> >       return textFromItems;
> >   }
> >  }
> >
> > }
> >
> > ========================================= TABELA DE EXEMPLO
> ===================================
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <mx:DataGrid xmlns:mx="http://www.adobe.com/2006/mxml";
> >  width="100%" height="100%"
> >  allowMultipleSelection="true"
> >     keyDown="dataGridCopyLine.dataGridKeyDownHandler(event)"
> >     keyUp="dataGridCopyLine.dataGridKeyUpHandler(event)">
> >  <mx:NumberFormatter id="nf" decimalSeparatorFrom=","
> decimalSeparatorTo="." thousandsSeparatorFrom="." thousandsSeparatorTo=","/>
> >  <mx:Script>
> >   <![CDATA[
> >    import classes.DataGridCopyLine;
> >    import mx.utils.ObjectProxy;
> >    import classes.FormatadorNumerico;
> >    import mx.formatters.NumberFormatter;
> >    import classes.GrupoPotencialSimples;
> >    import flash.events.KeyboardEvent;
> >
> >    private var formatador:FormatadorNumerico = new FormatadorNumerico();
> >    private var dataGridCopyLine:DataGridCopyLine = new
> DataGridCopyLine(this);
> >
> >    private function sortCompare(grupo1:GrupoPotencialSimples,
> grupo2:GrupoPotencialSimples) : Number {
> >     var perc1:Number = Number(nf.format(grupo1.percentual));
> >     var perc2:Number = Number(nf.format(grupo2.percentual));
> >     if( perc1 < perc2 ) return -1;
> >      else if( perc1 > perc2 ) return 1;
> >     else return 0;
> >    }
> >
> >    private function labelNumero(item:Object,
> column:DataGridColumn):String {
> >        var numero:Number = Number(item[column.dataField]);
> >        return formatador.format(numero);
> >       }
> >
> >   ]]>
> >  </mx:Script>
> >
> >  <mx:columns>
> >   <mx:DataGridColumn id="colLocal" headerText="Local" dataField="nome"
> fontWeight="bold"/>
> >   <mx:DataGridColumn id="colCob" headerText="Atuação" width="60"
> dataField="cobertura" fontWeight="bold"/>
> >   <mx:DataGridColumn id="colTotalReal" headerText="Real"
> dataField="totalReal" textAlign="right" sortCompareFunction="sortCompare"
> labelFunction="labelNumero"/>
> >   <mx:DataGridColumn id="colTotalDolar" headerText="Dolar"
> dataField="totalDolar" textAlign="right" sortCompareFunction="sortCompare"
> labelFunction="labelNumero"/>
> >   <mx:DataGridColumn id="colPercentual" headerText="( % )"
> dataField="percentual" width="45" textAlign="right"
> sortCompareFunction="sortCompare" labelFunction="labelNumero"/>
> >  </mx:columns>
> > </mx:DataGrid>
> >
> >   ----- Original Message -----
> >   From: Thiago Rodrigues Fernandes
> >   To: Grupo Flex-Brasil ; FlexDev
> >
> > ...
> >
> > mais >>
> >
>


-- 
Att,
Thiago R. Fernandes

--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Responder a