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