title: How to force a Client DataSet to recalculate calculated and internal calculated fields?
body: <p>I have a <code>ClientDatSet</code> with a few <code>fkInternalCalc</code> fields. The CDS is not linked to any provider; instead it's filled on the fly. How can I force CDS to recalculate all the "calculable" fields? I can not call <code>Refresh()</code> because there is no provider to refresh data from. The only way I have come with so far has been to navigate through all records, which is not the best way.</p>
  
  <p>PS: I have read <a href="https://stackoverflow.com/questions/6137023/how-is-it-possible-to-manually-execute-the-oncalcfields-event">this question</a> and <a href="http://borland.public.delphi.database.dbexpress.narkive.com/ZbZ4DroZ/how-to-force-recalculation-of-calcfields-in-tclientdataset" rel="nofollow noreferrer">this post</a>, but I'm hoping for a more elegant way.</p>