Can you describe in more detail what you want to do?
If you store your dates in fields or global variables, multiple scripts can access them.Thus, a button might just start up a new script that can access the same data instead of trying to "resume" another script. ("Resume" is a button option that will resume a paused script after the button's script completes.)
If you have this type of script structure
Perform Script ["script 2"]
(each "step" would be a different script step you create in the script editor)
Then control will return to step 5 in this script when "script 2" completes, provided a halt script in script 2 doesn't abort all script execution.
I am still a starter but with common sense I could create what I wanted. Now the reporting is challenging me as I get into scripts.
I have a database where I need to pull reports with different search criteria but all based on a date range, which can be determined by the user. I do that via two global fields in the database start date end date. So far so good.
I can enter dates via a script (1)
- got to layout
- enter browse mode
- set field ,”” (for both start date and end date)
I created the report (2)
- go to layout
- enter find mode
- insert calculated result
- perform find
- go to layout
- sort records
For the moment I get from a main menu with a button to script (1) and when the dates are filled in a button “perform script” to script (2).
Ideally would be to start from script (2), make a side step to script (1), push the button “return to the script you came from” and return to script (2). That would mean that I could use script (1) for other procedures too.How do I do that?
Try it this way:
Go To Layout [Layout with global date range fields]
enter browse mode
Set Field to clear the two fields
Go To Layout [layout for report]
Enter Find Mode
Set field [YourReportTable::Datefield ; YourTable::GlobalDate1 & "..." & YourTable::Globaldate2 ]
Set Error capture [on]
Sort [Restore, no dialog]
With the script paused on your date range layout, the user can enter/select two dates and either press the enter key (numeric keypad enter on windows systems, click continue in the status area, or click a "resume" button on the layout.
You can also just write two scripts without the pause. The first script would have all the steps above the pause. The second would have all the steps after the pause. Your resume button would then be a perform script button to perform the second script.
PS. I try not to ever use the Insert steps if there is any way that I can use Set Field instead. Insert steps require that the specified target field be present on the current layout and will silently fail to work in your script if a future change to your layout removes the target field. Set Field does not have this limitation.
Tanks it worked! Great.
I am desperate ...
I have a script where a date range is determined and a laylout/report that gives the records fitting in that daterange (creation date). Works fine.
Now I have created an additional field in the database: 'payment date'. I want to make a similar report but based on the payment date fitting in the range.
I do not remember anymore how and it seems impossible to make a find request either "enter find mode or perform find" with the payment date, fitting in the date range. I copied the other script and changed several variables to specify the payment date. It won't work! I must forget something.
By the way, when I want to do a simple find in the payment date layout I cannot put values in all the fields on the layout, whereas I can in other layouts.
Who can help?