Recently, the processor on my computer has been hitting around 100% on the processes being run by Panorama and just hanging there. The fans get to running very noticeably. Just moving a Panorama window ends up with a beachball for minutes at a time. Even as it sits untouched, Panorama continues to hang around the 100% mark, sometimes going slightly higher.
I finally tracked it down to a procedure that builds a related array, then processes it into a smaller array for a matrix. It takes an instant for the procedure to run and update the matrix, then it does nothing more.
The resulting array for the matrix is fairly small. Whether the matrix is displayed in an open form or not, once this procedure has run Panorama never seems to recover. I’ve even tried emptying the variable that contains the array for the matrix with no success.
All variables used to build the matrix array are locals so none of them should exist any longer.
Closing the database is the only resolution, even as others remain open. Re-opening the database does not run the processes back up unless I run the procedure to build that related array.
Since writing the above, I’ve determined that this is the line that seems to be the issue:
Let lvTransactions = relatedarray(cr(),{strip(TransType)+¬+datepattern(Date,“mm/dd/yy”)+¬+pattern(Amount,“#”)+¬+Client+¬+Account},“Receipts”)
There’s no obvious reason it should continue to influence Panorama’s usage of the processor. But after running solely this line, Panorama’s processor usage goes from negligible to 100% and just stays there until the database is closed.