Ejemplo n.º 1
0
        private void ShowTitle()
        {
            StuGLSearch stuSearchTemp = GlobalStuSearch;

            if (ViewState["title"] == null)
            {
                ViewState.Add("title", new CglDBData().SetTitleString(stuSearchTemp));
            }
            Page.Title    = (string)ViewState["title"];
            lblTitle.Text = (string)ViewState["title"];

            if (ddlNexts.SelectedValue != "gen")
            {
                stuSearchTemp.StrNextNums = ddlNexts.SelectedValue;
            }
            // if (ViewState["lblMethod"] == null) { ViewState.Add("lblMethod", string.Format(InvariantCulture, "{0}:{1}", "頻率總表", new CglMethod().SetMethodString(stuSearch))); }
            lblMethod.Text = string.Format(InvariantCulture, "{0}:{1}", "頻率總表", new CglMethod().SetMethodString(stuSearchTemp));


            if (ViewState["lblSearchMethod"] == null)
            {
                ViewState.Add("lblSearchMethod", new CglMethod().SetSearchMethodString(stuSearchTemp));
            }
            lblSearchMethod.Text = (string)ViewState["lblSearchMethod"];

            //顯示當前資料
            if (ViewState["CurrentData"] == null)
            {
                ViewState.Add("CurrentData", new CglFunc().CDicTOTable(new CglData().GetCurrentDataDics(stuSearchTemp)));
            }
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", (DataTable)ViewState["CurrentData"], true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);
        }
Ejemplo n.º 2
0
        private void ShowData()
        {
            int intYear = string.IsNullOrEmpty(txtDate.Text) ? 0 : int.Parse(txtDate.Text.Substring(0, 4), InvariantCulture) + 1911;

            using DataTable dtSolar24 = GetSolar24Data(intYear);
            GridView gvSolar24 = new GalaxyApp().CreatGridView("gvSolar24", "gltable", dtSolar24, true, false);

            gvSolar24.RowDataBound += GvSolar24_RowDataBound;
            gvSolar24.DataBind();
            pnlSoalr24.Controls.Add(gvSolar24);
        }
Ejemplo n.º 3
0
        private void ShowResult()
        {
            Page.Title    = (string)ViewState["title"];
            lblTitle.Text = (string)ViewState["title"];

            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", (DataTable)base.ViewState["CurrentData"], true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);

            #region Import Data

            dsFreqSet = (DataSet)ViewState["FreqSetDS"];
            #endregion Import Data

            #region Show the result

            #region FreqSet Part
            #region Set panel Frequency Result
            //pnlFreq.Controls.Add(new Label() { Text = string.Format(InvariantCulture, "{0} Freq", dicFreqResult.Key) });
            Panel pnlFreqSet = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "{0}pnlFreqSet", "gen"), "max-width");

            GridView gvFreqSet = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "{0}gvFreqSet", "gen"),
                                                               "gltable",
                                                               dsFreqSet.Tables["dtFreqSet"], true, false);

            #region Set Columns of DataGrid gvProcess
            if (gvFreqSet.Columns.Count == 0)
            {
                for (int i = 0; i < dsFreqSet.Tables["dtFreqSet"].Columns.Count; i++)
                {
                    string     strColumnName = dsFreqSet.Tables["dtFreqSet"].Columns[i].ColumnName;
                    BoundField bfCell        = new BoundField()
                    {
                        DataField  = strColumnName,
                        HeaderText = dsFreqSet.Tables["dtFreqSet"].Columns[i].Caption,
                        //SortExpression = strColumnName
                    };
                    gvFreqSet.Columns.Add(bfCell);
                }
            }
            #endregion
            gvFreqSet.RowDataBound += GvFreqSet_RowDataBound;
            gvFreqSet.DataBind();
            pnlFreqSet.Controls.Add(gvFreqSet);
            #endregion Set panel Frequency Result
            pnlDetail.Controls.Add(pnlFreqSet);
            #endregion FreqSet Part

            #endregion Show the result
        }
        private void ShowTitle()
        {
            Page.Title    = ViewState[FreqActiveChart01ID + "title"].ToString();
            lblTitle.Text = Page.Title;

            lblMethod.Text = (string)ViewState[FreqActiveChart01ID + "lblMethod"];

            lblSearchMethod.Text = (string)ViewState[FreqActiveChart01ID + "lblSearchMethod"];

            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", (DataTable)ViewState[FreqActiveChart01ID + "CurrentData"], true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);
        }
Ejemplo n.º 5
0
        private void ShowResult(StuGLSearch stuGLSearch)
        {
            Page.Title           = (string)ViewState["title"];
            lblTitle.Text        = (string)ViewState["title"];
            lblMethod.Text       = new CglMethod().SetMethodString(stuGLSearch);
            lblSearchMethod.Text = new CglMethod().SetSearchMethodString(stuGLSearch);

            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", (DataTable)ViewState["CurrentData"], true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);

            SetddlFreq();
            ShowDetail(ddlFreq.SelectedValue);
        }
Ejemplo n.º 6
0
#pragma warning disable CA1707 // Identifiers should not contain underscores
        protected void Page_Load(object sender, EventArgs e)
#pragma warning restore CA1707 // Identifiers should not contain underscores
        {
            if (!IsPostBack)
            {
                DataRangeStartInit(TargetTable.Lotto539);
            }

            SearchOption_init();
            //if (ViewState["_dicNumcssclass"] == null) { ViewState.Add("_dicNumcssclass", GetNumcssclass(_gstuSearch)); }
            _dicNumcssclass = new GalaxyApp().GetNumcssclass(_gstuSearch);
            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", new CglFunc().CDicTOTable(new CglData().GetCurrentDataDics(_gstuSearch)), true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);
        }
Ejemplo n.º 7
0
        private void ShowDetail(string selectedValue)
        {
            foreach (var dicEachResult in _dicFreqActive)
            {
                Panel pnlFreq = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnlFrequency_{0}{1}", dicEachResult.Key, selectedValue),
                                                           "max-width");

                pnlFreq.Controls.Add(new GalaxyApp().CreatLabel(string.Format(InvariantCulture, "FreqActive_{0}{1}", dicEachResult.Key, selectedValue),
                                                                string.Format(InvariantCulture, "FreqActive_{0}({1})", selectedValue, _dicFreqActive[selectedValue].Rows.Count),
                                                                "gllabel"));
                pnlDetail.Controls.Add(pnlFreq);


                #region Set panel Frequency Result
                DataTable dtFreqResult = _dicFreqActive[selectedValue].Copy();
                dtFreqResult.Columns.Remove("lngFreqSN");
                dtFreqResult.Columns.Remove("lngMethodSN");

                GridView gvFreqActive = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "gvFreqActive_{0}", dicEachResult.Key), "gltable", dtFreqResult, true, false);

                #region Set Css
                foreach (DataControlField dcColumn in gvFreqActive.Columns)
                {
                    string strColumnName = dcColumn.SortExpression;
                    if (_dicNumcssclass.Keys.Contains(strColumnName.Substring(4)))
                    {
                        dcColumn.HeaderStyle.CssClass = _dicNumcssclass[strColumnName.Substring(4)];
                    }
                }
                #endregion

                gvFreqActive.RowDataBound += GvFreqActive_RowDataBound;
                gvFreqActive.DataBind();
                pnlFreq.Controls.Add(gvFreqActive);
                #endregion Set panel Frequency Result
            }
        }
Ejemplo n.º 8
0
        private void ShowDetail(StuGLSearch stuGLSearch, string selectedValue)
        {
            Panel pnlMiss = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnlMissAll_{0}", selectedValue), "max-width");


            DataTable dtDataTable = ((Dictionary <string, DataTable>)_dicMissAll["MissAll"])[selectedValue];

            //DataTable dtDataTable = KeyVal.Value.Rows.Cast<DataRow>().Take(stuSearch00.IntDisplayPeriod).CopyToDataTable();
            pnlMiss.Controls.Add(new GalaxyApp().CreatLabel(string.Format(InvariantCulture, "{0}lblMissAll", selectedValue), string.Format(InvariantCulture, "{0} MissAll({1}期)", selectedValue, dtDataTable.Rows.Count), "gllabel"));

            #region Convert 0 to -1 to -7
            for (int intRow = 0; intRow < dtDataTable.Rows.Count; intRow++)
            {
                int intIndexofZero = -1;
                for (int intNum = 1; intNum <= new CglDataSet(stuGLSearch.LottoType).LottoNumbers; intNum++)
                {
                    string strColName = string.Format(InvariantCulture, "lngM{0}", intNum);
                    if (int.Parse(dtDataTable.Rows[intRow][strColName].ToString(), InvariantCulture) == 0)
                    {
                        dtDataTable.Rows[intRow][strColName] = intIndexofZero;
                        intIndexofZero--;
                    }
                }
            }
            #endregion

            #region GridView
            dtDataTable.DefaultView.Sort = chkOrder.Checked ? "lngTotalSN ASC" : "lngTotalSN DESC";
            GridView gvMissAll = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "{0} MissAll", selectedValue), "gltable table-hover", dtDataTable, true, false);
            gvMissAll.ShowHeaderWhenEmpty = true;
            #region Set Columns of DataGrid gvMissAll
            if (gvMissAll.Columns.Count != 0)
            {
                int intlngm = 1;
                foreach (BoundField bfCell in gvMissAll.Columns)
                {
                    string strColumnName = bfCell.DataField;
                    #region Css
                    if ((strColumnName.Substring(0, 4) != "lngL" && strColumnName.Substring(0, 4) != "lngM") || strColumnName == "lngMethodSN")
                    {
                        bfCell.ItemStyle.CssClass = strColumnName;
                    }
                    #endregion
                    #region Show the number of lngL,lngS,lngM with 2 digital
                    if (strColumnName.Substring(0, 4) == "lngM" && strColumnName != "lngMethodSN" && strColumnName != "lngMiss00SN")
                    {
                        bfCell.DataFormatString = "{0:d2}";
                        if (_dicCurrentNums.Values.Contains(int.Parse(strColumnName.Substring(4), InvariantCulture)) && ckAns.Checked)
                        {
                            bfCell.HeaderStyle.CssClass = string.Format(InvariantCulture, "lngM{0}", intlngm);
                            intlngm++;
                        }
                        int intNum = int.Parse(strColumnName.Substring(4), InvariantCulture);
                        if (intNum % 5 == 0 && strColumnName.Substring(0, 4) == "lngM")
                        {
                            bfCell.ItemStyle.CssClass = "glColNum5";
                        }
                    }
                    #endregion
                }
            }
            #endregion
            gvMissAll.RowDataBound += GvMissAll_RowDataBound;
            gvMissAll.DataBind();
            #endregion GridView
            pnlMiss.Controls.Add(gvMissAll);
            pnlDetail.Controls.Add(pnlMiss);
        }
Ejemplo n.º 9
0
        protected void Calendar01_SelectionChanged(object sender, EventArgs e)
        {
            using DataTable dtDate = new CglData().GetDateData(Calendar01.SelectedDate.Date);

            DataRow drDAte = dtDate.NewRow();

            // 找農曆
            TaiwanLunisolarCalendar tlc = new TaiwanLunisolarCalendar();
            int leapMouth = tlc.GetLeapMonth(tlc.GetYear(Calendar01.SelectedDate.Date));
            int LuniMouth = tlc.GetMonth(Calendar01.SelectedDate.Date);

            if (leapMouth > 0)
            {
                if (LuniMouth == leapMouth)
                {
                    LuniMouth = leapMouth - 1;
                }
                else if (LuniMouth > leapMouth)
                {
                    LuniMouth -= 1;
                }
            }
            drDAte["lngDateSN"]  = string.Format(InvariantCulture, "{0}{1:d2}{2:d2}", Calendar01.SelectedDate.Year, Calendar01.SelectedDate.Month, Calendar01.SelectedDate.Day);
            drDAte["lngCDateSN"] = string.Format(InvariantCulture, "{0}{1:d2}{2:d2}", tlc.GetYear(Calendar01.SelectedDate.Date), LuniMouth, tlc.GetDayOfMonth(Calendar01.SelectedDate.Date));

            //找紫微
            StuPurple stuTemp = new StuPurple
            {
                StrWYear  = Calendar01.SelectedDate.Year.ToString(InvariantCulture),
                StrWMonth = Calendar01.SelectedDate.Month.ToString("d2", InvariantCulture),
                StrWDay   = Calendar01.SelectedDate.Day.ToString("d2", InvariantCulture),
                StrWHour  = "YY11",
                IntGender = CglPurple.Gender.MalePlus
            };

            stuTemp.Init();
            foreach (KeyValuePair <string, string> KeyPair in stuTemp.DicUpdateData)
            {
                if (KeyPair.Key != "lngDateSN")
                {
                    if (KeyPair.Value.Length >= 4)
                    {
                        drDAte[KeyPair.Key] = KeyPair.Value.Substring(0, 4);
                    }
                    else
                    {
                        drDAte[KeyPair.Key] = KeyPair.Value;
                    }
                }
            }

            //

            dtDate.Rows.Add(drDAte);
            GridView gvDate = new GalaxyApp().CreatGridView("gvDate", " gltabel ", dtDate, true, true);

            gvDate.DataBind();
            pnlCalendar.Controls.Add(gvDate);

            // 一些使用的範例程式
            //StringBuilder stringBuilder = new StringBuilder(0,8000);
            //for (int i = 2007; i <= 2050; i++)
            //{
            //    CNDate cd1 = new CNDate(new DateTime(i, Calendar01.SelectedDate.Date.Month, Calendar01.SelectedDate.Date.Day));
            //    stringBuilder.AppendLine("計算 " + i + "年隔年農曆過年的國曆日期:" + cd1.GetNextLunarNewYearDate().ToLongDateString() + "<br/>");
            //}

            //CNDate cd = new CNDate(Calendar01.SelectedDate);

            //stringBuilder.AppendLine("今年農曆天數:" + cd.LunarYearDays(2007).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	01	月農曆天數:" + cd.LunarMonthDays(2007, 1).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	02	月農曆天數:" + cd.LunarMonthDays(2007, 2).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	03	月農曆天數:" + cd.LunarMonthDays(2007, 3).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	04	月農曆天數:" + cd.LunarMonthDays(2007, 4).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	05	月農曆天數:" + cd.LunarMonthDays(2007, 5).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	06	月農曆天數:" + cd.LunarMonthDays(2007, 6).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	07	月農曆天數:" + cd.LunarMonthDays(2007, 7).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	08	月農曆天數:" + cd.LunarMonthDays(2007, 8).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	09	月農曆天數:" + cd.LunarMonthDays(2007, 9).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	10	月農曆天數:" + cd.LunarMonthDays(2007, 10).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	11	月農曆天數:" + cd.LunarMonthDays(2007, 11).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今年	12	月農曆天數:" + cd.LunarMonthDays(2007, 12).ToString(InvariantCulture) + "<br/>");
            //stringBuilder.AppendLine("今天的農曆日期:" + cd.GetLunarHolDay() + "<br/>");
            //stringBuilder.AppendLine("今年的農曆潤月月份:" + cd.GetLeapMonth(2007) + "<br/>");
            //stringBuilder.AppendLine("計算國曆當天對應的節氣:" + cd.LGetLunarHolDay() + "<br/>");
            //stringBuilder.AppendLine("計算今年農曆過年的國曆日期:" + cd.GetLunarNewYearDate().ToLongDateString() + "<br/>");
            //lblCC.Text = stringBuilder.ToString();
        }
Ejemplo n.º 10
0
        private void ShowResult(StuGLSearch stuGLSearch)
        {
            lblTitle.Text        = Page.Title;
            lblMethod.Text       = new CglMethod().SetMethodString(stuGLSearch);
            lblSearchMethod.Text = new CglMethod().SetSearchMethodString(stuGLSearch);

            #region Current Data pnlCurrentData
            //顯示當前資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", new CglFunc().CDicTOTable(new CglData().GetCurrentDataDics(stuGLSearch)), true, true);
            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);
            #endregion

            #region Import Data
            if (ViewState["dicSum"] == null)
            {
                ViewState.Add("dicSum", new CglSum().GetSumDic(stuGLSearch, CglSum.TableName.QrySum01, SortOrder.Descending));
            }

            #region Initialize
            #endregion Initialize
            Dictionary <string, object> dicSum = (Dictionary <string, object>)ViewState["dicSum"];
            #region Show the result

            #region  views index
            int intView = 0;
            #endregion  views index
            #region Loop
            foreach (KeyValuePair <string, DataSet> KeyVal in (Dictionary <string, DataSet>)dicSum["Sum"])
            {
                Panel pnlSum = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnlSum_{0}", KeyVal.Key), "max-width");

                pnlDetail00.Controls.Add(pnlSum);
                #region SetButtons
                HyperLink btnSwitchView = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "btn{0}", KeyVal.Key),
                                                                         "glbutton glbutton-grey",
                                                                         string.Format(InvariantCulture, "{0}", KeyVal.Key),
                                                                         new Uri(string.Format(InvariantCulture, "#{0}", pnlSum.ID)));

                btnSwitchView.Attributes.Add("onclick", string.Format(InvariantCulture, "twoFocus('{0}lblSum,{0}lblSumNext');", KeyVal.Key));
                //btnSwitchView.Command += BtnSwitchViewCommand;
                pnlButtons.Controls.Add(btnSwitchView);
                #endregion SetButtons

                #region Data Convert
                DataSet   dsSumT     = KeyVal.Value;
                DataTable dtResult   = dsSumT.Tables["Result"];
                DataTable dtNextData = dsSumT.Tables["NextData"];
                #endregion Data Convert

                #region Sum Result part
                HyperLink hySum = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "{0}hySum", KeyVal.Key), "gllabel",
                                                                 string.Format(InvariantCulture, "{0} ({1}期)", KeyVal.Key, dtResult.Rows.Count),
                                                                 new Uri(string.Format(InvariantCulture, "#{0}lblSumNext", KeyVal.Key)));
                hySum.TabIndex = -1;

                pnlSum.Controls.Add(hySum);
                #region GridView
                dtResult.DefaultView.Sort = "lngTotalSN DESC";
                GridView gvMain = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "gvMain{0}", KeyVal.Key), "gltable ", dtResult, false, false);
                #region Set Columns of DataGrid dgMissAll
                if (gvMain.Columns.Count == 0)
                {
                    for (int i = 0; i < dtResult.Columns.Count; i++)
                    {
                        BoundField bfCell = new BoundField()
                        {
                            DataField      = dtResult.Columns[i].ColumnName,
                            HeaderText     = new CglFunc().ConvertFieldNameId(dtResult.Columns[i].ColumnName, 1),
                            SortExpression = dtResult.Columns[i].ColumnName
                        };
                        string strColumnName = dtResult.Columns[i].ColumnName;
                        #region Css
                        if ((strColumnName.Substring(0, 4) != "lngL" && strColumnName.Substring(0, 4) != "lngM") || strColumnName == "lngMethodSN")
                        {
                            bfCell.ItemStyle.CssClass = strColumnName;
                        }
                        #endregion
                        #region Show the number of lngL,lngS,lngM with 2 digital
                        if (strColumnName.Substring(0, 4) == "lngL" ||
                            strColumnName.Substring(0, 4) == "lngS" ||
                            strColumnName.Substring(0, 4) == "lngM")
                        {
                            bfCell.DataFormatString = "{0:d2}";
                        }
                        #endregion
                        gvMain.Columns.Add(bfCell);
                    }
                }
                #endregion
                //gvMain.HeaderStyle.CssClass = "FixedHeader ";
                gvMain.RowDataBound += GvMissAll_RowDataBound;
                gvMain.DataBind();
                #endregion GridView
                pnlSum.Controls.Add(gvMain);
                #endregion Sum Result part

                #region Sum NextData part
                Panel pnlSumNext = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "{0}pnlSumNext", KeyVal.Key), "max-width");

                pnlDetail01.Controls.Add(pnlSumNext);
                Label lblSumNext = new GalaxyApp().CreatLabel(string.Format(InvariantCulture, "{0}lblSumNext", KeyVal.Key), string.Format(InvariantCulture, "{0} ({1}期)", KeyVal.Key, dtNextData.Rows.Count), "gllabel");
                lblSumNext.TabIndex = -1;
                pnlSumNext.Controls.Add(lblSumNext);
                #region GridView
                GridView gvMain01 = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "gvMain01{0}", KeyVal.Key),
                                                                  "gltable",
                                                                  dtNextData, true, false);
                #region Set Columns of DataGrid gvSumNextData
                if (gvMain01.Columns.Count == 0)
                {
                    for (int i = 0; i < dtNextData.Columns.Count; i++)
                    {
                        BoundField bfCell = new BoundField()
                        {
                            DataField      = dtNextData.Columns[i].ColumnName,
                            HeaderText     = new CglFunc().ConvertFieldNameId(dtNextData.Columns[i].ColumnName, 1),
                            SortExpression = dtNextData.Columns[i].ColumnName
                        };
                        string strColumnName = dtNextData.Columns[i].ColumnName;
                        #region Css
                        if ((strColumnName.Substring(0, 4) != "lngL" && strColumnName.Substring(0, 4) != "lngM") || strColumnName == "lngMethodSN")
                        {
                            bfCell.ItemStyle.CssClass = strColumnName;
                        }
                        #endregion
                        #region Show the number of lngL,lngS,lngM with 2 digital
                        if (strColumnName.Substring(0, 4) == "lngL" ||
                            strColumnName.Substring(0, 4) == "lngS" ||
                            strColumnName.Substring(0, 4) == "lngM")
                        {
                            bfCell.DataFormatString = "{0:d2}";
                        }
                        #endregion
                        gvMain01.Columns.Add(bfCell);
                    }
                }
                #endregion
                gvMain01.RowDataBound += GvMissAll_RowDataBound;
                gvMain01.DataBind();
                #endregion GridView
                pnlSumNext.Controls.Add(gvMain01);
                #endregion Sum NextData part

                intView++;
            }
            #endregion Loop

            #region Update the controls
            #endregion Update the controls

            #endregion Show the result;

            #endregion
        }
Ejemplo n.º 11
0
        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 Initialize
            InitialArray();
            #endregion Initialize

            #region dicTablePercent
            if (ViewState["dicTablePercent"] == null)
            {
                ViewState.Add("dicTablePercent", new CglTablePercent().GetTP(stuGLSearch, strHtmlDirectory, strFnTPxml));
            }
            Dictionary <string, object> dicTablePercent = (Dictionary <string, object>)ViewState["dicTablePercent"];
            #endregion

            #region Show the result
            #region Setup the Css of numbers
            DicNumcssclass = new Dictionary <string, string>();
            foreach (var KeyPair in DicCurrentNums)
            {
                if (KeyPair.Value > 0)
                {
                    DicNumcssclass.Add(KeyPair.Value.ToString(InvariantCulture), KeyPair.Key);
                }
            }
            #endregion Setup the Css of numbers

            #region Loop
            foreach (var KeyVal in dicTablePercent)
            {
                //string strTitle = string.Empty;
                string strButtonText = string.Empty;
                if (KeyVal.Key == "dicTotal")
                {
                    #region SetButtons
                    HyperLink hlButton = new HyperLink()
                    {
                        ID          = string.Format(InvariantCulture, "hl{0}", KeyVal.Key),
                        CssClass    = "glbutton glbutton-lightblue ",
                        Text        = "全域",
                        NavigateUrl = string.Format(InvariantCulture, "#pnl{0}", KeyVal.Key)
                    };
                    pnlButtons.Controls.Add(hlButton);
                    #endregion SetButtons

                    #region Set panel Frequency Result
                    Dictionary <string, object> dicTotal = (Dictionary <string, object>)KeyVal.Value;
                    DataSet dsdicTotal  = (DataSet)dicTotal["dsdicTotal"];;
                    Panel   pnldicTotal = new Panel()
                    {
                        ID = string.Format(InvariantCulture, "pnl{0}", KeyVal.Key), CssClass = "max-width"
                    };

                    foreach (DataTable dtdicTotal in dsdicTotal.Tables)
                    {
                        #region Set table tblEach
                        Table tblEach = new Table()
                        {
                            CssClass = "gltable", Caption = dtdicTotal.TableName
                        };
                        #region Set Columns of table dgFreqResult
                        TableHeaderRow thrHeader = new TableHeaderRow();
                        TableRow       trRow     = new TableRow();
                        foreach (DataColumn dcColumn in dtdicTotal.Columns)
                        {
                            TableHeaderCell thcColumnFreq = new TableHeaderCell {
                                Text = string.Format(InvariantCulture, "{0:00}", int.Parse(dcColumn.ColumnName, InvariantCulture)),
                            };
                            if (DicNumcssclass.ContainsKey(dcColumn.ColumnName))
                            {
                                thcColumnFreq.CssClass = DicNumcssclass[dcColumn.ColumnName];
                            }
                            thrHeader.Controls.Add(thcColumnFreq);
                            TableCell tcCell = new TableCell()
                            {
                                Text = string.Format(InvariantCulture, "{0}", dtdicTotal.Rows[0][dcColumn.ColumnName].ToString()),
                            };
                            trRow.Controls.Add(tcCell);
                        }
                        #endregion
                        tblEach.Controls.Add(thrHeader);
                        tblEach.Controls.Add(trRow);
                        #endregion
                        pnldicTotal.Controls.Add(tblEach);
                    }

                    #endregion Set panel Frequency Result

                    pnlDetail.Controls.Add(pnldicTotal);
                }
                else
                {
                    Dictionary <string, object> dicEachCompare = (Dictionary <string, object>)KeyVal.Value;
                    int     DataRows = int.Parse(dicEachCompare["DataRows"].ToString(), InvariantCulture);
                    DataSet dsFreq   = (DataSet)dicEachCompare["dsFreq"];
                    DataSet dsHot    = (DataSet)dicEachCompare["dsHot"];

                    #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 HyperLink()
                    {
                        ID          = string.Format(InvariantCulture, "hl{0}", KeyVal.Key),
                        CssClass    = "glbutton ",
                        Text        = strButtonText,
                        NavigateUrl = string.Format(InvariantCulture, "#pnl{0}", KeyVal.Key)
                    };

                    if (DataRows >= intDataRowsLimit)
                    {
                        btButton.CssClass += "glbutton-lightblue  "; blDataTableCount = true;
                    }
                    else
                    {
                        btButton.CssClass += "glbutton-grey  "; blDataTableCount = false;
                    }

                    if (KeyVal.Key == "strDayTwentyEight#strHourTwentyEight")
                    {
                        blDataTableCount = false;
                    }
                    ;

                    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 Hot Part
                    Table tblHotOutline = new Table()
                    {
                        CssClass = "max-width", Width = 20,
                    };
                    TableRow trRowOutline = new TableRow();
                    foreach (DataTable dtHot in dsHot.Tables)
                    {
                        TableCell tcOutline = new TableCell()
                        {
                            VerticalAlign = VerticalAlign.Top,
                        };
                        dtHot.DefaultView.Sort = "[S0115] DESC , [S0105] DESC , [Miss] ASC, [Nums] ASC ";
                        GridView gvHot = new GridView()
                        {
                            ID = string.Format(InvariantCulture, "{0}gvHot", KeyVal.Key),
                            ShowHeaderWhenEmpty = true,
                            AutoGenerateColumns = false,
                            AllowSorting        = true,
                            EnableViewState     = false,
                            ViewStateMode       = ViewStateMode.Disabled,
                            CssClass            = "gltable ",
                            GridLines           = GridLines.Horizontal,
                            DataSource          = dtHot.DefaultView,
                            Caption             = dtHot.TableName
                        };
                        if (gvHot.Columns.Count == 0)
                        {
                            for (int i = 0; i < dtHot.Columns.Count; i++)
                            {
                                BoundField bfCell = new BoundField()
                                {
                                    DataField  = dtHot.Columns[i].ColumnName,
                                    HeaderText = new CglFunc().ConvertFieldNameId(dtHot.Columns[i].ColumnName, 1),
                                    ReadOnly   = true,
                                };
                                gvHot.Columns.Add(bfCell);
                            }
                        }
                        gvHot.RowDataBound += GvHot_RowDataBound;;
                        gvHot.DataBind();
                        tcOutline.Controls.Add(gvHot);
                        trRowOutline.Controls.Add(tcOutline);
                    }
                    tblHotOutline.Controls.Add(trRowOutline);
                    pnlEachCompare.Controls.Add(tblHotOutline);
                    #endregion Hot Part

                    #region Freq Part
                    foreach (DataTable dtFreq in dsFreq.Tables)
                    {
                        if (dtFreq.TableName != "DataAll" && dtFreq.TableName != "MissAll")
                        {
                            #region Set table tblEach
                            Table tblEach = new Table()
                            {
                                CssClass = "gltable", Caption = dtFreq.TableName
                            };
                            #region Set Columns of table dgFreqResult
                            TableHeaderRow thrHeader = new TableHeaderRow();
                            TableRow       trRow     = new TableRow();
                            foreach (DataColumn dcColumn in dtFreq.Columns)
                            {
                                if (dcColumn.ColumnName != "intRows")
                                {
                                    TableHeaderCell thcColumnFreq = new TableHeaderCell {
                                        Text = string.Format(InvariantCulture, "{0:00}", int.Parse(dcColumn.ColumnName.Substring(4), InvariantCulture)),
                                    };
                                    if (DicNumcssclass.ContainsKey(int.Parse(dcColumn.ColumnName.Substring(4), InvariantCulture).ToString(InvariantCulture)))
                                    {
                                        thcColumnFreq.CssClass = DicNumcssclass[int.Parse(dcColumn.ColumnName.Substring(4), InvariantCulture).ToString(InvariantCulture)];
                                    }
                                    thrHeader.Controls.Add(thcColumnFreq);
                                    TableCell tcCell = new TableCell()
                                    {
                                        Text = string.Format(InvariantCulture, "{0}", dtFreq.Rows[0][dcColumn.ColumnName].ToString()),
                                    };
                                    trRow.Controls.Add(tcCell);
                                }
                            }
                            #endregion
                            tblEach.Controls.Add(thrHeader);
                            tblEach.Controls.Add(trRow);
                            #endregion
                            pnlEachCompare.Controls.Add(tblEach);
                        }
                    }
                    #endregion Freq Part

                    #endregion Set Each Compare Panel
                    pnlDetail.Controls.Add(pnlEachCompare);
                }
            }
            #endregion Loop

            #endregion Show the result
        }
Ejemplo n.º 12
0
        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 Initialize
            InitialArray();
            #endregion Initialize

            #region Setup the Css of numbers
            dicNumcssclass = new Dictionary <string, string>();
            foreach (var KeyPair in dicCurrentNums)
            {
                if (KeyPair.Value > 0)
                {
                    dicNumcssclass.Add(KeyPair.Value.ToString(InvariantCulture), KeyPair.Key);
                }
            }
            #endregion Setup the Css of numbers

            #region dicTablePercent
            if (ViewState["dicTablePercent"] == null)
            {
                ViewState.Add("dicTablePercent", new CglTablePercent().GetTP(stuGLSearch, StrXmlDirectory, StrFnTPxml));
                //Update10(stuSearch00);
            }
            Dictionary <string, object> dicTablePercent = (Dictionary <string, object>)ViewState["dicTablePercent"];
            #endregion

            #region Data Part

            #region dtTpHit
            DataTable dtTpHit = new CglTablePercent().GetTablePercentHit(stuGLSearch, dicTablePercent);
            dtTpHit.TableName = string.Format(InvariantCulture, "dtTpHit_{0}", stuGLSearch.InDataRowsLimit);
            if (dtTpHit.Columns.Contains("TpHit02ID"))
            {
                dtTpHit.Columns.Remove("TpHit02ID");
            }
            if (dtTpHit.Columns.Contains("TpHit01ID"))
            {
                dtTpHit.Columns.Remove("TpHit01ID");
            }
            if (dtTpHit.Columns.Contains("lngTotalSN"))
            {
                dtTpHit.Columns.Remove("lngTotalSN");
            }
            if (dtTpHit.Columns.Contains("intDataRowsLimit"))
            {
                dtTpHit.Columns.Remove("intDataRowsLimit");
            }
            dtTpHit.DefaultView.Sort = "[srtCheck] DESC , [dblHitRate] ASC , [intTotal] DESC , [intHit] ASC";
            #endregion dtTpHit

            #region dtDHigh0125
            DataTable dtDHigh0125 = new CglTablePercent().GetDHigh0125(stuGLSearch, dicTablePercent);
            dtDHigh0125.TableName = string.Format(InvariantCulture, "dtDHigh0125_{0}_{1}", stuGLSearch.InDataRowsLimit, stuGLSearch.InCriticalNum);
            #endregion dtDHigh0125

            #region dtTpHit10
            DataTable dtTpHit10 = new CglTablePercent().GetTablePercentHit10(stuGLSearch, StrXmlDirectory, strFnTPHit10xml);
            dtTpHit10.TableName        = string.Format(InvariantCulture, "TpHit10_{0}", stuGLSearch.InDataRowsLimit);
            dtTpHit10.DefaultView.Sort = "[srtCheck] DESC ";
            #endregion dtTpHit10

            #region dtdicDelNum
            Dictionary <string, string> dicDelNum_All = new CglTablePercent().GetTPDelNum(stuGLSearch, dtTpHit, lstDelete, lstNotDelete);
            Dictionary <string, int>    dicDelNum     = ConvertToDicDelNum(dicDelNum_All);
            dicDelNum = dicDelNum.OrderByDescending(x => x.Value).ToDictionary(x => x.Key, x => x.Value);
            DataTable dtdicDelNum = new CglFunc().CDicTOTable(dicDelNum, null);
            dtdicDelNum.TableName = string.Format(CultureInfo.InvariantCulture, "DelNum_{0}", stuGLSearch.InDataRowsLimit);
            #endregion dtdicDelNum

            #region dtdicDelNum_Hit
            DicDelNum_Hit = ConvertToDicDelNum_Hit(stuGLSearch, dicDelNum_All);
            DicDelNum_Hit = DicDelNum_Hit.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value);
            DataTable dtdicDelNum_Hit = new CglFunc().CDicTOTable(DicDelNum_Hit, null);
            dtdicDelNum_Hit.TableName = string.Format(CultureInfo.InvariantCulture, "DelNum_Hit{0}", stuGLSearch.InDataRowsLimit);
            #endregion dtdicDelNum_Hit

            #endregion Data Part

            #region Show the result

            StringBuilder sbDelete = new StringBuilder();
            sbDelete.AppendLine(string.Format(InvariantCulture, "DataRowsLimit : {0} ", stuGLSearch.InDataRowsLimit));
            sbDelete.AppendLine(string.Format(InvariantCulture, "Delete : {0} ", string.Join(",", lstDelete.ToArray())));
            sbDelete.AppendLine(string.Format(InvariantCulture, "NotDelete : {0} ", string.Join(",", lstNotDelete.ToArray())));
            pnlDetail.Controls.Add(new GalaxyApp().CreatLabel("lblDelete", sbDelete.ToString(), ""));

            #region dtdicDelNum
            Panel pnlDelNum = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnl{0}", "DelNum"), "max-width");
            pnlDetail.Controls.Add(pnlDelNum);

            #region SetButtons
            HyperLink hlDelNum = new GalaxyApp().CreatHyperLink("hlDelNum", "glbutton glbutton-lightblue ", "統計",
                                                                new Uri(string.Format(InvariantCulture, "#{0}", pnlDelNum.ID)));
            pnlButtons.Controls.Add(hlDelNum);
            #endregion SetButtons

            #region Set table tblDelNum
            Table tblDelNum = new GalaxyApp().CreatTable("gltable", dtdicDelNum.TableName);
            #region Set Columns of table tblHitCount
            TableHeaderRow thrHeader_DelNum = new TableHeaderRow();
            TableRow       trRow_DelNum     = new TableRow();
            foreach (DataColumn dcColumn in dtdicDelNum.Columns)
            {
                TableHeaderCell thcColumnFreq = new TableHeaderCell
                {
                    Text = string.Format(InvariantCulture, "{0:00}", int.Parse(dcColumn.ColumnName, InvariantCulture))
                };
                if (dicNumcssclass.ContainsKey(dcColumn.ColumnName))
                {
                    thcColumnFreq.CssClass = dicNumcssclass[dcColumn.ColumnName];
                }
                thrHeader_DelNum.Controls.Add(thcColumnFreq);

                using TableCell tcCell = new TableCell
                      {
                          Text = string.Format(InvariantCulture, "{0}", dtdicDelNum.Rows[0][dcColumn.ColumnName].ToString())
                      };
                trRow_DelNum.Controls.Add(tcCell);
            }
            tblDelNum.Controls.Add(thrHeader_DelNum);
            tblDelNum.Controls.Add(trRow_DelNum);
            #endregion
            #endregion

            pnlDelNum.Controls.Add(tblDelNum);

            #endregion dtdicDelNum

            #region dtdicDelNum_Hit

            #region Set panel pnlDelNum_Hit
            Panel pnlDelNum_Hit = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnl{0}", "DelNum_Hit"), "max-width");
            pnlDetail.Controls.Add(pnlDelNum_Hit);
            #endregion Set panel pnlHitCount

            GridView gvDelNum_Hit = new GalaxyApp().CreatGridView(dtdicDelNum_Hit.TableName, "gltable ", dtdicDelNum_Hit, true, false);
            gvDelNum_Hit.ShowHeaderWhenEmpty = true;
            gvDelNum_Hit.AllowSorting        = true;
            gvDelNum_Hit.Caption             = dtdicDelNum_Hit.TableName;
            if (gvDelNum_Hit.Columns.Count == 0)
            {
                for (int i = 0; i < dtdicDelNum_Hit.Columns.Count; i++)
                {
                    BoundField bfCell = new BoundField()
                    {
                        DataField  = dtdicDelNum_Hit.Columns[i].ColumnName,
                        HeaderText = dtdicDelNum_Hit.Columns[i].ColumnName,
                        ReadOnly   = true,
                    };
                    gvDelNum_Hit.Columns.Add(bfCell);
                }
            }
            gvDelNum_Hit.DataBind();
            pnlDelNum_Hit.Controls.Add(gvDelNum_Hit);
            #endregion dtdicDelNum_Hit

            #region dtDHigh0125
            #region SetButtons
            //HyperLink hlDHigh0125 = new HyperLink()
            //{
            //    ID = "hlDelNum",
            //    CssClass = "glbutton glbutton-lightblue ",
            //    Text = "統計",
            //    NavigateUrl = string.Format(InvariantCulture, "#pnl{0}", "DHigh0125")
            //};
            pnlButtons.Controls.Add(hlDelNum);
            #endregion SetButtons

            #region Set panel pnlDelNum
            //Panel pnlDHigh0125 = new Panel() { ID = string.Format(InvariantCulture, "pnl{0}", "DHigh0125"), CssClass = "max-width" };
            pnlDetail.Controls.Add(pnlDelNum);
            #endregion Set panel pnlHitCount

            #region Set table tblDelNum
            Table tblDHigh0125 = new GalaxyApp().CreatTable("gltable", string.Format(InvariantCulture, "{0}({1})", dtDHigh0125.TableName, dtDHigh0125.Columns.Count));
            #region Set Columns of table tblHitCount
            using (TableHeaderRow thrHeader_DHigh0125 = new TableHeaderRow())
            {
                using TableRow trRow_DHigh0125 = new TableRow();
                foreach (DataColumn dcColumn in dtDHigh0125.Columns)
                {
                    using (TableHeaderCell thcColumnFreq = new TableHeaderCell())
                    {
                        thcColumnFreq.Text = string.Format(InvariantCulture, "{0:00}", int.Parse(dcColumn.ColumnName, InvariantCulture));
                        thrHeader_DHigh0125.Controls.Add(thcColumnFreq);
                        if (dicNumcssclass.ContainsKey(int.Parse(dcColumn.ColumnName, InvariantCulture).ToString(InvariantCulture)))
                        {
                            thcColumnFreq.CssClass = dicNumcssclass[int.Parse(dcColumn.ColumnName, InvariantCulture).ToString(InvariantCulture)];
                        }
                    }
                    using TableCell tcCell = new TableCell
                          {
                              Text = string.Format(InvariantCulture, "{0}", dtDHigh0125.Rows[0][dcColumn.ColumnName].ToString())
                          };
                    trRow_DHigh0125.Controls.Add(tcCell);
                }
                #endregion
                tblDHigh0125.Controls.Add(thrHeader_DHigh0125);
                tblDHigh0125.Controls.Add(trRow_DHigh0125);
            }
            #endregion

            pnlDelNum.Controls.Add(tblDHigh0125);

            #endregion dtdicDelNum

            #region dtTpHit

            Panel pnlTpHit = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnl{0}", "TpHit"), "max-width");
            pnlDetail.Controls.Add(pnlTpHit);

            #region SetButtons
            HyperLink hlTpHit = new GalaxyApp().CreatHyperLink("hlTpHit", "glbutton glbutton-lightblue ", "TpHit",
                                                               new Uri(string.Format(InvariantCulture, "#{0}", pnlTpHit.ID)));
            pnlButtons.Controls.Add(hlTpHit);
            #endregion SetButtons

            #region gvdtTpHit
            GridView gvdtTpHit = new GalaxyApp().CreatGridView(dtTpHit.TableName, "gltable ", dtTpHit, true, false);
            gvdtTpHit.AllowSorting        = true;
            gvdtTpHit.Caption             = string.Format(InvariantCulture, "{0}({1})", dtTpHit.TableName, dtTpHit.Rows.Count);
            gvdtTpHit.ShowHeaderWhenEmpty = true;
            if (gvdtTpHit.Columns.Count == 0)
            {
                for (int i = 0; i < dtTpHit.Columns.Count; i++)
                {
                    BoundField bfCell = new BoundField()
                    {
                        DataField  = dtTpHit.Columns[i].ColumnName,
                        HeaderText = dtTpHit.Columns[i].ColumnName,
                        ReadOnly   = true,
                    };

                    if (i > 3)
                    {
                        bfCell.HeaderText = string.Format(InvariantCulture, "{0:00}", int.Parse(dtTpHit.Columns[i].ColumnName.Substring(4), InvariantCulture));
                        if (dicNumcssclass.ContainsKey(int.Parse(dtTpHit.Columns[i].ColumnName.Substring(4), InvariantCulture).ToString(InvariantCulture)))
                        {
                            bfCell.HeaderStyle.CssClass = dicNumcssclass[int.Parse(dtTpHit.Columns[i].ColumnName.Substring(4), InvariantCulture).ToString(InvariantCulture)];
                            bfCell.ItemStyle.CssClass   = dicNumcssclass[int.Parse(dtTpHit.Columns[i].ColumnName.Substring(4), InvariantCulture).ToString(InvariantCulture)];
                        }
                    }
                    gvdtTpHit.Columns.Add(bfCell);
                }
            }
            gvdtTpHit.RowDataBound += GvdtTpHit_RowDataBound;
            gvdtTpHit.DataBind();
            pnlTpHit.Controls.Add(gvdtTpHit);
            #endregion gvdtTpHit

            #endregion dtTpHit

            #region dtTpHit10

            Panel pnlTpHit10 = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnl{0}", "TpHit10"), "max-width");
            pnlDetail.Controls.Add(pnlTpHit10);

            #region SetButtons
            HyperLink hlTpHit10 = new GalaxyApp().CreatHyperLink("hlTpHit10", "glbutton glbutton-lightblue ", "TpHit10",
                                                                 new Uri(string.Format(InvariantCulture, "#{0}", pnlTpHit10.ID)));
            pnlButtons.Controls.Add(hlTpHit10);
            #endregion SetButtons

            #region gvTpHit10
            GridView gvTpHit10 = new GalaxyApp().CreatGridView(dtTpHit10.TableName, "gltable ", dtTpHit10, true, false);
            gvTpHit10.AllowSorting        = true;
            gvTpHit10.Caption             = string.Format(InvariantCulture, "{0}({1})", dtTpHit10.TableName, dtTpHit10.Rows.Count);
            gvTpHit10.ShowHeaderWhenEmpty = true;
            if (gvTpHit10.Columns.Count == 0)
            {
                for (int i = 0; i < dtTpHit10.Columns.Count; i++)
                {
                    BoundField bfCell = new BoundField()
                    {
                        DataField  = dtTpHit10.Columns[i].ColumnName,
                        HeaderText = dtTpHit10.Columns[i].Caption,
                        ReadOnly   = true,
                    };
                    if (i > 0)
                    {
                        if (bfCell.HeaderText.Contains("T"))
                        {
                            bfCell.HeaderStyle.CssClass = "row_lightyellow";
                            bfCell.ItemStyle.CssClass   = "row_lightyellow";
                        }
                    }
                    gvTpHit10.Columns.Add(bfCell);
                }
            }
            gvTpHit10.RowDataBound += GvTpHit10_RowDataBound;;
            gvTpHit10.DataBind();
            pnlTpHit10.Controls.Add(gvTpHit10);
            #endregion gvTpHit10

            #endregion dtTpHit10

            #endregion Show the result
        }
Ejemplo n.º 13
0
        private void ShowResult()
        {
            CglDataSet DataSet00 = new CglDataSet(_gstuSearch.LottoType);

            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", new CglFunc().CDicTOTable(new CglData().GetCurrentDataDics(_gstuSearch)), true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);

            #region 測試號碼
            Label lblTestNum = new GalaxyApp().CreatLabel("lblTestNum", string.Format(InvariantCulture, "測試號碼({0})支  :  {1} ", _gstuSearch.StrSmartTests.Split(',').ToList().Count, _gstuSearch.StrSmartTests), "gllabel");
            pnlDetail.Controls.Add(lblTestNum);
            #endregion

            #region 設定處理動作
            List <string> lstAction = new List <string>();
            Dictionary <string, ChoseAndHit> dicChoseAndHit = new Dictionary <string, ChoseAndHit>
            {
                { "C2H2", ChoseAndHit.Chose2Hit2 },
                { "C3H3", ChoseAndHit.Chose3Hit3 },
                { "C4H3", ChoseAndHit.Chose4Hit3 },
                { "C5H4", ChoseAndHit.Chose5Hit4 },
                { "C5H3", ChoseAndHit.Chose5Hit3 },
            };
            switch (_gstuSearch.LottoType)
            {
            case TargetTable.Lotto539:
                lstAction = new List <string> {
                    "all", "C2H2", "C3H3", "C4H3", "C5H4", "C5H3"
                };
                break;

            case TargetTable.LottoBig:
                lstAction = new List <string> {
                    "all"
                };
                break;

            case TargetTable.LottoSix:
                lstAction = new List <string> {
                    "all"
                };
                break;

            case TargetTable.LottoDafu:
                lstAction = new List <string> {
                    "all"
                };
                break;
            }
            ;
            #endregion
            //int intView = 0;
            foreach (string straction in lstAction)
            {
                List <string> lstSmartTest;
                Panel         pnlAction = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnl{0}", straction), "max-width");
                pnlDetail.Controls.Add(pnlAction);
                if (straction == "all")
                {
                    #region Button
                    HyperLink btButton = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "hl{0}", straction),
                                                                        "glbutton glbutton-grey ",
                                                                        string.Format(InvariantCulture, "{0}", straction),
                                                                        new Uri(string.Format(InvariantCulture, "#pnl{0}", straction)));

                    pnlButtons.Controls.Add(btButton);
                    #endregion Button
                    lstSmartTest = new CglFunc().Combination(_gstuSearch.StrSmartTests.Split(','), DataSet00.CountNumber).TrimEnd(';').Split(';').ToList();

                    Label lblAction = new GalaxyApp().CreatLabel("lblAction", string.Format(InvariantCulture, "[{0}] 支數:{1} ", straction, lstSmartTest.Count), "gllabel");
                    pnlAction.Controls.Add(lblAction);

                    lblAction = new GalaxyApp().CreatLabel("lblAction", string.Format(InvariantCulture, " 投資金額:{0:N0} ", lstSmartTest.Count * DataSet00.DblRCos), "gllabel");
                    pnlAction.Controls.Add(lblAction);
                }
                else
                {
                    lstSmartTest = (List <string>)GetSmartSet(_gstuSearch, _gstuSearch.StrSmartTests, dicChoseAndHit[straction]);
                    if (ViewState[straction] == null)
                    {
                        ViewState.Add(straction, GetHitTable(_gstuSearch, lstSmartTest));
                    }

                    #region Button
                    HyperLink btButton = new GalaxyApp().CreatHyperLink(string.Format(InvariantCulture, "hl{0}", straction),
                                                                        "glbutton glbutton-grey ",
                                                                        string.Format(InvariantCulture, "{0}", straction),
                                                                        new Uri(string.Format(InvariantCulture, "#pnl{0}", straction)));
                    pnlButtons.Controls.Add(btButton);

                    #endregion Button

                    DataTable dtSmartTest = (DataTable)ViewState[straction];
                    dtSmartTest.TableName = straction;

                    Label lblAction = new GalaxyApp().CreatLabel("lblAction", string.Format(InvariantCulture, "[{0}] 支數:{1} ", straction, lstSmartTest.Count), "gllabel");
                    pnlAction.Controls.Add(lblAction);
                    lblAction = new GalaxyApp().CreatLabel("lblAction01", string.Format(InvariantCulture, " 投資金額:{0:N0} ", lstSmartTest.Count * DataSet00.DblRCos), "gllabel");
                    pnlAction.Controls.Add(lblAction);
                    double dblsum;
                    if (lstSmartTest.Count > 0)
                    {
                        dblsum = double.Parse(dtSmartTest.Compute("SUM([HitMoney])", string.Empty).ToString(), InvariantCulture);
                    }
                    else
                    {
                        dblsum = 0;
                    }
                    lblAction = new GalaxyApp().CreatLabel("lblAction02", string.Format(InvariantCulture, " 中獎金額:{0:N0} ", dblsum), "gllabel");
                    pnlAction.Controls.Add(lblAction);

                    GridView gvTable = new GalaxyApp().CreatGridView(string.Format(InvariantCulture, "gv{0}", straction), "gltable table-hover", dtSmartTest, true, false);
                    gvTable.AllowSorting         = true;
                    dtSmartTest.DefaultView.Sort = "[HitMoney] DESC";
                    gvTable.DataBind();
                    pnlAction.Controls.Add(gvTable);
                }
            }
        }
Ejemplo n.º 14
0
        private void ShowResult(StuGLSearch stuGLSearch)
        {
            lblTitle.Text        = Page.Title;
            lblMethod.Text       = new CglMethod().SetMethodString(stuGLSearch);
            lblSearchMethod.Text = new CglMethod().SetSearchMethodString(stuGLSearch);

            // 當期資料
            GridView gvCurrentData = new GalaxyApp().CreatGridView("gvCurrentData", "gltable ", dtCurrentData, true, true);

            gvCurrentData.DataBind();
            pnlCurrentData.Controls.Add(gvCurrentData);

            #region Show the result

            #region Loop
            foreach (var dicEachResult in _dicFreqActive)
            {
                #region lstFirstNums,lstSeachLimitNums
                List <int> lstFirstNums      = (List <int>) new GalaxyApp().GetLstNumbers(stuGLSearch, dicEachResult.Value, 2);
                List <int> lstSeachLimitNums = (List <int>) new GalaxyApp().GetLstNumbers(stuGLSearch, dicEachResult.Value, stuGLSearch.InSearchLimit + 1);
                #endregion lstFirstNums,lstSeachLimitNums

                DataTable dtFreqResult = dicEachResult.Value.Copy();
                dtFreqResult.Columns.Remove("lngTotalSN");

                #region Set Chart

                #region pnlChartActive
                using Panel pnlChartActive = new Panel { ID = string.Format(InvariantCulture, "pnlActive{0}", dicEachResult.Key), CssClass = "max-width" };
                pnlDetail.Controls.Add(pnlChartActive);
                #endregion pnlChartActive

                DataTable dtCurve = dicEachResult.Value.Copy();
                dtCurve.DefaultView.Sort = "[lngDateSN] ASC";
                int intLNums = int.Parse(ddlNums.SelectedValue, InvariantCulture);
                //for (int intLNums = 1; intLNums <= new CglDataSet(stuGLSearch.LottoType).LottoNumbers; intLNums++)
                //{
                #region Max,Min,Avg
                int       intCurrent = int.Parse(dtFreqResult.Rows[0][string.Format(InvariantCulture, "lngN{0}", intLNums)].ToString(), InvariantCulture);
                DataTable dataTable  = stuGLSearch.InSearchLimit > 0 ? dtFreqResult.Rows.Cast <DataRow>().Take(stuGLSearch.InSearchLimit).CopyToDataTable() : dtFreqResult;
                double    dblSumS    = double.Parse(dataTable.Compute(string.Format(InvariantCulture, "SUM([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);
                double    dblAvgS    = Math.Round(dblSumS / (double)stuGLSearch.InSearchLimit, 2);
                int       intMaxS    = int.Parse(dataTable.Compute(string.Format(InvariantCulture, "MAX([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);
                int       intMinS    = int.Parse(dataTable.Compute(string.Format(InvariantCulture, "MIN([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);
                double    dblSumT    = double.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "SUM([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);
                double    dblAvgT    = Math.Round(dblSumT / (double)dtFreqResult.Rows.Count, 2);
                int       intMaxT    = int.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "MAX([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);
                int       intMinT    = int.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "MIN([lngN{0}])", intLNums), string.Empty).ToString(), InvariantCulture);

                #endregion Max,Min,Avg

                #region Chart chActive

                Chart chActive = new GalaxyApp().CreatChart(string.Format(InvariantCulture, "chActive{0}{1:d2}", dicEachResult.Key, intLNums),
                                                            stuGLSearch.InDisplayPeriod * 20, 500);

                chActive.Titles.Add(new GalaxyApp().CreatTitle(string.Format(InvariantCulture, "sNum{0}{1:d2}", dicEachResult.Key, intLNums),
                                                               string.Format(InvariantCulture, "{0:d02} (T:{1} C:{2}) \n (AvgS:{3} MaS:{4} MiS:{5}) \n (AvgS:{6} Ma:{7} Mi:{8})",
                                                                             intLNums, new CglFreq().GetTrend(stuGLSearch, dtFreqResult, intLNums), intCurrent, dblAvgS, intMaxS, intMinS, dblAvgT, intMaxT, intMinT),
                                                               Docking.Top,
                                                               (int.Parse(dtFreqResult.Rows[0][string.Format(InvariantCulture, "lngN{0}", intLNums)].ToString(), InvariantCulture) >= stuGLSearch.InCriticalNum) ? Color.Red : Color.Black, Color.White));
                pnlChartActive.Controls.Add(chActive);
                #endregion


                #region ChartArea chaArea
                ChartArea chaArea = new GalaxyApp().CreatChartArea(string.Format(InvariantCulture, "chaArea{0}{1:d2}", dicEachResult.Key, intLNums), 0);
                chaArea.BackColor     = _dicNumcssclass.ContainsKey(intLNums.ToString(InvariantCulture)) ? Color.FromArgb(50, 217, 161, 199) : Color.White;
                chaArea.AxisY.Maximum = intMaxT + 1;
                if (lstFirstNums.Contains(intLNums))
                {
                    chaArea.BorderColor = Color.Blue;
                    chaArea.BorderWidth = 2;
                }
                if (lstSeachLimitNums.Contains(intLNums))
                {
                    chaArea.BorderColor = Color.Green;
                    chaArea.BorderWidth = 2;
                }
                if (lstFirstNums.Contains(intLNums) && lstSeachLimitNums.Contains(intLNums))
                {
                    chaArea.BorderColor = Color.Red;
                    chaArea.BorderWidth = 2;
                }
                #endregion
                chActive.ChartAreas.Add(chaArea);

                #region Set buttons
                //HyperLink hlNumG = CreatHyperLink(string.Format(InvariantCulture, "hlNumG{0}{1:d2}", dicEachResult.Key, intLNums),
                //                                  "glbutton glbutton-lightblue ",
                //                                  string.Format(InvariantCulture, "{0}::{1:d2}", dicEachResult.Key, intLNums),
                //                                  string.Format(InvariantCulture, "#{0}", chActive.ID));
                //pnlButtons.Controls.Add(hlNumG);

                #endregion Set buttons

                #region Series
                Series sirNum = new GalaxyApp().CreatSeries(string.Format(InvariantCulture, "sirNum{0}{1:d2}", dicEachResult.Key, intLNums), chaArea.Name);
                sirNum.IsValueShownAsLabel = true;
                sirNum.Color      = Color.Red;
                sirNum.LegendText = string.Format(InvariantCulture, "{0}:lngN{1}", sirNum.Name, intLNums);
                sirNum.Points.DataBind(dtCurve.DefaultView, "", string.Format(InvariantCulture, "lngN{0}", intLNums), string.Format(InvariantCulture, "Tooltip = lngN{0}", intLNums));
                #endregion Series
                chActive.Series.Add(sirNum);

                #region LineAnnotation
                HorizontalLineAnnotation hlaAvgS = new GalaxyApp().CreatHorizontalLineAnnotation(string.Format(InvariantCulture, "sirAvgS{0}{1:d2}", dicEachResult.Key, intLNums), chaArea);
                hlaAvgS.LineColor     = Color.Blue;
                hlaAvgS.ToolTip       = intMaxT.ToString(InvariantCulture);
                hlaAvgS.AnchorY       = intMaxT;
                hlaAvgS.LineDashStyle = ChartDashStyle.DashDot;
                chActive.Annotations.Add(hlaAvgS);

                using HorizontalLineAnnotation hlaAvgT = new GalaxyApp().CreatHorizontalLineAnnotation(string.Format(InvariantCulture, "sirAvgT{0}{1:d2}", dicEachResult.Key, intLNums), chaArea);
                hlaAvgT.LineColor     = Color.Purple;
                hlaAvgT.ToolTip       = intMinT.ToString(InvariantCulture);
                hlaAvgT.AnchorY       = intMinT;
                hlaAvgT.LineDashStyle = ChartDashStyle.DashDot;
                chActive.Annotations.Add(hlaAvgT);

                using VerticalLineAnnotation vlaSearchLimit = new GalaxyApp().CreatVerticalLineAnnotation(string.Format(InvariantCulture, "sirSL{0}{1:d2}", dicEachResult.Key, intLNums), chaArea);
                vlaSearchLimit.LineColor = Color.Green;
                vlaSearchLimit.ToolTip   = vlaSearchLimit.AnchorX.ToString(InvariantCulture);
                vlaSearchLimit.AnchorX   = (dtCurve.Rows.Count - stuGLSearch.InSearchLimit + 1) > 0 ? dtCurve.Rows.Count - stuGLSearch.InSearchLimit + 1 : 0;
                chActive.Annotations.Add(vlaSearchLimit);

                #endregion
                //}
                #endregion Set Chart
            }
            #endregion Loop
            #endregion
        }
Ejemplo n.º 15
0
        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
        }
        private void ShowResult(StuGLSearch stuGLSearch)
        {
            //Img05.Visible = false; Img10.Visible = false; Img25.Visible = false; Img50.Visible = false; Img100.Visible = false; ImgLast.Visible = false;
            pnlDetail.Controls.Clear();
            stuGLSearch.InDisplayPeriod = stuGLSearch.InDisplayPeriod == 0 ? int.Parse(Properties.Resources.defaultDisplayPeriodValue, InvariantCulture) : stuGLSearch.InDisplayPeriod;
            int intLNums = int.Parse(ddlNums.SelectedValue, InvariantCulture);

            #region pnlChartActive
            Panel pnlChartActive = new GalaxyApp().CreatPanel(string.Format(InvariantCulture, "pnlActive{0:d2}", intLNums), "max-width");
            pnlDetail.Controls.Add(pnlChartActive);
            #endregion pnlChartActive

            #region Chart chActive

            Chart chActive = new GalaxyApp().CreatChart(string.Format(InvariantCulture, "chActive{0:d2}", intLNums),
                                                        intDisplay * 20,
                                                        800);
            chActive.Titles.Add(new GalaxyApp().CreatTitle(string.Format(InvariantCulture, "sNum{0:d2}", intLNums),
                                                           string.Format(InvariantCulture, "{0:d02} ", intLNums),
                                                           Docking.Top, Color.Yellow, Color.Black));
            pnlChartActive.Controls.Add(chActive);
            #endregion

            #region ChartArea chaArea
            ChartArea chaArea = new GalaxyApp().CreatChartArea(string.Format(InvariantCulture, "chaArea{0:d2}", intLNums), 0);
            chaArea.BackColor     = priDicNumcssclass.ContainsKey(intLNums.ToString(InvariantCulture)) ? Color.FromArgb(50, 217, 161, 199) : Color.White;
            chaArea.AxisY.Minimum = -1;
            chActive.ChartAreas.Add(chaArea);
            #endregion

            CreatLegent(chActive, chaArea, "series", Docking.Bottom, false, StringAlignment.Center, Color.LightYellow, 1, Color.Orange, 11);

            #region Loop
            foreach (KeyValuePair <string, object> dicSecEachResult in priDicSecFreqActive)
            {
                priDicFreqActive          = (Dictionary <string, DataTable>)dicSecEachResult.Value;
                stuGLSearch.InSearchLimit = dicSecEachResult.Key == "m" ? 0 : int.Parse(dicSecEachResult.Key, InvariantCulture);
                #region lstFirstNums,lstSeachLimitNums
                List <int> lstFirstNums      = new GalaxyApp().GetLstNumbers(stuGLSearch, priDicFreqActive["gen"], 2);
                List <int> lstSeachLimitNums = new GalaxyApp().GetLstNumbers(stuGLSearch, priDicFreqActive["gen"], stuGLSearch.InSearchLimit + 1);
                switch (dicSecEachResult.Key)
                {
                case "5":
                    ph05.Visible   = lstSeachLimitNums.Contains(intLNums);
                    phLast.Visible = lstFirstNums.Contains(intLNums);
                    break;

                case "10":
                    ph10.Visible   = lstSeachLimitNums.Contains(intLNums);
                    phLast.Visible = lstFirstNums.Contains(intLNums);
                    break;

                case "25":
                    ph25.Visible   = lstSeachLimitNums.Contains(intLNums);
                    phLast.Visible = lstFirstNums.Contains(intLNums);
                    break;

                case "50":
                    ph50.Visible   = lstSeachLimitNums.Contains(intLNums);
                    phLast.Visible = lstFirstNums.Contains(intLNums);
                    break;

                case "100":
                    ph100.Visible  = lstSeachLimitNums.Contains(intLNums);
                    phLast.Visible = lstFirstNums.Contains(intLNums);
                    break;
                }
                #endregion lstFirstNums,lstSeachLimitNums

                string lngF = dicSecEachResult.Key == "m" ? "lngM" : "lngN";

                using DataTable dtFreqResult = priDicFreqActive["gen"].Select(string.Empty, "[lngTotalSN] ASC").Take(priDicFreqActive["gen"].Rows.Count - 1).CopyToDataTable();
                double dblSumT = double.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "SUM([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                double dblAvgT = Math.Round(dblSumT / (double)dtFreqResult.Rows.Count, 2);
                int    intMaxT = int.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "MAX([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                int    intMinT = int.Parse(dtFreqResult.Compute(string.Format(InvariantCulture, "MIN([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                //dtFreqResult.Columns.Remove("lngTotalSN");

                #region Max,Min,Avg
                int intCurrent = int.Parse(dtFreqResult.Rows[0][string.Format(InvariantCulture, "{0}{1}", lngF, intLNums)].ToString(), InvariantCulture);
                using (DataTable dataTable = stuGLSearch.InSearchLimit > 0 ? dtFreqResult.Rows.Cast <DataRow>().Take(stuGLSearch.InDisplayPeriod).CopyToDataTable() : dtFreqResult)
                {
                    double dblSumS = double.Parse(dataTable.Compute(string.Format(InvariantCulture, "SUM([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                    double dblAvgS = Math.Round(dblSumS / (double)stuGLSearch.InSearchLimit, 2);
                    int    intMaxS = int.Parse(dataTable.Compute(string.Format(InvariantCulture, "MAX([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                    int    intMinS = int.Parse(dataTable.Compute(string.Format(InvariantCulture, "MIN([{0}{1}])", lngF, intLNums), string.Empty).ToString(), InvariantCulture);
                }

                #endregion Max,Min,Avg

                using DataTable dtCurve  = priDicFreqActive["gen"].Select("", "lngTotalSN DESC").Take <DataRow>(intDisplay).CopyToDataTable();
                dtCurve.DefaultView.Sort = "[lngDateSN] ASC";

                bool display = true;
                display = dicSecEachResult.Key switch
                {
                    "5" => chk05.Checked,
                    "10" => chk10.Checked,
                    "25" => chk25.Checked,
                    "50" => chk50.Checked,
                    "100" => chk100.Checked,
                    "m" => chkm.Checked,
                    _ => true,
                };
                if (display)
                {
                    #region Series
                    Series sirNum = new GalaxyApp().CreatSeries(string.Format(InvariantCulture, "sirNum{0}{1:d2}", dicSecEachResult.Key, intLNums), chaArea.Name);
                    sirNum.IsValueShownAsLabel = true;
                    sirNum.ChartType           = SeriesChartType.Line;
                    sirNum.Color      = PriDicSectionColor[dicSecEachResult.Key];
                    sirNum.LegendText = string.Format(InvariantCulture, " {0}區, 大:[{1}], 小[{2}], 號[{3}] ", dicSecEachResult.Key, intMaxT, intMinT, string.Join(",", lstSeachLimitNums));
                    sirNum.Legend     = "series";
                    sirNum.Points.DataBind(dtCurve.DefaultView, "", string.Format(InvariantCulture, "{0}{1}", lngF, intLNums), string.Format(InvariantCulture, "Tooltip = {0}{1}", lngF, intLNums));
                    chActive.Series.Add(sirNum);
                    #endregion Series

                    #region LineAnnotation
                    HorizontalLineAnnotation hlaMax = new GalaxyApp().CreatHorizontalLineAnnotation(string.Format(InvariantCulture, "sirhlaMax{0}{1:d2}", dicSecEachResult.Key, intLNums), chaArea);
                    hlaMax.LineColor     = PriDicSectionColor[dicSecEachResult.Key];
                    hlaMax.ToolTip       = intMaxT.ToString(InvariantCulture);
                    hlaMax.AnchorY       = intMaxT;
                    hlaMax.LineDashStyle = ChartDashStyle.Dot;
                    chActive.Annotations.Add(hlaMax);

                    HorizontalLineAnnotation hlaMin = new GalaxyApp().CreatHorizontalLineAnnotation(string.Format(InvariantCulture, "sirhlaMin{0}{1:d2}", dicSecEachResult.Key, intLNums), chaArea);
                    hlaMin.LineColor     = PriDicSectionColor[dicSecEachResult.Key];
                    hlaMin.ToolTip       = intMinT.ToString(InvariantCulture);
                    hlaMin.AnchorY       = intMinT;
                    hlaMin.LineDashStyle = ChartDashStyle.Dot;
                    chActive.Annotations.Add(hlaMin);

                    VerticalLineAnnotation vlaSearchLimit = new GalaxyApp().CreatVerticalLineAnnotation(string.Format(InvariantCulture, "sirSL{0}{1:d2}", dicSecEachResult.Key, intLNums), chaArea);
                    vlaSearchLimit.LineColor = PriDicSectionColor[dicSecEachResult.Key];
                    hlaMin.LineDashStyle     = ChartDashStyle.Dash;
                    vlaSearchLimit.ToolTip   = vlaSearchLimit.AnchorX.ToString(InvariantCulture);
                    vlaSearchLimit.AnchorX   = (dtCurve.Rows.Count - stuGLSearch.InSearchLimit + 1) > 0 ? dtCurve.Rows.Count - stuGLSearch.InSearchLimit + 1 : 0;
                    chActive.Annotations.Add(vlaSearchLimit);

                    #endregion
                }
            }
            #endregion Loop
        }