Lo que trato de hacer es que tome de una base de datos 3 campos, que me los pase a un textbox y que a su vez mediante AS 2.0 lo grafique en pantalla en forma de estadistica...
Todo iba bien hasta que me di cuenta que las variables las toma como texto desde la base de datos!! o sea.. me devuelve un valor NAN cuando quiero hacer alguna operacion con los numeros que traigo..
Les dejo lo que venia haciendo hasta ahora... me podran decir que parte debo arreglar o que debo incluir para que me tome las variables que preciso como numero?
Debo entregarlo en unos dias y estoy sencillamente con la cabeza quemada..
var databaseFile:String = "bd1.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,ano,mes,ingresadas,terminadas,totales FROM causas order by id 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 = parseInt(dataSet[i][0]);
datos.ano = dataSet[i][1];
datos.mes = dataSet[i][2];
datos.ingresadas = dataSet[i][3];
datos.terminadas = dataSet[i][4];
datos.totales = dataSet[i][5];
newItemsArray.push(datos);
}
theDataGrid.dataProvider = newItemsArray;
anoVAR.text = mdm.Database.MSAccess.getField(2, 1);
mesVAR.text = mdm.Database.MSAccess.getField(2, 2);
ingreVAR.text = mdm.Database.MSAccess.getField(2, 3);
terVAR.text = mdm.Database.MSAccess.getField(2, 4);
totalVAR.text = mdm.Database.MSAccess.getField(2, 5);
}
//FUNCION PARA MONTAR EL DATAGRID
function layoutGUI():Void {
// Montamos el encabezado del datagrid
theDataGrid.setStyle("fontSize",10);
theDataGrid.columnNames = ["ID", "ano", "mes", "ingresadas","terminadas","totales"];
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.15*gridWidth;
theDataGrid.getColumnAt(1).headerText = "Año:";
theDataGrid.getColumnAt(2).width = 0.20*gridWidth;
theDataGrid.getColumnAt(2).headerText = "Mes:";
theDataGrid.getColumnAt(3).width = 0.20*gridWidth;
theDataGrid.getColumnAt(3).headerText = "Ingresadas:";
theDataGrid.getColumnAt(4).width = 0.20*gridWidth;
theDataGrid.getColumnAt(4).headerText = "Terminadas:";
theDataGrid.getColumnAt(5).width = 0.20*gridWidth;
theDataGrid.getColumnAt(5).headerText = "Totales:";
theDataGrid.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
}
//Funcion para insertar un dato
bot_insertar.onRelease=function(){
if(ano_txt.text==""){
ano_txt.text="Este campo no puede estar vacio";
}else{
mdm.Database.MSAccess.runQuery("INSERT INTO causas (ano,mes,ingresadas,terminadas,totales) VALUES ('"+ano_txt.text+"','"+mes_txt.text+"','"+ingresadas_txt.text+"','"+terminadas_txt.text+"',"+totales_txt.text+")");
consulta();
ano_txt.text="";
mes_txt.text="";
ingresadas_txt.text="";
terminadas_txt.text="";
totales_txt.text="";
}
}
//Borrado de datos
bot_borrar.onRelease=function(){
LineaGrid = theDataGrid.selectedIndex;
if(LineaGrid!=undefined){
var sqlString:String = "DELETE FROM causas where id="+theDataGrid.getItemAt(LineaGrid).ID;
mdm.Database.MSAccess.runQuery(sqlString);
theDataGrid.removeItemAt(LineaGrid);
consulta();
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Ha ocurrido un error ejecutando la consulta";
mdm.Dialogs.prompt(msg);
return;
}
}
}
//Edicion de datos
theDataGrid.addEventListener("change", editar);
function editar(Obj) {
bot_editar.enabled=true;
//Obtiene los datos de la linea seleccionada
DatosGrid = Obj.target.selectedItem;
//Asigna valores de los campos de texto
ano_txt.text = DatosGrid.ano;
mes_txt.text = DatosGrid.mes;
ingresadas_txt.text = DatosGrid.ingresadas;
terminadas_txt.text = DatosGrid.terminadas;
totales_txt.text = DatosGrid.totales;
}
bot_editar.onRelease=function(){
LineaGrid = theDataGrid.selectedIndex;
var sqlString:String = "UPDATE causas set ano='"+ano_txt.text+"', mes='"+mes_txt.text+"', ingresadas='"+ingresadas_txt.text+"', terminadas='"+terminadas_txt.text+"', totales="+totales_txt.text+" where id="+theDataGrid.getItemAt(LineaGrid).ID;
mdm.Database.MSAccess.runQuery(sqlString);
var error:Boolean = (mdm.Database.MSAccess.error() == "true");
if (error) {
var msg:String = "Error occured while executing sql query!";
mdm.Dialogs.prompt(msg);
return;
}
consulta();
bot_editar.enabled=false;
ano.text = "";
mes_txt.text = "";
ingresadas_txt.text = "";
terminadas_txt.text = "";
totales_txt.text = "";
}
AQUI EL PROBLEMA !
ingreVar.text que viene de Access no me lo toma como numero... creo que es eso.. ya que me devuelve un valor NAN cuando trato de hacer la operacion..
Var1 = (ingreVAR.text*384)/3000
var r:MovieClip = createEmptyMovieClip("rectangles", 2);
r.beginFill(0x28AC06, 50);
r.lineStyle(1, 0x0C5203, 100);
r.moveTo(180, 508);
r.lineTo(300, 508);
r.lineTo(300, (508-Var1));
r.lineTo(180, (508-Var1));
r.endFill();
bot_editar.enabled=false;
layoutGUI();
consulta();//Obtenemos los datos de la bbdd
Espero puedan ayudarme desde ya muchas gracias por tomarse el tiempo de leerlo..