Tab direction in X?

Or not. How do i make a button anything but white?

Make an object of any size, shape, or color you like including a graphic or a Font Amazing icon and put whatever code you want in its procedure box. Voila, a custom button. The actual buttons are limited to what Apple provides.

You can go to the Help menu and choose Panorama Database Exchange. When that window opens you can find my Custom Button Generator file on the scrolling side panel and download it. This will allow you create an endless variety of fully customizable buttons.

So still no Tab direction feature after over a year of bringing it up. I’m looking for a program that supports it, any ideas?

No idea. I would only say that some features get added pretty slowly in Panorama. Jim obviously has a huge list of features and tweaks to implement and he has to prioritize. This one is clearly on a low priority list.

I’d love to see it return too, but with the passage of time, it has become somewhat less critical to me and certainly not enough of a reason to abandon Panorama.


This will definitely get done eventually, as I mentioned before, I’m a fan myself (that’s how I thought up the feature in the first place). But it’s not technically trivial, and very few users know about it or used it. By my count just over 1% of forum members have asked about it in this thread. I’m sure there are others that haven’t said anything, but still that’s maybe 2-3% of forum members, and probably a smaller percentage of overall Panorama users (I assume forum members use more Panorama features than non-members).

As for other programs that support it, as far as I know Panorama’s implementation of this feature is unique, though I could be wrong.

If you look at the release notes for the past year there have been hundreds of changes made. Obviously, every item can’t be on the top of the priority list.

Me too! I don’t use Panorama that often, but made the jump to X. Not happy that I have to do a workaround just to fill in a column of data in the data sheet! Please include it ASAP - thanks,

Eric Rivedal (User since Overview… ’ 84?)

I thought I’d posted this suggestion long ago but apparently not. What I’ve done is put this in the .Initialize procedure of my more frequently opened databases:

definehotkeys "global", "control-tab", "downrecord editcell"

… and a simple Control-tab gives me a vertical tab - left thumb and index finger trigger it easily.


Setup a Keyboard Maestro macro for Enter - Down Arrow and give it whatever keystroke you want. You can set it in KM to just be for Panorama X and activate/inactivate it there at will. Not (much) harder to set up than the Pan6 way and nearly as easy to use once setup. There are probably other macro programs that could do the same, perhaps cheaper; KM was just the one I chose after the virtual death of Quickeys. Like Panorama, KM appears to be able to do very complicated things and may take awhile to learn such, BUT simple things, like the above, can be figured out and done easily and quickly.

That’s a good idea. I haven’t used Quickeys in a long time - couldn’t find any news that it was no longer supported, but they still have a web site at Startly for some reason. I’ll look into Keyboard Maestro, but I also liked the global routine that allows you to program it right into the database. For now i just made a form that has “downrecord” for the procedure on the last editable field and that’s working. Thanks to all,

yep… I’m another one who used the TAB DOWN feature quite often in Pan 6. And today, I’ve come looking for it in X. It’s very helpful when you’ve got several duplicate records, but just need to tab down the list to change, say, the date for each.

I suspect that this can be done using Karabiner Elements, which everyone who uses Panorama on a laptop Mac probably uses anyway.

I doubt that most Panorama users have ever heard of this program, but it is definitely one of the first things I install on a new computer. I always use it to make the right option key function as an Enter key. Karabiner Elements is free and available here:

Well now you’ve heard of a second person! I use it all the time. I was wondering myself where the oprion was in X but figured I wasn’t just yet finding it. Honestly I find X so much less intuitive than beofre, it’s a huge learning curve IMO.

I remain hopeful that Tab Down will be coming in the next update. Trying to move vertically through a couple hundred records for some quick data entry frequently had me entering into the wrong field.

I was just playing with a way to simulate the tab direction option as a temporary work-around. If you set a fileglobal to the direction you want to tab ("“vert” or “horz”), you can use this value in a procedure to be called from the code panel of each field. I made a procedure I called .tabbing with this code:


    if tabDirection="vert"
        functionvalue info(“fieldname”)
        functionvalue info(“fieldname”)

In each field’s code panel I added a call .tabbing line at the end of any existing code. I also made another procedure I called Toggle Tabs with this code to toggle between the two settings:

define tabDirection,"vert"
If tabDirection="vert"

So, if tabDirection is set to “horz” it will tab as normal from field to field. If it is set to “vert” it will tab from one record down to the next. You can add traps for the end of the file or the last field as needed. Seems to work fine in my limited testing but buyer beware.

Just another option…

I’ll second the “buyer beware” part of this. Changing the record in the tabForward: code is definitely not how it was intended to be used. I’m surprised it doesn’t crash right away.

Did you actually try this at the end of existing code? I don’t think this will work unless it is the only code in the field’s code panel. If the code in the code panel is nothing but one call statement, Panorama treats the called procedure as if it was in the field code panel, and looks for things like tabForward: in that procedure. But if the field code panel has more than one line of code, it only looks for the label in the code in the panel. It doesn’t look in every subroutine called by that code.

Sorry, but this is very unlikely as far as the next update goes. The 10.2 update is already seriously behind schedule. It’s unlikely that I’ll be adding any more cans of worms to the list.

Of course not, I was just playing with what I had at hand. I did issue a warning just in case of something like this popping up. Probably best to keep my experiments to myself in the future.

Probably best to keep my experiments to myself in the future.

Nah, I disagree, keep pushing the envelope. I can always add my thoughts!

And maybe the downrecord is ok here. I’m kind of surprised, but if you say it seems to work… However, probably safer would be to start a timer with the downrecord statement.

For tabbing in the horizontal direction, I don’t think using the right statement is the way to go. Though it’s way more work, I would say the kosher way to do it is to calculate the name of the next field and return it. Then Panorama will take care of advancing to the field you have named. Though maybe it works by happy accident since Panorama is going to move it to the field you have already moved it to.

Really though, the only intended use of this tabForward: routine is to calculate a field name, it is not supposed to have any side effects.

The tidbit about putting these labels in a separate procedure is documented, but it could be very easy to miss. It’s toward the bottom of the page, I’ve quoted the relevant paragraph below.

If you prefer, you can move the field code to a separate named subroutine, and call it from the properties panel. This can be more convienient for editing and debugging, and also allows you to share the same code among multiple forms. If you do this, the code in the properties panel can only contain one statement – the call statement that calls the subroutine. If Panorama sees just this one statement, it will look in the subroutine for any special labels like tabForward: and tabBackward: . If there is more than one statement, the labels must be in the properties panel.

Back in August 2018 I posted this suggestion:

Put this in a .Initialize procedure:

definehotkeys “global”,“control-tab”,“downrecord editcell”

and then just use CTRL-TAB to tab down. You can do it with thumb and forefinger, it becomes second nature quite quickly and it’s actually faster than clicking on a TabDown icon.