Buscador de productos

Mira este fragmento de código de una página que crea un recordset a una tabla de una tabla de una base de datos y vuelva el contenido en un combobox, poniendo como valor el código único (autonumérico) del cliente CLI_ID y muestra el nombre CLI_NOM. Al elegir alguno automatiamente, mediante la función sltar en javascript va a la página a_facturas_ventas.asp pasándole el código del cliente. Te puede servir para adaptarlo a tu entorno de productos:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/conex_usr.asp" -->
<%
Dim cliente
Set cliente = Server.CreateObject("ADODB.Recordset")
cliente.ActiveConnection = con_usr
cliente.Source = "SELECT * FROM CLIENTES ORDER BY CLI_NOM"
cliente.CursorType = 0
cliente.CursorLocation = 2
cliente.LockType = 1
cliente.Open()
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>> Departamento de Administración > Búsqueda de Clientes/Proveedores para creación de Facturas</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="hoja.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
function saltar(pag,selObj){
if (selObj.selectedIndex!=0) {
eval("location.href='"+pag+"?id="+selObj.options[selObj.selectedIndex].value+"'");
}
}
//-->
</script>
</head>
<body leftmargin="0" topmargin="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr class="cuerpo1small">
<td width="17%"><img src="images/puntoazul.gif" width="7" height="7"> Seleccione
Cliente</td>
<td width="52%"><font color="#000000">
<select name="client" class="cuerpo1small" id="select2" onChange="saltar('a_facturas_ventas.asp',this)">
<option value="0" selected>Seleccione un Cliente de la Lista</option>
<%
While (NOT cliente.EOF)
%>
<option value="<%=(cliente.Fields.Item("CLI_ID").Value)%>"><%=(cliente.Fields.Item("CLI_NOM").Value)%></option>
<%
cliente.MoveNext()
Wend
If (cliente.CursorType > 0) Then
cliente.MoveFirst
Else
cliente.Requery
End If
%>
</select>
</font></td>
</tr>
</table>
</body>
</html>
Espero te sirva para comprender como funciona.
Un saludo dsd Cádiz

1 respuesta

Respuesta
1
Veamos:
Set cliente = Server.CreateObject("ADODB.Recordset")
Esta linea cre un objeto recordset (ciente) donde recuperaras los registros que te devuelva el SELECT
cliente.ActiveConnection = con_usr
Esta indica a la propiedad ActiveConnection la cadena de conexión a la base de datos, esta variable la tienes en el archivo concex_La meto en un archivo y la incluyo en todas las paginas donde conecto con la base de datos mediante <!--#include file="Connections/conex_usr.asp" -->. Asi cque la conexion solo la cambio en el archivo conex_usr.asp.
cliente.Source = "SELECT * FROM CLIENTES ORDER BY CLI_NOM"
Aquí le pasas la consulta que te devolverá una serie de registros. Puedes utilizar cualquier sentencia SQL valida.
cliente.CursorType = 0
Aquí declaras el tipo de cursor con el que te mueves por el recordset, con valor igual a 0 especifica un cursor de solo avance, donde los cambios echos por otros usuarios no son vistos inmediatamente.
cliente.CursorLocation = 2
Esta especifica donde se sitúa el cursor si en el servidor o en el cliente, para nuestro caso un valor =2 indica que se sitúa en el servidor
cliente.LockType = 1
India el tipo de bloqueo que se realiza sobre los registros en el recordset, puedes indicarles si quieres que mientras este editando ese registro ningún otro usuario puede modificar los datos, o si quieres que el recordset sea de solo lectura y no podrás utilizarlo para actualizar los datos ( ES DECIR NO TE PERMITE UNA SENTENCIA update), PARA NUESTRO CASO ES DE SOLO LECTURA.
Cliente. Open()
Abre el recordset.
Estas linesas de código no es ASP propiamente dicho sino ADO un lenguaje de manipulación de Base de Datos.
Deberías buscarte un buen manual sobre ASP, ADO y VBSCRIPT
Respecto a esas funciones (function) que ves son de Javascript. Esta función:
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
No hace nada ahi, la puedes quitar, se me colo en el codgio. La siguiente:
function saltar(pag,selObj){
if (selObj.selectedIndex!=0) {
eval("location.href='"+pag+"?id="+selObj.options[selObj.selectedIndex].value+"'");
}
}
Es la que te permite que al realizar un cambio en el combo, es decir escoger alguna opción diferente a la que eseleccionada, ¿salte automáticamente a una página que le pasamos como parámetro en? ¿Pag?. En esta linea de código
<select name="client" class="cuerpo1small" id="select2" onChange="saltar('a_facturas_ventas.asp',this)">
¿Veras una llamada a la función saltar pasándole la página 'a_facturas_ventas.asp' y con? this? Le pasas una referencia al combo para que sepa que combo la llama.
Bueno espero que te haya alcarado un poco, de todas formas esto del ASP le tienes que dedicar tiempo y un buen manual

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas