Foros del Web » Creando para Internet » Flash y Actionscript »

Datagrid + Access + CellRenderer

Estas en el tema de Datagrid + Access + CellRenderer en el foro de Flash y Actionscript en Foros del Web. Saludos a todos, actualmente estoy trabajando en un datagrid en el cual deseo visualizar una imagen, con la ayuda de varios tutoriales que encontre en ...
  #1 (permalink)  
Antiguo 25/08/2009, 16:50
 
Fecha de Ingreso: febrero-2009
Mensajes: 64
Antigüedad: 15 años, 9 meses
Puntos: 1
Datagrid + Access + CellRenderer

Saludos a todos, actualmente estoy trabajando en un datagrid en el cual deseo visualizar una imagen, con la ayuda de varios tutoriales que encontre en la web logre hacerlo.

El problema esta en que las imagenes aparecen pero en un orden diferente al que deberian aparecer. Me explico, la primera imagen no aparece, aparece en el primer registro la imagen correspondiente al segundo registro. Y por supuesto en el ultimo registro no aparece ninguna imagen.

Código:
var databaseFile:String = "BasedeDatos.mdb";
var databasePassword:String = "";
var path:String = mdm.Application.path;
mdm.Database.MSAccess.connectAbs(path+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
GridLlegadas.editable=true;
function consulta(){
	GridLlegadas.removeAll();
	
	var sqlString:String = "SELECT BDTabla1.Fch, BDTabla2.Logo, BDTabla3.NumVue, BDTabla3.TipOpe, BDTabla3.CodLug, BDTabla3.Hor, BDTabla3.Pue, BDTabla1.Est FROM (BDTabla2 INNER JOIN BDTabla3 ON BDTabla2.CodAer = BDTabla3.CodAer) INNER JOIN BDTabla1 ON BDTabla2.CodVue = BDTabla2.CodVue WHERE (((BDTabla2.Fch)=Date()) AND ((BDTabla3.TipOpe)=1) AND ((BDTabla3.Hor)>=Format(Now(),'hh:nn')))";
	// 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.Logo = dataSet[i][1];
		datos.NumVue = dataSet[i][2];
		datos.CodLug = dataSet[i][4];
		datos.Hor = dataSet[i][5];
		datos.Pue = dataSet[i][6];
		datos.Est = dataSet[i][7];
		newItemsArray.push(datos);
	}
	GridLlegadas.dataProvider = newItemsArray;
}

//FUNCION PARA MONTAR EL DATAGRID
function layoutGUI():Void {
	// Montamos el encabezado del datagrid
	GridLlegadas.setStyle("fontSize",20);
	
	GridLlegadas.columnNames = [ "Logo", "NumVue", "CodLug", "Hor", "Pue", "Est"];
	GridLlegadas.vScrollPolicy = "No";
	GridLlegadas.selectable= false;
	GridLlegadas.editable= true;
	
	GridLlegadas.rowHeight = 80;
	GridLlegadas.resizableColumns = false;
	GridLlegadas.sortableColumns = false;
	
	
	GridLlegadas.getColumnAt(0).width = 200;
	GridLlegadas.getColumnAt(0).headerText = "Aerolínea";
	GridLlegadas.getColumnAt(1).width = 150;
	GridLlegadas.getColumnAt(1).headerText = "Vuelo Nº";
	GridLlegadas.getColumnAt(2).width = 150;
	GridLlegadas.getColumnAt(2).headerText = "Origen";
	GridLlegadas.getColumnAt(3).width = 100;
	GridLlegadas.getColumnAt(3).headerText = "Hora";
	GridLlegadas.getColumnAt(4).width = 100;
	GridLlegadas.getColumnAt(4).headerText = "Puerta";
	GridLlegadas.getColumnAt(5).width = 100;
	GridLlegadas.getColumnAt(5).headerText = "Estatus";
	
	var tf:TextFormat = new TextFormat();
	tf.size = 20;
	tf.color = 0xff0000;
	tf.font = "Arial"
	tf.bold = true
	tf.align= "center"
	GridLlegadas.setStyle("headerTextFormat", tf)
	GridLlegadas.headerHeight = 28;
	
	GridLlegadas.setStyle("alternatingRowColors", [0xFFFFFF, 0xF9FCFD]);
	
	GridLlegadas.getColumnAt(0).cellRenderer = "EleImagen";
}
layoutGUI();
consulta(); //Obtenemos los datos de la bbdd
  #2 (permalink)  
Antiguo 25/08/2009, 21:32
 
Fecha de Ingreso: febrero-2009
Mensajes: 64
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Datagrid + Access + CellRenderer

Jugando un poco con el codigo del AS (el cual pego mas adelante) logro ver que la imagen del primer registro si aparece, pero aparece mucho mas arriba de la posicion que deberia aparecer, estoy jugando con el valor "imagen._y" pero no logro que la imagen vuelva a su posicion, de hecho no logro practicamente ninguna diferencia con valores exageradamente diferentes.

Código:
class EleImagen extends mx.core.UIComponent{
	
	var imagen:MovieClip;
	
	//Constructor
	function EleImagen(){
		
	}
	
	function createChildren():Void{
		//Creamos un contenedor
		createEmptyMovieClip("imagen", _root.getNextHighestDepth());
		imagen.cargado = false;
	}
	
	function setValue(ruta:String, item:Object, seleccionado:Boolean):Void{
		//Si el objeto contiene datos y no lo hemos cargado
		if (item != undefined && imagen.cargado == false){
			imagen.loadMovie(ruta);
			imagen.cargado = true;
			imagen._y = (imagen._height/2)
		}
	}
}
Esto es lo ultimo que me falta para culminar este proyecto, les agradezco de antemano lo que me puedan ayudar.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:51.