It really depends on your setup. If you’re using the Table’s built-in progress bar, then you are unable to dynamically set the color of the progress bar. If you’re rendering a View in that column and the View has a progress bar, then you should set the appearance rules in the View, - not the Table.
If you want to dynamically set the color based on some value, then yes - you would need to switch to using a View.
Create a new View somewhere in your project (I recommend a Flex root container), and set the View’s dimensions to be something reasonable (probably 80x40, or something like that).
Create a param named “value” for the View, and give it a value of 0.
Place a Progress Bar into this View.
Set Progress.props.max to some value which makes sense for your use-case.
Bind Progress.props.value against the value param you just created.
Bind Progress.props.bar.color against Progress.props.value, and supply a Map transform, where the input values are numeric and the output values are Colors.
In your column config of the Table, change the render type to “view”, and make sure to set the viewPath property to the path of the view you placed your progress bar in.
My Progress.props.bar.color binding and transform:
If I had tried something similar with city or country, this would not work because the View used for the column is expecting a singular value to be passed to the View as a param.
2. Expression input fields are notoriously finnicky and will appear as if you've committed a value when in fact you have not. When you're applying your Map transform, type out your value and hit Enter for EVERY field.
3. Make sure that Table.props.columns[x].field is a case-sensitive match to the column you're trying to pass to the View.