Can you see anything here that would hang Panorama - it may hang on Save, it may hang on Close, after you add
//Form Variables
just above
FileGlobal fgCurrentYear, fgCurrentMonth
I’ve been able to duplicate this in three databases.
Before I pasted it below, I copied it from a database that would hang and pasted it into a brand new shinny database. Just Paste and Save. So there were no other elements but this procedure code, and the datasheet.
On my first Save, I got a notification saying something about failing to connect to a Save Panel.
I tried it a second time so I could get the message exactly, but that time - or rather “for now” - it allowed me to save.
But then it hung after I clicked the close window button.
I have run SSD tests and the Apple Diagnostics (restart and Cmd-D and the machine (24GB M2) gets a clean bill of health.
Any insights as to why this would hang? Dictionaries are new to me. I did try to follow the Help examples.
//May 9 2023
/*Purpose
The function this database is to hold the current
and passed passwords to access the American Cryptogram
Association website https://www.cryptogram.org
*/
/*Invalid entries
If there is already a password for the specified issue/year
a confirm message will ask if you want to replace it.
If the issue month is invalid, or if the year is earlier
than the current year or larger by more than one year an "invaild"
dialog beep will appear and the entry cleared
*/
/* Action
A valid entry will add a new record with the specified
year and issue month
*/
FileGlobal fgCurrentYear, fgCurrentMonth
FileGlobal fgCurrentPW, fgPrevPW
FileGlobal fgCurrentRecordMonth, fgPrevRecordMonth
FileGlobal fgFormIssue, fgFormPW
FileGlobal fgThisMonth, fgThisYear
FileGlobal fgMonthIssueDict
FileGlobal fgIssueMonthDict
//Key is month number (text), value is JF, MA, MJ, etc.
fgMonthIssueDict = initializedictionary(
"01","JF","02","JF","03","MA","04","MA","05","MJ","06","MJ",
"07","JA","08","JA","09","SO","10","SO","11","ND","12","ND")
//Key is issue month, value is month number (text)
initializedictionary fgIssueMonthDict(
fgIssueMonthDict = initializedictionary("JF","01","MA","02","MJ","03",
"JA","04","SO","05","ND","06")
fgThisMonth = DatePattern(Today(),"MM")
fgThisYear = Datepattern(today(),"YYYY")
fgCurrentMonth = getdictionaryvalue(fgMonthIssueDict,(fgThisMonth))
fgFormIssue = fgCurrentMonth + fgThisYear
fgFormPW = ""
// Sort and sequence
Call PutInSortOrder
/* Get
previous passwords from first
and second records
*/
FirstRecord
fgCurrentPW = ACAPassword
fgCurrentRecordMonth = ACAIssue
IF info("records") > 1
DownRecord
fgPrevPW = ACAPassword
fgPrevRecordMonth = ACAIssue
FirstRecord
Else
fgPrevPW = fgCurrentPW
fgPrevRecordMonth = fgCurrentRecordPW
EndIF
/* Autofill
If we ARE within the last week of the last issue
Fill fgFormIssue with the next Issue ID and move to fgFormPW
*/