投递文章投递文章 投稿指南投稿指南 RSS订阅RSS订阅

sqlserver2005的KPI展示控件开发详解

来源:cnBLOGs 发布时间:2008-04-19 收藏 投稿 字体:【

以下为代码的内容:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

namespace KPIDisplayer
{
    internal class DataGridViewStatusColumn : DataGridViewImageColumn
    {
        public DataGridViewStatusColumn()
        {
            CellTemplate = new DataGridViewStatusCell();
        }
    }
}

step2.定义一个DataGridViewTrendColumn(从DataGridViewImageCell

继承)和DataGridViewStatusColumn(从DataGridViewImageColumn继承

),用于显示走向指示器。

以下为代码的内容:

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
using System.ComponentModel;
using System.Reflection;


namespace KPIDisplayer
{
    internal class DataGridViewTrendCell : DataGridViewImageCell
    {
        public DataGridViewTrendCell()
        {
        }

        protected override object GetFormattedValue(object value, int rowIndex, ref DataGridViewCellStyle cellStyle, TypeConverter valueTypeConverter, TypeConverter formattedValueTypeConverter, DataGridViewDataErrorContexts context)
        {
            string trendgraph = value.ToString().Split(',')[0];
            double trend = Double.Parse(value.ToString().Split(',')[1]);

            if (trendgraph== TrendGraph.StandardArrow)
            {
                if (trend == -1)
                {
                    return Properties.Resources.Arrow_XP0;
                }
                else if (trend == -0.5)
                {
                    return Properties.Resources.Arrow_XP1;
                }
                else if (trend == 0)
                {
                    return Properties.Resources.Arrow_XP2;
                }
                else if (trend == 0.5)
                {
                    return Properties.Resources.Arrow_XP3;
                }
                else if (trend == 1)
                {
                    return Properties.Resources.Arrow_XP4;
                }
                else
                {
                    return Properties.Resources.empty;
                }
            }
            else if (trendgraph == TrendGraph.StatusArrowAscending)
            {
                if (trend == -1)
                {
                    return Properties.Resources.Arrow_Status_Asc0;
                }
                else if (trend == -0.5)
                {
                    return Properties.Resources.Arrow_Status_Asc1;
                }
                else if (trend == 0)
                {
                    return Properties.Resources.Arrow_Status_Asc2;
                }
                else if (trend == 0.5)
                {
                    return Properties.Resources.Arrow_Status_Asc3;
                }
                else if (trend == 1)
                {
                    return Properties.Resources.Arrow_Status_Asc4;
                }
                else
                {
                    return Properties.Resources.empty;
                }
            }
            else if (trendgraph == TrendGraph.StatusArrowDescending)
            {
                if (trend == -1)
                {
                    return Properties.Resources.Arrow_Status_Desc0;
                }
                else if (trend == -0.5)
                {
                    return Properties.Resources.Arrow_Status_Desc1;
                }
                else if (trend == 0)
                {
                    return Properties.Resources.Arrow_Status_Desc2;
                }
                else if (trend == 0.5)
                {
                    return Properties.Resources.Arrow_Status_Desc3;
                }
                else if (trend == 1)
                {
                    return Properties.Resources.Arrow_Status_Desc4;
                }
                else
                {
                    return Properties.Resources.empty;
                }
            }
            else if (trendgraph == TrendGraph.SmileyFace)
            {
                if (trend == -1)
                {
                    return Properties.Resources.Smiley0;
                }
                else if (trend == 0)
                {
                    return Properties.Resources.Smiley1;
                }
                else if (trend == 1)
                {
                    return Properties.Resources.Smiley2;
                }
                else
                {
                    return Properties.Resources.empty;
                }
            }
            else
            {
                return Properties.Resources.empty;
            }
           
        }      
    }
}

最新5条评论 查看所有评论
评论内容:请自觉遵守互联网相关政策法规。
用户名: 密码: 匿名 注册
热门文章
随机推荐
About iTtang - 联系方法  - 专题列表 - 友情链接  -  高级搜索   -  帮助中心  -