Eje!!! hola que tal... que yo sepa (alguien me corrija si me equivoco) un reporte se conecta a una base de datos... entonces lo mas optimo es tener un buen modelo entidad/relacion en tu base de datos en los que se guarden los valores de actualizacion de costo promedio de cada producto y en el reporte solo se muestre, pero todos estos calculos que los realice la aplicacion.
En crystal puedes hacer funciones... sumatorias... en los que puedes hacer calculos, pero viendolo desde otro punto de vista (si se lograra simular el kardex en crystal y no se guarden en una bd) no te serviría de mucho ya que dichos datos solo estarían en memoria y el objetivo del kardex es que con cada compra ingresada se actualice el costo promedio por lo que no se te guardarían compras hechas anteriormente
Espero haberte sido util