存储过程:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:        <Author,,Name>
-- Create date: 
-- Description:    评吸质量雷达图分析
-- 调用示例:EXEC [dbo].[usp_Tqc_Raw_SmokingTest] '2013-08-26','2013-08-27'
-- =============================================
ALTER PROCEDURE [dbo].[usp_Tqc_Raw_SmokingTest]
    @StartDate VARCHAR(20) , --取样起时间
    @EndDate VARCHAR(20)  --取样止时间
AS 
    BEGIN
        SET NOCOUNT ON ;
        -- 劲头加减计算
        SELECT TOP 3
                SampleNo ,
                Aroma1 ,
                Aroma2 ,
                Aroma3 ,
                Chroma ,
                ( CASE WHEN VigourAS = '+' THEN ( 20 - Vigour ) / 2
                       WHEN VigourAS = '-' THEN Vigour / 2
                  END ) AS Vigour ,
                AromaQuality / 2.5 AS AromaQuality ,
                AromaContent / 2.5 AS AromaContent ,
                Miscellaneous / 1.5 AS Miscellaneous ,
                Stimulate / 1.5 AS Stimulate ,
                Aftertaste / 2 AS Aftertaste
        INTO    #TMP_Tqc_Raw_SmokingTest
        FROM    Tqc_Raw_SmokingTest
        WHERE   CheckTime BETWEEN @StartDate AND @EndDate
    
        DECLARE @t TABLE
            (
              [样品号] VARCHAR(50) ,
              [清香] NUMERIC(18, 2) ,
              [甜香] NUMERIC(18, 2) ,
              [焦香] NUMERIC(18, 2) ,
              [浓度] NUMERIC(18, 2) ,
              [劲头] NUMERIC(18, 2) ,
              [香气质] NUMERIC(18, 2) ,
              [香气量] NUMERIC(18, 2) ,
              [杂气] NUMERIC(18, 2) ,
              [刺激] NUMERIC(18, 2) ,
              [余味] NUMERIC(18, 2)
            )
        -- 计算平均值
        INSERT  INTO @t
                SELECT  SampleNo ,
                        AVG(Aroma1) ,
                        AVG(Aroma2) ,
                        AVG(Aroma3) ,
                        AVG(Chroma) ,
                        AVG(Vigour) ,
                        AVG(AromaQuality) ,
                        AVG(AromaContent) ,
                        AVG(Miscellaneous) ,
                        AVG(Stimulate) ,
                        AVG(Aftertaste)
                FROM    #TMP_Tqc_Raw_SmokingTest
                GROUP BY SampleNo
        
             
        -- 列转行处理
        SELECT  [样品号] ,
                [检测项] = attribute ,
                [检测值] = value
        FROM    @t UNPIVOT
  ( value FOR attribute IN ( [清香], [甜香], [焦香], [浓度], [劲头], [香气质], [香气量], [杂气],
                             [刺激], [余味] ) ) AS UPV
                
        DROP TABLE #TMP_Tqc_Raw_SmokingTest

    END


GO

前端代码:

/// <summary>
        /// 评吸质量雷达图分析
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button16_Click(object sender, EventArgs e)
        {
            XtraSmokingTestRadar report = new XtraSmokingTestRadar("2013-08-26","2013-08-27");
            report.ShowPreview();
        }

 

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using DevExpress.XtraReports.UI;
using SQLServerDAL;
using System.Data;

namespace XtraReportsTest
{
    public partial class XtraSmokingTestRadar : DevExpress.XtraReports.UI.XtraReport
    {
        public XtraSmokingTestRadar(string startDate, string endDate)
        {
            InitializeComponent();
            string strSQL = @"EXECUTE usp_Tqc_Raw_SmokingTest " + "'" + startDate + "'" + "," + "'" + endDate + "'";
            SqlHelper.FillDataset(ControlSql.GetConStr(), CommandType.Text, strSQL, dsTestRadarGraph1, new string[] { "usp_Tqc_Raw_SmokingTest" });
            this.xrTableCell75.Text = startDate;
            this.xrTableCell77.Text = endDate;
        }

    }
}

效果图:

posted on 2013-08-27 16:49  记得忘记  阅读(1684)  评论(1编辑  收藏  举报