The following is just thinking out loud without testing, but what you could do in theory is:
Define for each BatteryLevel_n
item a BatteryPosition_n
item, and whenever any of the BatteryLevel_n
items changes (ideally by putting them in a Group in my opinion), you can use a rule to determine what the desired position of each item is, and store that in the BatteryPosition_n
.
So for example you will have BatteryLevel_1
with a value of 25%, BatteryLevel_2
with a value of 62%, BatteryLevel_3
with a value of 75% and BatteryLevel_4
with a value of 17%.
So then the desired values of BatteryPositon_n
are: 1 for n=4, 2 for n=1, 3 for n=3 and 4 for n=3. Let’s suppose you have a rule to achieve that (and I am quite positive that is doable), you could then do this: (in short)
Text item=BatteryLevel_1 label="Battery 1 [%d %%]" visibility=[BatteryPosition_1==1]
Text item=BatteryLevel_2 label="Battery 2 [%d %%]" visibility=[BatteryPosition_2==1]
Text item=BatteryLevel_3 label="Battery 3 [%d %%]" visibility=[BatteryPosition_3==1]
Text item=BatteryLevel_4 label="Battery 4 [%d %%]" visibility=[BatteryPosition_4==1]
Text item=BatteryLevel_1 label="Battery 1 [%d %%]" visibility=[BatteryPosition_1==2]
Text item=BatteryLevel_2 label="Battery 2 [%d %%]" visibility=[BatteryPosition_2==2]
Text item=BatteryLevel_3 label="Battery 3 [%d %%]" visibility=[BatteryPosition_3==2]
Text item=BatteryLevel_4 label="Battery 4 [%d %%]" visibility=[BatteryPosition_4==2]
Text item=BatteryLevel_1 label="Battery 1 [%d %%]" visibility=[BatteryPosition_1==3]
Text item=BatteryLevel_2 label="Battery 2 [%d %%]" visibility=[BatteryPosition_2==3]
Text item=BatteryLevel_3 label="Battery 3 [%d %%]" visibility=[BatteryPosition_3==3]
Text item=BatteryLevel_4 label="Battery 4 [%d %%]" visibility=[BatteryPosition_4==3]
Text item=BatteryLevel_1 label="Battery 1 [%d %%]" visibility=[BatteryPosition_1==4]
Text item=BatteryLevel_2 label="Battery 2 [%d %%]" visibility=[BatteryPosition_2==4]
Text item=BatteryLevel_3 label="Battery 3 [%d %%]" visibility=[BatteryPosition_3==4]
Text item=BatteryLevel_4 label="Battery 4 [%d %%]" visibility=[BatteryPosition_4==4]