You’ll have to play with the proper event which will be different based on what you’re trying to do. At the very least, probably one event triggered after GetByID to populate the initial grid and then, depending on what the calculations are based on, possibly another event to recalc the grid if a field with calculation-dependent data is changed.
You would need to do the dataview condition iteration stuff outlined here: How To: Adding Columns to Existing Kinetic Grid - Experts’ Corner - Epicor User Help Forum (epiusers.help)