You can also hide fields by placing the expression in the Hidden property as follows:
=Fields!ProductCode.Value = Previous(Fields!ProductCode.Value)
So, if the value in the previous record matches this value, it will hide the field. You must correctly sort the dataset for this to work. In your case, I believe the sorting will be Date, ProductCategory, ProductCode.
, .