Ja sei, ja sei..... vou fazer assim primeiro faço o uploader do arquivo. depois chamo a webservice e processo o arquivo e ja trago o retorno de uma so vez do que ja esperar ele processar... mais ou menos como o Rogerio falo. 2011/1/5 Helio Antonio Francisco Silva <[email protected]>
> Problema rogerio que clipper pela web e bem precario entao tenho de > construir uma casa com pedras e gravetos. > Estou usando sim o evento COMPLETE mas como voce falo ali em cima @Pablo > Souza ele chama quando eu faço o Upload e nao quando eu executo todo o meu > processo. > > Vou postar meu codigo aqui > <?xml version="1.0" encoding="utf-8"?> > <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" > xmlns:s="library://ns.adobe.com/flex/spark" > xmlns:mx="library://ns.adobe.com/flex/mx" width="100%" height="100%" > creationComplete="initApp()" > > <fx:Declarations> > <s:RadioButtonGroup id="grup_carga_fazer"/> > <!-- Place non-visual elements (e.g., services, value objects) here --> > </fx:Declarations> > <fx:Script> > <![CDATA[ > import mx.managers.PopUpManager; > import mx.controls.Alert; > import mx.core.IVisualElement; > import mx.controls.ProgressBar; > import flash.net.FileReference; > import mx.controls.Alert; > > > private var fileRef:FileReference; > > private const FILE_UPLOAD_URL:String = " > http://ip.ip.ip.ip:8080/pp/u_upCargas.apw"; > private var percent:Number = 0; > private var percentFull :Number = 100; > private var regradeTres:Number = 0; > > private function handleCloseEvent():void { > PopUpManager.removePopUp(this); > } > > public function initApp():void{ > //Inicializa o controle de Upload de arquivos > fileRef = new FileReference(); > fileRef.addEventListener(Event.SELECT, fileRef_select); > fileRef.addEventListener(ProgressEvent.PROGRESS, fileRef_progress); > fileRef.addEventListener(Event.COMPLETE, fileRef_complete); > > //Esconde o segundo Grupo > group_caminho.visible = false; > group_caminho.includeInLayout = false; > } > > public function setDataContrato(crt:String, crtNome:String, > crtTp:String):void{ > CCUA_NumContrat.text = crt; > CCUA_Nome.text = crtNome; > CCUA_tipoContrato.text = crtTp; > } > private function abrefechaCaminho(tp:Number):void{ > if(tp == 1){ > group_caminho.visible = false; > group_caminho.includeInLayout = false; > }else if(tp == 2){ > browseAndUpload(); > } > } > > //PARTE DE UPLOAD > ============================================================================= > private function browseAndUpload():void { > fileRef.browse(); > } > > private function fileRef_select(evt:Event):void { > > try { > fileRef.upload(new URLRequest(FILE_UPLOAD_URL)); > group_caminho.visible = true; > group_caminho.includeInLayout = true; > } catch (err:Error) { > pBar.label = "ERROR: zero-byte file"; > } > } > > private function fileRef_progress(evt:ProgressEvent):void { > pBar.visible = true; > pBar.mode = "manual"; > regradeTres = Math.ceil(((evt.bytesLoaded*100)/ evt.bytesTotal)); > pBar.setProgress(regradeTres, percentFull); > pBar.label = Math.ceil(((evt.bytesLoaded*100)/ evt.bytesTotal))+"% de > "+percentFull+"%"; > if(regradeTres >= 100){ > pBar.label = "Upload Completo, aguarde!!!"; > } > } > > private function fileRef_complete(evt:Event):void { > pBar.visible = false; > group_caminho.visible = false; > group_caminho.includeInLayout = false; > Alert.show("Arquivo carregado para o servidor","Arquivo carregado para > o servidor."); > } > ]]> > </fx:Script> > <s:TitleWindow close="handleCloseEvent();" width="884" height="526" > horizontalCenter="0" verticalCenter="-37" id="PainelCargaContratosUpload" > title="Carga de Cartões e Upload de Arquivos"> > <s:VGroup x="0" y="0" width="100%" height="100%"> > <s:HGroup width="100%" height="85"> > <mx:Form width="100%" height="83"> > <mx:FormHeading label="Informações Referentes ao Contrato"/> > <mx:FormItem width="937" paddingTop="5"> > <s:HGroup width="100%" height="100%"> > <s:Label x="19" y="4" text="Contrato:" fontWeight="bold"/> > <s:Label text="------" id="CCUA_NumContrat"/> > <mx:Spacer width="15"/> > <s:Label text="Nome:" fontWeight="bold"/> > <s:Label text="--------- ------- --------" id="CCUA_Nome"/> > <mx:Spacer width="15"/> > <s:Label text="Tipo do Contrato:" fontWeight="bold"/> > <s:Label text="--------- ------- --------" > id="CCUA_tipoContrato"/> > </s:HGroup> > </mx:FormItem> > </mx:Form> > </s:HGroup> > <s:HGroup width="100%" height="100%"> > <s:VGroup width="172" height="100%" paddingLeft="9" paddingTop="5"> > <s:Label text="O que você deseja fazer ?" width="149" paddingTop="5" > textAlign="center"/> > <s:RadioButton label="Carregar ultima carga " > click="abrefechaCaminho(1);" value="1" groupName="grup_carga_fazer"/> > <s:RadioButton label="Fazer uma nova carga" > click="abrefechaCaminho(2);" value="2" groupName="grup_carga_fazer"/> > <s:VGroup width="161" height="52" paddingLeft="2" paddingTop="2" > id="group_caminho"> > <mx:ProgressBar id="pBar" visible="true" x="85" y="0" > labelPlacement="top" minimum="1" maximum="100" width="153"/> > </s:VGroup> > <mx:HRule width="100%"/> > <s:Button label="Aplicar Carga"/> > </s:VGroup> > <s:VGroup width="100%" height="100%" paddingLeft="2" paddingRight="2" > paddingTop="2" paddingBottom="2"> > <mx:DataGrid width="698" height="367" paddingRight="2" > paddingBottom="2" paddingLeft="2" paddingTop="2"> > <mx:columns> > <mx:DataGridColumn headerText="Column 1" dataField="col1"/> > <mx:DataGridColumn headerText="Column 2" dataField="col2"/> > <mx:DataGridColumn headerText="Column 3" dataField="col3"/> > </mx:columns> > </mx:DataGrid> > </s:VGroup> > </s:HGroup> > </s:VGroup> > </s:TitleWindow> > </s:Group> > so troca ro endereço ipipipip por um endereço pra fazer o upload por > exemplo. > > 2011/1/5 Rogério Casal <[email protected]> > >> Cara muito legal sua dúvida, seguinte: >> 1º A responsabilidade dessa chamada da webservice vai se iniciar no >> frontEnd ou apenas no backend? >> 2º Vc pode seguir a seguinte seguencia, Carregar o arquivo, chamar metodo >> para persistir os dados no banco(se entendi certo vc quer gravar no Banco) e >> no result do metodo de gravação de dados, vc pode chamar a webService. >> >> observações a serem consideradas, utilize um metodo de result do >> remoteObject no backend vc coloca retornando um boolean para dizer se >> persistio ou não. Então quando vc chamar a webService terá certeza que os >> dados foram inseridos no banco de dados. evitando problemas com >> assicronismo. >> >> espero ter compreendido sua dúvida. >> >> >> Em 5 de janeiro de 2011 16:34, Helio Antonio Francisco Silva < >> [email protected]> escreveu: >> >> Entao rogerio meu problema e o seguinte. >>> >>> digamos que eu tenho um arquivo texto de 15 mil usuarios para serem >>> carregados para o sistema. >>> Primeiro eu faço o Upload ate ai molezinha... >>> >>> Quando eu terminar o Upload eu vou startar uma webservice para trazer os >>> primeiro 50 registros dos 15 mil... para paginar caso o usuario precise... >>> mas quem me garante que quando eu terminei o Upload o meu programa no caso >>> uma pagina web ja inserido tudo na tabela... por que no programa que eu faço >>> o Upload eu ja jogo tudo dentro a onde precisa. >>> >>> Entao eu queria saber. o quando terminar a minha rotina de Upload e >>> inserir no banco ja posso chamar a webservice que nao vai dar problema ??? >>> >>> exemplo >>> * >>> >>> private >>> **const* FILE_UPLOAD_URL:String =" * >>> http://ip.ip.ip.ip:8080/pp/u_upCargas.apw"*;* >>> >>> try >>> *{ >>> fileRef.upload(*new* URLRequest(FILE_UPLOAD_URL)); >>> group_caminho.visible = *true*; >>> group_caminho.includeInLayout = *true*; >>> } *catch* (err:Error) { >>> pBar.label = *"ERROR: zero-byte file"*; >>> } >>> >>> esse Upload so vai terminar nao quando eu enviar o arquivo mas sim quando >>> eu enviar e processar o que eu tenho de processar ? >>> essa e minha duvida >>> >>> >>> >>> 2011/1/5 Rogério Casal <[email protected]> >>> >>> Bom, eu acredito que seja sincrono, pois se não fosse a referencia sempre >>>> seria nula, mas existem particularidades de situações se vc estiver com >>>> problemas em carregamento de arquivo posta para que possamos avaliar. >>>> >>>> att.: >>>> Rogério Casal >>>> Software Developer >>>> Fone: 81 8805-4303 >>>> www.rogeriocasal.com.br >>>> >>>> >>>> Em 5 de janeiro de 2011 16:11, Helio Antonio Francisco Silva < >>>> [email protected]> escreveu: >>>> >>>>> Procurei e nao achei... >>>>> alguem poderia me dizer isso ? >>>>> >>>>> -- >>>>> *Hélio Antonio Fransico Silva* >>>>> Desenvolvedor web >>>>> Certificado Flash developer >>>>> Certificado Flash Design >>>>> Certificado web developer >>>>> Consultor Microsiga / Totvs >>>>> Desenvolvedor ADVPL / ASP >>>>> Analista de sistemas e ERP Sênior. >>>>> >>>>> -- >>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>>> Para enviar uma mensagem, envie um e-mail para >>>>> [email protected] >>>>> 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 >>>> >>>> >>>> >>>> >>>> -- >>>> Rogério Casal >>>> Software Developer >>>> Fone: 81 8805-4303 >>>> www.rogeriocasal.com.br >>>> >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para [email protected] >>>> 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 >>> >>> >>> >>> >>> -- >>> *Hélio Antonio Fransico Silva* >>> Desenvolvedor web >>> Certificado Flash developer >>> Certificado Flash Design >>> Certificado web developer >>> Consultor Microsiga / Totvs >>> Desenvolvedor ADVPL / ASP >>> Analista de sistemas e ERP Sênior. >>> >>> -- >>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>> Para enviar uma mensagem, envie um e-mail para [email protected] >>> 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 >>> >> >> >> >> -- >> Rogério Casal >> Software Developer >> Fone: 81 8805-4303 >> www.rogeriocasal.com.br >> >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para [email protected] >> 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 >> > > > > -- > *Hélio Antonio Fransico Silva* > Desenvolvedor web > Certificado Flash developer > Certificado Flash Design > Certificado web developer > Consultor Microsiga / Totvs > Desenvolvedor ADVPL / ASP > Analista de sistemas e ERP Sênior. > > -- *Hélio Antonio Fransico Silva* Desenvolvedor web Certificado Flash developer Certificado Flash Design Certificado web developer Consultor Microsiga / Totvs Desenvolvedor ADVPL / ASP Analista de sistemas e ERP Sênior. -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] 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
