private void GenerateStockStatusPieChart() { ReceiveDoc rec = new ReceiveDoc(); chartPie.UseWaitCursor = true; chartPie.Series.Clear(); int storeId = (cboStores.EditValue != null) ? Convert.ToInt32(cboStores.EditValue) : 0; curYear = Convert.ToInt32(cboYear.EditValue); var category = Convert.ToInt32(lkCategory.EditValue); curMont = (curYear == dtCurrent.Year) ? dtCurrent.Month : 12; //progressBar1.PerformStep(); Balance bal = new Balance(); Int64 stockin = bal.CountStockInByCategory(storeId, curMont, curYear, category); // progressBar1.PerformStep(); Int64 stockout = bal.CountStockOutByCategory(storeId, curMont, curYear, category); // progressBar1.PerformStep(); Int64 overstock = bal.CountOverStockByCategory(storeId, curMont, curYear, category); // progressBar1.PerformStep(); Int64 nearEOP = bal.CountNearEOPByCategory(storeId, curMont, curYear, category); // progressBar1.PerformStep(); Int64 BelowEOP = bal.CountBelowEOPByCategory(storeId, curMont, curYear, category); object[] obj = { stockin, stockout, overstock, nearEOP, BelowEOP }; DataTable dtList = new DataTable(); dtList.Columns.Add("Type"); dtList.Columns.Add("Value"); dtList.Columns[1].DataType = typeof(Int64); object[] oo = { "In Stock", obj[0] }; dtList.Rows.Add(oo); object[] oo2 = { "Stock Out", obj[1] }; dtList.Rows.Add(oo2); object[] oo3 = { "Over Stock", obj[2] }; dtList.Rows.Add(oo3); object[] oo4 = { "Near EOP", obj[3] }; dtList.Rows.Add(oo4); object[] oo5 = { "Below EOP", obj[4] }; dtList.Rows.Add(oo5); Series ser = new Series("pie", ViewType.Pie3D); ser.DataSource = dtList; ser.ArgumentScaleType = ScaleType.Qualitative; ser.ArgumentDataMember = "Type"; ser.ValueScaleType = ScaleType.Numerical; ser.ValueDataMembers.AddRange(new string[] { "Value" }); ser.PointOptions.PointView = PointView.ArgumentAndValues; ser.LegendText = "Key"; ser.PointOptions.ValueNumericOptions.Format = NumericFormat.Percent; ser.PointOptions.ValueNumericOptions.Precision = 0; ((PieSeriesLabel)ser.Label).Position = PieSeriesLabelPosition.TwoColumns; ((PiePointOptions)ser.PointOptions).PointView = PointView.ArgumentAndValues; chartPie.Series.Add(ser); chartPie.Size = new System.Drawing.Size(1000, 500); //progressBar1.PerformStep(); GeneralInfo info = new GeneralInfo(); info.LoadAll(); lblHeader.Text = info.HospitalName + " Stock Status summary of year " + curYear + " of " + cboStores.Text; // progressBar1.Visible = false; chartPie.UseWaitCursor = false; }