Same View (with same settings) looks different by different users

,

Today I was contacted by one of my colleagues who is using our Appsheet app.

She said that she couldn’t get used to having months in alphabetical order instead of the calendar order and asked me to change that. I was surprised to hear that since in my view everything looks completely normal and all months are in calendar order (as it supposed to have happened when I created this view). I put her email in emulator and opened her view - grouping also looks fine. So here are two screenshots: one of hew view in the emulator and another one - screenshot from her computer which she sent to me.

The view which I am using shows all the months in a calendar order (and it has same grouping settings as hers). Therefore I didn’t event know this problem existed until she told me.

How is that possible?

2 Likes

Confirm what version of the app she is using found on the About page at the bottom. It may be her app is out of sync and she is seeing an older version.

If that checks out then do you have similar versions of the same view in the app and somehome she is reaching one of those unintended views??

I’m noticing the Language and Date format differences. How are those being handled?

4 Likes

​Try checking the column type for Month; to keep them in order, the column type must be Number. Alternatively, check the columns used for the month grouping—there might be two columns, one set to Number and the other to Text. Make sure to select the Number type column for the group in your table layout.

2 Likes

Hi @WillowMobileSys, hi @Syamsudin

No, she is using the correct version.

I assume this has something to do with the computer locale - both the problem with grouping and date/language (as i am using GB and she is using DE). For now I’ve managed to make month grouping using a column with this formula:

RIGHT(“00” & MONTH([Date]), 2)
& " - "
& INDEX(
LIST(
“January”,“February”,“March”,“April”,“May”,“June”,
“July”,“August”,“September”,“October”,“November”,“December”
),
MONTH([Date])
)

It seems to work, but I am not yet sure how i can display months in correct order without making all users see months in english only and ideally without the leading number.

2 Likes

Ah yes, it seems it is a locale problem. Notice that the locale months are actually NOT in alphabetical order. All of the months that are the same as English ARE in the correct order.

To make your expression work, you need to adjust it to KNOW what the locale is for the user and then use a Month list that corresponds to that locale. Since you need to configure your app for each locale, the best way to KNOW the locale is to use a USERSETTING that the user sets to their preferred locale.

I would then create a table maybe named Locale Config something like:

ID Locale Months
abababab UK January, February, March, April, May, June, July, August, September, …
wetyisdg DE Januar, Februar, Marz, April, Mai, Juni, Juli, August, September, …
ei7ruikwht US January, February, March, April, May, June, July, August, September, …

to return the various locales your app supports. (The locale may need to be more like that shown in the appSheet editor for tables).

Then adjust the expression to something like :

RIGHT(“00” & MONTH([Date]), 2)
& " - "
& INDEX(
SELECT(Locale Config[Months], [Locale] = [_THISUSER].[Locale]),
MONTH([Date])
)

Setting up the table like this will help support other locale specific things going forward and when you need to support a different locale, simply update the Locale Config table.

5 Likes

Another option you could try is based on the following post, it sounds that TEXT() functions return months names in different languages based on locale of the device or browser. The poster of the post below has been able to display the months in Portuguese. So displaying the months names in other languages should also be possible based on browser and device locale and using the TEXT() function.

So you may want to try a simpler expression of

CONCATENATE(
RIGHT(“00” & MONTH([Date]), 2),
" - ",
TEXT([Date], “MMMM”)
)

You could then check with different users of your app who are using different locales, if they are able to see month names in their respective languages.

3 Likes

How does this help with ordering the Month names in the correct chronological order?

2 Likes

check this out

1 Like

Hi @WillowMobileSys ,

Thank you for your query.

I hope by chronological order you mean sorting the months ascending January, February…, December

if you carefully read , my reply was about the language to display months names and not about chronological order and I did not touch the chronological part that @Sonya_Birch included in her expression and even you retained.

@Sonya_Birch 's expression with chronology part highlighted.

Your expression :

My expression

My main suggestion was around language of months which @Sonya_Birch wanted in different spoken languages for which I suggested use of TEXT() functions.

As for the chronological order the prefix part of expression , namely

will help in ordering or sorting months in any language and that part is untouched.

below screenshot shows the expression in action

3 Likes

Yes, you are right. I had mis-read the expression this whole time.

So, then are you indicating that the TEXT() function will properly return the textual value of the month based on the locale?

1 Like

Hi @WillowMobileSys ,

Yes, I have suggested that based on the post below I referred in my suggestion and referred below again. I did not test it by setting up the different browser languages myself. Anyway, I will do that now.

If you read that referred post, you can see that the poster is successfully displaying the month names in Portuguese based on her locale while using TEXT() functions. So I believe the TEXT() works on the user’s browser locale.

Anyway, since we have come thus far in this dicussion, I will test that suggestion part of locale myself and revert.

1 Like

So I did a quick test using a different browser locale ( German). The testing shows that the long date format column ( [Order_Date_V]) starts showing up in the browser language ( German) but the TEXT() based function continues to be in English ( [Chrono_Date]) column.
[User_locale] column captures the user’s browser or device locale.

So , as of now the test about TEXT() is not conclusive. There are mixed posts about it displaying in different languages or just in English. Will perform more tests and revert.

4 Likes

Have you tried using “Enum” and ordering it there?

Hi @Eduardo_Jr_Vill ,

yes, I used ENUM before i found out about the situation. It worked for me, but didn’t work for my colleagues.

1 Like

Were you able to test TEXT() function

If that does not work, @WillowMobileSys solution will work for sure,

2 Likes

Hi everyone,

This usually happens because different users have different language or regional settings on their devices.

Even if the view settings are exactly the same, AppSheet can show grouped data differently depending on:

  • device language

  • regional date format

  • browser or app locale

If the app is grouping by month names (text), the order may change because text is sorted differently for each language.

Simple fix

A good practice is to:

  • use a number for sorting (like month number: 1–12)

  • keep the month name only for display

This keeps the order consistent for all users, no matter their language or location.

So the view is not broken — it’s just a localization difference between users.

Hope this helps :slightly_smiling_face:

2 Likes

Hi @Suvrutt_Gurjar , hi everyone, sorry for late reply and thanks a lot for your help. Finally just heard back from my colleagues who use a different locale. The following formula worked!

TEXT([Date], “MM”) & " - " &
SWITCH(LEFT(USERLOCALE(), 2),

“es”, SWITCH(MONTH([Date]),
1, “Enero”, 2, “Febrero”, 3, “Marzo”, 4, “Abril”,
5, “Mayo”, 6, “Junio”, 7, “Julio”, 8, “Agosto”,
9, “Septiembre”, 10, “Octubre”, 11, “Noviembre”, 12, “Diciembre”, “”
),

“fr”, SWITCH(MONTH([Date]),
1, “Janvier”, 2, “Février”, 3, “Mars”, 4, “Avril”,
5, “Mai”, 6, “Juin”, 7, “Juillet”, 8, “Août”,
9, “Septembre”, 10, “Octobre”, 11, “Novembre”, 12, “Décembre”, “”
),

“de”, SWITCH(MONTH([Date]),
1, “Januar”, 2, “Februar”, 3, “März”, 4, “April”,
5, “Mai”, 6, “Juni”, 7, “Juli”, 8, “August”,
9, “September”, 10, “Oktober”, 11, “November”, 12, “Dezember”, “”
),
SWITCH(MONTH([Date]),
1, “January”, 2, “February”, 3, “March”, 4, “April”,
5, “May”, 6, “June”, 7, “July”, 8, “August”,
9, “September”, 10, “October”, 11, “November”, 12, “December”, “”
)
)
6 Likes