I don’t know if this has been previously reported. If so, sorry for the repeat.
I have a PanX procedure which calls a subroutine which opens a different database. That subroutine is called by a FARCALL statement in the main macro. Here is the subroutine:
Local t1, f1 f1 = parameter(1) //this is the path and file name t1 = info("files") t1 = arraysearch(t1,f1["-:",-1][2,-1],1,¶) If t1 = 0 ; means file IS NOT already open openfile f1 else //file IS already open window f1["-:",-1][2,-1] SAVEACOPYAS "TempFile" openfile "TempFile" endif RTN
If the external database is NOT open, this subroutine opens it. If the external database IS already open, an exact copy of the database is opened instead. In either case, the external database is subsequently closed after certain data has been extracted via an arraybuild statement.
The main macro has a NoShow at the beginning, and an EndNoShow before the last RTN. Both the main macro and the subroutine work perfectly. In both Pan6 and PanX.
However, in PanX, if I run the main macro with the external database already OPEN, the NoShow is prematurely cancelled. I have to watch the entire macro run on-screen (it is a very long macro), and there is no way to stop the macro.
For some reason, saving the external database as “Tempfile” seems to cancel the NoShow. And COMMAND-PERIOD does nothing. When I run the main macro with the external database CLOSED, the NoShow works properly.
This does not happen in Pan6, which works correctly.
Is this a known issue?