Tool bar question

I was working on a database where I set the tool bar with navigation arrows, the record count and, of course, the “wifi” shared symbol. I opened another set of unrelated files. The tool bar has the same settings when before, it only had the record count and the “wifi” shared symbol. Does this mean I can’t have two different sets of databases with two different tool bar settings?

Yes, that’s exactly what it means. Apple only allows the tool bar configuration to be set for an application, not for individual windows.

There is a separate configuration for each type of window. So all data sheets will be the same, all form windows, all procedure windows, etc. for all open databases.

I agree that it would be nice to set the configuration on a per document basis. But that would mean completely abandoning Apple’s tool implementation and rolling the toolbar completely from scratch. That would be a huge amount of work, and worse, would undoubtably not match Apple’s implementation, especially as new updates come out.

Thanks Jim.

So, is there a way to graphically show that a database is connected without the tool bar’s “wifi” icon?

With the current version that we are using, the existance of the WiFi icon does not in fact mean that it is connected to the server. The only real fact that it conveys is that it is a shared file.

There is a statement and function that is supposed to check to see if the file is connected.

checkserverconnection(

You might have to run that with a timer go have an accurate ongoing status. I do believe that the WiFi icon is supposed to be indicating a current connection but it is not yet reliable.

This statement is incorrect.

The WiFi icon appears if it is a shared file and the file successfully connected to the server when the file was opened (or the File>Connect to Server command worked successfully). It means that a session was established.

It is true that this icon doesn’t update in real time. If the network connection goes down, or the server goes down, the WiFi icon will not reflect that.

It is not supposed to show live status, and that isn’t intended to change, see below.

Unless your server is very lightly loaded, I don’t recommend this. Every time you run the checkserverconnection( function it will use resources on both the client and the server. If you have a bunch of clients running status checks it will impact the performance of your server. This is also why the WiFi icon doesn’t update in real time.

The intended use of the checkserverconnection( function is in preparation for a complicated multi-step process. This function allows you to verify the connection before you start, so that you won’t even start the multi-step process if there is a problem. Of course it’s still possible that there could be a network problem in the middle of a long process, but at least with a pre-check of the connection you most problems will be caught in advance.

In a form object you can use the info(“serverconnection”) function. This returns the same information Panorama uses to decide whether to display the WiFi icon. For example you could use this in a Text Display object with Font Awesome icons, or an Image Display object.

Like the WiFi icon, this function does not check for real time connection problems. It is set to true when a server session is opened and established, and false when the session is closed (usually when the database is closed but also if the File>Disconnect from Server command is used).

I do understand that it does also mean that when the file was opened, that at that time, a connection was established. I do know that I now have to look for that icon as there is no in my face notice that the server is not up. In Enterprise, it was impossible to not notice the inability to connect to the server.

But after manually verifying that it has opened a connection, the icon may as well no longer appear as it tells me nothing. I do already know that the file is shared so there is no need for the icon and it creates a opportunity for a misinterpretation that all is fine.

I do not run a timer, and it is not something that I would typically suggest, but when a user has a real need, I offer an option. I do believe that we need some real time notice that the connection to the server has dropped. I’ve too often had the server stop, and had the icon, and I’ve continued to do data entry with no notice at all. A very bad situation from so many angles.

Panorama has always been a situation of ‘If Panorama can’t do it out of the box, then there has most always been a path for us to accomplish it’. This is no different. Panorama is not doing what we really need, so we come up with a hack, however resource intensive it might be.

I use info(“serverconnection”) in procedures all the time but I was using “if DBSHARED()” in a text display object, however, I couldn’t make it work. I even tried loading a file global variable with the result but the Text Display kept saying that the contents of the variable were not defined even though the clearly were.

I agree with Robert that we need a consistent indication of connection to the server. I often have the wifi icon disappear but the program acts as if it’s still connected. If I synchronize, there is no indication that it is not connected. That would be a great place to start.

So refreshing info(“serverconnection”) does not update the status?

Then something else is very wrong. Panorama checks for errors every time it contacts the server, and immediately displays an alert or notification. This has been exhaustively tested, but of course it’s always possible that some edge condition have been missed. But at least a couple of weeks has been put into making sure that the correct error message appears.

Note that the client doesn’t contact the server for every data entry keystroke, or even every cell. It only contacts the server when a record is first locked, and when it is unlocked. So once the record is locked, you won’t get an immediate error during data entry until you do something to lock the record, like moving to another record, clicking on another window, or saving the database. But at that point you should get an immediate error.

This is baloney, there have always been plenty of things Panorama cannot do, and there always will be.

I disagree – it tells you that this is a shared database so in many ways it will behave differently than a single user database.

Also, the icon changes to show you when the current record is locked.

This icon indicates the status of the local copy of the database. It does not indicate the status of the connection to the server.

The icon should never disappear during a sharing situation. If you have a situation where it does, please report the details.

If it is not connected, this should result in an immediate error. Again, if you have a situation where it does not report an error in this case, please report the details.

This function reports whether the database has established a session with the server. It does not test the actual connection, that’s what the checkserverconnection( function does.

I’ll try but I don’t notice it until all of a sudden I see that the icon is missing.

This happens very often. I specifically choose Connect to Server to see what it does. The form flashes and seems to update, but no error. Closing the DB and reopening connects to the server. I’ll try to see if I can tell when it happens but it happens at least once every session.

wtf?

Whatever is causing that is the really significant problem here.

Ok, this is weird. Connect to Server should not be available in this situation, it should say Disconnect from Server.

If the database is shared, the icon should never be missing. Missing means it’s a single user database. It should either be a Wifi icon, a lock icon (if it was unable to open a connection to the server), a chat icon (if locked) or a cloud icon (when doing things like synchronizing). If there is no icon at all, that means Panorama considers this to be a single user database. There should be no way for a shared database to have no icon other than opening the Database Options dialog and converting it to single user.

Bottom line, I have no clue what is going on on your system.

As for reporting details, I would suggest enabling Debug Instrumentation for the all _EnterpriseClientLib procedures. Unfortunately that is going to generate a huge amount of output but since you have no idea what action is causing this there is no choice but to log everything.

It might also be helpful to enable logging on the server, perhaps there will be an error recorded. You say that closing and reopening connects to the server, no mention of restarting the server, so I assume that the server is not crashing and you are able to continue using it after closing and reopening.

I agree.

I assure you, when this happens, there is no icon in the tool bar. Yes, I do not have to mess with the server. Closing and reopening the client reconnects and I go on my merry way.

To clarify, I wasn’t expressing an opinion on software design, I was explaining my understanding of how the code works.

I have no understanding of how there could be no icon in the toolbar. And if there is no icon, the File menu “should” (that word again) not have either Connect to Server OR Disconnect from Server. Basically I have zero idea of what could cause the symptoms you are describing. I don’t even have the slightest idea of where to start, I have no handle on this at all.