private void Insert(SRStaticData.SRStaticInfo srStaticInfo, string strText, int iIndex, SRStaticData.SRPointType srPointType, string strGPS, string strVG)
        {
            ListViewItemInfo listViewItemInfo = new ListViewItemInfo();

            ListViewItem listViewItem = new ListViewItem(iIndex.ToString());

            listViewItemInfo.Column = iIndex;

            ListViewItem.ListViewSubItem subListViewItem1 = new ListViewItem.ListViewSubItem();
            switch (srPointType)
            {
            case SRStaticData.SRPointType.DCHP:

                subListViewItem1.Text    = srStaticInfo.StockAverageHigh.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageHigh;
                break;

            case SRStaticData.SRPointType.DCLP:

                subListViewItem1.Text    = srStaticInfo.StockAverageLow.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageLow;
                break;

            case SRStaticData.SRPointType.GULK:

                subListViewItem1.Text    = srStaticInfo.StockAverageHigh.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageHigh;
                break;

            case SRStaticData.SRPointType.GUHK:

                subListViewItem1.Text    = srStaticInfo.StockAverageLow.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageLow;
                break;

            case SRStaticData.SRPointType.GDLK:

                subListViewItem1.Text    = srStaticInfo.StockAverageHigh.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageHigh;
                break;

            case SRStaticData.SRPointType.GDHK:

                subListViewItem1.Text    = srStaticInfo.StockAverageLow.ToString();
                listViewItemInfo.Column1 = srStaticInfo.StockAverageLow;
                break;

            default:

                subListViewItem1.Text    = string.Empty;
                listViewItemInfo.Column1 = 0F;
                break;
            }

            float fEntity = 0;

            ListViewItem.ListViewSubItem subListViewItem2 = new ListViewItem.ListViewSubItem();
            subListViewItem2.ForeColor = Color.Green;
            switch (srPointType)
            {
            case SRStaticData.SRPointType.DCHP:

                subListViewItem2.Text    = srStaticInfo.StockData.StockHigh.ToString();
                listViewItemInfo.Column2 = srStaticInfo.StockData.StockHigh;
                break;

            case SRStaticData.SRPointType.DCLP:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockClose : srStaticInfo.StockData.StockOpen;
                subListViewItem2.Text    = fEntity.ToString();
                listViewItemInfo.Column2 = fEntity;
                break;

            case SRStaticData.SRPointType.GULK:

                subListViewItem2.Text    = srStaticInfo.StockData.StockHigh.ToString();
                listViewItemInfo.Column2 = srStaticInfo.StockData.StockHigh;
                break;

            case SRStaticData.SRPointType.GUHK:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockClose : srStaticInfo.StockData.StockOpen;
                subListViewItem2.Text    = fEntity.ToString();
                listViewItemInfo.Column2 = fEntity;
                break;

            case SRStaticData.SRPointType.GDLK:

                subListViewItem2.Text    = srStaticInfo.StockData.StockHigh.ToString();
                listViewItemInfo.Column2 = srStaticInfo.StockData.StockHigh;
                break;

            case SRStaticData.SRPointType.GDHK:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockClose : srStaticInfo.StockData.StockOpen;
                subListViewItem2.Text    = fEntity.ToString();
                listViewItemInfo.Column2 = fEntity;
                break;

            default:

                subListViewItem2.Text = string.Empty;
                break;
            }

            ListViewItem.ListViewSubItem subListViewItem3 = new ListViewItem.ListViewSubItem();
            subListViewItem3.ForeColor = Color.Red;
            switch (srPointType)
            {
            case SRStaticData.SRPointType.DCHP:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockOpen : srStaticInfo.StockData.StockClose;
                subListViewItem3.Text    = fEntity.ToString();
                listViewItemInfo.Column3 = fEntity;
                break;

            case SRStaticData.SRPointType.DCLP:

                subListViewItem3.Text    = srStaticInfo.StockData.StockLow.ToString();
                listViewItemInfo.Column3 = srStaticInfo.StockData.StockLow;
                break;

            case SRStaticData.SRPointType.GULK:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockOpen : srStaticInfo.StockData.StockClose;
                subListViewItem3.Text    = fEntity.ToString();
                listViewItemInfo.Column3 = fEntity;
                break;

            case SRStaticData.SRPointType.GUHK:

                subListViewItem3.Text    = srStaticInfo.StockData.StockLow.ToString();
                listViewItemInfo.Column3 = srStaticInfo.StockData.StockLow;
                break;

            case SRStaticData.SRPointType.GDLK:

                fEntity = srStaticInfo.StockData.StockOpen > srStaticInfo.StockData.StockClose ? srStaticInfo.StockData.StockOpen : srStaticInfo.StockData.StockClose;
                subListViewItem3.Text    = fEntity.ToString();
                listViewItemInfo.Column3 = fEntity;
                break;

            case SRStaticData.SRPointType.GDHK:

                subListViewItem3.Text    = srStaticInfo.StockData.StockLow.ToString();
                listViewItemInfo.Column3 = srStaticInfo.StockData.StockLow;
                break;

            default:

                subListViewItem3.Text = string.Empty;
                break;
            }
            ListViewItem.ListViewSubItem subListViewItem4 = new ListViewItem.ListViewSubItem();
            subListViewItem4.Text    = srStaticInfo.StockData.StockDate.ToShortDateString();
            listViewItemInfo.Column4 = srStaticInfo.StockData.StockDate;

            ListViewItem.ListViewSubItem subListViewItem5 = new ListViewItem.ListViewSubItem();
            subListViewItem5.Text    = strText;
            listViewItemInfo.Column5 = strText;

            ListViewItem.ListViewSubItem subListViewItem6 = new ListViewItem.ListViewSubItem();
            subListViewItem6.ForeColor = Color.Blue;
            switch (srPointType)
            {
            case SRStaticData.SRPointType.DCHP:

                subListViewItem6.Text    = "LHKN(L)" + srStaticInfo.LeftKLineNumber.ToString();
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            case SRStaticData.SRPointType.DCLP:

                subListViewItem6.Text    = "HLKN(L)" + srStaticInfo.LeftKLineNumber.ToString();
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            case SRStaticData.SRPointType.GULK:

                subListViewItem6.Text    = "GPS↑ " + strGPS + "%";
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            case SRStaticData.SRPointType.GUHK:

                subListViewItem6.Text    = "GPS↑ " + srStaticInfo.GapPriceSpace.ToString() + "%";
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            case SRStaticData.SRPointType.GDLK:

                subListViewItem6.Text    = "GPS↓ " + srStaticInfo.GapPriceSpace.ToString() + "%";
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            case SRStaticData.SRPointType.GDHK:

                subListViewItem6.Text    = "GPS↓ " + strGPS + "%";
                listViewItemInfo.Column6 = subListViewItem6.Text;
                break;

            default:

                subListViewItem6.Text = string.Empty;
                break;
            }

            ListViewItem.ListViewSubItem subListViewItem7 = new ListViewItem.ListViewSubItem();
            subListViewItem7.ForeColor = Color.Blue;
            switch (srPointType)
            {
            case SRStaticData.SRPointType.DCHP:

                subListViewItem7.Text    = "LHKN(R)" + srStaticInfo.RightLineNumber.ToString();
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            case SRStaticData.SRPointType.DCLP:

                subListViewItem7.Text    = "HLKN(R)" + srStaticInfo.RightLineNumber.ToString();
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            case SRStaticData.SRPointType.GULK:

                subListViewItem7.Text    = "VG " + strVG + "%";
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            case SRStaticData.SRPointType.GUHK:

                strVG = srStaticInfo.GapVolumePercentum > 0 ? ("+" + srStaticInfo.GapVolumePercentum.ToString()) : srStaticInfo.GapVolumePercentum.ToString();
                subListViewItem7.Text    = "VG " + strVG + "%";
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            case SRStaticData.SRPointType.GDLK:

                strVG = srStaticInfo.GapVolumePercentum > 0 ? ("+" + srStaticInfo.GapVolumePercentum.ToString()) : srStaticInfo.GapVolumePercentum.ToString();
                subListViewItem7.Text    = "VG " + strVG + "%";
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            case SRStaticData.SRPointType.GDHK:

                subListViewItem7.Text    = "VG " + strVG + "%";
                listViewItemInfo.Column7 = subListViewItem7.Text;
                break;

            default:

                subListViewItem7.Text = string.Empty;
                break;
            }

            ListViewItem.ListViewSubItem subListViewItem8 = new ListViewItem.ListViewSubItem();
            subListViewItem8.Text    = (srStaticInfo.RelativelyPercent * 100).ToString() + "%";
            listViewItemInfo.Column8 = srStaticInfo.RelativelyPercent * 100;

            ListViewItem.ListViewSubItem subListViewItem9 = new ListViewItem.ListViewSubItem();
            subListViewItem9.Text    = srStaticInfo.RelativelyNumber.ToString();
            listViewItemInfo.Column9 = srStaticInfo.RelativelyNumber;

            listViewItem.SubItems.Add(subListViewItem1);
            listViewItem.SubItems.Add(subListViewItem2);
            listViewItem.SubItems.Add(subListViewItem3);
            listViewItem.SubItems.Add(subListViewItem4);
            listViewItem.SubItems.Add(subListViewItem5);
            listViewItem.SubItems.Add(subListViewItem6);
            listViewItem.SubItems.Add(subListViewItem7);
            listViewItem.SubItems.Add(subListViewItem8);
            listViewItem.SubItems.Add(subListViewItem9);

            this.ListView.Items.Add(listViewItem);

            m_ListViewItemInfo.Add(listViewItem, listViewItemInfo);
        }
        public void InitSRReport(SRReport srReport)
        {
            m_ListViewItemInfo.Clear();
            this.ListView.Items.Clear();

            InsertMain(srReport.SRStaticData.LastStock, srReport.SRDynamicData.StaticSRCK_R, srReport.SRDynamicData.StaticSRCK_RV, srReport.SRDynamicData.StaticSRCK_S, srReport.SRDynamicData.StaticSRCK_SV, srReport.SRStaticData.LastStock.StockDate);

            int iIndex = 0;

            for (int iIndexA = 0; iIndexA < srReport.SRStaticData.srStaticInfoArray.Length; iIndexA++)
            {
                SRStaticData.SRStaticInfo item = srReport.SRStaticData.srStaticInfoArray[iIndexA];

                iIndex++;

                if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                {
                    StringBuilder strText = new StringBuilder();
                    strText.Append("<DCHP>");

                    if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                    {
                        strText.Append("|DCLP");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                    {
                        strText.Append("|GULK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                    {
                        strText.Append("|GUHK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                    {
                        strText.Append("|GDLK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                    {
                        strText.Append("|GDHK");
                    }

                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<DCHP>" ? "DCHP" : strText2, iIndex, SRStaticData.SRPointType.DCHP, string.Empty, string.Empty);
                }

                if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                {
                    StringBuilder strText = new StringBuilder();

                    if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                    {
                        strText.Append("DCHP|");
                    }

                    strText.Append("<DCLP>");

                    if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                    {
                        strText.Append("|GULK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                    {
                        strText.Append("|GUHK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                    {
                        strText.Append("|GDLK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                    {
                        strText.Append("|GDHK");
                    }

                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<DCLP>" ? "DCLP" : strText2, iIndex, SRStaticData.SRPointType.DCLP, string.Empty, string.Empty);
                }

                if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                {
                    StringBuilder strText = new StringBuilder();

                    if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                    {
                        strText.Append("DCHP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                    {
                        strText.Append("DCLP|");
                    }

                    strText.Append("<GULK>");

                    if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                    {
                        strText.Append("|GUHK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                    {
                        strText.Append("|GDLK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                    {
                        strText.Append("|GDHK");
                    }

                    string strGPS   = srReport.SRStaticData.srStaticInfoArray[iIndexA - 1].GapPriceSpace.ToString();
                    float  fVG      = srReport.SRStaticData.srStaticInfoArray[iIndexA - 1].GapVolumePercentum;
                    string strVG    = fVG > 0 ? ("+" + fVG.ToString()) : fVG.ToString();
                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<GULK>" ? "GULK" : strText2, iIndex, SRStaticData.SRPointType.GULK, strGPS, strVG);
                }

                if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                {
                    StringBuilder strText = new StringBuilder();

                    if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                    {
                        strText.Append("DCHP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                    {
                        strText.Append("DCLP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                    {
                        strText.Append("GULK|");
                    }

                    strText.Append("<GUHK>");

                    if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                    {
                        strText.Append("|GDLK");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                    {
                        strText.Append("|GDHK");
                    }

                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<GUHK>" ? "GUHK" : strText2, iIndex, SRStaticData.SRPointType.GUHK, string.Empty, string.Empty);
                }

                if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                {
                    StringBuilder strText = new StringBuilder();

                    if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                    {
                        strText.Append("DCHP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                    {
                        strText.Append("DCLP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                    {
                        strText.Append("GULK|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                    {
                        strText.Append("GUHK|");
                    }

                    strText.Append("<GDLK>");

                    if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                    {
                        strText.Append("|GDHK");
                    }

                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<GDLK>" ? "GDLK" : strText2, iIndex, SRStaticData.SRPointType.GDLK, string.Empty, string.Empty);
                }

                if ((item.SRPointType & SRStaticData.SRPointType.GDHK) == SRStaticData.SRPointType.GDHK)
                {
                    StringBuilder strText = new StringBuilder();

                    if ((item.SRPointType & SRStaticData.SRPointType.DCHP) == SRStaticData.SRPointType.DCHP)
                    {
                        strText.Append("DCHP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.DCLP) == SRStaticData.SRPointType.DCLP)
                    {
                        strText.Append("DCLP|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GULK) == SRStaticData.SRPointType.GULK)
                    {
                        strText.Append("GULK|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GUHK) == SRStaticData.SRPointType.GUHK)
                    {
                        strText.Append("GUHK|");
                    }

                    if ((item.SRPointType & SRStaticData.SRPointType.GDLK) == SRStaticData.SRPointType.GDLK)
                    {
                        strText.Append("GDLK|");
                    }

                    strText.Append("<GDHK>");

                    string strGPS   = srReport.SRStaticData.srStaticInfoArray[iIndexA - 1].GapPriceSpace.ToString();
                    float  fVG      = srReport.SRStaticData.srStaticInfoArray[iIndexA - 1].GapVolumePercentum;
                    string strVG    = fVG > 0 ? ("+" + fVG.ToString()) : fVG.ToString();
                    string strText2 = strText.ToString();
                    Insert(item, strText2 == "<GDHK>" ? "GDHK" : strText2, iIndex, SRStaticData.SRPointType.GDHK, strGPS, strVG);
                }

                if (item.SRPointType == SRStaticData.SRPointType.None)
                {
                    continue;
                }
            }

            this.LabelOpenInfo.Text   = srReport.SRDynamicData.CurrentStock.StockOpen.ToString();
            this.LabelCloseInfo.Text  = srReport.SRDynamicData.CurrentStock.StockClose.ToString();
            this.LabelHighInfo.Text   = srReport.SRDynamicData.CurrentStock.StockHigh.ToString();
            this.LabelLowInfo.Text    = srReport.SRDynamicData.CurrentStock.StockLow.ToString();
            this.LabelVolumeInfo.Text = srReport.SRDynamicData.CurrentStock.StockVolume.ToString();

            switch (srReport.SRDynamicData.Trend)
            {
            case SRDynamicData.StockTrend.Up:

                this.LabelTrendInfo.Text = "↑";
                break;

            case SRDynamicData.StockTrend.Down:

                this.LabelTrendInfo.Text = "↓";
                break;

            default:

                this.LabelTrendInfo.Text = "↔";
                break;
            }

            this.LabelPriceChangeInfo.Text = srReport.SRDynamicData.PriceFloat.ToString() + "%";

            this.ListView.ListViewItemSorter = new ListViewItemComparer(1, m_ListViewItemInfo, bisturn);
        }