Comunidad de diseño web y desarrollo en internet online

¿como dar una opcion de buscar en un datagrind?

Citar            
MensajeEscrito el 26 Jul 2007 03:48 pm
:crap: Necesito ayuda, soy nuevo en la programacion, y no he podido encontrar la forma de crear un buscardor de registros para un data grind ya que tengo 500 registros y es muy dificil buscar uno por uno.

a parte de esto no se si funcionara al ser compilado for mdm zinc....por favor ayudenme que es un trabajo del colegio. :oops:

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 26 Jul 2007 08:06 pm
Hola.
A ver si te ayuda
Buscara en todas las categorias menos en la ID, asi k con un email cualkier cosa este en la lista k pongas lo encontrara si hay relacion con lo k pones a buscar.
//
///////////////////////////////////////////////////////////////////
// Buscar
///////////////////////////////////////////////////////////////////
// Boton
AGBuscar.onPress = function() {
BuscarTabla(AGBuscarimput.text,MBA);
};
// Buscar
// A Parametro de la palabra a buscar
// esta funcion sirve para utilizar combox como key enter
function BuscarTabla(A,B) {
B.removeAll();
if (!A) {
// comando se pondria para actualizar lista si se presiona buscar sin contenido o key enter
return;
} else {
AGBoxBuscar(A.toLowerCase(), B);
}
}
// A Palabra en minusculas
// B el nombre de la datagrid k se llama MBA
function AGBoxBuscar(A, B) {
mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
var D = mdm.Database.MSAccess.getData();
var L2:Number = 0;
for (var L:Number = 0; L<D.length; L++) {
var T = D[L].join(" ");
var X = D[L][0];
if (substring(T, (X.length+1), T.length).toLowerCase().indexOf(A) != -1) {
B.addItem();
B.editField(L2, "id", D[L][0]);
B.editField(L2, "Nombre", D[L][1]);
B.editField(L2, "Apellidos", D[L][2]);
B.editField(L2, "Email", D[L][3]);
B.editField(L2, "Telefono", D[L][4]);
B.editField(L2, "Movil", D[L][5]);
B.editField(L2, "Direccion", D[L][6]);
B.editField(L2, "Categoria", D[L][7]);
B.editField(L2, "Empresa", D[L][8]);
L2++;
}
}
}
//
// Buscar por enter
//
var PresionKey:Object = new Object();
PresionKey.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
BuscarTabla(AGBuscarimput.text, MBA);
}
};
Key.addListener(PresionKey);
//
///////////////////////////////////////////////////////////////////
//

Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Jul 2007 07:34 am
deker, no creo que sea la mejor opción. Ya que haces un select de toda la base de datos. Lo mejor es hacer el select directamente de lo que buscas.

Código :

Select * from tabla where campo1 like '%"+valor+"%' and campo2 like '%"+valo+"%' ....

Por One

Claber

1488 de clabLevel

5 tutoriales

Genero:Masculino  

Programador Web

firefox
Citar            
MensajeEscrito el 27 Jul 2007 04:42 pm
Hola eso depende como tengas configurado el mdb, si lo tienes relacionado si pero si la tabla esta sin relacionar solo conectara con las tablas de esa tabla llamada X.
Otra seria ("SELECT tabla1,tabla2,tabla3 FROM Usuarios_Agenda") asi colocas el orden de las variables en array, pudiendo saltarte la tabla k kieras no cargue, table3,tabla2,tabla6
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Jul 2007 06:47 pm
MIREN QUE YA LO INTENTE PERO ME ENVIA SON DATOS CIFRADOS COMO CUADROS Y OTROS SIGNOS Y LUEGO SE CIERRA LA APLICACION SOLA....QUE DEBO HACER?

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Jul 2007 08:19 pm
Hola
Si puedes tipea el kodigo k as echo y se le echa un vistazo.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Jul 2007 10:12 pm
le puedo enviar mi archivo a su correo????

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Jul 2007 10:19 pm
otra pregunta en el codigo:
// Boton
AGBuscar.onPress = function() {
BuscarTabla(AGBuscarimput.text,MBA);

buscartabla es el nombre de mi datagrid??? y otra pregunta este codigo me lo pueden explicar mejor:

Hola.
A ver si te ayuda
Buscara en todas las categorias menos en la ID, asi k con un email cualkier cosa este en la lista k pongas lo encontrara si hay relacion con lo k pones a buscar.
//
///////////////////////////////////////////////////////////////////
// Buscar
///////////////////////////////////////////////////////////////////
// Boton
AGBuscar.onPress = function() {
BuscarTabla(AGBuscarimput.text,MBA);
};
// Buscar
// A Parametro de la palabra a buscar
// esta funcion sirve para utilizar combox como key enter
function BuscarTabla(A,B) {
B.removeAll();
if (!A) {
// comando se pondria para actualizar lista si se presiona buscar sin contenido o key enter
return;
} else {
AGBoxBuscar(A.toLowerCase(), B);
}
}
// A Palabra en minusculas
// B el nombre de la datagrid k se llama MBA
function AGBoxBuscar(A, B) {
mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
var D = mdm.Database.MSAccess.getData();
var L2:Number = 0;
for (var L:Number = 0; L<D.length; L++) {
var T = D[L].join(" ");
var X = D[L][0];
if (substring(T, (X.length+1), T.length).toLowerCase().indexOf(A) != -1) {
B.addItem();
B.editField(L2, "id", D[L][0]);
B.editField(L2, "Nombre", D[L][1]);
B.editField(L2, "Apellidos", D[L][2]);
B.editField(L2, "Email", D[L][3]);
B.editField(L2, "Telefono", D[L][4]);
B.editField(L2, "Movil", D[L][5]);
B.editField(L2, "Direccion", D[L][6]);
B.editField(L2, "Categoria", D[L][7]);
B.editField(L2, "Empresa", D[L][8]);
L2++;
}
}
}
//
// Buscar por enter
//
var PresionKey:Object = new Object();
PresionKey.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
BuscarTabla(AGBuscarimput.text, MBA);
}
};
Key.addListener(PresionKey);

es que tengo dudas a ver si funciona solo esta parte sin el resto:

// Buscar
///////////////////////////////////////////////////////////////////
// Boton
AGBuscar.onPress = function() {
BuscarTabla(AGBuscarimput.text,MBA);
};
// Buscar
// A Parametro de la palabra a buscar
// esta funcion sirve para utilizar combox como key enter
function BuscarTabla(A,B) {
B.removeAll();
if (!A) {
// comando se pondria para actualizar lista si se presiona buscar sin contenido o key enter
return;
} else {
AGBoxBuscar(A.toLowerCase(), B);
}
}

agradezco su ayuda

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Jul 2007 10:28 pm
Hola
Tienes k crear un imput y ponerle nombre AGBuscarimput
La dategrid en este caso se llama MBA solo tienes k sustituirlo por el nombre de la tuya
B.addItem();
B.editField(L2, "id", D[L][0]);
B.editField(L2, "Nombre", D[L][1]);
B.editField(L2, "Apellidos", D[L][2]);
B.editField(L2, "Email", D[L][3]);
B.editField(L2, "Telefono", D[L][4]);
B.editField(L2, "Movil", D[L][5]);
B.editField(L2, "Direccion", D[L][6]);
B.editField(L2, "Categoria", D[L][7]);
B.editField(L2, "Empresa", D[L][8]);
En este caso tendras k añadir o kitar loke tu tengas nombres de las tablas, en mi caso son esos del ejemplo en el tuyo seran otros y tendras mas o menos tablas cada colunna es 1 2 3 etc y la linea es bucleada de hay la variable L
y bueno el boton de buscar AGBuscar mas k nada para k entiendas como funciona despues puedes ponerlo a tu gusto.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 30 Jul 2007 11:02 pm
y buscartabla en este caso que seria???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Jul 2007 11:13 pm
ups me paso algo extraño luego de varios intentos consegui exportar sin error pero lo que no entiendo es que cuando lo compilo en mdm zinc, lo ejecuto y escribo cualquier palabra en el estan de buscar pero lo que hace es eliminarme los datos de mi tabla hay que debo hacer??? por fa ayudenme

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 30 Jul 2007 11:32 pm
ESTE ES EL CODIGO QUE HE COLOCADO PERO NO ME FUNCIONA ES LA OPCION DE BUSCAR, CUANDO PRUEBO LA PELICULA TODO VA BIEN PERO AL INGRESAR UN DATO AL TEXTIMPUT ME BORRA LA INFORMACION QUE SE ENCUENTRA EN EL DATAGRID, ENTONCES CIERRO LA APLICACION Y AL VOLVERLA A ABRIR HAY ESTAN LOS DATOS INTACTOS.



var databaseFile:String = "datos.mdb";
var databasePassword:String = "";
var path:String = mdm.Application.path+databaseFile;
mdm.Database.MSAccess.connect(databaseFile,databasePassword);
var success = mdm.Database.MSAccess.success();
if (success == false) {
var msg:String = "No se puede conectar a la bbdd";
mdm.Dialogs.prompt(msg);
return;
}




function consulta(){
theDataGrid.removeAll();
var sqlString:String = "SELECT id,nombre,apellidos,carpeta FROM datos order by id asc";
mdm.Database.MSAccess.select(sqlString);
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Ha ocurrido un error ";
mdm.Dialogs.prompt(msg);
return;
}
var dataSet:Array = mdm.Database.MSAccess.getData();

var datos:Object;
var newItemsArray:Array = new Array();
for (var i = 0; i<dataSet.length; i++) {
datos = {};
datos.ID = parseInt(dataSet[i][0]);
datos.Nombre = dataSet[i][1];
datos.Apellidos = dataSet[i][2];
datos.Carpeta = dataSet[i][3];
newItemsArray.push(datos);
}
theDataGrid.dataProvider = newItemsArray;
}

function layoutGUI():Void {
theDataGrid.setStyle("fontSize",10);
theDataGrid.columnNames = ["ID", "Nombre", "Apellidos", "Carpeta"];
theDataGrid.vScrollPolicy = "auto";

var gridWidth:Number = theDataGrid.width;

theDataGrid.getColumnAt(0).width = 0.05*gridWidth;
theDataGrid.getColumnAt(0).headerText = "ID:";

theDataGrid.getColumnAt(1).width = 0.35*gridWidth;
theDataGrid.getColumnAt(1).headerText = "Nombre:";

theDataGrid.getColumnAt(2).width = 0.45*gridWidth;
theDataGrid.getColumnAt(2).headerText = "Apellidos:";

theDataGrid.getColumnAt(3).width = 0.15*gridWidth;
theDataGrid.getColumnAt(3).headerText = "Carpeta Nº:";

theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
}


bot_insertar.onRelease=function(){
if(nombre_txt.text==""){
nombre_txt.text="Este campo no puede estar vacio";
}else{
mdm.Database.MSAccess.runQuery("INSERT INTO datos (nombre,apellidos,carpeta) VALUES ('"+nombre_txt.text+"','"+apellidos_txt.text+"',"+carp_txt.text+")");
consulta();
nombre_txt.text="";
apellidos_txt.text="";
carp_txt.text="";
}
}
bot_borrar.onRelease=function(){
LineaGrid = theDataGrid.selectedIndex;
if(LineaGrid!=undefined){
var sqlString:String = "DELETE FROM datos where id="+theDataGrid.getItemAt(LineaGrid).ID;
mdm.Database.MSAccess.runQuery(sqlString);
theDataGrid.removeItemAt(LineaGrid);
consulta();

}

}

theDataGrid.addEventListener("change", editar);

function editar(Obj) {
bot_editar.enabled=true;
DatosGrid = Obj.target.selectedItem;
nombre_txt.text = DatosGrid.Nombre;
apellidos_txt.text = DatosGrid.Apellidos;
telf_txt.text = DatosGrid.Telefono;

}
bot_editar.onRelease=function(){
LineaGrid = theDataGrid.selectedIndex;
var sqlString:String = "UPDATE datos set nombre='"+nombre_txt.text+"', apellidos='"+apellidos_txt.text+"', telefono="+telf_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;
mdm.Database.MSAccess.runQuery(sqlString);

consulta();
bot_editar.enabled=false;
nombre_txt.text = "";
apellidos_txt.text = "";
telf_txt.text = "";
}

bot_editar.enabled=false;
layoutGUI();
consulta();


AGBuscar.onPress = function() {
BuscarTabla(AGBuscarimput.text,theDataGrid);
};

function BuscarTabla(A,B) {
B.removeAll();
if (!A) {

return;
} else {
AGBoxBuscar(A.toLowerCase(), B);
}
}

function AGBoxBuscar(A, B) {
theDataGrid.Database.MSAccess.select("SELECT * FROM datos");
var D = theDataGrid.Database.MSAccess.getData();
var L2:Number = 0;
for (var L:Number = 0; L<D.length; L++) {
var T = D[L].join(" ");
var X = D[L][0];
if (substring(T, (X.length+1), T.length).toLowerCase().indexOf(A) != -1) {
B.addItem();
B.editField(L2, "id", D[L][0]);
B.editField(L2, "nombre", D[L][1]);
B.editField(L2, ",apellidos", D[L][2]);
B.editField(L2, ",carpeta", D[L][3]);

L2++;
}
}
}

var PresionKey:Object = new Object();
PresionKey.onKeyDown = function() {
if (Key.getCode() == Key.ENTER) {
BuscarTabla(AGBuscarimput.text, theDataGrid);
}
};
Key.addListener(PresionKey);


NO SE CUAL ES EL ERROR PERO POR FAVOR AYUDENME

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 01:43 am
hola que tal Barak!!! no se si quisiste decir datagrid de los componentes V2 de flash, si es asi hay una forma bastante comoda de hacerlo sin meterte en lios con el datagrid directamente:

1.-Debes usar el componente dataSet que precisamente es para eso almacena toda la informacion "que deberia tener un datagrid" y si no usaste el componente entonces accede a la propiedad de dataProvider del componente

2.-Busca dentro del dataProvider del componente tus datos y listo mira

//como el componente almacena sus datos en cadenas entonces
var datos:Array=dg_component.dataProvider

//esta variable la puedes llenar con un campo de texto
var buscar_que:String="pedro"

for(i=0;i<datos.length;i++){
if(buscar_que==datos[i].titulo_del_encabezado){
trace("encontrado en indice"+i)
}
}

saludos!!!!

Por andres_santos

236 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2007 02:25 am
Hola aki el santos lleva razon, a mi no me va mucho por el tema de las scenas k uso para todo, siempre reparto todo en scenas y no me resulta el dataset.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 12:52 pm
lo que pasa es que me base en que mi datagrid almacene los datos en access, y no se si se pueda almacenar datos cada vez que abran el datagrid de la forma que ustedes me dicen?? como deberia hacer que funcione el preyecto???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 01:09 pm
no!! ya casi lo tengo pero ahora lo que pasa es que cuando me busca en el datagrid me los reparte en las casillas que no son???

hay que se deberia hacer??? porfa ayudenme

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 01:54 pm
B.addItem();
B.editField(L2, "id", D[L][0]);
B.editField(L2, "SU_NOMBRE", D[L][1]);
B.editField(L2, "SU_NOMBRE", D[L][2]);
B.editField(L2, "SU_NOMBRE", D[L][3]);
As de ordenar el ingreso de datos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 02:02 pm
muchisimas gracias porfin lo consegui, ojala sigan siendo asi ( los mejores)

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 02:09 pm
Usen las etiquetas [code]

Por HernanRivas

Claber

3416 de clabLevel

26 tutoriales

 

Argentina

firefox
Citar            
MensajeEscrito el 31 Jul 2007 02:22 pm
Tienes k buscar algun sample de DataSet en Zinc para utilizarlo, ya k las bases mdb te van relentizar la carga como sean grandes, asi cuando lo ejecutas lea y almacene 1º todas las tablas, y cuando entres usar el DataGrid se carguen sependiendo k categoria, ya k resultara muy pesado todo eso.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 02:57 pm
En la carga

Código :

//
   mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
   var D = mdm.Database.MSAccess.getData();
   var myDP:Array = new Array();
   for (var L:Number = 0; L<D.length; L++) {
      myDP.addItem({id:D[L][0], Nombre:D[L][1], Apellidos:D[L][2], Email:D[L][3], Telefono:D[L][4], Movil:D[L][5], Direccion:D[L][6], Categoria:D[L][7], Empresa:D[L][8]});
   }
   DataSet.Usuarios = myDP;
//
//
// Despues solo hay k ejecutar para pasar de dataset los datos a datagrid
DataGrid.dataProvider = DataSet.Usuarios;
//
// Para no liarte si tienes muchas tablas en mdb, ponle siempre el nombre de la tabla de etiketa en los datos utilizados

Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 03:14 pm
saludos a deker!! me parece que tu código esta mal!! jo ntc :-D me parece que es el más simple y efectivo, claro que falta que barak logré hacerlo funcionar

saludos!!!

Por andres_santos

236 de clabLevel



 

opera
Citar            
MensajeEscrito el 31 Jul 2007 03:35 pm
No entiendo k esta mal?

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 03:44 pm
si lo hice funcionar.....pero sera que me pueden ayudar con el tutorial de conectar access con mdm zinc, intento agregar una casilla pero al ejecutar me dice unknow en las casillas yal insertar un dato me lanza un error

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 03:57 pm
Tienes ahora k trabajar todo con dataset y dejar solo para el final guardar la grabacion en mdb, asi k tendras k restructurar ese sample tienes o por el k te guias, ahora es todo como almacenar de forma virtual, cuando kieras digamos la confirmacion de k los datos de tu datagrid son correctos y kieres guardar pos te sera mucho mas facil y a prueba de errores.

Código :

var BaseFile:String = "mi.mdb"
var BasePassword:String = "";
var path:String = mdm.Application.path+BaseFile;
mdm.Database.MSAccess.connect(BaseFile, BasePassword);
var success:Boolean = mdm.Database.MSAccess.success();
if (!success) {
   mdm.Dialogs.prompt("ERROR");
   return;
} else {
mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
var D:Array = mdm.Database.MSAccess.getData();
var myDP:Array = new Array();
for (var L:Number = 0; L<D.length; L++) {
   myDP.addItem({id:D[L][0], Nombre:D[L][1], Apellidos:D[L][2], Email:D[L][3], Telefono:D[L][4], Movil:D[L][5], Direccion:D[L][6], Categoria:D[L][7], Empresa:D[L][8]});
}
DataSet.Usuarios = myDP;
}

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 04:08 pm
pero debo agregarle los datos que tengo abajo y le agrego este o debo implementar algo de mas???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 31 Jul 2007 06:59 pm
Tener una DataSet por alguna eskina k no sera visible despues, con el nombre DataSet
Las modificaciones de nombre apellido etc es ejemplo, le aplicas lo k tu kieras

Un ejemplo
ejemplo dataset.rar (256.71 KB)
http://www.megaupload.com/?d=RV23BYAW

Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 31 Jul 2007 10:36 pm
Bueno.. eh colgado un ejemplo agenda para base mdb con zinc
AGENDA.rar (2.63 MB)
http://www.megaupload.com/?d=HMEPUMYG
Tiene el exe,fla,swf,mdb
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 05:47 pm
una pregunta hay forma que se puedan almacenar datos por un metodo de array y los almacene en access??? y otra pregunta como deberia hacer para que me mande registros de un datagrid a otro ubicados en diferentes escenas por medio de un boton???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 07:21 pm
Hola
Si puedes usar array en mdb, el problema k tendras k meter identificador despues para esa columna.
Referente a la base con otros scenarios, ya ser k yo tengo ese problema, ya k uso scenarios para no tener todo saturado y trabajar mejor, supongo k la solucion esta en clases, pero a tanto no llego, toy estudiando el tema de como hacer, ya k tengo una scena central k depura funciones y todo loke se va cargando cada vez k pasas por un scenario.

Mi truco por el momento es usar cadenas en array de lo mas importante, los botones se asocian a las cadenas, asociando el nombre de la cadena.
Bueno esto ya tendria k comentar algun experto en el tema como hacer k la base de datos funcione de forma global, cosa k no me logro salir.
Saludos

Por deker

55 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.