Comunidad de diseño web y desarrollo en internet online

Mostrar un xml en un datagrid

Citar            
MensajeEscrito el 19 Jun 2007 09:27 pm
Hola a todos
Llevo varios dias intentando (y por orgullo) y recien me animo a hacer la consulta respectiva.
Puede que el tema este respondido infinidad de veces pero recien estoy iniciandome en flex.
El punto es el siguiente:

1. Tengo un php que genera un xml
http://www.mariareinamarianistas.net/sied/notas_registro.php?curso_id=91&nivel=S1A&alumno_id=

al cual puedo mandarle parametros. (Aun no llego a esa parte)

2. Tengo un código en flex que intenta leer el xml y pasarlo a un datagrid mediante el httpservice

sin mas preambulos les pego aca mi codigo

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  creationComplete="conexion.send();">
<mx:HTTPService url="{StrConnect}" id="conexion" method="GET"  contentType="application/xml"/>
   <mx:Panel layout="absolute" left="10" top="10" right="10" bottom="10" id="Panel" title="Consolidado de Notas">
      <mx:DataGrid x="10" y="10" width="766" height="306" id="Grid" dataProvider="{conexion.lastResult}"  editable="true" enabled="true">
         <mx:columns>
            <mx:DataGridColumn  width='100' headerText="Id" dataField="alumno_id"/>
            <mx:DataGridColumn  headerText="Alumno" dataField="nombre"/>
            <mx:DataGridColumn width='50' headerText="Nota" dataField="profin"/>
         </mx:columns>
      </mx:DataGrid>
   </mx:Panel>


<!-- ******************VARIABLES*****************-->      
<mx:Script>
<![CDATA[
<!-- Variables Publicas -->
public var StrConnect:String = 'http://www.mariareinamarianistas.net/sied/notas_registro.php?curso_id=91&nivel=S1A&alumno_id=';
//public var StrConnect:String = 'D:\desarrollo\Flex\Registros\registro.xml';

]]>
</mx:Script>


<!-- ******************FIN DE VARIABLES *****************-->      



</mx:Application>


No me genera errores no da fallas pero lógicamente algo me falta o algo me sobra
la estructura del xml es:

Código :

<alumnos>
<alumno>
 <alumno_id>010003</alumno_id>
 <nombre>AGUILAR CURAY, Franco</nombre>
 <profin>16</profin>
 <nivel>S1A</nivel>
 <curso_id>91</curso_id>
 <tercio></tercio>
</alumno>
</alumnos>


gracias de antemano x la ayuda

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 19 Jun 2007 11:05 pm
en el data provider de tu Datagrid, ponle:

Código :

dataProvider="{conexion.lastResult.alumnos.alumno}"


Y prueba..

Por chko

109 de clabLevel



 

México

firefox
Citar            
MensajeEscrito el 20 Jun 2007 12:14 am
mejor pasalo a un arraycollection y trabaja con eso .... es mejor.

primero define una variable con el nombre del arraycollection. o sea

[Bindable] var myArray:ArrayCollection;

luego pones esto

<mx:HTTPService id="Tu id" url="Tu url"
useProxy="false"
result="myArray=ArrayCollection(feedRequest.lastResult.rss.channel.result)"/>

te recomiendo que mires el flex develover Guide. es muy bueno y con mucha info al respecto.
{shift f2 , shourtcut dentro de flex para abrirlo}.

Suerte

Por ricoterox

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jun 2007 12:28 am
chko probé y sigue igual
probaré el arraycollection

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 21 Jun 2007 12:41 am
este ricoterox....

result="myArray=ArrayCollection(feedRequest.lastResult.rss.channel.result)
supongo que feedRequest es el id del httpservise
rss.channel. result que es?

quedaria asi?

Código :

    <mx:HTTPService id='registros' url='d:\desarrollo\flex\registro.xml' 
    result="Arreglo=ArrayCollection(registros.lastResult.alumnos.alumno)"> 
        <mx:request>
            <nivel>S1A</nivel>
            <curso_id>91</curso_id>
         <alumno_id> </alumno_id>
        </mx:request>
    </mx:HTTPService>

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 21 Jun 2007 03:05 am
Intente de nuevo con algo más simple:

Código :

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="conexion.send()">
      <mx:HTTPService id="conexion" 
         url="d:\desarrollo\Flex\notas\registro.xml" useProxy="false" />


   <mx:Panel layout="absolute" left="10" top="10" right="10" bottom="10" id="Panel" title="Consolidado de Notas">
      <mx:DataGrid x="10" y="10" width="766" height="306" id="Grid" dataProvider="{conexion.lastResult.alumnos.alumno}">
         <mx:columns>
           <mx:DataGridColumn  width="100" headerText="Id"     dataField="alumno_id"/>
            <mx:DataGridColumn              headerText="Alumno" dataField="nombre"/>
            <mx:DataGridColumn width="50"   headerText="Nota"   dataField="profin"/>
         </mx:columns>
      </mx:DataGrid>
   </mx:Panel>




</mx:Application>


el XML sigue siendo el mismo, esta guardado en la misma carpeta donde esta el proyecto
aun asi pongo la ruta y... NADA
maldita nada nada nada
estoy frustrado, sueño con flex y estoy pensando seriamente armar un software que mediante logica me mande al pasado, matar al que me enseño el flex en un taller y vivir tranquilo

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 21 Jun 2007 04:04 pm
pinocho me parece k que tu xml esta mal creado.

el result="myArray=ArrayCollection(feedRequest.lastResult.rss.channel.result) que yo uso es por que lo tengo formateado de esa manera.
lo podes ver aca si keres http://www.invertironline.com/cobranding/iol/cotizaciones.asp?tid_titulo=20441

y como dataprovider del datagrid uso directamente el arraycollection. "myArray"
obiamente lo defino antes como tal.

o sea quedaria algo asi.

[Bindable] public var myArrayt:ArrayCollection;
.................
<mx:HTTPService id="feedRequest"
url="http://www.invertironline.com/graficador/cotizaciones.asp?tid_titulo=20441"
useProxy="false"
result="myArray=ArrayCollection(feedRequest.lastResult.rss.channel.result);"/>

entendes ? igual lo podes tomar sin el arraycollection.

o sea ..... como dataprovider del datagrid poden la ruta feedRequest.lastResult.rss.channel.result

rss.channel.result esto lo defino en mi xml.

por que no lo subis a tu servidor y lo tomas desde la web y no local.... kisa ese sea tu error.

Suerte

Por ricoterox

11 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 21 Jun 2007 04:10 pm
voy a probar con tu xml para descartar la falla en el mio :)

el que yo genero es dinámico, creado de tabla de una BD, pero para descartar errores estuve jalandolo como archivo local para descartar posibles fallas

Por pinocho

78 de clabLevel



Genero:Masculino  

Luna City

firefox
Citar            
MensajeEscrito el 21 Jun 2007 04:28 pm
el mio tambien es dinamico .....

Tene cuidado con usar arraycollection como yo ..... ya que no se puede convertir un string en un array.

o sea 1 elemento no se puede convertir en varios. y te va a saltar un error.

ahi tenes que usar restrincciones.....

Suerte

Por ricoterox

11 de clabLevel



Genero:Masculino  

firefox

 

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