前台代码:

 



    <title>文件时序查询</title>
    
<link href="/style/common.css" rel="Stylesheet" type="text/css" />
    
<script src="/js/OpenNewWin.js" type="text/javascript"></script>
    
<script src="/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
    
<script type="text/css">
        .divCss
        {
            background
-color:#eef6fb;
            border: solid 1px #a3c7e2;
        }
    
</script>
    
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
    
<div style=" height:28px; width:99%; text-align:center;line-height:28px;" class="divCss">文件到报时序统计</div>
    
<div style=" height:84px; width:99%" class="divCss">
        
<table id="table01" border="0" cellpadding="0" cellspacing="0" style=" height:100%;width:100%" >
            
<tr>
                
<td style="width:15%; text-align:center">台站号<asp:DropDownList ID="ddlStationId" runat="server" ></asp:DropDownList></td>
                
<td style="width:20%; text-align:center">文件类型<asp:DropDownList ID="ddlMessagetype" runat="server" ></asp:DropDownList></td>
                
<td style="width:30%; text-align:right"  >时间段:&nbsp;&nbsp;<input ID="txtBtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" /></td>
                
<td style="width:35%">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input ID="txtEtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" />
                
<asp:RequiredFieldValidator
                    
ID="RequiredFieldValidator1"  ControlToValidate="txtBtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator>
                
<asp:RequiredFieldValidator
                    
ID="RequiredFieldValidator2"  ControlToValidate="txtEtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator></td>           
            
</tr>
            
<tr>
                
<td colspan="4" style="text-align:right">
                    
<asp:Button ID="btnQuery" runat="server" Text="查询" CssClass="ButtonStyle" Onclick="btnQuery_Click" Width="100"/>
                
</td>
            
</tr>  
        
</table>
    
</div>
    
<div id="dImage" style="width:99%; display:none" class="divCss" runat="server">
        
<div style="  width:600px; overflow:auto; MARGIN-RIGHT:auto; MARGIN-LEFT:auto;" runat="server" id="Div1" >
            
<asp:Chart ID="chart2" runat="server" BackColor="#FFFFCC" Palette="BrightPastel" BorderWidth = "2">
                
<Legends>
                    
<asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold">
                    
</asp:Legend>
                
</Legends> <%-- 控制小图标的显示格式 --%>
                
<Series>
                
</Series>
                
<ChartAreas>
                    
<asp:ChartArea Name="ChartArea1">
                    
</asp:ChartArea>
                
</ChartAreas>
            
</asp:Chart>
        
</div>
    
</div>
    
<div  style="width:99%" class="divCss">
        
<asp:GridView ID="GV_GetSequence" runat="server" CssClass="GridViewBorder" AutoGenerateColumns="False" AllowSorting="true" OnSorting="GV_GetSequence_Sorting">
            
<HeaderStyle CssClass="GridViewHeader" />
            
<RowStyle CssClass="GridViewRow" />
            
            
<EmptyDataTemplate>
            
<span style="text-align:center; color:Red;">没有任何记录</span>
            
</EmptyDataTemplate>
        
</asp:GridView> 
    
</div>
    
    
</div>
    
</form>
</body>
</html>

后台部分代码:


 Web.MessageSequence
{
    public partial class MessageSequence : Lib.Common.BaseClass
    {
        
protected void Page_Load(object sender, EventArgs e)
        {
            
if (!Page.IsPostBack)
            {

                BindStationId();
                BindMessageType();

                
//添加排序属性
                this.GV_GetSequence.Attributes.Add("SortExpression""");
                
this.GV_GetSequence.Attributes.Add("SortDirection""DESC");
            }

        }

        
public override void AccessControl()
        {
            
switch (Power)
            {
                
case AccessPower.Forbid:
                  
                    
break;
                
case AccessPower.ReadOnly:
                   
                    
break;
                
case AccessPower.Write:
                    
                    
break;

            }
            
//throw new NotImplementedException();
        }
        
public void BindStationId() 
        {
            Lib.BLL.OldMessageSequence bOldMessageSequence 
= new Lib.BLL.OldMessageSequence();
            DataSet ds 
= new DataSet();
            ds 
= bOldMessageSequence.GetSingleList("StationId");

            ddlStationId.Items.Add(
new ListItem("--请选择--",""));
            ddlStationId.Items.Add(
new ListItem("--全部--",""));

            
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                ddlStationId.Items.Add(
new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
            }
        }

        
public void BindMessageType()
        {
            Lib.BLL.OldMessageSequence bOldMessageSequence 
= new Lib.BLL.OldMessageSequence();
            DataSet ds 
= new DataSet();
            ds 
= bOldMessageSequence.GetSingleList("MessageType");

            ddlMessagetype.Items.Add(
new ListItem("--请选择--",""));
            ddlMessagetype.Items.Add(
new ListItem("--全部--",""));

            
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                ddlMessagetype.Items.Add(
new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
            }
        }

       

        
public void btnQuery_Click(object sender, EventArgs e)
        {

            
string StationId = ddlStationId.SelectedValue.Trim();
            
string MessageType = ddlMessagetype.SelectedValue.Trim();
            DateTime Btime 
= DateTime.Parse(txtBtime.Value.Trim());
            DateTime Etime 
= DateTime.Parse(txtEtime.Value.Trim());
            
//每次查询重新设置,不然有bug
            this.GV_GetSequence.Attributes["SortExpression"= "";
            
this.GV_GetSequence.Attributes["SortDirection"= "DESC";
            
            BindGrid(StationId, MessageType, Btime, Etime);
            ZuoTu1(StationId, MessageType, Btime, Etime);
        }



        
//作图区
        protected void ZuoTu1(string StationId, string MessageType, DateTime Btime, DateTime Etime)
        {
            
            
//************************************绘图区********************************************
            
//chart 代表整个图片;  legends 代表数据显示标识;  Series 图片中的数据集;  ChartAreas 代表图片中的绘图区(里面能包含多个Series数据集的显示); 


            
//数据源
            Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
            DataSet ds 
= new DataSet();
            ds 
= bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
            
int num = ds.Tables[0].Rows.Count;


            
string head1 = "台站号:" + StationId + " 文件类型:" + MessageType + "  文件到达时序图";
            
string head2 = "台站号:" + StationId + "  文件到达时序图";
            
string head3 = " 文件类型:" + MessageType + "  文件到达时序图";
            
string head4 = "文件到达时序图";

            
string head;
            
if (StationId != "" && MessageType != "")
                head 
= head1;
            
else if (StationId != "" && MessageType == "")
                head 
= head2;
            
else if (StationId == "" && MessageType != "")
                head 
= head3;
            
else
                head 
= head4;


            
//图片属性设置
            chart2.Width = (num * 25 + 200>= 600 ? num * 25 + 200 : 600;    //图片宽度
            chart2.Height = 400;                      //图片高度
            chart2.BackColor = Color.Azure;           //图片背景色
            Title t2 = new Title(head);       //图片标题
            chart2.Titles.Add(t2);


            
//数据集显示属性设置
            
//数据集"到报率"显示属性设置
            Series series3 = new Series("到报率");        //数据集声明  
            series3.ChartType = SeriesChartType.Line;   //数据显示方式 Line:为折线  Spline:曲线 
            series3.Color = Color.Green;                //线条颜色
            series3.BorderWidth = 2;                    //线条宽度
            series3.ShadowOffset = 1;                   //阴影宽度
            series3.IsVisibleInLegend = true;           //是否显示数据说明
            series3.IsValueShownAsLabel = false;         //线条上是否给吃数据的显示
            series3.MarkerStyle = MarkerStyle.Circle;   //线条上的数据点标志类型
            series3.MarkerSize = 8;                     //              标志的大小

            
            
for (int i = 0; i < num; i++)       //往数据集添加数据
            {
                series3.Points.AddXY((DateTime.Parse(ds.Tables[
0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["到报率"].ToString().Trim('%')));  //分别往X,Y轴添加数据    (有多中添加方式)
                
            }

            chart2.Series.Add(series3);                 
//把数据集添加到chart中


            
//数据集"迟报率"显示属性设置
            Series series2 = new Series("迟报率");        //数据集声明  
            series2.ChartType = SeriesChartType.Line;   //数据显示方式 Line:为折线  Spline:曲线 
            series2.Color = Color.Yellow;                //线条颜色
            series2.BorderWidth = 2;                    //线条宽度
            series2.ShadowOffset = 1;                   //阴影宽度
            series2.IsVisibleInLegend = true;           //是否显示数据说明
            series2.IsValueShownAsLabel = false;         //线条上是否给吃数据的显示
            series2.MarkerStyle = MarkerStyle.Circle;   //线条上的数据点标志类型
            series2.MarkerSize = 8;                     //              标志的大小


            
for (int i = 0; i < num; i++)       //往数据集添加数据
            {
                series2.Points.AddXY((DateTime.Parse(ds.Tables[
0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["迟报率"].ToString().Trim('%')));  //分别往X,Y轴添加数据    (有多中添加方式)

            }

            chart2.Series.Add(series2);                 
//把数据集添加到chart中


            
//数据集"未报率"显示属性设置
            Series series1 = new Series("未报率");        //数据集声明  
            series1.ChartType = SeriesChartType.Line;   //数据显示方式 Line:为折线  Spline:曲线 
            series1.Color = Color.Red;                //线条颜色
            series1.BorderWidth = 2;                    //线条宽度
            series1.ShadowOffset = 1;                   //阴影宽度
            series1.IsVisibleInLegend = true;           //是否显示数据说明
            series1.IsValueShownAsLabel = false;         //线条上是否给吃数据的显示
            series1.MarkerStyle = MarkerStyle.Circle;   //线条上的数据点标志类型
            series1.MarkerSize = 8;                     //              标志的大小


            
for (int i = 0; i < num; i++)       //往数据集添加数据
            {
                series1.Points.AddXY((DateTime.Parse(ds.Tables[
0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["未报率"].ToString().Trim('%')));  //分别往X,Y轴添加数据    (有多中添加方式)

            }

            chart2.Series.Add(series1);                 
//把数据集添加到chart中

            
//作图区的显示属性设置
            chart2.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false;
            chart2.ChartAreas[
"ChartArea1"].Area3DStyle.Enable3D = false;
            
//背景色设置
            chart2.ChartAreas["ChartArea1"].ShadowColor = Color.Transparent;
            chart2.ChartAreas[
"ChartArea1"].BackColor = Color.Azure;         //该处设置为了由天蓝到白色的逐渐变化
            chart2.ChartAreas["ChartArea1"].BackGradientStyle = GradientStyle.TopBottom;
            chart2.ChartAreas[
"ChartArea1"].BackSecondaryColor = Color.White;
            
//X,Y坐标线颜色和大小
            chart2.ChartAreas["ChartArea1"].AxisX.LineColor = Color.Blue;
            chart2.ChartAreas[
"ChartArea1"].AxisY.LineColor = Color.Blue;
            chart2.ChartAreas[
"ChartArea1"].AxisX.LineWidth = 2;
            chart2.ChartAreas[
"ChartArea1"].AxisY.LineWidth = 2;
            chart2.ChartAreas[
"ChartArea1"].AxisY.Title = "百分比";
            
//中间X,Y线条的颜色设置
            chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.Blue;
            chart2.ChartAreas[
"ChartArea1"].AxisY.MajorGrid.LineColor = Color.Blue;
            
//X.Y轴数据显示间隔
            chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1;  //X轴数据显示间隔
            chart2.ChartAreas["ChartArea1"].AxisY.Interval = 10;
            
//X轴线条显示间隔
            chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 1;
            
//********************************************************************************************

            dImage.Style[
"display"= "block";
            


        }


        
//排序事件函数
        protected void GV_GetSequence_Sorting(object sender, GridViewSortEventArgs e)
        {
           
            
// 从事件参数获取排序数据列
            string sortExpression = e.SortExpression.ToString();

            
// 假定为排序方向为“顺序”
            string sortDirection = "DESC";

            
// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
            if (sortExpression == this.GV_GetSequence.Attributes["SortExpression"])
            {
                
//获得下一次的排序状态
                sortDirection = (this.GV_GetSequence.Attributes["SortDirection"].ToString() == sortDirection ? "ASC" : "DESC");
            }

            
// 重新设定GridView排序数据列及排序方向
            this.GV_GetSequence.Attributes["SortExpression"= sortExpression;
            
this.GV_GetSequence.Attributes["SortDirection"= sortDirection;

            
string StationId = ddlStationId.SelectedValue.Trim();
            
string MessageType = ddlMessagetype.SelectedValue.Trim();
            DateTime Btime 
= DateTime.Parse(txtBtime.Value.Trim());
            DateTime Etime 
= DateTime.Parse(txtEtime.Value.Trim());

            BindGrid(StationId, MessageType, Btime, Etime);
            ZuoTu1(StationId, MessageType, Btime, Etime);
            
        } 


        
//数据绑定
        public void BindGrid(string StationId, string MessageType, DateTime Btime, DateTime Etime) 
        {
            Lib.BLL.OldMessageSequence bOldMessageSequence 
= new Lib.BLL.OldMessageSequence();
            DataSet ds 
= new DataSet();
            ds 
= bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
            GV_GetSequence.Columns.Clear();

            
// 获取GridView排序数据列及排序方向
            string sortExpression = this.GV_GetSequence.Attributes["SortExpression"];
            
string sortDirection = this.GV_GetSequence.Attributes["SortDirection"];

            
// 根据GridView排序数据列及排序方向设置显示的默认数据视图
            if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
            {
                ds.Tables[
0].DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
            }

            GV_GetSequence.DataSource 
= ds.Tables[0];            
            
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)   //绑定普通数据列
            {
                BoundField bfColumn 
= new BoundField();
                bfColumn.DataField 
= ds.Tables[0].Columns[i].ColumnName;
                
if (ds.Tables[0].Columns[i].Caption.EndsWith(""))
                {
                    bfColumn.HeaderText 
= ds.Tables[0].Columns[i].Caption + "(%)";
                }
                
else
                {
                    bfColumn.HeaderText 
= ds.Tables[0].Columns[i].Caption;
                }
                bfColumn.SortExpression 
= ds.Tables[0].Columns[i].Caption;
                GV_GetSequence.Columns.Add(bfColumn);
            }
            
            GV_GetSequence.DataBind();
        }
    }
}

相关文章:

  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
  • 2021-12-20
  • 2022-12-23
  • 2021-09-21
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
  • 2022-12-23
  • 2021-11-26
相关资源
相似解决方案