The scenario: let's assume that there is a report that displays data in
a tabular form where each column represents a year. In a Hebrew display, the
lowest value will be on the right whereas the highest value will be on the
left; with an English display, the lowest value will be on the left and the
highest on the right.
2023 | 2022 | 2021 | 2020 | 2019 | 2018 |
---|---|---|---|---|---|
12 | 13 | 14 | 15 | 16 | 17 |
The challenge: the tabular report must be sorted in reverse order, i.e.
the highest value on the right and the lowest value on the left, in a Hebrew
display.
What doesn't work: Priority offers the option of Ascending sort or Descending
sort in a regular report; there is a field called 'sort direction' where one
can add A or D. As reports have ascending sort as the default, there's no need
ever to add A, but D does cause the report to be displayed in descending order
for the given field. This option does not work in tabular reports.
The solution: let's assume that the year is being held in STACK4.KEY,
just to make the explanation easier; the year could be in any integer field.
In a tabular report, as this field is going to be the column header, it
receives the graphic display value X, that will be sorted alphabetically in
ascending order. One can also add a hidden field with graphic display value O
that will overide the value in the X field - this is useful when displaying
months so that 11/23 will come before 01/24. Alphabetically 01/24 preceeds
11/23, but if one uses a function like YEAR (SOMEDATE) * 12 + MONTH (SOMEDATE) as the 'O field' then the months will be sorted correctly.
In order to display the table in reverse order, one needs to define a field
with the graphic display value O whose value will be something like
3000 - STACK4.KEY. This will cause this field's value to decrease while
the X field's value increases. If the X field value is 2023 then the O field
value will be 977; if the X field value is 2022 then the O field value
will be 978. Thus the table will be displayed in reverse order, viz.
2018 | 2019 | 2020 | 2021 | 2022 | 2023 |
---|---|---|---|---|---|
17 | 16 | 15 | 14 | 13 | 12 |
No comments:
Post a Comment