none
Problema con XML a Datagridview RRS feed

  • Pregunta

  • lo que hago es leer el archivo xml y traspasarlo a un dataset y de ahi mostrarlo en un datagridview

    detallo el codigo a continuacion

                 Ds.ReadXml(archivo.xml)
                           ' Load the DataSet into the data document
                DataGridView2.DataSource = Ds.Tables("Detalle")

    el problema que tengo que hay unos datos que estan en <CdgItem> que no se ven en el datagridview y me gustaria que se viera. he tratado de buscar en internet y no he encontrado nada similar

    Agradeciaria cualquier ayuda que me pueda guiar en encontrar la solucion

    de ante mano Gracias

    aqui detallo parte del XML


    -<Detalle>
    
    <NroLinDet>1</NroLinDet>
    
    
    -<CdgItem>
    
    <TpoCodigo>INT1</TpoCodigo>
    
    <VlrCodigo>1340</VlrCodigo>
    
    </CdgItem>
    
    
    -<CdgItem>
    
    <TpoCodigo>EAN13</TpoCodigo>
    
    <VlrCodigo>7801620000325</VlrCodigo>
    
    </CdgItem>
    
    <NmbItem>BILZ 6PFX4-LAT350</NmbItem>
    
    <QtyItem>5.000000</QtyItem>
    
    <UnmdItem>CJ</UnmdItem>
    
    <PrcItem>9916.000000</PrcItem>
    
    <DescuentoPct>21.65</DescuentoPct>
    
    <DescuentoMonto>10734</DescuentoMonto>
    
    <CodImpAdic>271</CodImpAdic>
    
    <MontoItem>38846</MontoItem>
    
    </Detalle>
    
    
    -<Detalle>
    
    <NroLinDet>2</NroLinDet>
    
    
    -<CdgItem>
    
    <TpoCodigo>INT1</TpoCodigo>
    
    <VlrCodigo>1710</VlrCodigo>
    
    </CdgItem>
    
    
    -<CdgItem>
    
    <TpoCodigo>EAN13</TpoCodigo>
    
    <VlrCodigo>7801620000349</VlrCodigo>
    
    </CdgItem>
    
    <NmbItem>KEM PIN 6PFX4-LAT350</NmbItem>
    
    <QtyItem>5.000000</QtyItem>
    
    <UnmdItem>CJ</UnmdItem>
    
    <PrcItem>9916.000000</PrcItem>
    
    <DescuentoPct>21.65</DescuentoPct>
    
    <DescuentoMonto>10734</DescuentoMonto>
    
    <CodImpAdic>271</CodImpAdic>
    
    <MontoItem>38846</MontoItem>
    
    </Detalle>
    
    
    -<Detalle>
    
    <NroLinDet>3</NroLinDet>
    
    
    -<CdgItem>
    
    <TpoCodigo>INT1</TpoCodigo>
    
    <VlrCodigo>1712</VlrCodigo>
    
    </CdgItem>
    
    
    -<CdgItem>
    
    <TpoCodigo>EAN13</TpoCodigo>
    
    <VlrCodigo>7801620000233</VlrCodigo>
    
    </CdgItem>
    
    <NmbItem>PEPSI 6PFX4-LAT350</NmbItem>
    
    <QtyItem>5.000000</QtyItem>
    
    <UnmdItem>CJ</UnmdItem>
    
    <PrcItem>9916.000000</PrcItem>
    
    <DescuentoPct>21.65</DescuentoPct>
    
    <DescuentoMonto>10734</DescuentoMonto>
    
    <CodImpAdic>271</CodImpAdic>
    
    <MontoItem>38846</MontoItem>
    
    </Detalle>
    
    
    -<Detalle>
    
    <NroLinDet>4</NroLinDet>
    
    
    -<CdgItem>
    
    <TpoCodigo>INT1</TpoCodigo>
    
    <VlrCodigo>1715</VlrCodigo>
    
    </CdgItem>
    
    
    -<CdgItem>
    
    <TpoCodigo>EAN13</TpoCodigo>
    
    <VlrCodigo>7801620000196</VlrCodigo>
    
    </CdgItem>
    
    <NmbItem>LIMON SODA 6PFX4-LAT350</NmbItem>
    
    <QtyItem>5.000000</QtyItem>
    
    <UnmdItem>CJ</UnmdItem>
    
    <PrcItem>9916.000000</PrcItem>
    
    <DescuentoPct>21.65</DescuentoPct>
    
    <DescuentoMonto>10734</DescuentoMonto>
    
    <CodImpAdic>271</CodImpAdic>
    
    <MontoItem>38846</MontoItem>
    
    </Detalle>

    • Cambiado Enrique M. Montejo viernes, 12 de diciembre de 2014 11:25 Pregunta relacionada con objetos de acceso a datos.
    martes, 9 de diciembre de 2014 15:36

Todas las respuestas

  • El problema es que el DGV no puede vincular columnas estándar a clases no estándar, diría yo.  Su "columna" CdgItem es una entidad compleja con 2 propiedades y por lo tanto el DGV no sabe cómo mostrar eso en una columna, así que no lo intenta.

    Pienso yo que la solución sería crear una columna con un UserControl que tenga controles para ambas propiedades.  Vea la solución en esta pregunta en el foro en inglés.  Supongo que por ahí anda el asunto.

    Eso sí, no sé qué tan bien trabaje el DataSet con una propiedad compleja.  No sé si queda bien o no porque no uso DataSets, pero podría ser que el DataSet resulte ser incapaz de representar los datos adecuadamente y por lo tanto podría usted verse obligado a abandonar el uso del DataSet y leer el Xml "manualmente" y convertirlo en una colección de objetos de su propia creación.


    Jose R. MCP
    Code Samples

    martes, 16 de diciembre de 2014 4:47