Relate one-way

Hi all,
I think it’s the late hour, and the many hours already spent on this, but I think I lost some basic knowledge, need your help :raising_hand_man:
So, building a rather elaborate app with relations between sheets. For example:

Sheet one: client types
columns: clienttypecode (unique value), type

Sheet two: client
Columns: clientcode (unique value), client name, clienttypecode

Inside sheet two I created a relation column. You guessed it, relating clienttypecode to the clienttypecode column on sheet one.

On the client details screen, added a relation item and now the type is showing (and not the clienttypecode).
Now comes to novice/unfocused question: How can I disable the reverse reference option when a user clicks on the “type” on the client details screen? What happens now is that when you click it you’re sent to see the details on that row on sheet one. Sheet one in meant to be behind the scenes and not visible to users.

My current solution, which is not a real solution, is to create another column on sheet two. This column is lookup and it looks for the relation column on sheet one. This indeed generates a single value of the client type and it is not possible to click it on the client details page.
I feel super stupid for asking such a novice question. I feel I twisted the data so much it’s not possible to understand the data anymore.

Help anyone?
Thanks

Hi, why don’t you like this solution?

I don’t ever use the relation or list relation components. In certain cases, I’ll create a multiple relation (even if it links to a single item) and show it as an inline list. Then you can just set the action to None.

1 Like

It seems so complicated and twisted. I would have thought there’s a more elegant solution :slight_smile:

May I ask why you don’t ever use these components?
I always had the impression that these are two of the strongest tools on Glide.

I just don’t like them much because they are not very customizable. I can do much more with an inline list.

1 Like

Interesting.
I quite like the List Relation component, and I find myself using it quite a bit. I find it a nice convenient way to present multiple linked lists on a single screen. So in my apps, you’ll often see this sort of thing:

Screen Shot 2021-10-16 at 11.37.46 AM

Having the item counts is also useful. The word “items” can sometimes feel out of place, but I live with that.

What I don’t like is when you have multiple linked lists all pointing at the same data source, there can only be ONE Inline List configuration. This did my head in for a while, until I realised what was going on.
But I did find a workaround for this, which is to set a “current-screen” value in my user profiles, and then feed this into an if-then-else column which changes the Inline List caption based on the current screen. ie.

Works well :slight_smile:

oh, @Jeff_Hager - another thing I’ve found List Relations really useful for is exception reporting. For example, in the HR section of one of my apps I have a screen that contains about a dozen List Relation components. Each of these provides a list of employee records with missing or incomplete data. One is highlighting those employees that haven’t had their join date set, another for employees where their contract is due to expire, etc. The nice thing is that if there are no qualifying records for any of the lists, then the components just hide themselves. So when one appears on the HR dashboard, it gives our HR staff an immediate visual clue that something needs attention.

2 Likes

Hi @Darren_Murphy,
Thanks for this great input. Even from this single screenshot it’s obvious your app(s) is very sophisticated.
I have a “best practice” question on this sophistication, based on my original example:

To summarize, what I do is add two columns each time I want to be able to display a single item, without the option to click on it (sheet one in this example):

  1. Relation - in this example, between the “clienttypecode” column from this sheet (one) to “clienttypecode” column on sheet two.
  2. Lookup - lookup column pointed to the first column.

The question is which method is better:

  1. As detailed above.
  2. In the Google Sheet (not on Glide), add a ArrayFormula(VLOOKUP....) column.

I’m leaning towards method 2 as this allows the workload to be somewhat shared between the Google Sheet (running in the background) and the Glide app connected to it.
The downside here is that ArrayFormula columns are notorious for slowing down sheets. I’ll need at least one such column in each sheet and in many cases more than one. This means very heavy workload on the Google Sheet side, while leaving the Glide engine rather “effortless” in this regard.

What do you think?
Thanks

This one is a no-brainer for me. Definitely option 1. Every time.

I avoid Google Sheet formulas like the plague, and especially arrayformulas. This is coming from someone who is a long time Google Sheets user (~15 years). I’m not saying that I never use sheet formulas, that would be a lie. But I’m extremely selective about when I do. There are generally only two scenarios where I’ll resort to sheet formulas:

  • When I can’t find a way to do what I need with Glide computed columns
  • When I need a copy of the data outside of Glide for other purposes, and I can’t find a way to get at it other than via the Google Sheet

As I’ve learned more about Glide, I’ve found it increasingly rare that either scenario crops up.

So why not sheet formulas?

I guess two main reasons:

  • They slow things down. Any time you’re relying on calculations happening in the Google Sheet, then you have to wait. And if these calculations are time critical, then you’ll have a crappy user experience.
  • They are fragile, and too easily broken. Especially arrayformulas. This can be a big problem when multiple people have access to the Google Sheet. Somebody inadvertently updates a column value where they shouldn’t and BOOM! I’ve been bitten enough times by this that I just don’t do it unless it’s absolutely necessary (which as I mentioned, is hardly ever).

I wouldn’t be worried about Glide computed columns slowing things down. This is Glide’s bread and butter and where it excels - this is where you unleash the true power of Glide. Embrace it and take advantage of it.

2 Likes