I miss ==! (Assign with calculations.)

I spent some time last night tracking down something that was caused by the lack of == in Panorama X. Is there any chance that we will get it back?

One thing I’ve tried to do when possible in Panorama X is rectify bad design decisions made over the years in the development of Panorama. Hopefully I’m a more knowledgeable programmer than I was 30 years ago, and I also have the benefit of dealing with thousands of tech support issues over the decades.

In my opinion == was a mistake. The primary problem is that it is very easy to miss that extra = character, which can cause a huge change in the operation of a program. If you have a page of code and are trying to figure out what is going wrong, it is very easy to not notice the difference between

Field = some formula

and

Field == some formula

This is something that has definitely come up in tech support, and caused some users great confusion.

Another problem is that many popular programming languages, including C and Javascript, use == for something completely different. Unlike Panorama, where == is fairly obscure and only a few users use it, in these languages == is an important feature that is used constantly. If the only language you ever use is Panorama, this isn’t going to be a problem for you, but for tens (maybe even hundreds) of millions of potential Panorama users that already know these other languages, the way Panorama previously used == will be very confusing. A primary goal of Panorama X is to expand Panorama usage to new customers, so I’d prefer not to include a feature that will be so confusing to so many potential customers.

You may not be aware, but Panorama X does have two methods for performing the calculations associated with a field in a procedure. The runfieldcalculations statement runs all of the formulas associated with a field. The runfieldsideeffects statement runs the formulas, and also runs any code associated with a formula.

So suppose you have this code in your Panorama database.

FieldX == some formula

To get the code to work in Panorama X, do this.

FieldX = some formula
field FieldX
runfieldsideeffects

These statements should make it easier to convert code that uses == to Panorama X.

1 Like

The Panorama X Help file indicates that the == operator is currently supported as an alternate to the = operator:

Note: If you are a “C” programmer, Panorama’s = operator is equivalent to C’s == operator. (In fact, Panorama will allow you to use == if you wish.)

That’s the = comparison operator, but not the assignment operator.

A==B

would be an error.

A=B==C

would put -1 in A if they were equal, and 0 if they were not.

I would be happier if there were just another name for the Panorama 6 == operator, so a simple find and replace could fix all the times that shows up. So if there were an operator called something like setcalc (set with calculations) that just replaces the function of ==, that would be all I ask.

There are just too many places in Panorama X where one piece of code needs to be replaced with several lines of code. This is not making Panorama easier to use, especially for people like me who are only casual programmers.

Done. The new name is <==

Field <== some formula

I got this working last night and this morning and it will be in the next released version of Panorama X.

Thank you!

Cool. Will this automatically convert == from Pan 6? I also used it to trigger equations in the design sheet. Will <== trigger formulas in the field?

No, unfortunately you’ll have to manually convert them.

I also used it to trigger equations in the design sheet. Will <== trigger formulas in the field?

If I understand your question, the answer is yes. It will trigger all formulas and code associated with the field, just as if data had been manually entered into the field.

I am fine with this. Substitutions in procedures can be a real pain to make (particularly with functions), so a simple global find and change is a breeze!