..:: MX Studio Fóruns ::..: Condição compara data de comboBox e de radio button - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Condição compara data de comboBox e de radio button

#1 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 07 February 2008 - 10:15 PM

Boa noite galera!! Estou com um probleminha. Vamos ver se eu consigo explicar...é um sisteminha para calcular orçamento! Tenho 2 comboBox, a 1ª recebe uma array que contem os tipos de produtos (faixas, banners, bandeiras, impressão digital), de acordo com a opção escolhida a outra combo recebe uma array diferente com os formatos que cada opção anterior possui, até ai ta tudo funcionando certinho. O problema é que eu tenho um movieclip com 6 radio buttons com as quantidades disponíveis (1000, 5000, 10000, 20000, 50000, 100000) e precisava compara utilizando uma condição a segunda combo com a opção escolhida no radio button para acessar o valor unitário do produto, porque para cada quantidade o valor é diferente.

CÓDIGO
var produto:Array = [
                     {label:"         Selecione ", data: null},
                     {label: "Faixa Plástica", data: 1},
                     {label: "Banner Plástico", data: 2},
                     {label: "Bandeira Plástica", data: 3},
                     {label: "Impressão Digital", data: 4}
                     ];

var faixa:Array = [
                   {label: "   Selecione", data: null},
                   {label: "300x60 cm", data: 1},
                   {label: "200x60 cm", data: 2}
                   ];
var banner:Array = [
                    {label: "   Selecione", data: null},
                    {label: "120x45 cm", data: 3},
                    {label: "100x25 cm", data: 4},
                    {label: "90x50 cm", data: 5},
                    {label: "110x60 cm", data: 6},
                    {label: "80x40 cm", data: 7}
                    ];
var bandeira:Array = [
                      {label: "   Selecione", data: null},
                      {label: "30x20 cm", data: 8},
                      {label: "40x30 cm", data: 9},
                      {label: "60x40 cm", data: 10},
                      {label: "90x60 cm", data: 11}
                      ];
var impressao:Array = [
                       {label: "   Selecione", data: null},
                       {label: "ate 10 M²", data: 12},
                       {label: "ate 50 M²", data: 13},
                       {label: "100 M² ou mais", data: 14}
                       ];
var vazio:Array = [];

function escolheArray(combo:Object){
    if(combo.target.selectedItem.data == null){
        _root.orc_mc.cb_formato.dataProvider = vazio;
        _root.orc_mc.cb_formato._alpha = 50;
    }else if(combo.target.selectedItem.data == 1){
        _root.orc_mc.cb_formato.dataProvider = faixa;
        _root.orc_mc.cb_formato.rowCount = faixa.length;
    }else if(combo.target.selectedItem.data == 2){
        _root.orc_mc.cb_formato.dataProvider = banner;
        _root.orc_mc.cb_formato.rowCount = banner.length;
    }else if(combo.target.selectedItem.data == 3){
        _root.orc_mc.cb_formato.dataProvider = bandeira;
        _root.orc_mc.cb_formato.rowCount = bandeira.length;
    }else{
        _root.orc_mc.cb_formato.dataProvider = impressao;
        _root.orc_mc.cb_formato.rowCount = impressao.length;
    }
}

_root.orc_mc.cb_produto.rowCount = produto.length;
_root.orc_mc.cb_produto.addEventListener("change", escolheArray);
_root.orc_mc.cb_produto.dataProvider = produto;
orc_mc.cb_produto.setStyle("themeColor", "0xF1EFFC");

_root.orc_mc.cb_formato.dataProvider = vazio;
orc_mc.cb_formato.setStyle("themeColor", "0xF1EFFC");

orc_mc.quantidade_mc.qt1.label = "    1000";
orc_mc.quantidade_mc.qt1.data = 1;
orc_mc.quantidade_mc.qt2.label = "    5000";
orc_mc.quantidade_mc.qt2.data = 2;
orc_mc.quantidade_mc.qt3.label = " 10.000";
orc_mc.quantidade_mc.qt3.data = 3;
orc_mc.quantidade_mc.qt4.label = "   20.000";
orc_mc.quantidade_mc.qt4.data = 4;
orc_mc.quantidade_mc.qt5.label = "   50.000";
orc_mc.quantidade_mc.qt5.data = 5;
orc_mc.quantidade_mc.qt6.label = " 100.000";
orc_mc.quantidade_mc.qt6.data = 6;

//Como fazer essa condição funcionar??? Ela está retornando somente undefined
var precunit:Number;
if(radio.target.selectedData == 1000 && orc_mc.cb_formato.target.selectedItem.data == 1){
        precunit = 12.22;
}else if(radio.target.selectedData == 1000 && orc_mc.cb_formato.target.selectedItem.data == 2){
        precunit = 8.43;
}//e assim vai ate checar todos os campos da combo box


Desde ja agradeço a colaboração de todos!!
Abraços!
0

#2 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 07 February 2008 - 10:36 PM

Pelo que eu entendi, você quer que ao selecionar um item do segundo ComboBox, as opções do Radio sejam habilitadas ou desabilitadas (ou mostrar a quantidade de itens), certo?

Você pode usar o Array que você usou para comparar um determinado número, por exemplo, você está utilizando o data no Array, para cada produto você coloca um data diferente, 1 corresponderia 1000, 2 a 5000, e assim vai. Basta pegar esse data e habilitar ou dasabilitar os itens do Radio.

[]s
0

#3 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 07 February 2008 - 11:01 PM

Não é bem isso Natan, a quantidade não muda, para todos é igual, so que para cada item do segundo combobox, o valor unitario do produto varia de acordo com a quantidade. Então eu precisaria que quando eu clicasse no botão calcular ele checasse qual item selecionado na segunda combobox e e qual a quantidade escolhida nas radio button para definir o valor unitario e multiplicar pela quantidade.
0

#4 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 08 February 2008 - 12:43 AM

Primeiro, minha sugestão seria criar um EventListener para os seus radioButtons.
Certifique-se de que ambos pertencem ao mesmo grupo, para criar o grupo de seu radioButton basta ir na abinha "Parameters" no canto inferior da tela.

Ai, observe esse código:

seu_grupo = Grupo dos radioButtons
rb1 e rb2 = radioButtons 1 e 2.

CÓDIGO
botaoEnviarListener = new Object();
botaoEnviarListener.click = function() {
     if (seu_grupo.selection == rb1) {
     _root.variavel = "1000";
     trace (_root.variavel)
    
} else {
     if (seu_grupo.selection == rb2)
     _root.variavel = "5000";
      trace (_root.variavel)
}};
// Abaixo determina qual elemento executa a ação acima quando for clicado
// No caso, utilizaremos os 2 radioButtons
rb1.addEventListener("click", botaoEnviarListener);
rb2.addEventListener("click", botaoEnviarListener);


Com isso, você cria uma variave com o valor das unidades do radioButtons, no caso que eu fiz, são 1000 e 5000.

Depois, você cria uma função que verifica a opção que estã selecionada no seu comboBox e faz a operação matemática que você quiser.

Eu não sei muito bem o que você quer, mas se você tiver tendo dificuldades pode pedir ajuda !

Abração !
0

#5 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 08 February 2008 - 08:02 AM

Valeu Ubi, acho que isso resolve meu problema, assim que possível vou testar e posto o resultado se resolveu o problema!

Abraços!
0

#6 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 08 February 2008 - 03:01 PM

Ok !

Estamos esperando....

Abração thumbsup.gif
0

#7 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 09 February 2008 - 06:08 PM

Ubi não estou conseguindo..help me please!! Segue script...

CÓDIGO
//variavel que recebe o retorno do radio clicado
var qtd:Number;

//function
enviarListener = new Object();
enviarListener.click = function(){
    if(_root.orc_mc.quantidade_mc.qt.selection == qt1){
        _root.qtd = 1000;
        trace(qtd);
    }
}

//Listener
_root.orc_mc.quantidade_mc.qt1.addEventListener("click", enviarListener);

/*Explicando melhor, tenho um mc (orc_mc) que é o conteudo referente a essa parte de orçamento. Dentro dele existe um outro mc que recebe os radio buttons referente a quantidade (qt1, qt2, qt3, qt4, qt5, qt6), todos pertencentes ao group "qt". Não sei se errei no caminho de acesso, ou onde que foi, mas quando seleciono o qt1, nem ta chamando o trace! =/
*/


Valeu, se alguem puder ajudar eu fico muito Grato!!
0

#8 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 09 February 2008 - 06:12 PM

Repare que a váriável "qtd" está no "_root" !

E quando você chama ela pelo trace está utilizando somente o código:

CÓDIGO
trace (qtd)


Tenta trocar para:

CÓDIGO
trace (_root.qtd)


Abração !
0

#9 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 09 February 2008 - 06:28 PM

Também não foi Ubi. Alguma outra sugestão?
Valeu a força!
0

#10 User is offline   ubi_rj 

  • Group: Moderador Global
  • Posts: 2920
  • Joined: 29-June 07

Posted 09 February 2008 - 10:06 PM

Sim, coloque o código direto no mesmo frame do seu radioButton, desta forma você não precisa utilizar nenhum caminho !

Isso vai funcionar, se estiver dando algum erro posta seu arquivo ai ok ?

Abração !
0

#11 User is offline   ZK design 

  • Group: Membros
  • Posts: 142
  • Joined: 16-July 07

Posted 10 February 2008 - 08:02 PM

Achei meu erro Ubi..=) Tinha declarado uma variavel dento da função..ai o flash não enchergava a tal variavel fora dessa função..rs

Valeu a força!!
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)