I Have a main-table with a canvas column in which I reference a sub-table.
When I open that canvas column, anyone can use the referenced sub-table as if he was an editor.
I don’t want that.
For that reason, I created another canvas column in the main-table, referencing the first canvas column (which references the sub-table).
When I open this canvas, I cannot change values or the table itself anymore, which is good.
BUT: Buttons are greyed out as well. How can I make this table edit-proof without disabling buttons?
heres a demo:
EDIT: The doc has to be copied for the demo to work
You can use a relation column to reference the entire sub table to each main table row. Then you can choose to have this relation displayed as a table inside the layout.
Also if you want to “block” the user from editing the table content you can change the setting so that table content changes is disabled.
What you cannot do with this is to have the sub table from the relation being displayed as cards or calendar from within the same main table as there you can use only one layout at the moment.
Hi @Pablo_DV,
what do you mean by formula-based display field?
I am having different views of the same table in the main-table which I’m going to show as a detail-view. This detail view is going to be filtered by a control → making essentially a switch for the user to view the table-content in different flavors on the same page.
OMG, I’m so stupid… referencing the entire table is actually what I was looking for!
It does exactly what I wanted to do. And I’m actually able to show the table as cards or calendar.
I updated my demo for anyone looking for the same solution.
EDIT: While it does display Cards, Tables, Calendars… it changes it for every Row (View)… I’ll find a way and post it here
EDIT 2: So it looks like whatever view you set up for this table inside the main-table, it is stored per column
You can create an additional formula column (not editable) that contains the same information as the 3 fields that you were displaying in the table and therefore you can hide them.
I agree that referencing the table is a better solution that creating a view in the canvas, but the issue of the values being editable remain. The cards view works for the use-case because the values cannot be edited but the buttons can be pushed nevertheless.
If you want to display it in table format I think you will need to implement my previous suggestion.
I need to reference a Table in a Table. The formula based method works, but I need to have a different view per row in the main table. Unfortunately, the view is set for the whole column.
I want the main-table to be filtered so it displays only one row, specifically the content of the column with the sub-table inside
Not sure I understand. So the main table will remain with the 3 rows ‘Table’, ‘Calendar’ and ‘Card’ and you want to see the corresponding view (Table, Calendar, Card) when expanding the row?
In that case you would need to stick to creating the views on a canvas column and using the formula-based display field for the table view. The only issue would be that buttons are not visible in the Calendar view.
Don’t understand that either. You have 3 rows, what would be the criteria for the filter? A canvas control that you have not yet added to the doc?
To demonstrate what @Pablo_DV suggested, I built this example. As you can see, the structure is mostly the same as yours; the only difference is that I added columns as duplicates of the names and dates, as suggested by @Pablo_DV. Since these are calculated columns, they are not editable. Everything else remains the same: each row in the main table includes a canvas that stores the view as you specified, and in the detailed view, the canvas is displayed.
This approach prevents others from editing the table content. However, since it’s a canvas, any editor can still modify the canvas itself, like adding text, other tables, or even deleting the current view. The only way to prevent this, as far as I know, is by locking the page, which requires a Team plan.
If you have the Team plan, the process becomes much simpler. You won’t need to duplicate the columns; just lock the page for editing, allowing users to interact with controls (buttons, selectors) without altering the content.
That’s exactly what I want.
The calendar view was just as an example which didn’t need the buttons to be displayed. I need the buttons in card and table view.
I basically want the canvas of the main-table to be non-editable while the table inside the canvas remains editable.
I guess it’s just not possible
I added a canvas control in the current version of the demo doc. @Felipe_Arnhold added one as well in his demo.