Ver Mensaje Individual
  #10 (permalink)  
Antiguo 05/06/2003, 08:36
Lethe
 
Fecha de Ingreso: noviembre-2002
Ubicación: Caracas
Mensajes: 75
Antigüedad: 22 años, 5 meses
Puntos: 0
OK u_goldman, está chévere le código que me enviastes.

Sin embargo, el sql que llena el grid, no es el mismo que utilizo para crear el combo; es decir son dos tablas de la B.D. que se encuentran relacionadas.

El combo es de personas y el grid debe contener datos de los proyectos en los cuales la persona ha trabajado.

Ejm:
Pepito Perez ---> este es el nombre de la persona

Proyecto X ¬
Proyecto Y |--> Son los proyectos en que ha trabajado
Proyecto Z -

Eso quiere decir que la relación es de uno a muchos; por lo que necesito que las filas de mi grid sea dinámico también.

Cómo podría hacer ésto, basándome en el mismo código que me enviastes ?



El siguiente código es lo que tengo:

Código:
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>

<BODY>

<BR><BR>
<center>
<strong><font FACE="verdana" SIZE="4">Combo Dinámico Enlazado con un Grid</font></strong>

<FORM ACTION="" METHOD="POST" NAME="frmRecord">
<BR>
<TABLE BORDER=0 WIDTH="100%" class="DataForm">

	<TR>
		<TD WIDTH="15%">
		Persona Asignada:
		</TD>
		
		<TD WIDTH="71%">
			<Select Name="rola_persona" OnChange="cmdRolAnt(document.forms.frmRecord.rola_persona.value);">
				<%
				'---declaración de variables
				Dim Cnn, SQL, rs

				Set Cnn = Server.CreateObject("ADODB.Connection")
				Cnn.Open Application("CadenaConexion") 'conexion abierta

				SQL = "SELECT (pe_apellidos  & '_' &  pe_nombres) as nombre, "
				SQL = SQL & " (pe_apellidos  & ' ' &  pe_nombres) as nombre_persona  "
				SQL = SQL & " FROM Personal Order By (pe_apellidos & ' ' & pe_nombres)"
				Set rs = Cnn.Execute(SQL)  
								
				While Not rs.EOF
					%>
					<option value="<%=rs("nombre")%>"><%=rs("nombre_persona")%></option>
					<%
					rs.MoveNext
				Wend				
				%>
			</Select>			
		</TD>
	</TR>
		
	<TR><TR>
	<TR>
		<TD WIDTH="15%">
		Roles Asignados Anteriormente:
		</TD>
		<TD WIDTH="71%">	
		<table id="tblRecords" WIDTH="10%" border=1 align="left">
				<tr>
					<th COLSPAN="2"></th>
					<th COLSPAN="2" align="center">Período</th>
				</tr>
				<tr>					
					<th WIDTH="20%">Proyecto</th>
					<th WIDTH="20%">Rol</th>
					<th WIDTH="10%">Desde</th>
					<th WIDTH="10%">Hasta</th>
				</tr>
				
				<td id="proyecto" WIDTH="20%">									
				</td>
				
				<td id="rol" WIDTH="20%">									
				</td>
				
				<td id="feDesde" WIDTH="10%">									
				</td>
				
				<td id="feHasta" WIDTH="10%">									
				</td>
					
			</table>			
		
		</TD>
	</TR>	
		
</TABLE>

</FORM>
</Center>
</BODY>

<script language = "JavaScript">
<!--
var opcion= "<table border=1>"

<%
'---Vamos a crear nuestros arrays de proyectos desde ASP
'---El primer if detecta un cambio en el proyecto para
'---crear un nuevo array en Javascript

SQLRol = "Select ra.*, proy.py_titulo as nom_proyecto "
SQLRol = SQLRol & " From Roles_Asignados as ra, Proyectos as proy "
SQLRol = SQLRol & " Where ra.rola_proyecto_cod = proy.py_codigo Order By rola_persona, rola_rol"
set rs = CreateObject("ADODB.Recordset")
rs.Open SQLRol, Cnn

cuenta = 0
cat = "basura"

While Not rs.EOF

	if cat <> rs.Fields("rola_persona") then
	
		'---cambio de contacto, empiezo a contar en 0
		cuenta = 0		
		cat = rs.Fields("rola_persona")
		cat1 = replace(rs.Fields("rola_persona")," ","_")	
		'---además tengo que crear un nuevo array para los contactos
	
	end if
	%>
		
	var opcion<%=cat1%>_py = opcion + "<td align=left><%=rs("nom_proyecto")%></td>";
	var opcion<%=cat1%>_rol = opcion + "<td align=left><%=rs("rola_rol")%></td>";
	var opcion<%=cat1%>_feDesde = opcion + "<td align=center><%=rs("rola_fecha_desde")%></td>";
	var opcion<%=cat1%>_feHasta = opcion + "<td align=center><%=rs("rola_fecha_hasta")%></td>";
	
	
	<%		
	cuenta = cuenta + 1
	rs.MoveNext
	
wend

'---Limpiamos objetos
rs.Close
set rs = nothing
%>


function cmdRolAnt ( nom_persona ) 
{
			
	// asigna a variable cada el name creado para cada caso (proyecto, rol, fecha desde, fecha hasta)	
	capa1= "opcion" + nom_persona + "_py";
	capa2= "opcion" + nom_persona + "_rol";
	capa3= "opcion" + nom_persona + "_feDesde";
	capa4= "opcion" + nom_persona + "_feHasta";
	
	// permite hacer referencia a cada una de las columnas de la tabla definida en la forma
	document.getElementById("proyecto").innerHTML=eval(capa1);	
	document.getElementById("rol").innerHTML=eval(capa2);
	document.getElementById("feDesde").innerHTML=eval(capa3);
	document.getElementById("feHasta").innerHTML=eval(capa4);
		
}


//Inicializamos
cmdRolAnt(document.forms.frmRecord.rola_persona.value);

-->
</script>

</HTML>



Alguien me podría ayudar........ 

 :'(

Última edición por Lethe; 05/06/2003 a las 08:36