///<summary>This method takes care of parsing the query by pulling out SET statements and finding the variables with their assigned values.
        ///Puts all of this information into the grid.</summary>
        private void FillGrid(bool isTypingText = false)
        {
            Point         selectedCell = gridMain.SelectedCell;
            List <string> listSetStmts = UserQueries.ParseSetStatements(_queryCur.QueryText);

            gridMain.BeginUpdate();
            gridMain.ListGridColumns.Clear();
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g(gridMain.TranslationName, "Variable"), 200));
            gridMain.ListGridColumns.Add(new GridColumn(Lan.g(gridMain.TranslationName, "Value"), 200, true));
            gridMain.ListGridRows.Clear();
            foreach (string strSetStmt in listSetStmts)                                                //for each SET statement
            {
                List <QuerySetStmtObject> listQObjs = UserQueries.GetListQuerySetStmtObjs(strSetStmt); //find the variable name
                foreach (QuerySetStmtObject qObj in listQObjs)
                {
                    GridRow row = new GridRow();
                    row.Cells.Add(qObj.Variable);
                    row.Cells.Add(qObj.Value);
                    row.Tag = qObj;
                    gridMain.ListGridRows.Add(row);
                }
            }
            gridMain.EndUpdate();
            if (!isTypingText)
            {
                try {
                    gridMain.SetSelected(selectedCell);
                }
                catch {
                    //suppress if the row doesn't exist (such as filling the grid for the first time)
                }
            }
        }
        private void butOK_Click(object sender, System.EventArgs e)
        {
            if (UserQueryCur == null)
            {
                MsgBox.Show(this, "Please select an item first.");
                return;
            }
            ReportSimpleGrid report = new ReportSimpleGrid();

            if (UserQueryCur.IsPromptSetup && UserQueries.ParseSetStatements(UserQueryCur.QueryText).Count > 0)
            {
                //if the user is not a query admin, they will not have the ability to edit
                //the query before it is run, so show them the SET statement edit window.
                FormQueryParser FormQP = new FormQueryParser(UserQueryCur);
                FormQP.ShowDialog();
                if (FormQP.DialogResult == DialogResult.OK)
                {
                    report.Query = UserQueryCur.QueryText;
                    DialogResult = DialogResult.OK;
                }
            }
            else
            {
                //user has permission to edit the query, so just run the query.
                DialogResult = DialogResult.OK;
            }
        }