Comunidad de diseño web y desarrollo en internet online

¿como dar una opcion de buscar en un datagrind?

Citar            
MensajeEscrito el 01 Ago 2007 08:43 pm
Tengo otra pregunta, por que yo ejecuto mi aplicacion y sale bien, normal cuando le doy buscar me encuentra perfectamente lo que estoy buscando pero al intentar editarlo me lanza un error que dice "EL PARAMETRO UNDEFINIED NO TIENE UN VALOR PREDETERMINADO SQL STATEMENT: UPDATE MIBASE SET FECHA=14-06-07 NOMBRE: ANDREA......ETC" QUE DEBERIA HACER PARA QUE ME DEJE EDITAR DESPUES DE BUSCAR ???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 09:13 pm
Tengo una dud. Hasta el momento todo me ha funcionado correctamente desde que carga los datos de access hasta la opcion de buscar, pero ocurre que cuando busco alguna palabra, la selecciono he intento editarla (con el respectivo boton de edtar) me da un error que dice asi; "EL PARAMETRO UNDEFINIED NO TIENE UN VALOR PREDETERMINADO SQL STATEMENT: UPDATE MIBASE SET NOMBRE MARIA, CARLOS, ANDREA FECHA 18-08-06.......ETC" POR QUE NO ME DEJA EDITARLOS CUANDO LE DOY BUSCAR Y QUE DEBERIA HACER PARA PODER HACERLO???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 09:38 pm
1º Sera o bien k tienes restriccion en la tabla del mdb o bien no coinzidan datos enviados a mdb
2º yo k tu kitaria la grabacion esa de editar, poniendo un boton final de guardar todo digamos, es por si no te interesa guardar varios cambios echos en un periodo y kieres descartarlo asi k no te molestas en grabar solo actualizas.

Bueno esto solo te funcionara si las columnas tienes el mismo nombre k las de la base mdb, esto lo uso yo para no comerme la cabeza, le hice unos cambios creo k esta bien, porke el k uso yo es mas complejo.

Código :

//
///////////////////////////////////////////////////////////////////
// GRABACION - GUARDAR - BOTON GUARDAR
///////////////////////////////////////////////////////////////////
// 
BaseGuardar.onPress = function() {
   GrabaTablas(DataGrid, "Nombre_tabla_mdb");
};
//
///////////////////////////////////////////////////////////////////
// GUARDAR - FUNCION
///////////////////////////////////////////////////////////////////
//
function GrabaTablas(A:Object, B:String) {
   var CN:Number = A.columnCount;
   var CNL:Number = A.length;
   for (var L:Number = 1; L<CN; L++) {
      GrabaColumnas(CNL, A.columnNames[L], A, B);
   }
   //
   mdm.Dialogs.prompt("BASE Guardada");
}
//
function GrabaColumnas(A:Number, B:String, C:Object, D:String) {
   for (var L:Number = 0; L<A; L++) {
      var newQuery = "UPDATE "+D+" SET "+B+" = \""+C.getItemAt(L)[B]+"\" WHERE id="+C.getItemAt(L).id;
      mdm.Database.MSAccess.runQuery(newQuery);
   }
}
//
///////////////////////////////////////////////////////////////////
//

Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 09:47 pm
PERO ESTE ME GURDARA EN ACCESS LOS DATOS QUE YO MODIFIQUE O ME AFECTARA LA OPCION DE BUSCAR???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 09:49 pm
Esto manda todo el datagrid a mdb, todo loke aiga. Sobre escribira cambiando los datos por los del datagrid es un guardar, k te voy contar :)
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 09:55 pm
PERO LO QUE NO ENTIENDO ES QUE COMO LE DIGO QUE ME GUARDE Y A LA VEZ ME ACTUALICE LOS DATOS DEL DATAGRID ADEMAS LA FUNCION:


function GrabaColumnas(A:Number, B:String, C:Object, D:String) {
for (var L:Number = 0; L<A; L++) {
var newQuery = "UPDATE "+D+" SET "+B+" = \""+C.getItemAt(L)[B]+"\" WHERE id="+C.getItemAt(L).id;
mdm.Database.MSAccess.runQuery(newQuery); }
}


AQUI COMO LE DIGO QUE GUARDE LOS DATOS EN SUS RESPECTIVAS COLUMNAS

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 10:07 pm
mdm.Dialogs.prompt("BASE Guardada"); <--------- DEBAJO DE AKI LE PONES COMANDO DE LOKE TENGAS PARA ACTUALIZAR - cosa k no te hace falta al guardar es para salir dejar de usarlo asi k loke guarda ya existe realmente, no necesita actualizar, si tienes k aplicarle despues la misma funcion para DataSet, base interna asi k es casi el mismo motor cambiandole los identificadores.

Tu no tienes k decirle nada para eso esta el para hacerlo por ti, tu solo as de presionar boton y el lo hace todo ;)

Nombre del datagrid -> DataGrid no le pongas ""
Nombre de la tabla mdb -> Nombre_tabla_mdb si as de ponerle ""
GrabaTablas(DataGrid, "Nombre_tabla_mdb");

Y nada mas no tienes k hacer nada mas
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 10:21 pm
ya ejecute este, al darle click al boton guardar me dice base guardada pero no me actuliza ni me guarda los cambios realizados.en que estare fallando??

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 10:26 pm
Si tienes el access abierto dale a actualizar porke no salen los cambios de golpe.
Por otra parte mira k tengas correcto eso, yo eske no eh probado eso pero vamos a simple vista me parece k esta correcto.
Tampoco te salta error ni nada? pos no se, eso ya es como hagas las cosas.

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 10:29 pm
TE PUEDO ENVIAR MI PROYECTO A TU CORREO Y ME AYUDAS ES QUE LA VERDAD NO SE QUE HACER

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 10:38 pm
Bueno mandame un MP

Te explico almacenamiento masivo en DataSet

Código :

var BaseFile:String = "NOMBRE.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 TABLA_1");
   DataSet.TABLA_1 = mdm.Database.MSAccess.getData();
   //
   mdm.Database.MSAccess.select("SELECT * FROM TABLA_2");
   DataSet.TABLA_2 = mdm.Database.MSAccess.getData();
   //
   mdm.Database.MSAccess.select("SELECT * FROM TABLA_3");
   DataSet.TABLA_3 = mdm.Database.MSAccess.getData();
   //
   // TODAS LAS TABLAS ACCESS A DATASET
   //
}


Bueno despues similar a lo anterior, lo tipico usado por parametros de lineas.

Código :

   var myDP:Array = new Array();
   var D:Object = DataSet.TABLA_3;
   for (var L in D) {
      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]});
   }
   DataGrid.dataProvider = myDP;

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 01 Ago 2007 10:53 pm
UNA PREGUNTA COMO ES TU CORREO???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 01 Ago 2007 11:18 pm
Ya te envie un MP

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Ago 2007 12:40 am
Te lo renvio, no tienes msn, no mirastes el ejemplo puse en los post anteriores, no tenias ni el dataset, asi no te enteras de nada :)
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Ago 2007 12:12 pm
UNA PREGUNTA QUE LIBRO ME RECOMIENDAN PARA APRENDER A PROGRAMAR MEJOR??????

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 03:13 pm
No se, yo voy aprendiendo con la ayuda de flash, paso de libros.
Lo k tienes k depurar mucho contenido, no repetir nombres de los datagrid, k asi tienes lios, aparte usas scenas y cuando pasas por una a otra y tienes las mismas funciones, se ejecutan en otra scena igualmente de forma imnecesaria.
Meter lo basico y despues loke kieras, pero lo 1º yo te diria su motor de funcionamiento para la base de datos, mas tarde te pones con los detayes.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Ago 2007 03:30 pm
entonces que me recomiendas para poder dividir en las tres ramas que viste en mi proyecto es que ya intente con un bat y fs command pero el mdm zinc no me deja ejecutar archivos externos

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 07:30 pm
Las scenas estan bien, loke pasa k tienes mismos nombres a los datagrid y botones repetidos y al pasar por las scenas se alojan en el cache o como se llame, asi k o le metes mano a ordenar todo eso o te miro mal.
No necesitas 3 mdb, con 1 llega solo es ponerle el nombre de la tabla a almacenar en dataset, o a lo animal cargando todo de la forma tradicional, aunke sinceramente no le miro mucho sentido a dataset en un ejecutable, mucho no me combence.

Depura k tienes muchas cosas repetidas, crea un proyecto nuevo y vas metiendo todo de nuevo pero de forma ordenada y limpia sin cosas k adornen, solo funcionamiento, motor para gestionar, eso es lo 1º, el resto para el final cuando todo funcione, pues te trabajas otro scenario y vuelves empezar de nuevo el motor, cuando entiendas loke haces, ya podras crear funciones para no tener k repetirlas.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Ago 2007 07:49 pm
mi pregunta ahora es, en la opcion buscar, como le hago para que me busque el ID tambien???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 08:37 pm
EN REALIDAD DEJAME FELICITARTE ERES TODO UN EXPERTO EN ESTO, ESE EJMPLO QUE TIENES DE TPV FLASH ES INCREIBLE, ME ENCANTARIA APRENDER A HACER TODO ESO, COMO LE HAGO???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 09:33 pm
if (D[L].nombre.toLowerCase().indexOf(A) != -1) { <----------- esto poner

if (D[L].nombre.toLowerCase().indexOf(A) != -1 || D[L].id.indexOf(A) != -1) { <--------- asi nombre y id

Todo esto es trabajo, no soy experto, loke ocurre k insisto si no sale.
Bueno poco a poco y con calma, cuando haces algo bien no tienes k andar despues a retokarlo y cambiar nada, tomate tu tiempo y loke te comente, hazme caso, 1º motor despues diseño.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 02 Ago 2007 10:05 pm
oye te pido un favor, sera que todo tutorial o ejemplo que te encuentres me lo podrias enviar a mi correo para ver si algun dia puedo lograr hacer algo como lo que hiciste???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 02 Ago 2007 10:43 pm
Ya te comente k uso la ayuda de flash, busco loke necesito, claro asi empiezas para saber k puedes utilizar para loke kieres hacer, es una mierda lo de ayuda de flash, pero es loke hay, la mayoria de samples y cosas k te encuentras son malos, porke son simples y con tonterias, parake por ejemplo le meten diseños de fuentes cuando realmente es para otra funcion, eso confunde a los novatos, y pocos merecen la pena, pocos hay con funciones especificadas, ahora un monton lleno de tonterias, por el momento aki tienes algunos buenos, relacionados con cristalab.
Mira los samples de la web del zinc, son buenos la mayoria.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2007 01:00 pm
oye otra pregunta es que ahora para facilitar la insercion de datos he colocado imput text destro del datagrid para editarlo de una vez, pero ahora no me da cuando le quiero buscar un registro ahora que hago???

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Ago 2007 06:28 pm
No entiendo, k kieres decir?
Cuando añades algo al mdb no te lo encuentra al buscar?
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Ago 2007 08:10 pm
SI LO QUE HICE FUE CREAR UN DATAGRID QUE CARGARA LOS DATOS DE ACCESS ENTONCES AL CARGAR ESTE SE SELECCIONA Y SE EDITA DIRECTAMENTE DESDE EL DATAGRID UN CELLRIDER SI NO ESTOY MAL PERO NO SE COMO HACERLE PARA BUSCAR ALGO ALLI

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 03 Ago 2007 08:34 pm
Ya me suena raro eso, eso de editar directamente no es buena opcion, yo lo descarte hace tiempo, por errores k puedas cometer al editar y lo graba de forma directa k seguro algo asi tendras.
Mirastes como tengo yo el proyecto sin editar directamente, yo tengo boton de guardar todo y no me rompo la cabeza con problemas, k despues al manejar muchos datos te lias kieres dar marcha atras y la liastes.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ago 2007 05:47 pm
Y TENGO OTRA PREGUNTA, COMO HAGO PARA QUE AL BUSCAR UN DATO PUEDA LANZARME EL ID TAMBIEN, PUES SEGUI LO QUE TU ME DIJISTE PERO ME DICE QUE ID ES UNA COLUMNA NO EXPORABLE Y LOS DATAGRID DESAPARECEN

Por Barak

78 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 06 Ago 2007 07:32 pm
No se como haces, tienes k ponerte y lograrlo.
Al alojar en dataset inclulle la id tal como el ejemplo de agenda k te mande, asi k en teoria si te da nombre te da id ya k esta todo especificado cuando insertas los datos en dataset, solo as de especificar el objeto, array.linea.nombre array.linea.id esto claro k bucleando.
Del ejemplo te mande me envias otro empezado y vulta a empezar de otra manera, o lo haces de una forma o de otra, loke no puedes es mezclar de todo porke montas un lio k ya te cuesta entender, y asi entenderas menos loke haces, repito o una forma o la otra. dataset o sin dataset.
Saludos

Por deker

55 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Ago 2007 07:48 pm
A ver

Boton Carga y graba a dataset

Código :

on (press) {
   mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
   var myDP:Array = new Array();
   var D:Array = mdm.Database.MSAccess.getData();
   for (var L in D) {
      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]});
   }
   _parent.DataSet.Usuarios_Agenda = myDP;
}

Envia a dataset la informacion de la columna Usuarios_Agenda como nombre Usuarios_Agenda

Boton de buskeda en datagrid, k buscara en dataset

Código :

on (press) {
   // texto a buscar, lo pasa a minusculas
   var TEXTO:String = _parent.Busca.text.toLowerCase();
   if (!TEXTO) {
      return;
   }  
   var myDP:Array = new Array();
   var D:Array = _parent.DataSet.Usuarios_Agenda;
   for (var L in D) {
      if (D[L].Nombre.toLowerCase().indexOf(TEXTO) != -1 || D[L].id.indexOf(TEXTO) != -1) {
         myDP.addItem({id:D[L].id, Nombre:D[L].Nombre, Apellidos:D[L].Apellidos, Email:D[L].Email, Telefono:D[L].Telefono, Movil:D[L].Movil, Direccion:D[L].Direccion, Categoria:D[L].Categoria, Empresa:D[L].Empresa});
      }
   }
   //resultado es enviado a DataGrid
   _parent.DataGrid.dataProvider = myDP;
}

Buscara en dataset id o nombre y cargara el resultado en datagrid.

Como enviar todo de dataset Usuarios_Agenda a datagrid?
boton

Código :

on (press) {
   _parent.DataGrid.dataProvider = _parent.DataSet.Usuarios_Agenda;
}

Como enviar datos de dataset a datagrid?
boton

Código :

on (press) {
   _parent.DataGrid.dataProvider = _parent.DataSet.Nombre_de_la_tabla_Pones;
}

Como guardar una tabla

Código :

on (press) {
   mdm.Database.MSAccess.select("SELECT * FROM Nombre_tabla");
   var myDP:Array = new Array();
   var D:Array = mdm.Database.MSAccess.getData();
   for (var L in D) {
      myDP.addItem({id:D[L][0], Parametros:D[L][1]});
   }
   _parent.DataSet.Nombre_tabla = myDP;
//Nombre_tabla no es obligatio sea el mismo pero mejor no hacerse lios
}


Como hacerlo en class
Crear carpeta meclases
crear Grabar_Usuarios_Agenda.as

Código :

class meclases.Grabar_Usuarios_Agenda {
   public function Grabar_Usuarios_Agenda() {
      _level.mdm.Database.MSAccess.select("SELECT * FROM Usuarios_Agenda");
      var myDP:Array = new Array();
      var D:Array = _level.mdm.Database.MSAccess.getData();
      for (var L in D) {
         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_Agenda = myDP;
   }
}


Ahora en nuestra scena donde tengamos conectar a mdb despues de conectar poner

Código :

import meclases.*
var TEMP = new meclases.Grabar_Usuarios_Agenda();
delete TEMP

ahora ya envio a dataset todos los datos de la tabla Usuarios_Agenda
Para k dataset funcione de forma global en todas las scenas, en la 1º de carga

Código :

import mx.data.components.datasetclasses.DataSetIterator;
attachMovie("DataSet", "DataSet", 0);

Bueno creo k llega para empezar no ?
Venga suerte.

Por deker

55 de clabLevel



 

msie7

 

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