Declare Function Sleep Library "kernel32" (long value as number);
Function IEPrompt(&sTitle As string, &sLabel As string, &arrPromptValues As array of string, &nSelected As number) Returns number
Local object &IE = CreateObject("InternetExplorer.Application");
&IE.Visible = True;
&IE.Top = 200;
&IE.Left = 200;
&IE.Width = 400;
&IE.Height = 200;
&IE.Navigate("About:Blank");
&IE.menubar = 0;
&IE.toolbar = 0;
&IE.statusBar = 0;
Local string &sSelected = "";
Local object &Doc = &IE.document;
&Doc.Open();
&Doc.WriteLn("
" | &sTitle | "");
&Doc.WriteLn(&sLabel | "");
&Doc.WriteLn("");
&Doc.Close();
Local number &nActualSelected = 0;
Local boolean &bDone = False;
While ( Not &bDone)
Sleep(50);
REM First should check if IE is still there;
If &Doc.promptform.watchme.value <> "here" Then
&nActualSelected = &Doc.promptform.promptname.value;
Break;
End-If;
End-While;
&IE.Quit();
Return &nActualSelected;
End-Function;
Function GetProjectsList() Returns array of string
Local array of string &arrProjects = CreateArrayRept("", 0);
Local string &sProject;
Local SQL &projectsSQL = CreateSQL("SELECT PROJECTNAME FROM PSPROJECTDEFN ORDER BY PROJECTNAME");
While &projectsSQL.Fetch(&sProject)
&arrProjects.Push(&sProject);
End-While;
&projectsSQL.Close();
Return &arrProjects;
End-Function;
Function GetProjectName() Returns string
Local string &sTitle = "Grey Sparling Version Control Project Splitter";
Local string &sLabel = "Select the project that you want to split";
Local array of string &arrProjects = GetProjectsList();
Local number &nProjectNumber = IEPrompt(&sTitle, &sLabel, &arrProjects, 0);
If &nProjectNumber > 0 Then
Return &arrProjects [&nProjectNumber];
Else
Return "";
End-If;
End-Function;