Ver Mensaje Individual
  #6 (permalink)  
Antiguo 06/10/2006, 15:29
5v5
 
Fecha de Ingreso: abril-2005
Ubicación: Huehuetoca, Mexico
Mensajes: 138
Antigüedad: 20 años
Puntos: 0
Yo lo hize asi..y me funciono..espero te ayude en algo....

Aqui solo juegan 3 select

S1= Empresa
S2= Sucursal
S3= Departamento

1.-primero al cargar la pagina cargas todoas las empresa(en mi caso..en to caso Autos)
y dejamos por defecto en los tres select "todos"

2.-cuando eliges una empresa(auto para ti)...envias la pagina asi mismo enviando el indice de la empresa(auto)..cuando se carga a si misma recoges el valor con reques.qeurystring("Id")..y al recoger este resultado creas una consulta solo del los departamentos que seasn = a la empresa ejemplo

sql="SELECT * FROM Departamentos WHERE id_Empresa=" & Request.QueryString("Id")

ejecutas tu consulta y rellenbas el S2(select 2) con el resultado de la consulta..

y para que no se te pierda la empresa(auto) seleccionado vuelves a rellenar el select empresa..pero si el seleccionando la empresa consultada....jejeje chapusa pero si me sirvio....


y asi con el tercer o cuarto select......bueno espero te sirva.....bueno se que mi code no esta muy bien estructurado pero me sirvio y estoy en proceso de perfeccionarlo........

aqui te dejo el code....

Código:
'creo un formulario para enviar los datos a la hoja de resultados....
<form action="Resultado.asp" method="post" name="FormularioDatos" id="FormularioDatos">
<table width="217" border="2" align="center" cellpadding="3" cellspacing="0" background="Imagenes/img1.jpg" style="border:1px outset" img="img">
  <tr>
   <td align="right"><div align="left">Empresa :</div></td>
   <td>
     <div align="left">
'cuando seleccionas lanzas el valor a si mismo para despues recoger el resultado
<select name="Empresa" onchange="location.href('Filtro.asp?EmpresaP=' + FormularioDatos.Empresa.options[FormularioDatos.Empresa.selectedIndex].value)">

        <option value="Todas">Todas</option>
         <%
obtenemos el valor del query y comprobamos si no esta vacio
EmpreQuery = trim(request.querystring("EmpresaP"))
if EmpreQuery <> "" then

'rellenamos el select con la opcion de selected
Do while not FilEmpresas.Eof

Empresas=FilEmpresas("Empresa")
    
	if Empresas = EmpreQuery then 
	
		Response.write "<option selected value=""" & Empresas & """>" & Empresas & "</option> " 
	
	else
	
    	Response.write "<option value=""" & Empresas & """>" & Empresas & "</option>" 
	
	end if
	
FilEmpresas.movenext
loop

else

'rellenamos sin selection
Do while not FilEmpresas.Eof
Empresas=FilEmpresas("Empresa")
Response.write "<option value=""" & Empresas & """>" & Empresas & "</option>" 
FilEmpresas.movenext
loop
end if

%>
       </select>
       </div></td>
   </tr>
      
   <tr>
     <td align="center" with="30"><div align="left">Sucursal::</div></td>
     <td align="center" with="30"><div align="left">

<select name="Sucursal" id="Sucursal" onchange="location.href('Filtro.asp?EmpresaP=<%=EmpreQuery%>&amp;SucursalP=' + FormularioDatos.Sucursal.options[FormularioDatos.Sucursal.selectedIndex].value)">
         <option value="Todas">Todas</option>
         <% 

if Trim(request.querystring("EmpresaP"))<>"" then


SQL4="SELECT Empresa,Sucursal FROM BASE WHERE Empresa=" & "'" & request.querystring("EmpresaP") & "'"
	set FilSucursal=createobject("ADODB.Recordset")
        FilSucursal.open SQL4,ConexionBD

SQL5="SELECT count(*) as Total FROM BASE WHERE Empresa=" & "'" & request.querystring("EmpresaP") & "'"
set FilSucuCont=createobject("ADODB.Recordset")
    FilSucuCont.open SQL5,ConexionBD

	redim Sucu(FilSucuCont("Total"))
        ContSucu=0
			Sucu(0)=""
     Do while not FilSucursal.Eof
		Sucursales=FilSucursal("Sucursal")
		

			 for i=0 to ContSucu
		 		 
			
		         if Sucu(i)=Sucursales then
'			 Response.write "<option value=""" & Departamento & """>" & Departamento & "</option>" 
	                  FocoS="Si"
					Exit for
		    	    else
			' Response.write "<option value=""" & Departamento & """>" & departamento & "</option>" 
				  
                      FocoS="No"
				  
			      end if
			
        		next

		if FocoS="No" then 
		Sucu(ContSucu)=Sucursales

		if Trim(request.querystring("SucursalP"))<>"" and Trim(request.querystring("SucursalP"))=Sucursales then
		
				Response.write "<option selected value=""" & Sucursales & """>" & Sucursales & "</option>" 
		
		else
		
				Response.write "<option value=""" & Sucursales & """>" & Sucursales & "</option>" 
		
		end if
		end if
	ContSucu=ContSucu+1
    FilSucursal.movenext
	loop

     FilSucursal.Close
	 filSucuCont.close
 	 set FilSucursal= Nothing
     set filSucuCont=Nothing
	
end if


 %>
       </select>
     </div></td>
   </tr>
   <tr>
     <td align="center" with="30"><div align="left">Departamento:</div></td>
     <td align="center" with="30"><div align="left">
       <select name="Departamento">
         <option value="Todos">Todos</option>


<%

if Trim(request.querystring("EmpresaP"))<>"" and  Trim(request.querystring("SucursalP"))<>"" then

SQL2="SELECT Empresa,Sucursal,Departamento FROM BASE WHERE Empresa=" & "'" & request.querystring("EmpresaP") & "'"  & " and Sucursal= " & "'" & Trim(request.querystring("SucursalP")) & "'"

	set FilDepartamento=createobject("ADODB.Recordset")
	FilDepartamento.open SQL2,ConexionBD

SQL3="SELECT count(*) as Total FROM BASE WHERE Empresa=" & "'" & request.querystring("EmpresaP") & "'" 
set FilDepCont=createobject("ADODB.Recordset")
filDepCont.open SQL3,ConexionBD

	redim Depa(FilDepCont("Total"))
        ContDep=0
			Depa(0)=""
     Do while not FilDepartamento.Eof
		Departamento=FilDepartamento("Departamento")
		

			 for i=0 to ContDep
		 		 
			
		         if Depa(i)=Departamento then
'			 Response.write "<option value=""" & Departamento & """>" & Departamento & "</option>" 
	                  Foco="Si"
					Exit for
		    	    else
			' Response.write "<option value=""" & Departamento & """>" & departamento & "</option>" 
				  
                      Foco="No"
				  
			      end if
			
        		next

		if Foco="No" then 
		Depa(ContDep)=Departamento
		Response.write "<option value=""" & Departamento & """>" & Departamento & "</option>" 
		end if
	ContDep=ContDep+1
    FilDepartamento.movenext
	loop

     FilDepartamento.Close
	 filDepCont.close
 	 set FilDepartamento= Nothing
     set filDepCont=Nothing
	
end if


 %>
       </select>
     </div></td>
   </tr>
   <tr><td align="center" with="30" colspan="2"><input name="Filtro" type="submit" id="Filtro" style="width:135px;height:30px" value="Filtrar" /></td></tr>


<%

     FilEmpresas.close
     set FilEmpresas= Nothing

    
      ConexionBD.Close

      Set ConexionBD = Nothing
end if
%>
esta un poco enredado....jejeje no lo se....soy novato..pero sirve

Bueno...intentare explicarte