1. I have a script below that generates/replaces 51 records in 'Nut_Calcs' table by evaluating equations from 'Nut_eqs' table related by Nut_Calcs::_Nut_eqs_ID = Nut_eqs::__ID.
2. Each set of Nut_Calcs records is related to IO: Nut_Calcs_IOn:: _IOuuID = IOn::__uuID.
3. The 'IO' record to be updated is set from a portal 'IO_all_for_pt' on the Patient layout
2 problems occur:
a) Once I have run the script several times and there are a few 100 Nut_Calcs records, I see an info box popping up “NNN remaining records to update” meaning that the script is going through ALL 'Nut_Calcs' records, not just when Nut_Calcs_IOn:: _IOuuID = Ion::__uuID. But, the script does NOT evaluate (ie. do the calcs). It just spends time going through all the records.
b) Without an obvious pattern, the whole set of 51 Nut_Calcs records gets evaluated based on the 51st Nut_eqs equation, presumably because I find the Nut_Calcs::_Nut_eqs_ID is set to '51' for the whole set of 51 records.
Set Field [ Patient::IO_n; IO_all_for_pt::__uuID ]
Set Field [ Patient::Calc_n; IO_all_for_pt::_CalcUUID ]
Exit Loop If [ Let($i = $i +1;$i = 52) ] New Record/Request
Set Field [ Nut_calcs::_Nut_eqsID; $i ]
Commit Records/Requests [ No dialog ]
Replace Field Contents [ Nut_calcs_IOn::Nut; Replace with calculation: Nut_eqs_IOn::Nut ] [ No dialog ]
Go to Related Record [ From table: “Nut_calcs_IOn”; Using layout: “Nut_calcs_IOn” (Nut_calcs_IOn) ] [ Show only related records ]
Replace Field Contents [ Nut_calcs_IOn::Unit; Replace with calculation: Nut_eqs_IOn::Unit_part_SI ] [ No dialog ]
Replace Field Contents [ Nut_calcs_IOn::Std_EN; Replace with calculation: Evaluate(Nut_eqs_IOn::StdEN) ] [ No dialog ]
[[[ NB. To reduce complexity I've missed out several field contents update lines and the check to see if updating of existing records was required (this part of the script definitely works). ]]]]
Go to Layout [ “Patient_U” (Patient) ]