/// <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); }
/// <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(); } }