none
Como repetir nodo en documento xml desd clase serializada ? RRS feed

  • Pregunta

  • Hola ...

    Desarrollo una aplicacion donde creo un documento XML desde una clase la cual serializo, el problema se presenta cuando cierto nodo debe repetirse mas de una vez dentro del documento , especificamente creo una factura  si vendo un lapiz  y  un sacapunta el detalle de la factura debe repetirse 2 veces  y no se como hacerlo...

    Como puedo hacer para crear este nodo  tantas veces como numero de productos tenga mi factura??

    escribi esto pero solo devuelve la ultima linea

    Mi codigo

          

    // Aqui invoco al metodo que deberia devolver 3 nodos y solo devuelve 1

    DetalleServicio =  DetalleFactura(3)

    public FacturaElectronicaLineaDetalle[] DetalleFactura(int n) { FacturaElectronicaLineaDetalle[] DetalleServicio = new FacturaElectronicaLineaDetalle [n] ; FacturaElectronica FacturaElectronica = new FacturaElectronica(); for (int i = 1; i <= n; i++) { DetalleServicio = new FacturaElectronicaLineaDetalle[] { new FacturaElectronicaLineaDetalle { NumeroLinea = numeroLinea, Codigo = new CodigoType[] { new CodigoType { Tipo=(CodigoTypeTipo)Enum.Parse(typeof(CodigoTypeTipo), tipo), Codigo= codigo } }, Cantidad = cantidad, UnidadMedida=(UnidadMedidaType)Enum.Parse(typeof(UnidadMedidaType), unidadMedida), UnidadMedidaComercial=unidadComercial, Detalle= detalle, PrecioUnitario=precio, MontoTotal=precio * cantidad, MontoDescuento=montoDescuento, NaturalezaDescuento= naturalezaDescuento, SubTotal= subTotal, MontoTotalLinea= precio * cantidad - montoDescueento } }; } return DetalleServicio; }



    EFRAIN MEJIAS C VALENCIA - VENEZUELA



    domingo, 25 de febrero de 2018 22:23

Respuestas

  • Su uso del vector es incorrecto.  Pero deje los vectores de lado.  Utilice colecciones.

    //Note el cambio del tipo de resultado de la función.
    public List<FacturaElectronicaLineaDetalle> DetalleFactura(int n)
    {
        //No parece necesitar el objeto FacturaElectronica en esta función.
        List<FacturaElectronicaLineaDetalle> detalleServicio = new List<FacturaElectronicaLineaDetalle>();
        //Ahora cree un objeto nuevo de tipo FacturaElectronicaLineaDetalle para cada línea en la factura
        for (int i = 0; i < n; ++i)
        {
            FacturaElectronicaLineaDetalle feld = new FacturaElectronicaLineaDetalle();
            ...;
            //Al final agrega el nuevo objeto a la lista.
            detalleServicio.Add(feld);
        }
        //Devuelva la colección.
        return detalleServicio;
    }


    Jose R. MCP
    Code Samples

    lunes, 26 de febrero de 2018 3:55
    Moderador