Hello again, @Emma1!
I am glad the Thumbnail size setting is now working for you, I am sorry I didn't give you a full example. But you figured it out, well done!
Just a reminder for other readers, this setting was added in 16.0, so I guess you are using an Early Adopter version.
As for the image displayed on click being too large, keep reading, I added a solution for that in the script below.
Regarding setting the image display graphlet in a graph that uses a Grouping variable, you have already guessed the issue. Under the covers, the graph on each one of the panels - or frames, as we call them - is an individual graph, and the dispatchReport command is only configuring the very first one.
An easy workaround for that is to use the XPath to find all the frames in your composite graph:
gb = dt << Graph Builder( ... );
frames = (gb << report) << xpath("//FrameBox");
Show(NItems(frames)); // one frame(graph) per panel
The frame references are captured in a list. We can now configure all of them at once by sending a setGraphlet message (any message, actually) to the list, which "broadcasts" the message to its members:
frames << Set Graphlet( ... );
The complete script is attached below. Note how we used the scale() message to change the size of the image (I scaled it up, you will probably want to scale it down) before passing it back to be displayed by JMP when you click on the thumbnail image (which still uses the size determined by the Thumbnail() attribute).
img = Open( fileName, "jpg" );
img << scale( scaleValue );
If you want to show a different image when you click on the thumbnail, or carry a different action (opening a web page or running a script) you can pass a JSL fragment to the setGraphlet() named attribute Click().