[flexdev] passar parametros do combobox

25 views
Skip to first unread message

Collin Peterson Mendes Chaves

unread,
Nov 17, 2009, 9:02:44 AM11/17/09
to flexdev
pessoal, tenho o seguinte xml que uso para popular o combobox, até ai tudo bem

<?xml version="1.0" encoding="ISO-8859-1" ?>
<designacoes>
<designacao id="1">Exercício de sua Titularidade</designacao>
<designacao id="2">Exercício em Substituição</designacao>
<designacao id="3">Exercício por Designação</designacao>
<designacao id="4">Atuação em Auxílio ou Colaboração</designacao>
<designacao id="5">Relatório de Mutirão</designacao>
<designacao id="6">Relatório de Plantão</designacao>
</designacoes>

o problema é que quando envio a informação escolhida por httpservice
para o asp que vai tratar a informação, percebo que a informação não
aparece (vazia). utilizo um alert.show para comprovar.

já tentei de tudo para passar a informação e nada.

{cb.designa.text}
{cb.designa.value}
{cb.designa.selectedItem.data}
{cb.designa.data}

alguém pode me ajudar?

J.C.Ködel

unread,
Nov 17, 2009, 9:06:16 AM11/17/09
to fle...@googlegroups.com
Tente passar os textos como atributos ao invés de inline.

i.e.:

<designacao id="1" text="Exercício ..."/>

E setar o labelField para @text.

--------------------------------------------------
From: "Collin Peterson Mendes Chaves" <collinp...@gmail.com>
Sent: Tuesday, November 17, 2009 12:02 PM
To: "flexdev" <fle...@googlegroups.com>
Subject: [flexdev] passar parametros do combobox

> --~--~---------~--~----~------------~-------~--~----~
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para fle...@googlegroups.com
> Para sair da lista, envie um email em branco para
> flexdev-u...@googlegroups.com
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
> -~----------~----~----~----~------~----~------~--~---
>

Rafael

unread,
Nov 17, 2009, 10:42:57 AM11/17/09
to fle...@googlegroups.com

passe desta maneira
--> cb.designa.selectedItem.id

2009/11/17 J.C.Ködel <jck...@gmail.com>

Lindeberg Sabreu - Hotmail

unread,
Nov 17, 2009, 11:16:13 AM11/17/09
to fle...@googlegroups.com

Pessoal, estou trabalhando com janelas MDI.

 

Preciso que quando ela for chamada já apareça maximizada e alinhada no topo e esquerda, já mudei as propriedades da janela na própria ide mas não está funcionando.

 

Esse é o código que eu estou usando.

 

// ActionScript file

import flexlib.mdi.events.MDIManagerEvent;

 

import mx.controls.Alert;

import mx.events.CloseEvent;

import mx.events.MenuEvent;

 

import windows.MDIWindowBase;

import windows.MDIWindowHelper;

 

                        private var eventoJanela:MDIManagerEvent;

                        private var eventoMaximized:MDIManagerEvent;

                       

                private var WindowHelper: MDIWindowHelper;

 

                protected function OnCreationComplete(event:Event):void

                {

                             WindowHelper = new MDIWindowHelper();

                }

 

                        private function onWinClose(event:Event):void {

                            if(event is MDIManagerEvent) {

                                eventoJanela = event as MDIManagerEvent;

                                event.stopImmediatePropagation();                   

                                Alert.show("Deseja realmente fechar a Janela?!", "Confirmar", 3, null, confirmClose);

                            }

                        }

                       

                        private function confirmClose(event:CloseEvent):void {

                            if(event.detail == mx.controls.Alert.YES) {

                                MDI.windowManager.executeDefaultBehavior(eventoJanela);

                            }

                        }

 

 

                private function OnClickMenu(event:MenuEvent):void

                {

                                  

                                   var w:MDIWindowBase = WindowHelper.GetWindow(event.label);

                                   MDI.windowManager.addEventListener(MDIManagerEvent.WINDOW_CLOSE,onWinClose);

 

                                   MDI.windowManager.add(w);

                }

 

 

Se alguém puder me ajudar desde já agradeço.

 

Essa é a foto da tela

 

 

Lindeberg Sabreu

 

image001.png

Collin Peterson Mendes Chaves

unread,
Nov 17, 2009, 1:42:59 PM11/17/09
to fle...@googlegroups.com
oi rafael, tentei sua solução e continua saindo vazio -
cb.designa.selectedItem.id
JC, como seta o labelfield para @text? na verdade eu quero passar não
o texto e sim o id.

Em 17/11/09, Rafael<rafael...@gmail.com> escreveu:

J.C.Ködel

unread,
Nov 17, 2009, 1:53:00 PM11/17/09
to fle...@googlegroups.com
Desculpe, falei caca... funciona com inline text também.

Este exemplo abaixo dá um warning por que o XML não está corretamente
formatado para este contexto, mas funciona. Depois, tem o exemplo mais
correto, sem warning.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XMLList id="MyXml">


<designacoes>
<designacao id="1">Exercício de sua Titularidade</designacao>
<designacao id="2">Exercício em Substituição</designacao>
<designacao id="3">Exercício por Designação</designacao>
<designacao id="4">Atuação em Auxílio ou Colaboração</designacao>
<designacao id="5">Relatório de Mutirão</designacao>
<designacao id="6">Relatório de Plantão</designacao>
</designacoes>

</mx:XMLList>
<mx:ComboBox id="cboTeste" dataProvider="{MyXml.children()}"
change="cboTeste_Change();" />

<mx:Script>
<![CDATA[
import mx.utils.StringUtil;
import mx.controls.Alert;

private function cboTeste_Change():void
{
var idSelecionado:int = parseInt(cboTeste.selectedItem.@id);
var textoSelecionado:String = cboTeste.selectedLabel;

Alert.show(StringUtil.substitute("ID: {0}\nTexto: {1}", idSelecionado,
textoSelecionado));
}
]]>
</mx:Script>
</mx:Application>

--------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:XMLList id="MyXml">


<designacao id="1">Exercício de sua Titularidade</designacao>
<designacao id="2">Exercício em Substituição</designacao>
<designacao id="3">Exercício por Designação</designacao>
<designacao id="4">Atuação em Auxílio ou Colaboração</designacao>
<designacao id="5">Relatório de Mutirão</designacao>
<designacao id="6">Relatório de Plantão</designacao>

</mx:XMLList>
<mx:ComboBox id="cboTeste" dataProvider="{MyXml}"
change="cboTeste_Change();" />

<mx:Script>
<![CDATA[
import mx.utils.StringUtil;
import mx.controls.Alert;

private function cboTeste_Change():void
{
var idSelecionado:int = parseInt(cboTeste.selectedItem.@id);
var textoSelecionado:String = cboTeste.selectedLabel;

Alert.show(StringUtil.substitute("ID: {0}\nTexto: {1}", idSelecionado,
textoSelecionado));
}
]]>
</mx:Script>
</mx:Application>


--------------------------------------------------
From: "Collin Peterson Mendes Chaves" <collinp...@gmail.com>

Sent: Tuesday, November 17, 2009 4:42 PM
To: <fle...@googlegroups.com>
Subject: [flexdev] Re: passar parametros do combobox

Collin Peterson Mendes Chaves

unread,
Nov 17, 2009, 2:07:13 PM11/17/09
to fle...@googlegroups.com
esse cb indicado é o objeto do componente criado que possui o
combobox, será que essa informação é importante para saber o porque
dos dados não estarem sendo enviados para inserção no banco?

Em 17/11/09, Collin Peterson Mendes Chaves<collinp...@gmail.com> escreveu:

Collin Peterson Mendes Chaves

unread,
Nov 17, 2009, 2:37:23 PM11/17/09
to fle...@googlegroups.com
oi JC, a diferença é que no meu, o xml é gerado no asp e eu por
httpservice trago os dados e meu teste é feito levando esse dados de
parâmetro prá o asp tb e imprimindo em um alert

J.C.Ködel

unread,
Nov 17, 2009, 3:33:00 PM11/17/09
to fle...@googlegroups.com
Tudo bem.

Se os dados vêm do ASP, o que você tem que fazer então é pegar o Children do
seu XML. Isso te dará um XMLList sem o elemento root, que é exatamente o que
o Binding precisa pro combo. Até aí tudo bem, certo?

Agora, pra devolver isso pro ASP, você tem, no código que postei de exemplo,
o ID e o Texto. Só passar normalmente como se passa qualquer valor via
HttpRequest ou serviço.

Creio que ainda não entendi o teu problema =\

--------------------------------------------------
From: "Collin Peterson Mendes Chaves" <collinp...@gmail.com>

Sent: Tuesday, November 17, 2009 5:37 PM


To: <fle...@googlegroups.com>
Subject: [flexdev] Re: passar parametros do combobox

>

Rafael

unread,
Nov 17, 2009, 4:05:07 PM11/17/09
to fle...@googlegroups.com
eu faço desta maneira, tente ai

"id do combobox".selectedItem."valor que deseja" ( no seu caso seria "id" ) 

ou tbm pode ser

"id do combobox".dataProvider["id do combobox".selectedIndex]."valor que deseja" ( no seu caso seria "id" ) 


2009/11/17 Collin Peterson Mendes Chaves <collinp...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 18, 2009, 8:10:10 AM11/18/09
to fle...@googlegroups.com
oi JC, vou ver se explico : eu tenho o xml que eu gero no asp e trago
para o combobox, é o seguinte xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<designacoes>
<designacao id="1">Exercício de sua Titularidade</designacao>
<designacao id="2">Exercício em Substituição</designacao>
<designacao id="3">Exercício por Designação</designacao>
<designacao id="4">Atuação em Auxílio ou Colaboração</designacao>
<designacao id="5">Relatório de Mutirão</designacao>
<designacao id="6">Relatório de Plantão</designacao>
</designacoes>

em seguida eu atribuo o xml gerado a um ArrayCollection criado
conforme o codigo a seguir:

[Bindable]
public var designacao:ArrayCollection=new ArrayCollection();

public function BuscaDesignacao(event:ResultEvent):void{
designacao=event.result.designacoes.designacao;
}

esse array chamado designacao é colocado no data provider do combobox
e com isso tenho a população dos dados dentro do componente. até ai
nenhum problema.

quando eu tento escolher o valor do combobox para enviar para o asp
(para fazer a inserção no banco) percebo no asp que o conteúdo enviado
é vazio, pois coloco um alert.show para exibir o retorno do asp e não
retorna nada.
o problema e que não sei o que está acontecendo, o porque de não está
conseguindo passar o id para inserir.

espero ter esclarecido melhor.

Collin Peterson Mendes Chaves

unread,
Nov 18, 2009, 8:15:13 AM11/18/09
to fle...@googlegroups.com
oi rafael, eu tentei a segunda opção que vc sugeriu:

{designa.dataProvider[designa.selectedIndex].@id}

porém apareceu um warning e não retornou nada também

Data binding will not be able to detect changes when using square
bracket operator. For Array, please use ArrayCollection.getItemAt()
instead. proRelatorioCorregedoria/src cabecalho.mxml line
60 1258550106937 628


Em 18/11/09, Collin Peterson Mendes Chaves<collinp...@gmail.com> escreveu:

Collin Peterson Mendes Chaves

unread,
Nov 18, 2009, 8:19:37 AM11/18/09
to fle...@googlegroups.com
jc, o conteúdo do asp para testar a passagem do parametro é o seguinte

idpromotor=request.Form("promotor")
idpromotoria=request.Form("promotoria")
mesReferencia=request.Form("mesReferencia")
classificacao=request.Form("classificacao")
resultado="idpromotor:"&idpromotor&",
idpromotoria="&idpromotoria&",
mesReferencia:"&mesReferencia&",classificacao="&classificacao

response.Write(resultado)

eu imprimo essa variavel resultado no alert.show

J.C.Ködel

unread,
Nov 18, 2009, 9:16:14 PM11/18/09
to fle...@googlegroups.com
Vamos por partes, como diria Jack.

Você debugou teu código flex e viu se o valor sendo enviado pelo Flex para o
ASP está correto?

--------------------------------------------------
From: "Collin Peterson Mendes Chaves" <collinp...@gmail.com>

Sent: Wednesday, November 18, 2009 11:10 AM


To: <fle...@googlegroups.com>
Subject: [flexdev] Re: passar parametros do combobox

>

Collin Peterson Mendes Chaves

unread,
Nov 19, 2009, 8:29:43 AM11/19/09
to fle...@googlegroups.com
oi JC, rapaz acho que não estou sabendo debuggar pois coloco um
breakpoint em uma linha, quando rodo o debug a aplicação roda
normalmente e a visão em perspectiva não muda para a versão debug
mudando o layout.
e depois de algum tempo aparece a seguinte mensagem

Em 18/11/09, J.C.Ködel<jck...@gmail.com> escreveu:
erro-debug.JPG

Renato Gonçalves

unread,
Nov 19, 2009, 11:55:27 AM11/19/09
to fle...@googlegroups.com
Atualiza o Flash Debugger
http://www.adobe.com/support/flashplayer/downloads.html

Baixa o flash para o seu navegador com a opção debugger.

2009/11/19 Collin Peterson Mendes Chaves <collinp...@gmail.com>



--
Renato Gonçalves

Collin Peterson Mendes Chaves

unread,
Nov 19, 2009, 1:54:43 PM11/19/09
to fle...@googlegroups.com
obrigado renato, consegui atualizar e eliminou o erro. :)

2009/11/19 Renato Gonçalves <rena...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 19, 2009, 3:18:40 PM11/19/09
to fle...@googlegroups.com
estou fazendo um teste para verificar os valores do combobox capturado que implementei assim:
 

public

function exibeCombobox():void{

var texto:String=String(listPromotores.selectedItem.promotor);

Alert.show(

"o texto é "+texto,"conteúdo");

}

e obtenho a seguinte mensagem de erro:
 
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
 at cabecalho/exibeCombobox()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\cabecalho.mxml:56]
 at proRelatorioCorregedoria/___proRelatorioCorregedoria_Button3_click()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:132]
 
não entendo o porque do erro, fiz várias mudanças em listPromotores.selectedItem, listPromotores.labelField e outras configurações e o mesmo erro persiste.
nunca vi tamanha complicação em um componente na hora de pegar parametro escolhido.

Collin Peterson Mendes Chaves

unread,
Nov 19, 2009, 3:36:19 PM11/19/09
to fle...@googlegroups.com
estou fazendo um teste para verificar os valores do combobox capturado que implementei assim:
 

public

function exibeCombobox():void{

var texto:String=String(listPromotores.selectedItem.promotor);

Alert.show(

"o texto é "+texto,"conteúdo");

}

e obtenho a seguinte mensagem de erro:
 
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
 at cabecalho/exibeCombobox()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\cabecalho.mxml:56]
 at proRelatorioCorregedoria/___proRelatorioCorregedoria_Button3_click()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:132]
 
não entendo o porque do erro, fiz várias mudanças em listPromotores.selectedItem, listPromotores.labelField e outras configurações e o mesmo erro persiste.
nunca vi tamanha complicação em um componente na hora de pegar parametro escolhido.

J.C.Ködel

unread,
Nov 19, 2009, 5:08:27 PM11/19/09
to fle...@googlegroups.com
Vc precisa pegar um flash player em modo debug (não o FP normal, vai no site
da Adobe e pega uma versão de desenvolvimento, com suporte a Debug).

Ou...

Uns Alerts bem colocados antes da requisição tb ajuda.

--------------------------------------------------
From: "Collin Peterson Mendes Chaves" <collinp...@gmail.com>

Sent: Thursday, November 19, 2009 11:29 AM

J.C.Ködel

unread,
Nov 19, 2009, 5:23:36 PM11/19/09
to fle...@googlegroups.com
certamente listPromotores ou listPromotores.selectedItem são nulos.
Tente fazer isso:
 
if(listPromotores == null) { Alert.show("Cade o combo?"); }
else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }
 
Note que, quando estamos lidando com xml, devemos ler os atributos do xml (por isso o @ antes de promotor), mas se databinding for feito com uma classe, então é só promotor. E se promotor é um nó do xml, então não vai funcionar assim (já que selectedItem seria o nó).
2009/11/19 Renato Gonçalves <rena...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 7:32:35 AM11/20/09
to fle...@googlegroups.com
oi JC, fiz esse teste do trecho que vc me enviou. o que me deixou surpreso é que a mensagem 'Cade o combo' foi a exibida. não entendo isso, o combobox existe, como é que ele acusa q não existe?

2009/11/19 J.C.Ködel <jck...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 7:55:00 AM11/20/09
to fle...@googlegroups.com
JC, será que o erro tem a ver com os states? eu tenho criado. acho que já vi alguém falar de criar o objeto antes de mudar o state para dar erro, algo assim.
como eu analiso isso. por que a meu ver eu clico em um botão, ele muda o state e aparece graficamente as estruturas com o combobox, então não vejo como eu ter criado o componente antes.ou algo do tipo, mesmo pq , eu consigo popular ele, apenas nao consigo passar o parametro.

2009/11/20 Collin Peterson Mendes Chaves <collinp...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 7:59:42 AM11/20/09
to fle...@googlegroups.com
JC, será que o erro tem a ver com os states? eu tenho criado. acho que já vi alguém falar de criar o objeto antes de mudar o state para dar erro, algo assim.
como eu analiso isso. por que a meu ver eu clico em um botão, ele muda o state e aparece graficamente as estruturas com o combobox, então não vejo como eu ter criado o componente antes.ou algo do tipo, mesmo pq , eu consigo popular ele, apenas nao consigo passar o parametro.

2009/11/20 Collin Peterson Mendes Chaves <collinp...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 8:03:50 AM11/20/09
to fle...@googlegroups.com
JC, será que o erro tem a ver com os states? eu tenho criado. acho que já vi alguém falar de criar o objeto antes de mudar o state para dar erro, algo assim.
como eu analiso isso. por que a meu ver eu clico em um botão, ele muda o state e aparece graficamente as estruturas com o combobox, então não vejo como eu ter criado o componente antes.ou algo do tipo, mesmo pq , eu consigo popular ele, apenas nao consigo passar o parametro.

2009/11/20 Collin Peterson Mendes Chaves <collinp...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 8:27:58 AM11/20/09
to fle...@googlegroups.com
detalhe é que esse combobox listPromotores faz parte de um componente mxml chamado cabecalho.mxml que é incluido no arquivo com <mx:Application>

Collin Peterson Mendes Chaves

unread,
Nov 20, 2009, 8:50:28 AM11/20/09
to fle...@googlegroups.com
detalhe é que esse combobox listPromotores faz parte de um componente mxml chamado cabecalho.mxml que é incluido no arquivo com <mx:Application>

J.C.Ködel

unread,
Nov 20, 2009, 12:54:23 PM11/20/09
to fle...@googlegroups.com
Indeed, você não pode manipular qualquer componente que esteja em outro state, porque eles ainda não foram criados.
 
Para manipular isso, utilize a função callLater(function(){}) logo após mudar o state ou o evento enterState.
 
O callLater faz com q o delegate anônimo seja executado no próximo quadro, quando o novo state estará disponível.
2009/11/19 J.C.Ködel <jck...@gmail.com>

2009/11/19 Renato Gonçalves <rena...@gmail.com>

J.C.Ködel

unread,
Nov 20, 2009, 1:01:17 PM11/20/09
to fle...@googlegroups.com
Leia sobre creationPolicy.
 
O que não é visível (i.e.: outros states, abas em tab navigators que não a primeira, etc.) NÃO são criados até serem exibidos.
 
Utilize os eventos creationComplete para ter certeza de que o componente fora criado ou callLater quando está prestes a criar o componente.
 
Com um pouco de experiência e experimento, saberá quando os componentes estarão ou não disponíveis naquele momento.
2009/11/19 J.C.Ködel <jck...@gmail.com>
2009/11/19 Renato Gonçalves <rena...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 24, 2009, 2:50:18 PM11/24/09
to fle...@googlegroups.com
Oi JC, obrigado pelas dicas. pesquisei-as, fiz alguns testes mas o problema persiste vou colocar aqui uns códigos pra ver se fica mais fácil eu obter ajuda.
o trecho de código em negrito no application é onde é incluido o arquivo cabecalho.mxml  . o que não entendo é que eu consigo popular o combo, mas na hora de enviar para o asp seus parâmetros, o objeto não é criado? acho isso meio maluco. rsrsrrs
 
lá vai o código do application tá assim:
 
----------------------------------------------------APPLICATION------------------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal" xmlns:cmp="componentes.*" xmlns:local="*" creationComplete="mostraLogin()">
  <mx:Script>
   <![CDATA[
    import mx.utils.StringUtil;
    import mx.rpc.events.FaultEvent;
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.managers.PopUpManager;
        import mx.core.IFlexDisplayObject;
        import componentes.JanelaLogin;
           
           public var cb:cabecalho=new cabecalho();
          
            private function mostraLogin():void {
             var LoginWindow:IFlexDisplayObject = PopUpManager.createPopUp(this, JanelaLogin, true);
             LoginWindow.x=500;
             LoginWindow.y=260;            
            }
           
             public function cadastraDadosRelatorio():void{
            cb.cadastraDados();
            //Alert.show("Cadastro Efetuado com Sucesso!","Cadastrar");
       }           
  
   ]]>
  </mx:Script> 
 
  <mx:ApplicationControlBar dock="true">
              <mx:LinkButton label="Sair" click="this.currentState='';mostraLogin()"/>
              <mx:LinkButton label="Relatorio" click="this.currentState='relatorio'"/>
              <mx:LinkButton label="Abertos" click="this.currentState='abertos'"/>
              <mx:LinkButton label="Enviados" click="this.currentState='enviados'"/>
              <mx:Spacer width="100%"/>
              <mx:Label text="Data Inicial"/>
              <mx:DateField id="startDate"/>
              <mx:Label text="Data Final"/>
              <mx:DateField id="endDate"/>
              <mx:RadioButtonGroup id="pp"/>
              <mx:RadioButton id="promotor" groupName="pp" label="Promotor" value="GROSS" selected="true"/>
              <mx:RadioButton id="Promotoria" groupName="pp" label="Promotoria" value="NET"/>
              <mx:Button id="btConsultar" label="Consultar" /> 
  </mx:ApplicationControlBar>
     
      <mx:states>
           <mx:State name="relatorio">
                 <mx:SetProperty target="{materias}" name="y" value="0"/>
                 <mx:SetProperty target="{materias}" name="width" value="100%"/>
                 <mx:SetProperty target="{materias}" name="height" value="100%"/>
                 <mx:SetProperty target="{Relatorio}" name="width" value="100%"/>
                 <mx:SetProperty target="{Relatorio}" name="height" value="100%"/>
                 <mx:SetProperty target="{feitos}" name="width" value="71%"/>
                 <mx:SetProperty target="{feitos}" name="height" value="100%"/>
                 <mx:SetProperty target="{formulario}" name="width" value="100%"/>
                 <mx:SetProperty target="{formulario}" name="height" value="40%"/>
                 <mx:SetProperty target="{ciente}" name="width" value="100%"/>
                 <mx:SetProperty target="{ciente}" name="height" value="100%"/>
                 <mx:SetStyle target="{Relatorio}" name="left" value="0"/>
                 <mx:SetStyle target="{Relatorio}" name="top" value="0"/>
                 <mx:SetStyle target="{feitos}" name="verticalGap" value="0"/>
                 <mx:SetProperty target="{hbox1}" name="width" value="100%"/>
                
           </mx:State>
           <mx:State name="enviados">
                 <mx:SetProperty target="{Relatorio}" name="width" value="0"/>
                 <mx:SetProperty target="{Relatorio}" name="height" value="0"/>
                 <mx:SetProperty target="{feitos}" name="width" value="100%"/>
                 <mx:SetProperty target="{feitos}" name="height" value="100%"/>
                 <mx:SetProperty target="{enviados}" name="width" value="100%"/>
                 <mx:SetProperty target="{enviados}" name="height" value="100%"/>
            </mx:State>
           <mx:State name="abertos">
                 <mx:SetProperty target="{Relatorio}" name="width" value="0"/>
                 <mx:SetProperty target="{Relatorio}" name="height" value="0"/>
                 <mx:SetProperty target="{feitos}" name="width" value="100%"/>
                 <mx:SetProperty target="{feitos}" name="height" value="100%"/>
                 <mx:SetProperty target="{abertos}" name="width" value="100%"/>
                 <mx:SetProperty target="{abertos}" name="height" value="100%"/>
                 <mx:AddChild relativeTo="{abertos}" position="lastChild">
                       <mx:DataGrid width="100%">
                             <mx:columns>
                                     <mx:DataGridColumn headerText="IDRelatorio" width="80"/>                                    
                                   <mx:DataGridColumn headerText="Dia Inicial" dataField="col1" width="70"/>
                                   <mx:DataGridColumn headerText="Dia Final" dataField="col2" width="70"/>
                                   <mx:DataGridColumn headerText="Mês Referência" dataField="col3" width="100"/>
                                   <mx:DataGridColumn headerText="Ano Referência" dataField="col4" width="100"/>
                                   <mx:DataGridColumn headerText="Comarca" dataField="col5" width="300"/>
                                   <mx:DataGridColumn headerText="Promotoria" dataField="col6" width="300"/>
                                   <mx:DataGridColumn headerText="Classificação" dataField="col7" width="200"/>
                                   <mx:DataGridColumn headerText="Opções">
                                     <mx:itemRenderer>
                                               <mx:Component>      
                                              <mx:Button label="Enviar" />                       
                                               </mx:Component>
                                            </mx:itemRenderer> 
                                   </mx:DataGridColumn>
                             </mx:columns>
                       </mx:DataGrid>
                 </mx:AddChild>
           </mx:State> 
      </mx:states>
     
      <mx:VBox id="feitos" width="0" height="0">
        <mx:Panel id="abertos" width="0" height="0" title="Relatórios Abertos">
      <!--
            <mx:ControlBar>
             
            </mx:ControlBar>
      -->
         </mx:Panel>
        
        <mx:Panel id="enviados" width="0" height="0" title="Relatórios Enviados">
         <!--   <mx:ControlBar>
             
            </mx:ControlBar> -->
         </mx:Panel>
        
          <mx:Panel id="formulario" width="0" height="0" title="Formulário">
             <local:cabecalho/> <!-- INCLUIDO AQUI -->
            
          </mx:Panel>
         <mx:Spacer height="2%"/>
         <mx:Panel id="ciente" width="0" height="0" title="Cientes de sentença">
             <local:rodape/>
         </mx:Panel>
      </mx:VBox> 
       <mx:Panel id="Relatorio" title="Relatório de Atividades" height="0" width="0">
                <mx:Canvas width="100%" height="100%"><cmp:Materias id="materias"/></mx:Canvas>
                <mx:HBox id="hbox1" verticalAlign="center" horizontalAlign="center" height="5%">
                  <mx:Button label="Cadastrar" click="cadastraDadosRelatorio()"/>
                  <mx:Button label="Atualizar" click="cb.exibeCombobox();"/>                   
                </mx:HBox> 
      </mx:Panel>             
</mx:Application>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
---------------------------------------------cabecalho.mxml----------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="555" height="152" backgroundColor="#F2FEC5" creationComplete="SolicitaDados()" xmlns:dropdown="componentes.*">
      <mx:Script>
   <![CDATA[
    import mx.controls.Alert;
    import mx.rpc.events.ResultEvent;
    import mx.rpc.events.FaultEvent;
   [Bindable]
   public var anos:Array=[2009,2010,2011];
   [Bindable]
   public var dias:Array=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
  
   [Bindable]
   public var promotorias:ArrayCollection=new ArrayCollection();
  
   public function BuscaPromotorias(event:ResultEvent):void{
    promotorias=event.result.promotorias.promotoria;
   }
   [Bindable]
   public var promotores:ArrayCollection=new ArrayCollection();
  
   public function BuscaPromotores(event:ResultEvent):void{
     promotores=event.result.promotores.promotor; 

   }
  
   [Bindable]
   public var designacao:ArrayCollection=new ArrayCollection();
  
   public function BuscaDesignacao(event:ResultEvent):void{
    designacao=event.result.designacoes.designacao;
   }
  
   public function SolicitaDados():void{
    Designacao.send();
    Promotor.send();
    Promotoria.send();                
   }
  
   //MÉTODOS PARA SEREM USADOS NO CADASTRAMENTO
   public function ResultadocadastraDados(event:ResultEvent):void{
      var texto:String=String(event.result);
      Alert.show(texto,"Cadastrar");
       //Alert.show("Cadastro Efetuado com Sucesso!","Cadastrar");
   
   }
  
   public function cadastraDados():void{
    insCabecalho.send();
   }
  
   public function ErroCadastro(event:FaultEvent):void{
     Alert.show("[ERRO] - Cadastro Não realizado!!");
   }
  
  
  public function exibeCombobox():void{

    
     if(listPromotores == null) { Alert.show("Cade o combo?"); }
           else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }
           else Alert.show(listPromotores.selectedItem.promotor);
   //var texto:String=listPromotores.labelField;
   //Alert.show("o indice é "+texto,"conteúdo");
  }
     ]]>
    </mx:Script>
    <!--EXECUTA A INSERÇÃO DO CABEÇALHO DO RELATÓRIO-->
      <mx:HTTPService id="insCabecalho" url="bd/inserir/cabecalho.asp" method="POST" result="ResultadocadastraDados(event)" fault="ErroCadastro(event)">
      <mx:request xmlns="">
        <promotor>{listPromotores.selectedItem.id}</promotor>
        <classificacao>{designa.selectedItem.id}</classificacao>
        <promotoria>{comProm.selectedItem.id}</promotoria>
         <mesReferencia>{mesRef.selectedItem.data}</mesReferencia>
         <diaInicial>{diaI.selectedLabel.toString()}</diaInicial>
      </mx:request>
    </mx:HTTPService>
     
    <!--LISTA AS INFORMAÇÕES-->
    <mx:HTTPService id="Designacao" url="bd/classificacao.asp" result="BuscaDesignacao(event)" />
    <mx:HTTPService id="Promotor" url="bd/promotores.asp" result="BuscaPromotores(event)" />
    <mx:HTTPService id="Promotoria" url="bd/promotorias.asp" result="BuscaPromotorias(event)" />
   
           
    <mx:ArrayCollection source="{anos}" id="Ano"/>
    <mx:ArrayCollection source="{dias}" id="Dia"/>
   
   
    <mx:HBox width="100%" backgroundColor="#CCCC00">
     <mx:Label text="IDENTIFICAÇÃO DO PROMOTOR" textAlign="center" width="100%"/>
     <mx:Label text="" id="teste"/>
    </mx:HBox>
  
    <mx:HBox width="100%" backgroundColor="#F2FEC5">
    <mx:Label text="Promotor(a):"/>
    <mx:ComboBox width="466" dataProvider="{promotores}" fontWeight="normal" id="listPromotores" prompt="Selecione o(a) Promotor(a)"/>
    </mx:HBox>
   
    <mx:HBox width="100%" backgroundColor="#CCCC00">
    <mx:Label text="CLASSIFICAÇÃO DO EXERCÍCIO"/>
    <mx:Spacer width="100%"/>
    <mx:Label text="IDENTIFICAÇÃO DA PROMOTORIA (Comarca/Promotoria)" width="329" textAlign="right"/>
    </mx:HBox>
   
    <mx:HBox width="100%" backgroundColor="#F2FEC5">
  
 <mx:ComboBox id="designa" width="227" dataProvider="{designacao}" fontWeight="normal" prompt="Selecione a Designação"/>
 <!-- <dropdown:XMLComboBox width="227" prompt="selecione a designação" xmlFile="gera_responsaveis.asp" id="designa"/> -->
    <mx:Spacer width="100%"/>
    <mx:ComboBox id="comProm" width="311" dataProvider="{promotorias}"  fontWeight="normal" prompt="Selecione a Promotoria"/>
    </mx:HBox>
   
    <mx:HBox width="100%" backgroundColor="#CCCC00">
    <mx:Label text="PERÍODO DE REFERÊNCIA" textAlign="center" width="100%"/>
    </mx:HBox>
   
    <mx:HBox width="100%">
    <mx:Label text="Ano:"/>
    <mx:ComboBox width="76" dataProvider="{Ano}" fontWeight="normal" id="lstAno"/>
    
   
       <mx:Label text="Mês:"/> 
       <mx:ComboBox width="122" id="mesRef" fontWeight="normal">
        <mx:ArrayCollection>
         <mx:Object label="JANEIRO" data="1"/>
         <mx:Object label="FEVEREIRO" data="2"/>
         <mx:Object label="MARÇO" data="3"/>
         <mx:Object label="ABRIL" data="4"/>
         <mx:Object label="MAIO" data="5"/>
         <mx:Object label="JUNHO" data="6"/>
         <mx:Object label="JULHO" data="7"/>
         <mx:Object label="AGOSTO" data="8"/>
         <mx:Object label="SETEMBRO" data="9"/>
         <mx:Object label="OUTUBRO" data="10"/>
         <mx:Object label="NOVEMBRO" data="11"/>
         <mx:Object label="DEZEMBRO" data="12"/> 
        </mx:ArrayCollection>
       </mx:ComboBox>
   
    <mx:Label text="Dia Inicial:"/>
    <mx:ComboBox width="58" dataProvider="{Dia}" fontWeight="normal" id="diaI"/>
   
    <mx:Label text="Dia Final:"/>
    <mx:ComboBox width="55" dataProvider="{Dia}" fontWeight="normal" id="diaF"/>
    </mx:HBox>
</mx:VBox>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2009/11/20 J.C.Ködel <jck...@gmail.com>

Rafael

unread,
Nov 24, 2009, 2:57:56 PM11/24/09
to fle...@googlegroups.com
Após o selectedItem para passar o atributo desejado utilize o @ antes do atributo.

      <mx:request xmlns="">
        <promotor>{listPromotores.selectedItem.@id}</promotor>
        <classificacao>{designa.selectedItem.@id}</
classificacao>
        <promotoria>{comProm.selectedItem.@id}</promotoria>
         <mesReferencia>{mesRef.selectedItem.@data}</mesReferencia>

         <diaInicial>{diaI.selectedLabel.toString()}</diaInicial>
      </mx:request>


2009/11/24 Collin Peterson Mendes Chaves <collinp...@gmail.com>



--
At. Rafael Amaro
Develop Web
Profile:
http://twitter.com/RafaelAmaro

"Viver a vida é superar os desafios e nunca desistir quando disserem que é impossível."

Collin Peterson Mendes Chaves

unread,
Nov 24, 2009, 3:11:29 PM11/24/09
to fle...@googlegroups.com
   [Bindable]
   public var designacao:ArrayCollection=new ArrayCollection();
  
   public function BuscaDesignacao(event:ResultEvent):void{
    designacao=event.result.designacoes.designacao;
   }
  
   public function SolicitaDados():void{
    Designacao.send();
    Promotor.send();
    Promotoria.send();                
   }
  
   //MÉTODOS PARA SEREM USADOS NO CADASTRAMENTO
   public function ResultadocadastraDados(event:ResultEvent):void{
      var texto:String=String(event.result);
      Alert.show(texto,"Cadastrar");
       //Alert.show("Cadastro Efetuado com Sucesso!","Cadastrar");
   
   }
  
   public function cadastraDados():void{
    insCabecalho.send();
   }
  
   public function ErroCadastro(event:FaultEvent):void{
     Alert.show("[ERRO] - Cadastro Não realizado!!");
   }
  
  
  public function exibeCombobox():void{
    
     if(listPromotores == null) { Alert.show("Cade o combo?"); }
           else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2009/11/20 J.C.Ködel <jck...@gmail.com>
Leia sobre creationPolicy.

Collin Peterson Mendes Chaves

unread,
Nov 24, 2009, 3:29:36 PM11/24/09
to fle...@googlegroups.com
oi rafael, obrigado pela dica. :) porém queria frisar que testando a aplicação exibindo esse método:
 

public

function exibeCombobox():void{

if(listPromotores == null) { Alert.show("Cade o combo?"); }

else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }

else Alert.show(listPromotores.selectedItem.promotor);

//var texto:String=listPromotores.labelField;

//Alert.show("o indice é "+texto,"conteúdo");

}

vejo , que o alert.show "cade o combo?" é exibida, é como se o componente não fosse criado.

2009/11/24 Rafael <rafael...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 24, 2009, 4:11:52 PM11/24/09
to fle...@googlegroups.com
oi rafael, obrigado pela dica. :) porém queria frisar que testando a aplicação exibindo esse método:
 

public

function exibeCombobox():void{

if(listPromotores == null) { Alert.show("Cade o combo?"); }

else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }

else Alert.show(listPromotores.selectedItem.promotor);

//var texto:String=listPromotores.labelField;

//Alert.show("o indice é "+texto,"conteúdo");

}

vejo , que o alert.show "cade o combo?" é exibida, é como se o componente não fosse criado.

2009/11/24 Rafael <rafael...@gmail.com>
Após o selectedItem para passar o atributo desejado utilize o @ antes do atributo.

Collin Peterson Mendes Chaves

unread,
Nov 24, 2009, 4:15:57 PM11/24/09
to fle...@googlegroups.com
   [Bindable]
   public var designacao:ArrayCollection=new ArrayCollection();
  
   public function BuscaDesignacao(event:ResultEvent):void{
    designacao=event.result.designacoes.designacao;
   }
  
   public function SolicitaDados():void{
    Designacao.send();
    Promotor.send();
    Promotoria.send();                
   }
  
   //MÉTODOS PARA SEREM USADOS NO CADASTRAMENTO
   public function ResultadocadastraDados(event:ResultEvent):void{
      var texto:String=String(event.result);
      Alert.show(texto,"Cadastrar");
       //Alert.show("Cadastro Efetuado com Sucesso!","Cadastrar");
   
   }
  
   public function cadastraDados():void{
    insCabecalho.send();
   }
  
   public function ErroCadastro(event:FaultEvent):void{
     Alert.show("[ERRO] - Cadastro Não realizado!!");
   }
  
  
  public function exibeCombobox():void{
    
     if(listPromotores == null) { Alert.show("Cade o combo?"); }
           else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

2009/11/20 J.C.Ködel <jck...@gmail.com>
Leia sobre creationPolicy.

Rafael

unread,
Nov 24, 2009, 5:05:59 PM11/24/09
to fle...@googlegroups.com

verifica se o dataProvider do combo esta nulo e para apresentar o promotor de um "as String"


public

function exibeCombobox():void{

if(listPromotores.dataProvider == null) { Alert.show("Cade o combo?"); }

else if(listPromotores.selectedItem == null) { Alert.show("Eita tio, seleciona o treco no combo ae!"); }

else Alert.show(listPromotores.selectedItem.promotor as String);

//var texto:String=listPromotores.labelField;

//Alert.show("o indice é "+texto,"conteúdo");

}


2009/11/24 Collin Peterson Mendes Chaves <collinp...@gmail.com>

J.C.Ködel

unread,
Nov 24, 2009, 5:14:29 PM11/24/09
to fle...@googlegroups.com
Desculpe, só deu pra ver o código agora.
 
Poxa, mas é claro que o combo é nulo!
 
Você instancia uma variável chamada cb e quer acessar componentes de dentro dele =( Pode não =(
 
Os componentes são criados somente quando o componente-pai é inserido dentro de um componente visível na tela.
 
Só instanciar o componente (public var cb:cabecalho = new cabecalho();) não implica na criação de nenhum dos seus filhos (ergo, sua null exception).
 
Tente, durante a inicialização desta parte, chamar cb.createChildren() (não sei se essa função pode ser chamada ou se funciona).
 
Mas o correto mesmo é inserir teu componente na tela.

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 7:02:14 AM11/25/09
to fle...@googlegroups.com
oi JC, obrigado pela resposta. cada comentário seu  as coisas vão clareando melhor, mas se vc perceber no código eu insiro o componente como é mostrado em negrito no código <local:cabecalho />. eu criei esse trecho (public var cb:cabecalho = new cabecalho()) para usar os métodos dele, de inserção entende? não soube como usar na aplicação os métodos do componente.
 
obrigado também rafael, seus comentários tb são valiosos. eu na verdade estou me aventurando no flex, comecei a desenvolver uma ferramenta e ir aprendendo durante o desenvolvimento, agora to eu aqui com prazo curto pra entregar projeto e empancado rssrsrsr

2009/11/24 J.C.Ködel <jck...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 7:13:05 AM11/25/09
to fle...@googlegroups.com
oi JC, obrigado pela resposta. cada comentário seu  as coisas vão clareando melhor, mas se vc perceber no código eu insiro o componente como é mostrado em negrito no código <local:cabecalho />. eu criei esse trecho (public var cb:cabecalho = new cabecalho()) para usar os métodos dele, de inserção entende? não soube como usar na aplicação os métodos do componente.
 
obrigado também rafael, seus comentários tb são valiosos. eu na verdade estou me aventurando no flex, comecei a desenvolver uma ferramenta e ir aprendendo durante o desenvolvimento, agora to eu aqui com prazo curto pra entregar projeto e empancado rssrsrsr

2009/11/24 J.C.Ködel <jck...@gmail.com>
Desculpe, só deu pra ver o código agora.

Rafael

unread,
Nov 25, 2009, 7:13:50 AM11/25/09
to fle...@googlegroups.com
Collin, o que vc pode fazer que deve resolver este seu problema é no evento createComplement ou no initialize vc criar uma função para adicionar o objeto cb ao painel, ao invez de adiciona-lo através de codigo xml "<local:cabecalho />", sendo assim vc vai conseguir acessar os métodos e os objetos com valores.

ex.: para pegar o valor no combo ficaria cb.listPromotor.selectedItem.@promotor, como o objeto está criado e adicionado a sua view vc consegue obter os valores



2009/11/25 Collin Peterson Mendes Chaves <collinp...@gmail.com>
Twitter - http://twitter.com/RafaelAmaro
FacebBook - www.facebook.com/rafael.treezy

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 7:20:41 AM11/25/09
to fle...@googlegroups.com
oi JC, deu certoooo!!! ao invés de criar (public var cb:cabecalho = new cabecalho()) eu simplesmente uso , <local:cabecalho  id="cb" />.
obrigado pelas dicas, abraço!!
 
vou colocar agora a mão na massa! 
2009/11/25 Rafael <rafael...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 2:37:42 PM11/25/09
to fle...@googlegroups.com
OI, eu aqui de novo rssr. blz JC? gostaria de saber se vc já tentou acessar um objeto que está dentro de outro objeto? deixe-me explica meu caso:
no arquivo principal da aplicação eu tenho uma estrutura tipo:
 

<cmp:Materias

id="materias"/>
e dentro do arquivo Materias.mxml eu tenho (vou reduzir o arquivo, para mostrar melhor o que pretendo acessar):
 
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="794" height="538" xmlns:cmp="componentes.*">
 <mx:LinkBar dataProvider="{viewstack1}" color="#000000" direction="vertical"/>
    <mx:ViewStack id="viewstack1" width="100%" height="100%">
         <mx:Canvas label="Questões Trabalhistas" width="100%" height="100%" id="Trabalhistas"><cmp:QuestoesTrabalhistas height="531" width="580" x="1" id="ObjQT"/></mx:Canvas>
     <mx:Canvas label="Eleitoral" width="100%" height="100%" id="Eleitoral"><cmp:Eleitoral height="531" width="580" x="1"/></mx:Canvas>
    </mx:ViewStack>
</mx:HBox>
 
o codigo em negrito abaixo eu usso para acessar o método de cadastrar atividades como exibido:
var c:Array=materias.Trabalhistas.childDescriptors;               
var obj:QuestoesTrabalhistas=c[0].valueOf() as QuestoesTrabalhistas;
obj.CadastraAtividadesTrabalhista();
 
porém eu obtenho o seguinte erro (que me é familiar rsrsr):
 
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
 at proRelatorioCorregedoria/cadastraDadosRelatorio()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:32]
 at proRelatorioCorregedoria/___proRelatorioCorregedoria_Button2_click()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:140]
 
detalhe é que quando dou um alert.show em materias.Trabalhistas.childDescriptors.length ele me retorna 1, o que me leva a crer que o objeto filho 'QuestoesTrabalhistas' foi recuperado, porém náo consigo acessar seu método, o que poderá ser?

Rafael

unread,
Nov 25, 2009, 2:48:31 PM11/25/09
to fle...@googlegroups.com
se vc já tem o objeto "objQT" pq nao acessa o metodo de cadastrar direto do mesmo, ao invés de criar um novo objeto para isso:
objQT.CadastraAtividadesTrabalhista();
Develop Web - Flex/Php/Java

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 2:50:23 PM11/25/09
to fle...@googlegroups.com
OI, eu aqui de novo rssr. blz JC? gostaria de saber se vc já tentou acessar um objeto que está dentro de outro objeto? deixe-me explica meu caso:
no arquivo principal da aplicação eu tenho uma estrutura tipo:
 

<cmp:Materias

id="materias"/>
e dentro do arquivo Materias.mxml eu tenho (vou reduzir o arquivo, para mostrar melhor o que pretendo acessar):
 
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="794" height="538" xmlns:cmp="componentes.*">
 <mx:LinkBar dataProvider="{viewstack1}" color="#000000" direction="vertical"/>
    <mx:ViewStack id="viewstack1" width="100%" height="100%">
         <mx:Canvas label="Questões Trabalhistas" width="100%" height="100%" id="Trabalhistas"><cmp:QuestoesTrabalhistas height="531" width="580" x="1" id="ObjQT"/></mx:Canvas>
     <mx:Canvas label="Eleitoral" width="100%" height="100%" id="Eleitoral"><cmp:Eleitoral height="531" width="580" x="1"/></mx:Canvas>
    </mx:ViewStack>
</mx:HBox>
 
o codigo em negrito abaixo eu usso para acessar o método de cadastrar atividades como exibido:
var c:Array=materias.Trabalhistas.childDescriptors;               
var obj:QuestoesTrabalhistas=c[0].valueOf() as QuestoesTrabalhistas;
obj.CadastraAtividadesTrabalhista();
 
porém eu obtenho o seguinte erro (que me é familiar rsrsr):
 
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
 at proRelatorioCorregedoria/cadastraDadosRelatorio()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:32]
 at proRelatorioCorregedoria/___proRelatorioCorregedoria_Button2_click()[C:\Documents and Settings\collin\My Documents\Flex Builder 3\proRelatorioCorregedoria\src\proRelatorioCorregedoria.mxml:140]
 
detalhe é que quando dou um alert.show em materias.Trabalhistas.childDescriptors.length ele me retorna 1, o que me leva a crer que o objeto filho 'QuestoesTrabalhistas' foi recuperado, porém náo consigo acessar seu método, o que poderá ser?
 
 
 

 

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 3:05:03 PM11/25/09
to fle...@googlegroups.com
oi rafael, bem eu vou tentar acessar direto. o que me fez agir assim é pq na aplicação eu carrego o conteúdo de materias e não o do objeto, o que me levou a pensar que eu precisaria fazer algo do tipo: objetomateria.objqt.metodo algo assim:
 
mas acho que entendi sua ideia. no arquivo materias.mxml eu chamo o metodo ObjQT.cadastra...()
 

<mx:Script>

<![CDATA[

public function cadastraAtividadesMateria():void{

ObjQT.CadastraAtividadesTrabalhista();

}

]]>

 

e na application eu chamo materias.cadastraAtividadesMateria(), blz vou tentar. é uma boa idéia

2009/11/25 Rafael <rafael...@gmail.com>

Collin Peterson Mendes Chaves

unread,
Nov 25, 2009, 4:17:13 PM11/25/09
to fle...@googlegroups.com
oi rafael, bem eu vou tentar acessar direto. o que me fez agir assim é pq na aplicação eu carrego o conteúdo de materias e não o do objeto, o que me levou a pensar que eu precisaria fazer algo do tipo: objetomateria.objqt.metodo algo assim:
 
mas acho que entendi sua ideia. no arquivo materias.mxml eu chamo o metodo ObjQT.cadastra...()
 

<mx:Script>

<![CDATA[

public function cadastraAtividadesMateria():void{

ObjQT.CadastraAtividadesTrabalhista();

}

]]>

 

e na application eu chamo materias.cadastraAtividadesMateria(), blz vou tentar. é uma boa idéia

2009/11/25 Rafael <rafael...@gmail.com>
se vc já tem o objeto "objQT" pq nao acessa o metodo de cadastrar direto do mesmo, ao invés de criar um novo objeto para isso:
Reply all
Reply to author
Forward
0 new messages