存储过程:
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; } } }
效果图: