Pessoal, to fazendo um esquema no AIR, que eu leio um arquivo CSV e crio um
arraycollection, super facil. Meu problema:
Antes de eu mandar extrair os dados do meu arquivo CSV e converter em
arrayCollection eu queria abrir um popup com uma tela personalizada e
quando termina-se eu fecharia, se nao o usuario dependendo do arquivo de
50.000 linhas demora uns 10s, e nao queria que ele fica-se olhando pro teto
sem saber o que ta rolando. mas INFELIZMENTE nao sei por que nao consigo
fazer o popup aparecer quando converto o array. ja ate botei um wait
function pra esperar 2 segundos antes de começar ler o array mas mesmo
assim nao adianta, vou postar o codigo aqui.
//Nessa função validar os itens do arquivo
private function importarValidarFile():void{
var waitPanel:AguardeProcessandoCustomizado = new
AguardeProcessandoCustomizado();
PopUpManager.addPopUp(waitPanel, waitPanel as DisplayObject, true);
PopUpManager.centerPopUp(waitPanel);
this.allDocsValidarImportacao = parseCSV(contudoCSV);
for(var x:Number = 0;x<this.allDocsValidarImportacao.length;x++){
var objLinha:Object = this. allDocsValidarImportacao[x];
if(Boolean(allDocsValidarImportacao[x].CODIGODEBARRAS)){
if(!Utils.checkCodBarraSize(this.allDocsValidarImportacao[x].CODIGODEBARRAS)){
allDocsValidarImportacao[x].LINHA = x;
allDocsValidarImportacao[x].ERRO = true;
allDocsValidarImportacao[x].MSGERRO = 'Codigo de Barras e
maior do que 13 caracteres favor verificar';
continue;
}
if(!Utils.checkCodNumeric(this.allDocsValidarImportacao[x].CODIGODEBARRAS)){
allDocsValidarImportacao[x].LINHA = x;
allDocsValidarImportacao[x].ERRO = true;
allDocsValidarImportacao[x].MSGERRO = 'Codigo de Barras tem
caracteres que não são numericos';
continue;
}
}
}
allDocsValidarImportacao.refresh();
//PopUpManager.removePopUp(waitPanel);
}
private function parseCSV(_content:String):ArrayCollection{
//create temporary array to store the Orders
var csvArray:ArrayCollection = new ArrayCollection();
//break the csv into individual lines ---
var csvLines:Array = _content.split(String.fromCharCode(13,10));
//remove title row
//csvLines.splice(0,1);
var x:Number = 0;
//loop over each line
var totalLinhas = csvLines.length;
//Calcular o progress bar
allDocsValidarImportacaoDupli = new ArrayCollection();
for each(var s:String in csvLines){
s = Utils.limparString(s);
var lineItems:Array = s.split(";");
var error:Boolean = false;
var mesageError:String = '';
if(lineItems.length != 17){
error = true;
mesageError = 'Linha: '+x+' O numero de colunas esta diferente
de 17!';
}
csvArray.addItem(
{CODIGODEBARRAS: (lineItems[0]) ? lineItems[0] : '' ,
CODIGONOCLIENTE: (lineItems[1]) ? lineItems[1] : '' ,
NCM: (lineItems[2]) ? lineItems[2] : '' ,
DESCRICAO: (lineItems[3]) ? lineItems[3] : '' ,
CSTICMS: (lineItems[4]) ? lineItems[4] : '' ,
ALIQUOTAICMS: (lineItems[5]) ? lineItems[5] : '' ,
PISENTRADA: (lineItems[6]) ? lineItems[6] : '' ,
ALIQUOTADEENTRADA: (lineItems[7]) ? lineItems[7] : '' ,
PISDESAIDA: (lineItems[8]) ? lineItems[8] : '',
ALIQUOTADESAIDA: (lineItems[9]) ? lineItems[9] : '' ,
COFINSDEENTRADA: (lineItems[10]) ? lineItems[10] : '',
ALIQUOTADEENTRADA2: (lineItems[11]) ? lineItems[11] : '',
COFINSDESAIDA: (lineItems[12]) ? lineItems[12] : '',
ALIQUOTADESAIDA2: (lineItems[13]) ? lineItems[13] : '',
UM: (lineItems[14]) ? lineItems[14] : '' ,
TIPODEMEDICAMENTO: (lineItems[15]) ? lineItems[15] : '' ,
LISTA: (lineItems[16]) ? lineItems[16] : '',
ERRO:error,
MSGERRO:mesageError,
LINHA:x});
x++;
}
return csvArray;
}
como viram eu comentei o removePopUp entao em teoria ele nao deveria sumir,
mas ele NEM aparece, agora se eu nao achamar essa funcao pra ler o conteudo
da variavel contudoCSV ai ele funciona normalmente =/ alguem sabe por que
isso ? sera que e tal rapido que nem aparece ?
Grato pela ajuda.
--
*Hélio Antonio Francisco 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
---
Você está recebendo esta mensagem porque se inscreveu no grupo "flexdev" dos
Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.