En el Software educativo que estoy haciendo,.. necesito imprimir o generar reportes ... Estoy trabajando con MDM ZINC 4.0, fLASH CS6 Y ACCESS 2010 en AS2...
Este post lo coloque aqui por estar trabajando con FLASH y en PHP MYSQL ya que es de base de datos
Debo generar un reporte por niño, pero al emitir el reporte no me me indica nada de nada...
Esta es la programación:
Código :
stop();
//REPORTE POR NIÑO
_global.alumnoR = 0;
// _root.reporte_btn.enabled = false;
var etx:String = "";
var idsx:Number = 0;
var largo:Number = 0;
var sesionSeln:Number = 0;
var sesionSel = "";
//conectamos la base de datos
var databaseFile:String = "aprenderdb.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);
}
else
{
//creamos los dos arreglos requeridos y la variable de cantidad
//obtenemos la cadena
var sqlstr0:String = "SELECT distinct idAlum FROM maestraactivasesion where idU = "+_global.usuario;
//ejecutamos la consulta
mdm.Database.MSAccess.select(sqlstr0);
//recuperamos la información mediante un arreglo
var yeye:Array = mdm.Database.MSAccess.getData();
var largo = yeye.length;
etiqueta = new Array(largo);
identifica = new Array(largo);
//hacemos otra consulta para
//mdm.Dialogs.prompt("largo: "+largo);
//hacemos la consulta para llenar los dos arreglos requeridos
var sqlstrA:String = "SELECT distinct m.idAlum,a.nomAlum FROM maestraactivasesion m inner join alumnos a on(m.idAlum = a.idAlum) where m.idU ="+_global.usuario;
//ejecutamos la consulta
mdm.Database.MSAccess.select(sqlstrA);
//recuperamos la información mediante un arreglo
var yaya:Array = mdm.Database.MSAccess.getData();
var yaya_largo:Number = 0;
var yaya_largo = yaya.length;
//mdm.Dialogs.prompt("largo de la consulta actual: "+yaya_largo+" largo: "+largo+" !!");
for (var i = 0; i<yaya_largo; i++)
{
idsx = parseInt(yaya[i][0]);
identifica[i] = idsx;
etx = "Alumno: ("+idsx+") "+yaya[i][1];
etiqueta[i] = etx;
//mdm.Dialogs.prompt("indice "+identifica[i]+" etiqueta: "+etiqueta[i]+" !!!");
}
llenarCombo();
//cerramos la base de datos
mdm.Database.MSAccess.close();
}
//
//////funcion llenarcombobox
function llenarCombo()
{
listadoN.setStyle("fontSize",14);
//Le asignamos un proveedor de datos
losDatosN = new Array();
listadoN.dataProvider = losDatosN;
//Metemos los datos en el ComboBox
for (i=0; i<identifica.length; i++)
{
losDatosN.addItem({ label: etiqueta[i], data: identifica[i] });
}
}
//fin de la funcion llenar combobox
/************* LISTENERS ****************/
//Eventos
listadoN.addEventListener("change", alSeleccionar);
//Listeners para cuando seleccionamos alguna opcion
function alSeleccionar(Obj)
{
//_root.reporte_btn.enabled = true;
DatosListaN = Obj.target.selectedItem;
//idSel_txt.text = DatosGrid.data;
//LineaGrid = listado.selectedIndex;
var alumnoSel2N= DatosListaN.data
_global.alumnoR = parseInt(alumnoSel2N);
//sesionSelR = ""+_global.sesion+"";
//mdm.Dialogs.prompt("niño seleccionado " + _global.alumnoR);
//no me vuestra el valor de la variable en la caja de texto ????
}
_root.reporteN_btn.onRelease = function()
{
//conectamos la base de datos
var databaseFile:String = "aprenderdb.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);
}
else
{
//limpiamos la cola de impresion
var sqlxxy:String = "UPDATE imprecontrolN SET imprecontrolN.pendiente = '5', imprecontrolN.idU = '0', imprecontrolN.idAlumno = '0', imprecontrolN.nombreU = 'nada' WHERE imprecontrolN.pendiente ='1'";
mdm.Database.MSAccess.runQuery(sqlxxy);
var yuyuxy:Number = mdm.Database.MSAccess.getRecordCount();
var isError:Boolean = mdm.Database.MSAccess.error();
if(mdm.Database.MSAccess.error() == true)
{
var myError2:String = mdm.Database.MSAccess.errorDetails;
mdm.Dialogs.prompt("nro de registros: "+yuyuxy+" error Nro.: "+isRerror+" detalle error: "+myError2);
}
//movemos los datos globales a vaeriables comunes
var idux:Number = _global.usuario;
var idAx:Number = _global.alumnoR;
var nombreUX:String = _global.nombreUS;
//mdm.Dialogs.prompt("idU: "+idux+" nombreU: "+nombreUX+" idAlumno: "+idAx);
//actualizamos el control de impresora que activara el macro
var sqlupdate:String = "UPDATE imprecontrolN set imprecontrolN.pendiente='1',imprecontrolN.idU='"+idux+"',imprecontrolN.idAlumno='"+idAx+"',imprecontrolN.nombreU='"+nombreUX+"' WHERE imprecontrolN.pendiente='5' and imprecontrolN.nombreU='nada'";
mdm.Database.MSAccess.runQuery(sqlupdate);
mdm.Database.MSAccess.getRecordCount();
//cerrar la base de datos lo hará directamente el macro
mdm.Database.MSAccess.close();
var macroImprimeN:String = "WinEsp\ macroASN.exe";
//mdm.Dialogs.prompt("procedo a cerrar access y nitroPDF si estan abiertos");
//mdm.System.exec(macroCierraN);
//mdm.Dialogs.prompt("procedo a realizar la consulta");
mdm.System.exec(macroImprimeN);
}
}
stop();
De ante mano gracias por sus aportes
