void InitGauge(Dundas.Gauges.WebControl.GaugeContainer c, double v, double?min, double?max, double?break1, double?break2, double MaxValue) { c.Parent.Visible = true; Dundas.Gauges.WebControl.CircularGauge g = c.CircularGauges[0]; g.Pointers[0].Value = v; if (min == null) { min = 0; } if (max == null) { max = MaxValue; } if (g.Scales[0].Maximum <= (double)min) { g.Scales[0].Maximum = (double)max; g.Scales[0].Minimum = (double)min; } else { g.Scales[0].Minimum = (double)min; g.Scales[0].Maximum = (double)max; } if (break1 >= max) { break1 = null; } if (break2 >= max) { break2 = null; } g.Ranges[0].StartValue = (double)min; g.Ranges[0].EndValue = (double)max; if (break1 == null) { g.Ranges[1].Visible = false; } else { g.Ranges[0].EndValue = (double)break1; g.Ranges[1].Visible = true; g.Ranges[1].StartValue = (double)break1; g.Ranges[1].EndValue = (double)max; } if (break2 == null) { g.Ranges[2].Visible = false; } else { if (break1 == null) { g.Ranges[0].EndValue = (double)break2; } g.Ranges[1].EndValue = (double)break2; g.Ranges[2].Visible = true; g.Ranges[2].StartValue = (double)break2; g.Ranges[2].EndValue = (double)max; } }
private void SetGauge() { //================================================================== 전체 MicroBSC.BSC.Biz.Biz_Bsc_Score_Card objBSC = new MicroBSC.BSC.Biz.Biz_Bsc_Score_Card(); DataSet dsTot = objBSC.GetEstDeptTotalScore(this.IEstTermRefID , this.IYmd , this.ISumType , this.IEstDeptID); double dblMax = 0.00; if (dsTot.Tables[0].Rows.Count > 0) { dblMax = Math.Round(double.Parse(dsTot.Tables[0].Rows[0][3].ToString()), 0); this.gauTotal2.NumericIndicators["Default"].Value = (dsTot.Tables[0].Rows.Count > 0) ? double.Parse(dsTot.Tables[0].Rows[0]["POINT"].ToString()) : 0; this.gauTotal2.NumericIndicators["Default"].Href = "./BSC0404S1.ASPX"; this.gauTotal2.NumericIndicators["Default"].BorderWidth = 0; this.gauTotal2.Labels["Default"].Href = "./BSC0404S1.ASPX"; lblToatal.Text = Convert.ToString(Math.Round(this.gauTotal2.NumericIndicators["Default"].Value, 2)); this.SetStateIndicator(this.gauTotal2.StateIndicators); foreach (Dundas.Gauges.WebControl.StateIndicator stateIndicator in this.gauTotal2.StateIndicators) { stateIndicator.Value = (dsTot.Tables[0].Rows.Count > 0) ? double.Parse(dsTot.Tables[0].Rows[0]["POINT"].ToString()) : 0; stateIndicator.Location.Y = 0; stateIndicator.Location.X = 30; stateIndicator.Size.Height = 9; stateIndicator.Size.Width = 7; } } //================================================================== 관점별 달성율 DataSet dsViw = objBSC.GetEstDeptKpiViewTypeList(this.IEstTermRefID , this.IYmd , this.ISumType , this.IEstDeptID); Dundas.Gauges.WebControl.GaugeContainer objGauge = null; if (dsViw.Tables[0].Rows.Count > 0) { for (int i = 0; i < dsViw.Tables[0].Rows.Count; i++) { switch (i) { case 0: objGauge = gauKPI1; break; case 1: objGauge = gauKPI2; break; case 2: objGauge = gauKPI3; break; case 3: objGauge = gauKPI4; break; default: return; } dblMax = Math.Round(double.Parse(dsViw.Tables[0].Rows[i]["ACHV_RATE"].ToString()), 0); objGauge.CircularGauges["Default"].Scales[0].Minimum = 0; objGauge.CircularGauges["Default"].Scales[0].Maximum = (dblMax >= 100) ? dblMax : 100; objGauge.CircularGauges["Default"].Scales[0].StartAngle = 89; objGauge.CircularGauges["Default"].Scales[0].SweepAngle = 95; //objGauge.CircularGauges["Default"].Scales[0].Width = 10; //objGauge.CircularGauges["Default"].Scales[0].ShadowOffset = 0; objGauge.CircularGauges["Default"].Scales[0].Radius = 57; //objGauge.CircularGauges["Default"].Scales[0].FillColor = System.Drawing.Color.White; // Flash based streaming objGauge.ImageType = Dundas.Gauges.WebControl.ImageType.Png; objGauge.RenderAsControl = Dundas.Gauges.WebControl.AutoBool.False; objGauge.CircularGauges["Default"].Pointers["Default"].Value = (dsViw.Tables[0].Rows.Count > 0) ? double.Parse(dsViw.Tables[0].Rows[i]["ACHV_RATE"].ToString()) : 0; objGauge.Labels[0].Text = dsViw.Tables[0].Rows[i]["VIEW_NAME"].ToString(); //objGauge.Labels[0].Href = "./BSC0404S1.ASPX"; objGauge.Labels[0].BorderWidth = 0; this.SetStateIndicator(objGauge.StateIndicators); foreach (Dundas.Gauges.WebControl.StateIndicator stateIndicator in this.gauTotal2.StateIndicators) { stateIndicator.Value = (dsViw.Tables[0].Rows.Count > 0) ? double.Parse(dsViw.Tables[0].Rows[i]["ACHV_RATE"].ToString()) : 0; } } } }