Foros del Web » Programando para Internet » Javascript »

Ayuda con Funcion para crear texto a pasar

Estas en el tema de Ayuda con Funcion para crear texto a pasar en el foro de Javascript en Foros del Web. Hola amigos, tengo un problema y necesito su ayuda. El problema es el siguiente: tengo la siguiente consulta: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT ...
  #1 (permalink)  
Antiguo 18/05/2010, 10:08
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 2
Información Ayuda con Funcion para crear texto a pasar

Hola amigos, tengo un problema y necesito su ayuda.

El problema es el siguiente:

tengo la siguiente consulta:

Código MySQL:
Ver original
  1. SELECT co_observacion,
  2.        de_observacion,
  3.        (select count(1)
  4.                from IDORRCC.rctr_dig_nacimiento_subobs a
  5.                where a.co_observacion = j.co_observacion
  6.                AND a.co_estacion = j.co_estacion
  7.                AND a.es_subobservacion = '1'
  8.                /**/
  9.                ) as TOTALDETALLE
  10.   FROM IDORRCC.rctr_dig_nacimiento_obs j
  11.           FROM IDORRCC.rctr_dig_nacimiento_obs    a,
  12.                IDORRCC.rctr_dig_nacimiento_subobs b,
  13.                IDORRCC.rctr_lin_estacion          c
  14.          WHERE b.co_estacion = 30
  15.            AND b.es_subobservacion = '1'
  16.            AND J.CO_OBSERVACION = b.co_observacion
  17.            AND a.co_observacion = b.co_observacion
  18.            AND a.co_estacion = b.co_estacion
  19.            AND a.co_estacion = c.co_estacion
  20.            /**/
  21.            )
  22.    AND j.co_estacion = 30
  23.    AND j.es_observacion = '1'
  24.  ORDER BY j.co_observacion

y debo agregarle en donde estan los /**/, lo siguiente:

Código MySQL:
Ver original
  1. AND NOT  ((j.co_observacion=00 and a.co_subobservacion in (01,02,03,05,06,09,10))
  2.  (j.co_observacion=01 and a.co_subobservacion in (01,05))
  3.   (j.co_observacion=01 and a.co_subobservacion in (01,05)))

desde Javascript. La idea es pasarselo como parametro desde javascript y agregarlo a la consulta para que quede de la siguiente forma... creo que es obvio..


Código MySQL:
Ver original
  1. SELECT co_observacion,
  2.        de_observacion,
  3.        (select count(1)
  4.                from IDORRCC.rctr_dig_nacimiento_subobs a
  5.                where a.co_observacion = j.co_observacion
  6.                AND a.co_estacion = j.co_estacion
  7.                AND a.es_subobservacion = '1'
  8.                /*AND NOT
  9.            ((j.co_observacion=00 and a.co_subobservacion in (01,02,03,05,06,09,10)) or
  10.             (j.co_observacion=01 and a.co_subobservacion in (01,05)))*/
  11.                ) as TOTALDETALLE
  12.   FROM IDORRCC.rctr_dig_nacimiento_obs j
  13.           FROM IDORRCC.rctr_dig_nacimiento_obs    a,
  14.                IDORRCC.rctr_dig_nacimiento_subobs b,
  15.                IDORRCC.rctr_lin_estacion          c
  16.          WHERE b.co_estacion = 30
  17.            AND b.es_subobservacion = '1'
  18.            AND J.CO_OBSERVACION = b.co_observacion
  19.            AND a.co_observacion = b.co_observacion
  20.            AND a.co_estacion = b.co_estacion
  21.            AND a.co_estacion = c.co_estacion
  22.            /*AND NOT
  23.            ((a.co_observacion=00 and b.co_subobservacion in (01,02,03,05,06,09,10)) or
  24.             (a.co_observacion=01 and b.co_subobservacion in (01,05)))*/
  25.            )
  26.    AND j.co_estacion = 30
  27.    AND j.es_observacion = '1'
  28.  ORDER BY j.co_observacion


claro que

Código MySQL:
Ver original
  1. AND NOT  ((j.co_observacion=00 and a.co_subobservacion in (01,02,03,05,06,09,10))
  2.  (j.co_observacion=01 and a.co_subobservacion in (01,05))
  3.   (j.co_observacion=01 and a.co_subobservacion in (01,05)))

puede crecer y ser algo como:

Código MySQL:
Ver original
  1. AND NOT  ((j.co_observacion=00 and a.co_subobservacion in (01,02,03,05,06,09,10))
  2.  (j.co_observacion=01 and a.co_subobservacion in (01,05))
  3.   (j.co_observacion=02 and a.co_subobservacion in (01,05))
  4.  
  5.   (j.co_observacion=03 and a.co_subobservacion in (01,05))
  6.  
  7.   (j.co_observacion=04 and a.co_subobservacion in (01,05))
  8.  
  9. ....
  10. )

y asi sucesivamente...

lo curioso de este caso es que los valores los sacaria de una lista donde pongo mis codigos y sub codigos para pasarlo, pero ahi esta el problema... ¿como le hago para que pueda obtener una lista de la forma que quiero, como explico, lineas arriba?

la lista contiene por ejemplo:

30:01:01
30:01:02
30:01:03
30:02:04
30:02:03
30:05:01
30:01:06


A ver si alguien me puede dar una mano...

Hasta donde voy, solo recojo los valores de la lista y los leo.. pero ahi me quede..

Código Javascript:
Ver original
  1. if (objListaTemp.options.length > 0){
  2.                 for(i=0; i < objListaTemp.options.length; i++){
  3.                    list[i] = objListaTemp.options[i].value;
  4.                    varCodObs = list[i].substr(3,2);
  5.                    /*Debe existir una funcion que busque el valor en la lista*/
  6.                    if (varCodObsAux == varCodObs) {
  7.                        /*Coge el valor de la sub observacion y lo agrega a la variable con ","*/
  8.                    }else{
  9.                         var x=0;
  10.                             objList[x] = varCodObs;
  11.                             x++;
  12.                        /*crea un a nueva fila con el codigo de la observacion*/
  13.                    }
  14.                    
  15.                 }
  16.          }

una de las ideas era pasarlo asi...

texto + 01 +" " + texto + 01,02,03,05 + var;
texto + 02 +" " + texto + 02 03 05 + var;

donde texto = "AND NOT ((j.co_observacion="

etc.



Deantemano... Gracias por su ayuda.

Última edición por dconsolidado; 18/05/2010 a las 10:25
  #2 (permalink)  
Antiguo 24/05/2010, 10:06
 
Fecha de Ingreso: noviembre-2008
Mensajes: 38
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Ayuda con Funcion para crear texto a pasar

Bueno amigos, por si alguien le interesa, pensando un poco... yo creo que bastante me salio el asuntito del cual pedia ayuda, de todas maneras, gracias por leerme, no siempre se puede ayudar, pero eso es lo de menos. aqui les paso el codigo, por si alguien requiere saberlo.

Salu2.
Código Javascript:
Ver original
  1. var varCodObs      = '';
  2.      var varCodObsAux   = '';
  3.      var varSubCodObs   = '';
  4.      var varCodEstacion = '';
  5.      
  6.      var objCantidadLista = 0;
  7.      
  8.      var objTextoCompleto = '';
  9.      var objAbreCondicion = " AND NOT ( ";
  10.      var objOr = " or ";
  11.      var objCierraCondicion = " ) ";
  12.      var objCantidadCierre = 0;
  13.  
  14.      var objListaTemp = document.getElementById('ObjLstSubObserva');
  15.      
  16.          if (objListaTemp.options.length > 0){
  17.                 objCantidadLista = objListaTemp.options.length;
  18.                
  19.                 if (objCantidadLista == 1){
  20.                    for(i=0; i < objListaTemp.options.length; i++){
  21.                       list[i] = objListaTemp.options[i].value;
  22.                       varCodObs = list[i].substr(3,2);
  23.                       varCodObsAux = list[i].length - 6;
  24.                       varSubCodObs = list[i].substr(6,varCodObsAux);
  25.                       objTextoCompleto = objAbreCondicion + "(j.co_observacion='" + varCodObs + "' and b.co_subobservacion in (" + varSubCodObs + "))";                
  26.                    }
  27.                 }
  28.                
  29.                 if (objCantidadLista > 1){
  30.                     objCantidadCierre = objCantidadLista - 1;
  31.                     for(i=0; i < objListaTemp.options.length; i++){
  32.                         list[i] = objListaTemp.options[i].value;
  33.                         varCodObs = list[i].substr(3,2);
  34.                         varCodObsAux = list[i].length - 6;
  35.                         varSubCodObs = list[i].substr(6,varCodObsAux);
  36.                         if (i == 0){
  37.                             objTextoCompleto = objAbreCondicion + "(j.co_observacion='" + varCodObs + "' and b.co_subobservacion in (" + varSubCodObs + "))" + objOr;
  38.                         }
  39.                         if (i < objCantidadCierre){
  40.                             objTextoCompleto += "(j.co_observacion='" + varCodObs + "' and b.co_subobservacion in (" + varSubCodObs + "))" + objOr;
  41.                         }else{
  42.                             objTextoCompleto += "(j.co_observacion='" + varCodObs + "' and b.co_subobservacion in (" + varSubCodObs + "))"
  43.                         }
  44.                     }
  45.  
  46.                    /*Aqui es donde obtengo el valor total que debo pasar.*/
  47.                     objTextoCompleto = objTextoCompleto + objCierraCondicion;
  48.  
  49. El Resultado:
  50.  
  51.            AND NOT
  52.                 ((j.co_observacion = '00' and
  53.                 b.co_subobservacion in (01, 02, 03, 10, 06, 09, 05)) or
  54.                 (j.co_observacion = '00' and
  55.                 b.co_subobservacion in (01, 02, 03, 10, 06, 09, 05)) or
  56.                 (j.co_observacion = '01' and
  57.                 b.co_subobservacion in (01, 05, 04, 03)) or
  58.                 (j.co_observacion = '02' and b.co_subobservacion in (02, 01))))


Atte.

Etiquetas: funcion, pasar
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:59.