So now I understand that your question is about selection of which files to open . . .
It looks like 'PickFile()' may already be flexible enough do what you require (see 'Help > Scripting Index').
In so far as it needs to interact with the operating system, you might expect some slight difference between Windows and OS/X, and it seems that's the case here. Unfortunately, though, I don't have a Windows machine on which to test the code below (I'm also assuming that for multiple selections 'PickFile()' will indeed return a list):
Names Default To Here( 1 );
// Use 'PickFile()' to get a list of files to open (Windows only)
fileList =
Pick File(
"Select one of more files", // Prompt
"$DESKTOP", // Initial folder
{"JMP Files|jmp;jsl;jrn", "All Files|*"}, // List of file filters to apply (ignored by OS/X)
1, // Initial file filter to apply (index of item in the list above)
0, // Save flag - Specify either a 'Save' or 'Open' window. Set a value of 1 or 0 respectively.
Empty(),// Default file
1 // Multiple - If 'Save Flag' = 0, using a value of 1 allows more than one file to be opened (ignored by OS/X)
);
// If only a single file is selected, fileList will not be a list, so we need to build it for ourselves
if(!IsList(fileList), fileList = EvalList({fileList}));
// Open the files and store their corresponding JMP table names
tableNames = {};
for(f=1, f<=NItems(fileList), f++,
dt = Open(fileList[f]);
InsertInto(tableNames, dt << getName);
);