Gratz!
hehe


2010/2/16 RafaelViana <rfl.vi...@gmail.com>

> Aee :D essa parte está ok, agora só falta arrumar outros detalhes
>
> Velho problema de insistir em um caminho sem pensar nas outras
> possibilidades...
>
> O problema era mais simples do que eu imaginava, e mais simples do que
> parece.Porque passar em outro parametro, ou na columa do item? Se
> existe a column do DataGridColumn?
>
> Apenas extendi a column e coloquei uma propriedade forma_pagamento,
> então ao criar uma nova coluna setava a forma de pagamento.Assim na
> label function tenho como recuperá-la e deu certo :D
>
> On 16 fev, 20:51, RafaelViana <rfl.vi...@gmail.com> wrote:
> > Ai que está um problema...
> >
> > Por exemplo: tem produtos que tem 5 condições diferentes, tem preços
> > com 3, tem preços com nenhuma...
> >
> > No caso no meu produto não vai ter apenas uma condição ( e essa
> > vinculada ao produto) como você propõe no exemplo acima:
> >
> >    if (item[column][dataField] == condition.code)
> >      return condition.description;
> >
> > Eu não tenho essa column condição no produto... (até teria como saber
> > a condição pela lista de preços, mas não daria para usar dessa
> > maneira... porque ai é no caso de uma condição só no produto..)
> >
> > Mas seria mais ou menos isso, só não posso me basear em uma coluna do
> > produto...
> >
> > Tive uma idéia... já venho colocar o resultado dela :D
> >
> > On 16 fev, 20:38, Fredy Gadotti <thief...@gmail.com> wrote:
> >
> >
> >
> > > Bom, eu não li tudo, mas saquei o que você quer fazer ( eu acho ).
> >
> > > Tipo, na sua coluna que você quer mostrar o relacionamento de Produto e
> > > Condição, você usaria a labelFunction normal.
> > > E em algum lugar você teria já carregado no seu Model ( assumindo que
> você
> > > usa MVC ), quais são as condições para aquele produto.
> >
> > > Sabendo qual é a lista de preço para cada produto, você poderia
> simplesmente
> > > usar a labelFunction retornando um valor de uma String.
> >
> > > private function getPriceCondition(item:Object,
> > > column:DataGridColumn):String {
> > >    for each ( var condition:Condition in Conditions){
> > >       if (item[column][dataField] == condition.code){   // não lembro
> se é
> > > exatamente essa a sintaxe, mas é algo próximo
> > >            return condition.description;
> > >       }
> > >    }
> >
> > >    return ""; // não achou nada
> >
> > > }
> >
> > > é pseudo-código, não testei ele, mas acho que exemplifica bem.
> >
> > > Att,
> >
> > > Fredy.
> >
> > > 2010/2/16 RafaelViana <rfl.vi...@gmail.com>
> >
> > > > OK.. Agora mudei o relacionamento fiz ele bidirecional agora tenho
> > > > como saber a lista de preços para cada produto, que irá me poupar
> > > > muitoos loops.Porém, ainda é necessário passar a condição pelo
> > > > parametro.
> >
> > > > Olha como pretendo fazer:
> >
> > > > private function adicionarColunas():void{
> >
> > > >  for(var i:int = 0; i < listaCondicoesQueClienteSelecionou.length;
> i++)
> > > > {
> >
> > > >  formaPagamento = listaCondicoesQueClienteSelecionou.getItemAt(i) as
> > > > FormaPagamento;
> > > >  novaColuna(listaCondicoesQueClienteSelecionou.getItemAt(i) as
> > > > FormaPagamento);
> >
> > > >  }
> >
> > > > }
> >
> > > >  private function novaColuna(formaPagamento:FormaPagamento):void{
> >
> > > >        dgc = new CustomDataGridColumn();
> > > >            dgc.labelFunction = labelFunction; //aqui eu passaria a
> > > > forma de pagamento que veio la do for das colunas...
> >
> > > >        var cols:Array = dgProdutos.columns;
> > > >        cols.push(dgc);
> >
> > > >        dgProdutos.columns = cols;
> >
> > > > }
> >
> > > > private function labelFunction(item:Object, column:DataGridColumn,
> > > > outro:Object):String{
> >
> > > >  for(var i:int = 0; i < (item as Produto).precos.length; i++){
> >
> > > >        if( ((item as Produto).precos.getItemAt(i) as
> > > > PrecoProduto).forma_pagamento.pgto_codigo == (outro as
> > > > FormaPagamento).pgto_codigo)
> > > >        return  formatter.format( ((item as
> Produto).precos.getItemAt(i) as
> > > > PrecoProduto).preco_produto );
> > > > }
> >
> > > > return "0.00"; //não achou nada
> >
> > > > }
> >
> > > > É possível?
> >
> > > > On 15 fev, 17:22, RafaelViana <rfl.vi...@gmail.com> wrote:
> > > > > Assim... Tenho um cadastro de produtos que tem 5 preços de acordo
> com
> > > > > o ICMS (esses preços ficam dentro do objeto produto, e eu acesso
> > > > > facilmente pelo objeto do produto), porém em alguns casos o preço
> deve
> > > > > ser pela condição de pagamento (e essas podem ter mais de 5 ou
> menos,
> > > > > é muito variável), portanto criei um cadastro para essas
> "condições".
> >
> > > > > Então, um preço vai estar vinculado a um produto e a uma condição.O
> > > > > "problema" é que cliente quer que esse preço seja exibido na lista
> > > > > (datagrid) que tem no sistema, porém como são "variáveis essas
> > > > > condições" eu deveria criar um parametro onde ele informa quais
> > > > > tabelas ele quer que sejam exibidas, até ai tudo bem..
> >
> > > > > Crio as colunas do datagrid dinamicamente, o problema está no
> > > > > labelFunction, faço uma pesquisa para trazer todos os preços. Esse
> > > > > preço esta da seguinte maneira:
> >
> > > > > condicao:Condicao
> > > > > produto:Produto
> > > > > valor:Number
> >
> > > > > E na tabela tenho uma lista de produtos, então o item do
> LabelFunction
> > > > > é um produto : ok já sei o produto que vou usar para saber o preço.
> >
> > > > > E a condicao? Viria daonde? Seria esse outro parametro :D
> >
> > > > > Aproveitando, um outro problema é que: na labelFunction teria um
> loop
> > > > > para iterar nessa lista caso eu tenha 1000 produtos que teriam que
> > > > > iterar em uns 3000 preços, algo em torno de 3 milhões de iterações
> > > > > para exibir cada coluna de preço no grid (usando o break iria
> reduzir
> > > > > para menos de 700 mil iterações +-) só que se fossem 5 colunas
> mesmo
> > > > > assim daria umas 3 milhões de iterações :S vou estudar um pouco se
> > > > > posso mudar a forma de relacionamento entre os preços e o produto,
> > > > > arrumando isso me auxiliaria também no problema principal dessa
> > > > > discussão :D
> >
> > > > > On 15 fev, 13:04, Fredy Gadotti <thief...@gmail.com> wrote:
> >
> > > > > > O que você quer nesse "outro" que não tem dentro do item?
> >
> > > > > > 2010/2/15 RafaelViana <rfl.vi...@gmail.com>
> >
> > > > > > > Como eu consigo receber outro parametro no labelFunction?
> >
> > > > > > > //preciso da assinatura da função assim:
> >
> > > > > > > private function labelFunction(item:Object,
> column:DataGridColumn,
> > > > > > > outro:Object):String
> >
> > > > > > > //só que quando se cria a labelFunction no DataGridColumn:
> > > > > > > dgc.labelFunction = labelFunction; //e ele já entende que os
> > > > > > > parametros são Object e DataGridColumn... preciso passar um
> parametro
> > > > > > > a mais...
> >
> > > > > > > --
> > > > > > > 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 emhttp://
> > > > groups.google.com/group/flexdev
> >
> > > > --
> > > > 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 emhttp://
> groups.google.com/group/flexdev
>
> --
> 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
>

-- 
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