Example #1
0
File: My.cs Project: jane-safr/SMRC
    public static bool MatchTextDGV(DataGridView UG, DataGridViewRow oRow, clsSearchInfo m_searchInfo)
    {
        if (oRow == null)
        {
            return(false);
        }

        string strColumnKey = m_searchInfo.lookIn;
        //DataGridViewColumn oCol;

        bool bSearchAllColumns = true;

        if (strColumnKey != null)
        {
            bSearchAllColumns = false;
        }

        if (bSearchAllColumns)
        {
            foreach (DataGridViewColumn oCol in UG.Columns)
            {
                if (oRow.Cells[oCol.Name].Value != null && oRow.Cells[oCol.Name].Visible)
                {
                    //MessageBox.Show(oRow.Cells[oCol.Name].Value.ToString());
                    if (Match(m_searchInfo.searchString, oRow.Cells[oCol.Name].Value.ToString(), m_searchInfo))
                    {
                        m_oColumn = oCol;
                        return(true);
                    }
                }
            }
        }
        else
        {
            DataGridViewColumn oCol = UG.Columns[strColumnKey];
            if (oRow.Cells[oCol.Name].Value != null && oRow.Cells[oCol.Name].Visible)
            {
                if (Match(m_searchInfo.searchString, oRow.Cells[oCol.Name].Value.ToString(), m_searchInfo))
                {
                    m_oColumn = oCol;
                    return(true);
                }
            }
        }
        return(false);
    }
Example #2
0
File: My.cs Project: jane-safr/SMRC
    private static bool Match(string userString, string cellValue, clsSearchInfo m_searchInfo)
    {
        //   If our search is case insensitive, make both strings uppercase
        if (!m_searchInfo.matchCase)
        {
            userString = userString.ToUpper();
            cellValue  = cellValue.ToUpper();
        }

        //   If we are searching any part of the cell value...
        if (m_searchInfo.searchContent == SearchContentEnum.AnyPartOfField)
        {
            //   If the user string is larger than the cell value, it is by definition
            //   a mismatch, so return false
            if (userString.Length > cellValue.Length)
            {
                return(false);
            }
            else if (userString.Length == cellValue.Length)
            {
                //   If the lengths are equal, the strings must be equal as well
                if (userString == cellValue)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                //   There is probably an easier way to do this
                for (int i = 0; i <= (cellValue.Length - userString.Length); i++)
                {
                    if (userString == cellValue.Substring(i, userString.Length))
                    {
                        return(true);
                    }
                }

                return(false);
            }
        }
        else if (m_searchInfo.searchContent == SearchContentEnum.WholeField)
        {
            if (userString == cellValue)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        else if (m_searchInfo.searchContent == SearchContentEnum.StartOfField)
        {
            if (userString.Length >= cellValue.Length)
            {
                if (userString.Substring(0, cellValue.Length) == cellValue)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if (cellValue.Substring(0, userString.Length) == userString)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }

        return(false);
    }
Example #3
0
File: My.cs Project: jane-safr/SMRC
    public static void search(DataGridView UG, clsSearchInfo m_searchInfo)
    {
        try
        {
            DataGridViewRow oRow = UG.CurrentRow;
            int             i    = oRow.Index;
            if (oRow == null)
            {
                oRow = UG.Rows[i];
            }

            if (m_searchInfo.searchDirection == SearchDirectionEnum.Down)
            {
                while (oRow != null)
                {
                    i++;
                    oRow = UG.Rows[i];
                    if (MatchTextDGV(UG, oRow, m_searchInfo))
                    {
                        UG.CurrentCell = oRow.Cells[0];
                        if (m_oColumn != null)
                        {
                            UG.CurrentCell = oRow.Cells[m_oColumn.Name];
                        }
                        return;
                    }
                }
            }

            else if (m_searchInfo.searchDirection == SearchDirectionEnum.Up)
            {
                while (oRow != null)
                {
                    i--;
                    oRow = UG.Rows[i];
                    if (MatchTextDGV(UG, oRow, m_searchInfo))
                    {
                        UG.CurrentCell = oRow.Cells[0];
                    }
                    if (m_oColumn != null)
                    {
                        UG.CurrentCell = oRow.Cells[m_oColumn.Name];
                    }
                    return;
                }
            }

            else if (m_searchInfo.searchDirection == SearchDirectionEnum.All)
            {
                while (oRow != null)
                {
                    i++;
                    if (i >= UG.Rows.Count)
                    {
                        break;
                    }
                    oRow = UG.Rows[i];
                    if (MatchTextDGV(UG, oRow, m_searchInfo))
                    {
                        if (m_oColumn != null)
                        {
                            if (oRow.Cells[m_oColumn.Name].Visible)
                            {
                                UG.CurrentCell = oRow.Cells[m_oColumn.Name]; return;
                            }
                        }
                    }
                }

                i    = 0;
                oRow = UG.Rows[i];
                while (oRow != null)
                {
                    if (MatchTextDGV(UG, oRow, m_searchInfo))
                    {
                        if (m_oColumn != null)
                        {
                            UG.CurrentCell = oRow.Cells[m_oColumn.Name];
                        }
                        return;
                    }
                    i++;
                    if (i >= UG.Rows.Count)
                    {
                        MessageBox.Show("Поиск закончен!"); return;
                    }
                    oRow = UG.Rows[i];
                }
            }
            //MessageBox.Show("Просмотрены все записи до конца. Искали: '" & m_searchInfo.searchString & "' , но не нашли.", "Infragistics UltraGrid", MessageBoxButtons.OK, MessageBoxIcon.None)
        }
        catch (Exception)
        {
            throw;
        }
    }