Exemple #1
0
        /// <summary>
        /// Open a new query with specified name
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>

        public Query NewQuery(
            string name)
        {
            int i1, i2;

            if (String.IsNullOrEmpty(name))             // create a name if not supplied
            {
                for (i1 = NewQueryCount + 1; ; i1++)
                {
                    name = "Query" + i1.ToString();
                    i2   = GetQueryIndex(name);
                    if (i2 < 0)
                    {
                        break;
                    }
                }

                NewQueryCount = i1;
            }

            else             // see if this query is already open
            {
                Query q2 = null;
                i1 = GetQueryIndex(name);
                if (i1 >= 0)                 // already open, just switch to it
                {
                    CurrentQueryIndex                     = i1;
                    CurrentQuery                          = (Query)DocumentList[CurrentQueryIndex].Content;
                    Tabs.SelectedTabPageIndex             = CurrentQueryIndex;
                    Tabs.TabPages[CurrentQueryIndex].Text = name;           // make sure tab title is correct
                    SessionManager.SetShellTitle(name);                     // set main window title
                    Qtc.Render(CurrentQuery);
                    return(CurrentQuery);
                }
            }

            Query newQuery = new Query();

            newQuery.Name = name;

            QbUtil.AddQueryAndRender(newQuery, false);

            //AddQuery(newQuery);
            //QbUtil.SetMode(QueryMode.Build); // be sure in build mode
            return(newQuery);
        }
Exemple #2
0
        /// <summary>
        /// Select the specified tab (e.g. query)
        /// </summary>
        /// <param name="tabIndex"></param>

        public void SelectQuery(int queryIndex)
        {
            if (queryIndex >= DocumentList.Count)
            {
                return;                                               // shouldn't happen
            }
            SS.I.UISetupLevel++;

            CurrentQueryIndex = queryIndex;
            Document doc = DocumentList[queryIndex];

            CurrentQuery = (Query)doc.Content;             // restore query
            Query q = CurrentQuery;

            if (q.PresearchDerivedQuery != null)             // restore any browse query
            {
                CurrentBrowseQuery = q.PresearchDerivedQuery;
            }
            else
            {
                CurrentBrowseQuery = q;
            }

            Tabs.TabPages[CurrentQueryIndex].Text = q.UserObject.Name; // make sure tab title is correct
            SessionManager.SetShellTitle(q.UserObject.Name);           // set main window title
            Tabs.SelectedTabPageIndex = queryIndex;                    // select the tab if not done yet
            SS.I.UISetupLevel--;

            if (q.Mode == QueryMode.Unknown || q.Mode == QueryMode.Build)
            {
                QbUtil.SetMode(QueryMode.Build);                 // check & adjust build mode details
                Qtc.Render(q);
                SessionManager.DisplayCurrentCount();
            }

            else                                  // reenter browse mode
            {
                QbUtil.SetMode(QueryMode.Browse); // check & adjust build mode details
                QueryExec.RunQuery(q, OutputDest.WinForms, OutputFormContext.Session, browseExistingResults: true);
                SessionManager.DisplayFilterCountsAndString();
            }
        }