Olás,

Estou com um problema parecido, se alguem pudesse ajudar tambem....

eu tenho um componente que tem um AdvancedDataGrid inicialmente com uma
coluna só que é padrão, de tamanho fixo, criada no mxml.
Depois quando eu vou usar esse componente em outras telas eu recebo um array
com as colunas específicas, concateno com o array de colunas do datagrid
(que so tinha a coluna fixa, deixando ela por ultimo) e atribuo à grid de
novo:
*var array:Array = colunasEspecificas.source.concat(adg.columns);
adg.columns = array;
*

O problema é que mesmo as colunas especificas tendo tamanho percentual, não
são elas que redimensionam, e sim a ultima, que tinha tamanho fixo.

Alguem sabe dizer se é errado o jeito que estou fazendo, ou como posso
forçar ele a respeitar quais tem tamanho fixo e quais tem tamanho
proporcional?

Grata!

2009/11/11 thiagoalgo <thiagoa...@gmail.com>

>
> Você pode colocar uma coluna em branco no final sem tamanho definido
> para que esta preencha o espaço que sobra no grid. Aparentemente seu
> problema está acontecendo porque você define um tamanho fixo para
> coluna mas um tamanho de 100% para o grid. Como o total da soma dos
> tamanhos das colunas não chega a preencher o grid, o componente acaba
> resimensionado a última coluna.
>
> On 10 nov, 14:49, Marcos Krüger <kr.mar...@gmail.com> wrote:
> > Boa tarde Pessoal,
> >
> > Alguem pode me ajudar a saber a solução do bug que a ultima coluna da
> > AdvancedDataGrid está
> > com largura maior que as outras e não tem nada que sete isso no código
> para
> > a ultima coluna fica com o tamanho maior.
> > Obs: A primeira coluna é maior que as outras, tá funcionando normal,
> tentei
> > adiciona uma coluna nova depois da ultima, a
> > coluna que tava largura superior a outras fica com o tamanho normal e a
> nova
> > coluna fica com tamanho superior.
> >
> > Alguem tem alguma ideia do que pode ser?! Abaixo segue o código do file.
> >
> > package
> > {
> > import mx.collections.*;
> > import mx.containers.Canvas;
> > import mx.controls.AdvancedDataGrid;
> > import mx.controls.Alert;
> > import mx.controls.advancedDataGridClasses.*;
> > import mx.controls.dataGridClasses.DataGridColumn;
> > import mx.core.ClassFactory;
> > import mx.core.UIComponent;
> > public class DateTimeLineGenerator extends UIComponent
> > {
> > private var _monthNames:Array =
> > ["Jan","Feb","Mar","Abr","Mai","Jun","Jul","Aug","Set","Out","Nov","Dez"]
> > private var _adg:AdvancedDataGrid;
> > private var startDate:Date;
> > private var finDate:Date;
> > public function DateTimeLineGenerator()
> > {
> > super();}
> >
> > public function getInstance():UIComponent
> > {
> > return super;}
> >
> > private function formatTextColunn(texto:String, size:int):String
> > {
> > if(texto.length>size)
> > {
> > var textoDividido:Array = texto.split(" ");
> > Alert.show(textoDividido[0],"teste");
> > if(textoDividido.length <= 0)
> > {
> > Alert.show("Impossível dividir o texto "+ texto + "tamanho de " + size +
> > "insuficiente");}
> >
> >  }
> > return texto;}
> >
> >         override protected function createChildren():void
> > {
> > super.createChildren();
> > _adg = new AdvancedDataGrid();
> > _adg.setStyle("verticalGridLines",false);
> > addChild(_adg);}
> >
> > override protected function updateDisplayList(width:Number,
> > height:Number):void
> > {
> > _adg.width = width;
> > _adg.height = height;
> > _adg.rowHeight = 80;
> > _adg.dataProvider = parentApplication.viewsActivity;
> > drawTimeLine();}
> >
> > private function setDate(date:String):Date
> > {
> > var t:Array = date.split("/");
> > return new Date(t[2],t[1],t[0]);}
> >
> > private function drawTimeLine():void
> > {
> > var grpColsArray:Array = new Array();
> > finDate =
> > setDate(parentApplication.viewsProject.source[1].Projeto[0].finishDate);
> > startDate =
> > setDate(parentApplication.viewsProject.source[1].Projeto[0].startDate);
> > var countYear:Number = finDate.getFullYear() - startDate.getFullYear();
> > var tempYear:Number = startDate.getFullYear();
> > var countMonth:Number = finDate.getMonth();
> > var totgroups:Number = 0
> > var adgc:AdvancedDataGridColumn;
> > var columnActivits:AdvancedDataGridColumn;
> > var k:int;
> > if(finDate.getMonth()==0)
> > {
> >  countYear = countYear-1;}
> >
> > columnActivits = new AdvancedDataGridColumn();
> > columnActivits.headerText="Atividades";
> > columnActivits.width=200;
> > columnActivits.dataField="NomeAtividade";
> > columnActivits.setStyle("textAlign","left");
> > columnActivits.setStyle("fontFamily","Verdana");
> > columnActivits.setStyle("fontSize","10");
> > columnActivits.setStyle("fontWeight","bold");
> > columnActivits.setStyle("backgroundColor",0xF9F9F9);
> > grpColsArray.push(columnActivits);
> > for(var i:int =0; i<=countYear;i++)
> > {
> > if(i==0)
> > k=startDate.getMonth()-1;
> > else
> > k=0;
> > for(k;k<12;k++)
> >     {
> >    adgc = new AdvancedDataGridColumn();
> >    adgc.width=100;
> >    adgc.headerText = _monthNames[k] + "/" +
> String(tempYear).substring(2,4);
> >    if(k%2==0)
> >    {
> >         adgc.setStyle("backgroundColor",0xFFFFFF);
> >    }
> >    else
> >    {
> >      adgc.setStyle("backgroundColor",0xF6F6F6);
> >    }
> >    grpColsArray.push(adgc);
> >    if(i==countYear && k==countMonth-1)
> >    {
> >    break;
> >    }
> >  }
> >  tempYear++;}
> >
> >    _adg.groupedColumns = grpColsArray
> >    _adg.headerRenderer = new ClassFactory(LabelHeaderRenderer);
> >    _adg.validateNow();
> >    _adg.resizableColumns=false;
> >    _adg.sortableColumns=true;
> >    _adg.verticalScrollPolicy="auto";
> >    _adg.horizontalScrollPolicy="auto";
> >    var rparray:Array = new Array();
> >    var rp:AdvancedDataGridRendererProvider = new
> > AdvancedDataGridRendererProvider();
> >    rp.columnIndex=1;
> >    rp.columnSpan=0;
> >    rp.renderer= new ClassFactory(DataRenderer);
> >   rparray.push(rp);
> >
> >    rp.rowSpan=0;
> >    _adg.rendererProviders = rparray;
> >    _adg.validateNow();
> >
> > }
> > }
> > }
> >
> >
> >
> >  componente.JPG
> > 165KExibirDownload
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a