Строки элементов счета-фактуры отображаются только на последней странице, а не у всех c # reportviewer - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь распечатать счета в моем приложении, и у меня возникла проблема, и я не могу ее решить.

У меня есть два класса, один с объектами головы (TAlbVentaCab), а другой с линиямипродуктов (TAlbVentaLin).Я уже разбил на страницы все документы, и он показывает все, кроме строк счета-фактуры, которые отображаются только в последнем счете-фактуре.

Это код, который я должен показать в отчете:

        List<TRegistro> albaranes = Db.LeerDatosAListaRegistros(sqlAlbCab, null);

        foreach (TRegistro albaran in albaranes)
        {
            TAlbVentaCab cab = new TAlbVentaCab();
            cab.NumSerie = albaran["NUMSERIE"].ToString();
            cab.NumAlbaran = Convert.ToInt32(albaran["NUMALBARAN"]);

            cab.UrlImagenTransporte = "file:///" + albaran["IMAGEN_ALBARAN"].ToString().Replace("d:","T:");               
            List<TRegistro> lineasEsteAlbaran = Db.LeerDatosAListaRegistros(sqlAlbLin, null, cab.NumSerie, cab.NumAlbaran);
            List<TAlbVentaLin> lins = new List<TAlbVentaLin>();
            bool peligroso = false;

            foreach (TRegistro linea in lineasEsteAlbaran)
            {
                TAlbVentaLin lin = new TAlbVentaLin();
                lin.Sku = linea["SKU"].ToString();
                lin.Talla = linea["TALLA"].ToString();
                lin.Color = Convert.ToString(linea["COLOR"]);
                lin.Cantidad = Convert.ToInt32(linea["CANTIDAD"]);
                lin.DescripcionProducto = Convert.ToString(linea["DESCRIPCION"]);
                lin.ImporteLinea = Convert.ToDouble(linea["TOTAL"]);
                peligroso = peligroso || lin.Peligroso == "T"; //Guardamos el resultado a verdadero si una de las dos opciones del OR lo es.
                lins.Add(lin);
            }
            cab.ContienePeligrosos = peligroso ? "Contiene peligrosos" : "";            
            Albaranes.Add(cab);

            ///Mostrar datos en el reporte
            /////reportViewer1.LocalReport.DataSources.Clear();

            ReportDataSource rds1 = new ReportDataSource("DataSetAlbaranesVenta", Albaranes);
            reportViewer1.LocalReport.DataSources.Add(rds1);

            ReportDataSource rds2 = new ReportDataSource("DataSetAlbaranesVentaLin", lins);                             
            reportViewer1.LocalReport.DataSources.Add(rds2);                             

            reportViewer1.RefreshReport();

Кроме того, я не могу использовать класс в качестве источника данных с одним из объектов. Список строк класса, окна не отображают объекты списка, только целые числа, строки и т. Д. ...

Есть идеи?

Спасибо!

...