public DataTable DatosSucursal(DataTable table, DataTable _DatosPJ, string _Sucursal) { try { DataTable _TblSucursal = (from item in table.AsEnumerable() where item.Field <string>("GroupName").Contains(_Sucursal) select item).CopyToDataTable(); decimal TotalPromedio = Convert.ToDecimal(_TblSucursal.Compute("sum(Promedio)", string.Empty)); int x = 1; var list_Sucursal = (from item in _TblSucursal.AsEnumerable() group item by new { ItmsGrpNam = item.Field <string>("ItmsGrpNam") } into grouped orderby(decimal)(grouped.Sum(ix => ix.Field <decimal>("Promedio"))) descending select new { Row = x++, Linea = grouped.Key.ItmsGrpNam, Promedio = (decimal)(grouped.Sum(ix => ix.Field <decimal>("Promedio"))), Porcentaje1 = TotalPromedio == 0 ? 0 : (decimal)(grouped.Sum(ix => ix.Field <decimal>("MES3"))) / TotalPromedio } ).ToList(); DataTable auxsuc = Clases.ListConverter.ToDataTable(list_Sucursal); int x2 = auxsuc.Rows.Count + 1; var LeftJoin = from pj in _DatosPJ.AsEnumerable() join sucursal in auxsuc.AsEnumerable() on pj.Field <string>("Linea") equals sucursal.Field <string>("Linea") into JoinedPJSucursal from sucursal in JoinedPJSucursal.DefaultIfEmpty() select new { Row1 = pj.Field <int>("Row"), Linea = pj.Field <string>("Linea"), PromedioPJ = pj.Field <decimal>("Promedio"), PorcentajePJ = pj.Field <decimal>("Porcentaje1"), Row2 = sucursal != null?sucursal.Field <int>("Row") : x2++, PromedioSucursal = sucursal != null?sucursal.Field <decimal>("Promedio") : 0, PorcentajeSucursal = sucursal != null?sucursal.Field <decimal>("Porcentaje1") : 0 }; DataTable _DatosSucusal = Clases.ListConverter.ToDataTable(LeftJoin.ToList()); return(_DatosSucusal); } catch (Exception) { return(new DataTable()); } }
private void button3_Click(object sender, EventArgs e) { try { this.Esperar(); DataTable TBL = this.Acumulado(); gridExceso.DataSource = null; var query = from item1 in Datos.AsEnumerable() join item2 in TBL.AsEnumerable() on item1.Field <string>("Artículo") equals item2.Field <string>("Artículo") into JoinedPJSucursal from item2 in JoinedPJSucursal.DefaultIfEmpty() select new { Linea = item1.Field <string>("Linea"), Articulo = item1.Field <string>("Artículo"), Descripcion = item1.Field <string>("Descripción"), Ideal = item1.Field <Int32>("Ideal"), Stock = item1.Field <decimal>("Stock"), Solicitado = item1.Field <decimal>("Solicitado"), TotalVenta = item1.Field <decimal>("Total Venta"), TotalCompra = item1.Field <decimal>("Total Compra"), IdealAcumulado = item2 == null ? 0 : item2.Field <Int32>("Ideal"), StockAcumulado = item2 == null ? 0 : item2.Field <decimal>("Stock"), SolicitadoAcumulado = item2 == null ? 0 : item2.Field <decimal>("Solicitado"), TotalVentaAcumulado = item2 == null ? 0 : item2.Field <decimal>("Total Venta"), TotalCompraAcumulado = item2 == null ? 0 : item2.Field <decimal>("Total Compra"), }; gridExceso.DataSource = query.ToList(); this.FormatoAcum(gridExceso); } catch (Exception) { } finally { this.Continuar(); } }