Comunidad de diseño web y desarrollo en internet online

Aplicacion control y gestion de tiempo

Citar            
MensajeEscrito el 24 Ago 2008 08:20 pm
Hola,
Para el desarrollo de una aplicación, que lee y escribe en un base de datos Access, tengo el esquema claro, pero no del todo.
Os explico un poco el esquema.

Nuestro flash, Obtendra de la tabla clientes, el id, nombre y apellidos de nuestro cliente.
Lo mostrara en el interface, aun no se si en un combobox, o bien creando ya la instancias de cronos.
Cronos, será una aplicación que contabilizara el tiempo, desde que se genera la instancia, o desde que el listener avisa al combo.

Bien, la instancia de cronos, tendrá una hora de entrada una hora de salida, y en función del tiempo un importe a cobrar.
Estos campos de la instancia cronos, se deben de escribir en otra tabla de la misma base de datos.

Finalmente, se cerrara la edicion de la tabla para ese id, y se imprimiran unos tickets.

Lo que aun no se es como hacer la instancia, como sacarla. es decir que si creamos las instancias 0,1,2 .... n de cronos, si hay muchos clientes, llenaran la pantalla y sea dificl buscarlo para el usuario. Por eso igual lo saco en un combobox. Otra peculiaridad, es que las instancias de cronos, deben de ir añadiendose en el escenario, a medida que el usuario lo necesite.
SI alguna se pregunta porque en Access. Sencillo, en 24-48 horas tiene que estar lista, y por lo tanto solo escribo AS2, y me olvido del Php, ya que son muchos campos, y aun hay mas aplicaciones y tablas.

Creo que la explicacion es clara, ¿no? :P
Asi pues 1º
tomamos los valores que necesitamos de la tabla clientes (garabatos_cl)
var databaseFile:String = "bd.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;
}
//FUNCION PARA HACER LA CONSULTA A LA BBDD
function consulta() {
theDataGrid.removeAll();
var sqlString:String = "SELECT id_cliente,Nombre,Apellidos FROM Garabatos_cl order by id_cliente asc";
// Ejecutamos la consulta sql
mdm.Database.MSAccess.select(sqlString);
// Comprobamos los errores
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Ha ocurrido un error en la consulta!";
mdm.Dialogs.prompt(msg);
return;
}
//Obtenemos los datos de la consulta
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_cliente = parseInt(dataSet[i][0]);
datos.Nombre = dataSet[i][1];
datos.Apellidos = dataSet[i][2];
newItemsArray.push(datos);
}
theDataGrid.dataProvider = newItemsArray;
}



Antes de hacer el combo, o las instancias de cronos. Pues querria saber vuestra opinión.
Gracias.
Baru

Por barullo

13 de clabLevel



 

safari
Citar            
MensajeEscrito el 25 Ago 2008 10:55 am
Te olvidaste de darle formato a tu código
¿Cual es la pregunta, que opinamos de lo que hiciste?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 01:53 pm
Hola Jorge, gente del foro.

Bueno, primero una breve disculpa. Ese código, es el típico copy paste del tutorial de Falsh con Access conectado por Mdm.
Realmente estoy investigando que es lo que quiere el cliente, algo que supongo es habitual ya. ("hazme .......")

Así que ya profundizando en el tema, y visto que muchos se asustan con un programa de gestion, pues intentare hacer uno.
Por ello, voy posteando las dudas que tenga. Y el porque lo hago con access y no en Php+MySql, pues son dos. Una es algo nuevo, y dos soy muy vago.

Por lo tanto disculpen el inicio de este post.
La primera duda, es el tratamiento de los datos en access y como interpretarlos en flash.

Veo en el tutorial, que las variables que pasamos de los campos de texto, son o bien ' " campo " ', que creo que se relaciona con datos en texto o en Memo access, y solo comillas, ósea " campo ", que creo que es como se pasan números.
No se si esto es asi, y de que modo access acepta los datos que vienen de action script, y si hay limitaciones, para los registros de access, que ademas de texto, Memo, numérico, fecha/hora, y autonumerico.....

En breve subiré la aplicación al servidor.

Un saludo
Baru

Por barullo

13 de clabLevel



 

safari
Citar            
MensajeEscrito el 02 Sep 2008 02:31 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Sep 2008 11:49 pm
Ya se, pero, como explicarlo. Hay gente que quiere darle un boton, y le hago todo, incluso una paj......
Y ya he manejado las otras. Creo que gracias a flash-db, abre montado unas cuantas tiendas.
Pero el caso, es que es un unico puesto, y es la ludoteca de mi primo, y me a tocado ser el amigo/primo/vecino "informatico", que se lo hace.
De hecho el 1 de agosto tenian un pc, nuevo, montado, con Unbutu, y xp, y factusyn(Factusyn= Php+Mysql), que ya se lo estaba adaptando,pero que os voy a contar. Creo que deberiamos de hacer una foto cuando alguien ve algo asi, el careto que pone, jajajajjaja.

veo eso...
gracias Jorge

Por barullo

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Sep 2008 11:52 pm
Me alegro que te haya servido flash-db ;)
Pues con un poco de VisualBasic o incluso con los mismos wizzards, no es difícil hacer una basesita con interfaz en Access mismo

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 05 Sep 2008 02:58 am
Bueno, aqui el codigo.
Funciona, vamos los tiros van por aqui, es demasiado decir que funciona. Si atacha el mc, pero tengo que posicionar los clips, en funcion a una nueva variable, Y por otro lado el contenido de los mc's ya no funciona. Como no puedo depurar, me cuesta ver de donde viene el problema.
Primero seleccionamos la bd ...etc

Código :

var databaseFile:String = "Garabatos.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;
}
///////////////////////////// 

Primero pondre el codigo, que pasado por un for, hace que todo funcione:

Código :

separacionh = 20;
separacion = 0;           
function consulta() {
   thecombo.removeAll();
   var sqlString:String = "SELECT id_cliente,Nombre,Apellidos FROM garabatos_cl order by id_cliente asc";
   mdm.Database.MSAccess.select(sqlString);
   var error:Boolean = (mdm.Database.MSAccess.error() == "true");
   if (error) {
      var msg:String = "Ha ocurrido un error en la consulta!";
      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_cliente = parseInt(dataSet[i][0]);
      datos.Nombre = dataSet[i][1];
      datos.Apellidos = dataSet[i][2];
      newItemsArray.push(datos);
   }
   total_matriz = newItemsArray.length;
   for (var i = 0; i < newItemsArray.length; i++) {
      attachMovie("cronn_mc", "cronn_mc" + i, i);
      //anterior = eval("cronn_mc" + (i - 1));
      item = eval("cronn_mc" + i);
      item.id_cliente_txt.autoSize = true;
      item.Cliente_txt.autoSize = true;
      //item.baix_ypos = menu[i].baix_ypos
      item.id_cliente_txt.text = newItemsArray[i].id_cliente;
      item.Cliente_txt.text = newItemsArray[i].Apellidos + ", " + newItemsArray[i].Nombre + " .";
      //Nota pillar dimensiones de pantalla de garabatos_cl o hacerlo autoaujustable como las tiendas
      if (i >= 0) {
         item._y = separacionh;
         item._x = i * (item._width + separacion);
      }
      if (i >= 10) {
         item._y = 1 * (item._height + separacionh);
         item._x = (i - 10) * (item._width + separacion);
      }
      if (i >= 20) {
         item._y = 2 * (item._height + separacionh);
         item._x = (i - 20) * (item._width + separacion);
      }
      if (i >= 30) {
         item._y = 3 * (item._height + separacionh);
         item._x = (i - 30) * (item._width + separacion);
      }
   }
   //thecombo.dataProvider = newItemsArray;
   //thecombo.addEventListener("change", alSeleccionar);
}
consulta();

Y ahora el nuevo codigo, que atacha el mc, correspondiente a la fila seleccionada del datagrid:

Código :

function consulta() {
   theDataGrid.removeAll();
   var sqlString:String = "SELECT id_cliente,Nombre,Apellidos,Fecha FROM garabatos_cl order by id_cliente asc";
   mdm.Database.MSAccess.select(sqlString)
   var error:Boolean = (mdm.Database.MSAccess.error() == "true");
   if (error) {
      var msg:String = "Ha ocurrido un error en la consulta!";
      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_cliente = parseInt(dataSet[i][0]);
      datos.Nombre = dataSet[i][1];
      datos.Apellidos = dataSet[i][2];
      datos.Fecha = dataSet[i][3];
      newItemsArray.push(datos);
   }
   theDataGrid.dataProvider = newItemsArray;
   total_matriz = newItemsArray.length;
}
separacionh = 20;
separacion = 0;
theDataGrid.addEventListener("change", cronometrar);
function cronometrar(Obj) {
   bot_cronn.enabled = true;
   DatosGrid = Obj.target.selectedItem;
   yo = DatosGrid.id_cliente;
   bot_cronn.onRelease = function() {
      //Metodo 1 (
      //anterior = eval("cronn_mc" + (i - 1));
      attachMovie("cronn", "cronn_mc" + yo, yo++);
      item = eval(["cronn_mc" + yo]);
      item.id_cliente_txt.autoSize = true;
      item.id_cliente_txt.text = yo-1;
      item.Cliente_txt.autoSize = true;
      item.Cliente_txt.text = DatosGrid.Apellidos + ", " + DatosGrid.Nombre;
      item._y = 20;
      item._x =yo * (item._width + separacion);
      var msg:String = String(total_matriz + " " + item);
      mdm.Dialogs.prompt(msg);
      return;
   };
}
///////////////////////////////

Bueno, espero que me ayuden a reorganizar este codigo, porque ya estoy perdido. Se trata de atachar el mc, que corresponde a la fila del datagrid, por lo que para que no se puedan seleccionar dos veces la misma, ¿lo mejor seria desactivar esa fila del data grid?, y para reorganizar los mc's en el stage, crear una nueva variable, ya que en función de los indices de la bd, no funciona si hemos eliminado filas de la tabla de datos.
Y el codigo que me interesa es el segundo, evidentemente.
Muchas gracias.
Baru
Pd: no puedo editar los post. ¿donde esta el boton de editar? :oops:

Por barullo

13 de clabLevel



 

safari

 

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