I apologise for reviving a thread from nearly six years ago, but, although I had briefly played with Panorama 6 before then, I hadn’t yet discovered and started to use the infinitely superior Panorama X at that time.
Jim rightly makes much of Panorama X’s modern, Cocoa-compliant user interface, and yet this so-called ‘choices palette’ produced when clicking a data sheet field of type ‘Choices’ is a notable exception: a fairly crude pseudo-menu with a thick translucent border, extending vertically downwards from the data cell concerned to the bottom of the display if necessary. As Kurt noted, and also Guido Arnout in another thread, there is no way to select items that might be lost if this vertical space is not large enough to display the whole list of choices; if the data sheet extends to the very bottom of the display and a choices field in the last record is clicked on, only the first two choices are displayed. The ‘choices palette’ includes radio buttons down the left-hand side. Since its width is the same as that of the data sheet column for that field, unless the display width of that column is somewhat wider than the widest of the choices, at least some of them will be cropped in the ‘choices palette’ even if they are not in the data sheet itself. Similarly, if the data sheet column for the field concerned is only partly visible at the right-hand edge of the display, the ‘choices palette’ too will overflow the edge of the display.
All this makes it very frustrating to use the ‘Choices’ data type.
I would have expected Panorama X to use a standard Cocoa popup menu in this situation, which would automatically:
-
pop up from the bottom of the display when activated near it, and scroll whenever there are too many entries to fit vertically on the display;
-
be wide enough, and positioned appropriately in the X-axis, to accommodate the widest entry, regardless of the display width of the data sheet column and the position of the column concerned on the display;
-
disappear when a choice is selected, and display that choice in the relevant record/field cell of the data sheet.
The strange thing is that there is already a command to produce exactly such a menu, albeit one whose list of choices is derived from the existing contents of that field in all records, rather than from the pre-specified list, not all of whose options might currently exist in that field of the database:
popopfieldchoices choice, field, initial
If someone were to create a form to replicate the data sheet exactly in every other respect, something along these lines could be used to launch a submenu when a cell in a field of type ‘Choices’ is clicked. Not this exact command, however, because:
-
grabfieldtype(
returns zero (type ‘Text’) for a field of type ‘Choices’, thus it might not be possible for the user to distinguish between those two field types in the first place;
-
the field
parameter requires a fixed field name rather than a string or integer to identify it, thus it couldn’t be used dynamically for any arbitrary field;
-
there doesn’t seem to be a documented way for the user to access a string array of the choices available for a ‘Choices’ field (which I assume are stored internally as integer indices to a string array), only to compile a duplicate-free array of the string values currently used.
I for one wouldn’t want to create such a pseudo-data sheet myself anyway, but is there any chance, please, that the current ‘choices palette’ in the data sheet could be replaced by a more user-friendly and standard scrolling popup menu, containing all the pre-specified choices, with the current contents of the field highlighted, and displayed in full regardless of its length or width, or from which position on the screen it is activated?