Hi,
FlexCel by default uses whatever DataType the field in the database (TReportStockQuantity.SalesValue) has. If the field is a number, it will be entered as a number. If it is a string, even if it is a string like "1", it will be entered as a string.
This is normally what you want, as some data (like serial numbers) even if they only have numbers, are supposed to be treated as strings.
What datatype is TReportStockQuantity.SalesValue ? If it is a string, the simplest solution might be to change it to be a double. If the field is a double, FlexCel will enter it as a number.
If you can't change the datatype, then you can use:
IReport.TryToConvertStrings := true;
(see TFlexCelReport.TryToConvertStrings Property | FlexCel Studio for VCL and FireMonkey documentation )
Or, as shown in the page above, if the problem is only for SalesValue, and the rest of the database is ok, you can write in the cell:
<#evaluate(VALUE(<#OSTO.SalesValue>))>
This will make sure that the column SalesValue is converted to numbers (if possible), but the rest of columns behave normally.
Ps: FlexCel fully supports "," and "." as decimal separators (Personally, I also live in a country where , is the decimal separator). The problem here is that by default, if you pass a string, FlexCel won't try to convert it to a number by default. Excel will try to convert it, but because it has a different use case because you are typing numbers in a screen.