Beispiel #1
0
        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();
        }
Beispiel #2
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
        }