存儲過程:前端
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
前端代碼:this
/// <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; } } }
效果圖:spa