用OWC来画曲线图

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.Mobile;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.MobileControls;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
using System.Text;
using OWC = Microsoft.Office.Interop.Owc11;

public partial class Default2 : System.Web.UI.MobileControls.MobilePage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Text = "今天是" + DateTime.Now.ToString("yyyy年MM月dd日");
        Label7.Text = "今天是" + DateTime.Now.ToString("yyyy年MM月dd日");

        string ConnectionString = "Data Source = JSCDMA.JSCDMA.COM;user = npmdb;password = npmoptr;";//写连接串
        OracleConnection conn = new OracleConnection(ConnectionString);//创建新连接

        conn.Open();
        OracleCommand cmd = conn.CreateCommand();
        cmd.CommandText = "Select  MSGTXT From sendsms Where to_char(insert_time,'yyyy-MM-dd') = to_char(Sysdate,'yyyy-MM-dd') AND TELNO = '0123456789'";//SQL语句

        OracleDataReader dr = cmd.ExecuteReader();
        
        while (dr.Read())
        {
            Label2.Text =  dr[0].ToString() ;
        }

        cmd.CommandText = "Select  MSGTXT From sendsms Where to_char(insert_time,'yyyy-MM-dd') = to_char(Sysdate,'yyyy-MM-dd') AND TELNO = '13327801750'";//SQL语句

        dr = cmd.ExecuteReader();

        while (dr.Read())
        {
            Label8.Text = dr[0].ToString() ;
        }
        DataTable dt =  GetData();
        string m_Category = GetColumnsStr(dt);
        string m_Value = GetValuesStr(dt);
        DrawChart(m_Category,m_Value);
    }

    protected DataTable GetData()
    {
        try
        {
            string ConnectionString = "Data Source = JSCDMA.JSCDMA.COM;user = npmdb;password = npmoptr;";//写连接串
            OracleConnection conn = new OracleConnection(ConnectionString);//创建新连接

            conn.Open();
            OracleCommand cmd = conn.CreateCommand();
            cmd.CommandText = "Select to_char(compress_date,'DD') compress_date ,round(erl/10000,2) erl From tmp_send_sms24 Where Name = 'G网' And compress_date > = trunc(sysdate,'month') ORDER BY COMPRESS_DATE ASC";//SQL语句

            OracleDataReader dr = cmd.ExecuteReader();

            DataTable dt = new DataTable("tch_traffic");

            DataColumn col1 = new DataColumn("compress_date");
            DataColumn col2 = new DataColumn("erl");
            col1.Caption = "日期";
            col2.Caption = "话务量";
            dt.Columns.Add(col1);
            dt.Columns.Add(col2);

            while (dr.Read())
            {
                DataRow RowTemp = dt.NewRow();
                RowTemp[0] = dr.GetValue(0);
                RowTemp[1] = dr.GetValue(1);
                dt.Rows.Add(RowTemp);
            }
                return dt;
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return null;
        }
    }

    private void DrawChart(string m_str,string m_value)
    {
        try
        {
            OWC.ChartSpace objCSpace = new OWC.ChartSpaceClass();

            //在ChartSpace对象中添加图表,Add方法返回chart对象
            OWC.ChChart objChart = objCSpace.Charts.Add(0);

            //指定图表类型,带节点的趋势图
            objChart.Type = OWC.ChartChartTypeEnum.chChartTypeSmoothLine;

            //指定是否需要图例
            objChart.HasLegend = false;
            
            //设置边框颜色为白色
            objChart.Border.Color = "white";

            objChart.HasTitle = true;
            objChart.Title.Caption = "Tch话务量月趋势图";
            objChart.Title.Font.Size = 10;
            objChart.Title.Font.Color = "Red";

            objChart.SeriesCollection.Add(0);

            Microsoft.Office.Interop.Owc11.ChSeries ThisChSeries = objChart.SeriesCollection.Add(0);
            //给定Series的名字
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimSeriesNames, Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), "本月");
            //给定分类
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimCategories, Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(), m_str);
            //给定值
            ThisChSeries.SetData(Microsoft.Office.Interop.Owc11.ChartDimensionsEnum.chDimValues,Microsoft.Office.Interop.Owc11.ChartSpecialDataSourcesEnum.chDataLiteral.GetHashCode(),m_value);
            
            //导出图像
            objCSpace.ExportPicture(Server.MapPath("~/imgs/chart.gif"),"gif",200,211);
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);            
        }
    }

    private string GetColumnsStr(DataTable dt)
    {
        StringBuilder strList = new StringBuilder();
        foreach (DataRow r in dt.Rows)
        {
            strList.Append(r[0].ToString() + '/t');
        }
        return strList.ToString();
    }

    private string GetValuesStr(DataTable dt)
    {
        StringBuilder strList = new StringBuilder();
        foreach (DataRow r in dt.Rows)
        {
            strList.Append(r[1].ToString() + '/t');
        }
        return strList.ToString();
    }
   
    protected override void OnViewStateExpire(EventArgs e)
    {
        Response.Redirect("Default3.aspx");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值