Foros del Web » Programando para Internet » Javascript »

como sustituir un dato de xml por un resultado de una operacion aritmetica

Estas en el tema de como sustituir un dato de xml por un resultado de una operacion aritmetica en el foro de Javascript en Foros del Web. hola! tengo un problema, no encuentro la forma de llevar mi resultado de una operacion aritmetica, esta operacion la tengo en un function acumulado-() y ...
  #1 (permalink)  
Antiguo 26/07/2013, 13:58
 
Fecha de Ingreso: julio-2013
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Pregunta como sustituir un dato de xml por un resultado de una operacion aritmetica

hola!
tengo un problema, no encuentro la forma de llevar mi resultado de una operacion aritmetica, esta operacion la tengo en un function acumulado-() y su resultado lo tengo que visualizar en otra funcion que se llama function getData() este ultimo genera una tabla donde se visualizan datos extraidos desde xml, por lo tanto ya tengo extraigo el campo que le corresponde a la funcion acumulado este es mi codigo del getDATA():
Código:
function getData(url, periodo, fuente, divShow){
    var grupo="";
    var subgrupo="";
    var producto="";
    var subproducto="";
    var dato="";
    var acumulado="";
    var renglon_acumulado=0;
    var acT;
    
    var renglon_tags = 0;
    var renglon_datosMeses=0;
    var d=0;
    var indice=0;
    var ref="";
    var referencia="";
    var main_tag="";
    var truedata=false;
    var truemes=false;
    //con esta funcion se obtienen los indices de los meses solicitados
    //en arreglo indices_meses.
    guardaMeses();
    indMeses = new Array(meses.length);
    for(var f=0; f<indMeses.length;f++){
        indMeses[f]="no dato";
    }    
    var xmlhttp=createRequest(); 
    xmlhttp.onreadystatechange=function(){
        if (xmlhttp.readyState===4 && xmlhttp.status===200){
            txt="<table border='1' class='cuadrosRef'><tr><td border=1 colspan='4'>"+nombreCuadro+"</td>";
            txt = txt + columnaEncabezado(periodo, fuente);
            txt=txt+"</tr>";            
            main_tag=xmlhttp.responseXML.documentElement.getElementsByTagName("MAIN_DB");            
            for (var j=0;j<main_tag.length;j++){
                truedata=false;
                ref=main_tag[j].getElementsByTagName("REFERENCIA");{
                    try{
                        if(ref[0].firstChild.nodeValue===value_cuadro+"ENE"+periodo+fuente){
                            txt=txt + "<tr>";
                            d=j;
                            truedata=true;
                        }
                    }
                    catch (er){}
                }                
                if(truedata){                    
                    renglon_tags=renglon_tags+1;                    
                    grupo=main_tag[d].getElementsByTagName("GRUPO");{
                        try{
                            if(grupo[0].firstChild.nodeValue==="s/n"){
                                txt=txt + "<td></td>";
                            }
                            else{
                                txt=txt + "<td>"+grupo[0].firstChild.nodeValue+"</td>";
                            }
                        }
                        catch(er){
                            txt=txt + "<tr><td>"+er+"</td>";
                        }
                    }
                    subgrupo=main_tag[d].getElementsByTagName("SUBGRUPO");{
                        try{
                            if(subgrupo[0].firstChild.nodeValue==="s/n"){
                                txt=txt + "<td></td>";
                            }
                            else{
                                txt=txt + "<td>"+subgrupo[0].firstChild.nodeValue+"</td>";
                            }
                        }
                        catch(er){
                            txt=txt + "<td>error</td>";
                        }
                    }
                    producto=main_tag[d].getElementsByTagName("PRODUCTO");{
                        try{
                            if(producto[0].firstChild.nodeValue==="s/n"){
                                txt=txt + "<td></td>";
                            }
                            else{
                                txt=txt + "<td>"+producto[0].firstChild.nodeValue+"</td>";
                            }
                        }
                        catch(er){
                            txt=txt + "<td>error</td>";
                        }
                    }
                    subproducto=main_tag[d].getElementsByTagName("SUBPRODUCTO");{
                        try{
                            if(subproducto[0].firstChild.nodeValue==="s/n"){
                                txt=txt + "<td></td>";
                            }
                            else{
                                txt=txt + "<td>"+subproducto[0].firstChild.nodeValue+"</td>";
                            }
                        }
                        catch(er){
                            txt=txt + "<td>error</td>";
                        }
                    }               
                    for(var k=0;k<meses.length;k++){
                        truemes=false;
                        renglon_datosMeses=0;
                        for(var p=0;p<main_tag.length;p++){
                            referencia=main_tag[p].getElementsByTagName("REFERENCIA");{
                                try{
                                    if(referencia[0].firstChild.nodeValue===value_cuadro+meses[k]+periodo+fuente){
                                        indice=p;
                                        truemes=true;
                                    }
                                }
                                catch (er){}
                            }                           
                            if(truemes){
                                renglon_datosMeses = renglon_datosMeses + 1;
                                if(renglon_datosMeses === renglon_tags){
                                    dato=main_tag[indice].getElementsByTagName("DATO");{
                                        try{
                                            txt=txt + "<td>"+dato[0].firstChild.nodeValue+"</td>";
                                        }
                                        catch(er){}
                                        }
                                    }
                                }
                        }
                        }//fin meses.length
            
                    for(var z=0;z<meses.length;z++){    
                     renglon_acumulado=renglon_acumulado + 1;
                     if (renglon_acumulado===renglon_tags){
                        acumulado=main_tag[ind].getElementsByTagName("ACUMULADO");
                        {
                                txt=txt+"<td>"+document.getElementById("ACUMULADO").innerHTML===acT+"</td>";
                            }
             }
            }
                    txt=txt+"</tr>";
                
                }//Fin if               
            }
            txt=txt + "</table></ br>";
            document.getElementById(divShow).innerHTML=txt;
        }
  };
  xmlhttp.open("GET",url,true);
  xmlhttp.send();
}


y este es el acumulado():

function acumulado(url){
var acumE;
var acumF;
var acumM;
var acT;

var mainTag;
var req=createRequest();
var trueacum=false;
 if(value_periodoProg==="2011"){      
if (serieTiempo==="trimes"){
if (value_opcSerieTiempo==="1"){
 acumE= 60*31;
 acumF=50*28;
 acumM=60*31;
 acT=acumE+acumF+acumM/90;
}}}
    req.onreadystatechange=function(){
     if(req.readyState===4 && req.status===200){
     mainTag= req.responseXML.documentElement.getElementsByTagName("MAIN_DB");
     for(var ind=0; ind<mainTag.length; ind++){
         trueacum=true;
         if(trueacum){
     acumulado=mainTag[ind].getElementByTagName("ACUMULADO");{
                    try{
                 document.write(acT=acumulado[0].firstChild.nodeValue);
                 alert("acT" +acT);
                 ind=mainTag.legth;
             }
          catch(er){}
         }   
 }
 }
}};
req.open("GET", url);
req.send();
return acT;
}

Última edición por zerokilled; 26/07/2013 a las 15:02 Razón: bbcode
  #2 (permalink)  
Antiguo 26/07/2013, 19:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: como sustituir un dato de xml por un resultado de una operacion aritmetica

Hola:

Deberías intentar simplificar el código ya que me he perdido... no sé porqué hay tantos controles de errores (try/catch), supongo que bastaría consultando si algún nodo tiene hijos (hasChildNodes).

Cosas que he notado que podrían estar mal es que parece que acumulado es tanto un array como una función, y habría conflicto... y document.write nunca debe usarse después de cargarse la página (por ejemplo en una petición Ajax)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 29/07/2013, 10:14
 
Fecha de Ingreso: julio-2013
Mensajes: 3
Antigüedad: 10 años, 8 meses
Puntos: 0
Respuesta: como sustituir un dato de xml por un resultado de una operacion aritmetica

hola, bueno el function getData() me trae los datos de mi archivo .xml de cada campo correspondiente, y asi mismo genera la tabla.

En el caso de function acumulado() respecto a los arreglos que contiene es por que debe evaluar el periodo que se pide en la consulta (la mayoria de las consultas seran en forma trimestral), tambien debo llamar los datos de mi campo DATO del .xml para realizar mi operacion, y ya teniendo este visualizar en la columna que se crea para el acumulado

Etiquetas: dato, funcion, html, operacion, resultado, sustituir, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:09.