private void ShowFreq(StuGLSearch stuSearchTemp) { Dictionary <string, string> _dicNumcssclass = (Dictionary <string, string>)ViewState["_dicNumcssclass"]; stuSearchTemp.FieldMode = ddlFreq.SelectedValue != "gen"; stuSearchTemp.NextNumsMode = ddlNexts.Visible && ddlNexts.SelectedValue != "gen"; stuSearchTemp.StrNextNums = stuSearchTemp.NextNumsMode ? ddlNexts.SelectedValue : "none"; DataTable DtFreqView = new CglFreq().GetFreq(stuSearchTemp); lblFreq.Text = string.Format(InvariantCulture, "{0} ({1}期)", new CglFunc().ConvertFieldNameId(ddlFreq.SelectedValue), DtFreqView.Rows[0]["intRows"]); DtFreqView = new CglFunc().SortFreq(stuSearchTemp, DtFreqView); gvFreq.DataSource = DtFreqView.DefaultView; if (gvFreq.Columns.Count == 0) { for (int ColumnIndex = 0; ColumnIndex < DtFreqView.Columns.Count; ColumnIndex++) { BoundField bfCell = new BoundField() { DataField = DtFreqView.Columns[ColumnIndex].ColumnName, HeaderText = new CglFunc().ConvertFieldNameId(DtFreqView.Columns[ColumnIndex].ColumnName, 1), SortExpression = DtFreqView.Columns[ColumnIndex].ColumnName, }; gvFreq.Columns.Add(bfCell); } foreach (DataControlField dcColumn in gvFreq.Columns) { string strColumnName = dcColumn.SortExpression; if (_dicNumcssclass.Keys.Contains(strColumnName.Substring(4))) { dcColumn.HeaderStyle.CssClass = _dicNumcssclass[strColumnName.Substring(4)]; } } } gvFreq.DataBind(); }
private void ShowResult(StuGLSearch stuGLSearch) { lblTitle.Text = Page.Title; // 當期資料 GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", new CglFunc().CDicTOTable(new CglData().GetCurrentDataDics(stuGLSearch)), true, true); gvCurrentData.DataBind(); pnlCurrentData.Controls.Add(gvCurrentData); #region dicTablePercent if (ViewState["dicTablePercent"] == null) { strHtmlDirectory = System.IO.Path.Combine(Server.MapPath("~"), "xml"); strFnTPxml = string.Format(InvariantCulture, "{0}{1}.xml", "TP", string.Format(InvariantCulture, "{0}{1}", _gstuSearch.LottoType.ToString(), new CglData().GetCurrentDataDics(_gstuSearch)["lngDateSN"])); ViewState.Add("dicTablePercent", new CglTablePercent().GetTP(stuGLSearch, strHtmlDirectory, strFnTPxml)); } Dictionary <string, object> dicTablePercent = (Dictionary <string, object>)ViewState["dicTablePercent"]; #endregion #region Show the result //dtTrend using DataTable dtTrend = new DataTable("dtTrend") { Locale = InvariantCulture }; #region Columns DataColumn[] ColumnKey = new DataColumn[1]; dtTrend.Columns.Add(new DataColumn { ColumnName = "strCompares", DataType = typeof(string) }); ColumnKey[0] = dtTrend.Columns["strCompares"]; dtTrend.PrimaryKey = ColumnKey; for (int i = 1; i <= new CglDataSet(stuGLSearch.LottoType).LottoNumbers; i++) { dtTrend.Columns.Add(new DataColumn { ColumnName = string.Format(InvariantCulture, "lngN{0}", i), DataType = typeof(double), DefaultValue = 0 }); } #endregion Columns #region Creat each trend Table #region Button HyperLink btButtonTrend = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "hl{0}", "btButtonTrend"), "glbutton glbutton-lightblue ", "趨勢", new Uri(string.Format(InvariantCulture, "#pnl{0}", "Trend"))); pnlButtons.Controls.Add(btButtonTrend); #endregion Button #region Panel Panel pnlTrend = new Panel() { ID = string.Format(InvariantCulture, "pnl{0}", "Trend"), CssClass = "max-width" }; pnlDetail.Controls.Add(pnlTrend); #endregion Panel #endregion Creat each trend Table #region Loop foreach (var KeyVal in dicTablePercent) { //string strTitle = string.Empty; string strButtonText = string.Empty; if ((KeyVal.Key != "dicTotal") && (KeyVal.Key != "strDayTwentyEight#strHourTwentyEight")) { int DataRows = int.Parse(((Dictionary <string, object>)KeyVal.Value)["DataRows"].ToString(), InvariantCulture); if (DataRows >= stuGLSearch.InDataRowsLimit) { #region Open FreqActive Pages if (stuGLSearch.ShowProcess == ShowProcess.Visible) { StuGLSearch stuSearchNew = stuGLSearch; stuSearchNew.StrCompares = KeyVal.Key; stuSearchNew.InTestPeriods = 1; OpenPageMuti(stuSearchNew, Properties.Resources.SessionsFreqActiveChart, Properties.Resources.PageFreqActiveChart, Properties.Resources.SessionsFreqActiveChart, LocalIP, LocalBrowserType); } #endregion Open FreqActive Pages #region SetButtons #region Set Button text List <string> lstCompare = KeyVal.Key.Split('#').ToList(); List <string> lstButtonText = new List <string>(); foreach (string strCompareOption in lstCompare) { lstButtonText.Add(new CglFunc().ConvertFieldNameId(strCompareOption, 1)); } strButtonText = string.Join(",", lstButtonText.ToArray()); #endregion Set Button text HyperLink btButton = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "hl{0}", KeyVal.Key), "glbutton glbutton-lightblue ", strButtonText, new Uri(string.Format(InvariantCulture, "#pnl{0}", KeyVal.Key))); pnlButtons.Controls.Add(btButton); #endregion SetButtons #region Set Each Compare Panel Panel pnlEachCompare = new Panel() { ID = string.Format(InvariantCulture, "pnl{0}", KeyVal.Key), CssClass = "max-width" }; pnlEachCompare.Controls.Add(new Label() { Text = string.Format(InvariantCulture, "相同 ({0}) ({1:00}期)", strButtonText, DataRows), CssClass = "gllabel" }); #region Set Compare StuGLSearch stuSearchTemp = stuGLSearch; stuSearchTemp.StrCompares = KeyVal.Key; Dictionary <string, DataTable> dicActive = new CglFreq().GetFreqActiveDic(stuSearchTemp); #endregion Set Compare #region Freq Part foreach (var dtFreqActive in dicActive) { #region Set panel Frequency Result //pnlFreq.Controls.Add(new Label() { Text = string.Format(InvariantCulture, "{0} Freq", dicFreqResult.Key) }); Panel pnlFreq = new Panel() { ID = string.Format(InvariantCulture, "pnl{0}", KeyVal.Key), CssClass = "max-width" }; pnlFreq.Controls.Add(new Label() { ID = string.Format(InvariantCulture, "{0}FreqActive", KeyVal.Key), CssClass = "gllabel", Text = string.Format(InvariantCulture, "顯示期數 {0}", dtFreqActive.Value.Rows.Count) }); //DataTable dtProResult = new CGLFunc().CTableShow(dicProcessResultT[dicFreqResult.Key]); DataTable dtFreqResult = dtFreqActive.Value; dtFreqResult.Columns.Remove("lngTotalSN"); dtFreqResult.Columns.Remove("lngFreqSN"); //dtProcessResult.DefaultView.Sort = "[lngTotalSN] DESC "; GridView gvFreqActive = new GridView() { ID = string.Format(InvariantCulture, "{0}gvFreqActive", KeyVal.Key), AutoGenerateColumns = false, AllowSorting = true, EnableViewState = false, ViewStateMode = ViewStateMode.Disabled, CssClass = "gltable", GridLines = GridLines.Horizontal, DataSource = dtFreqResult.DefaultView }; #region Set Columns of DataGrid gvProcess if (gvFreqActive.Columns.Count == 0) { for (int i = 0; i < dtFreqResult.Columns.Count; i++) { string strColumnName = dtFreqResult.Columns[i].ColumnName; BoundField bfCell = new BoundField() { DataField = strColumnName, HeaderText = new CglFunc().ConvertFieldNameId(strColumnName, 1), //SortExpression = strColumnName }; if (strColumnName.Substring(0, 4) == "lngN") { if (dicNumcssclass.Keys.Contains(strColumnName.Substring(4))) { bfCell.HeaderStyle.CssClass = dicNumcssclass[strColumnName.Substring(4)]; } if (int.Parse(strColumnName.Substring(4), InvariantCulture) % 5 == 0) { bfCell.ItemStyle.CssClass = "glColNum5"; } } gvFreqActive.Columns.Add(bfCell); } } #endregion Set Columns of DataGrid gvProcess gvFreqActive.RowDataBound += GvProcess_RowDataBound; gvFreqActive.DataBind(); pnlFreq.Controls.Add(gvFreqActive); #endregion Set panel Frequency Result pnlEachCompare.Controls.Add(pnlFreq); #region dtTrend DataRow drTrend = dtTrend.NewRow(); drTrend["strCompares"] = strButtonText; for (int i = 1; i <= new CglDataSet(stuGLSearch.LottoType).LottoNumbers; i++) { drTrend[string.Format(InvariantCulture, "lngN{0}", i)] = new CglFreq().GetTrend(stuSearchTemp, dtFreqActive.Value, i); } #endregion dtTrend dtTrend.Rows.Add(drTrend); } #endregion Freq Part #endregion Set Each Compare Panel pnlDetail.Controls.Add(pnlEachCompare); } } } #endregion Loop #region Sum of dtTrend DataRow drTrendSum = dtTrend.NewRow(); drTrendSum["strCompares"] = "SUM"; for (int i = 1; i <= new CglDataSet(stuGLSearch.LottoType).LottoNumbers; i++) { drTrendSum[string.Format(InvariantCulture, "lngN{0}", i)] = Math.Round((double)dtTrend.Compute(string.Format(InvariantCulture, "SUM([lngN{0}])", i), string.Empty), 2); } dtTrend.Rows.Add(drTrendSum); #endregion Sum of dtTrend GridView gvTrend = new GridView() { ID = string.Format(InvariantCulture, "gvTrend"), AutoGenerateColumns = false, AllowSorting = true, EnableViewState = false, ViewStateMode = ViewStateMode.Disabled, CssClass = "gltable", GridLines = GridLines.Horizontal, DataSource = dtTrend.DefaultView }; #region Set Columns of DataGrid gvProcess if (gvTrend.Columns.Count == 0) { for (int i = 0; i < dtTrend.Columns.Count; i++) { string strColumnName = dtTrend.Columns[i].ColumnName; BoundField bfCell = new BoundField() { DataField = strColumnName, HeaderText = new CglFunc().ConvertFieldNameId(strColumnName, 1), DataFormatString = "{0:F2}", //SortExpression = strColumnName }; if (strColumnName.Substring(0, 4) == "lngN") { if (dicNumcssclass.Keys.Contains(strColumnName.Substring(4))) { bfCell.HeaderStyle.CssClass = dicNumcssclass[strColumnName.Substring(4)]; } if (int.Parse(strColumnName.Substring(4), InvariantCulture) % 5 == 0) { bfCell.ItemStyle.CssClass = "glColNum5"; } } gvTrend.Columns.Add(bfCell); } } #endregion gvTrend.DataBind(); pnlTrend.Controls.Add(gvTrend); #endregion Show the result }