Comunidad de diseño web y desarrollo en internet online

como puedo solucionar RangeError: Index '36' specified is out of bound

Citar            
MensajeEscrito el 27 Sep 2013 02:13 pm
Como están amigos, quería pedirles ayuda, lo que pasa es que estoy tomando un dato de un arraycollection y asignando el id a un botón para cuando haga clic con ese botón, luego recupero ese id obtener sus demás registros, y añadirlos en un datagrid, pero me sale este error:

RangeError: Index '36' specified is out of bounds.
at mx.collections::ListCollectionView/getItemAt()[E:\dev\4.y\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:502]
at mx.collections::ListCollectionView/http://www.adobe.com/2006/actionscript/flash/proxy::getProperty()[E:\dev\4.y\frameworks\projects\framework\src\mx\collections\ListCollectionView.as:874]
at ComandasPos/itemgrupo()[E:\Michael\php\web\Solucion Empresarial v4\SigNumDesktop\src\ComandasPos.mxml:2100]

Porfavor pueden ayudarm, no logro entender este error.
El codigo donde hago lo que digo esta de la siguiente manera:
public function itemgrupo(event:MouseEvent):void{

COD_ITEM = int(String(event.currentTarget.id).substr(4, String(event.currentTarget.id).length));
var cantidad:Number = 1;
var existe:int = -1;
var precio:Number = new Number();
var valor:Number = new Number();
var descuento:Number = new Number();
var aux:String = new String();
var precioiva:Number = new Number();

var pos:int = 0;
for(var k:int = 0; k<dpitemsgrupos.length; k++)
{
if(COD_ITEM == dpitemsgrupos[k].ITE_CODIGO)
{
pos = k;
}
}

ITE_CODIGO=dpitemsgrupos[k].ITE_CODIGO;
ITE_BARRAS=dpitemsgrupos[k].ITE_BARRAS;
ITE_DESCRIPCION =dpitemsgrupos[k].ITE_DESCRIPCION;
ITE_PVP = dpitemsgrupos[k].ITE_PVP;
ITE_PVD = dpitemsgrupos[k].ITE_PVD;
ITE_PUNIT_IVA =dpitemsgrupos[k].ITE_PVPIVA;
ITE_TIPO = int(dpitemsgrupos[k].ITE_TIPO);
ITE_TARJETA = dpitemsgrupos[k].ITE_TARJETA;


if (ITE_TIPO == 5)
{
Alert.show("No puede adicionar este tipo de ítem","SigNum");
return;
}

for(var i:int = 0; i<dpcomanda.length; i++ )
{
if (dpcomanda[i].ITE_CODIGO == ITE_CODIGO)
{
existe = i;
}
}

var pvp:Number = Number(ITE_PVP);
precioiva = pvp * (1 + (Number(ITE_PUNIT_IVA)/100));
valor = cantidad * pvp;

if(emp_distinguir == 1 && existe >= 0)
{
cantidad = Number(dpitemsgrupos[existe].ODE_CANTIDAD) +1;
valor = cantidad * pvp;
//dpcomanda.setItemAt({ITE_CODIGO:ITE_CODIGO, ITE_BARRAS:dpcomanda[existe].ITE_BARRAS, USU_CODIGO: parentApplication.usuarioActivo.USU_CODIGO, ODE_CANTIDAD:cantidad.toFixed(parentApplication.emp_precision), ITE_DESCRIPCION:dpcomanda[existe].ITE_DESCRIPCION, ODE_IMPUESTO:dpcomanda[existe].ODE_IMPUESTO, ODE_PDISTRIBUIDOR:dpcomanda[existe].ODE_PDISTRIBUIDOR, ODE_PORCENTAJE:dpcomanda[existe].ODE_PORCENTAJE, ODE_DESCUENTO: dpcomanda[existe].ODE_DESCUENTO, ODE_PRECIO:pvp,ODE_PUNITARIO:dpcomanda[existe].ODE_PUNITARIO, ODE_PRECIOIVA:dpcomanda[existe].ITE_PVPIVA, ODE_VALOR:validaFormato.format(valor),ITE_EXISTENCIA:dpcomanda[existe].ITE_EXISTENCIA},existe);
dpcomanda.setItemAt({ITE_CODIGO: ITE_CODIGO, ITE_BARRAS: dpcomanda[existe].ITE_BARRAS, ITE_DESCRIPCION: dpcomanda[existe].ITE_DESCRIPCION, ODE_IMPUESTO:dpcomanda[existe].ODE_IMPUESTO,ODE_PDISTRIBUIDOR:dpcomanda[existe].ODE_PDISTRIBUIDOR,ODE_CANTIDAD:cantidad.toFixed(parentApplication.emp_precision), ODE_DESCUENTO:dpcomanda[existe].ITE_DESCUENTO,ODE_PRECIO:pvp, ODE_PRECIOIVA:dpcomanda[existe].ITE_PVPIVA, ODE_VALOR:validaFormato.format(valor)},existe);
//le quite USU_CODIGO: parentApplication.usuarioActivo.USU_CODIGO,
filaAdicionada = existe;

}else {
precioiva = pvp * (1 + (Number(ITE_PUNIT_IVA)/100));
//dpcomanda.addItem({ITE_CODIGO:ITE_CODIGO, ITE_BARRAS:dpitemsgrupos[i].ITE_BARRAS, USU_CODIGO: parentApplication.usuarioActivo.USU_CODIGO, ODE_CANTIDAD:cantidad.toFixed(parentApplication.emp_precision), ITE_DESCRIPCION:dpitemsgrupos[i].ITE_DESCRIPCION, ODE_IMPUESTO:dpitemsgrupos[i].ITE_IMPUESTO_VAL, ODE_PDISTRIBUIDOR:dpitemsgrupos[i].ITE_PVD, ODE_PORCENTAJE:dpitemsgrupos[i].ITE_PORCENTAJE, ODE_DESCUENTO:0, ODE_PRECIO:pvp,ODE_PUNITARIO:pvp,ODE_PRECIOIVA:precioiva.toFixed(parentApplication.emp_precision),ODE_VALOR:validaDecimal.format(valor)});
dpcomanda.addItem({ITE_CODIGO:COD_ITEM, ITE_BARRAS: dpitemsgrupos[i].ITE_BARRAS, ITE_DESCRIPCION:dpitemsgrupos[i].ITE_DESCRIPCION, ODE_CANTIDAD:cantidad.toFixed(parentApplication.emp_precision),ODE_DESCUENTO:0,ITE_PVP:dpitemsgrupos[i].ITE_PVP, ODE_PRECIOIVA: dpitemsgrupos[i].ITE_PVPIVA, ODE_VALOR:validaDecimal.format(valor)});
filaAdicionada = i;
}


totalesComanda();

posAdicionarComanda();
}

Por RAPG

8 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 27 Sep 2013 05:34 pm
Buff, cantidad de código y sin formato ... anyway, básicamente el error te dice que estas tomando un índice del array que no tiene contenido. Mira cuando lo recorres, de chequear que no te pases del array.length

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.