How do I have form components without writing?

I want to have form components that don’t write to any column. My usage is this: I have a Class table, which has a Student (relation), Presentation (relation), Date, and Notes (text field). The Presentation table has the Unit relation, and the Unit table has a Subject relation.

I want users to first select the Subject choice, which would filter the Unit choice to whichever units have this subject, and after this selection, filter the Presentations in that unit. Only this selection will be written to in the Class::Presentation.

How can I do this?

So let me summarize your structure to see if I understand it correctly:

Your tables are Class, Student, Presentation, Unit, Subject.

  • A class can have many students
  • A class can have many representations (edit: presentations)
  • A presentation can be tied to a unit.
  • A unit can be tied to a subject.

What are you trying to do here? Is it a form that writes to a specific table?

Not exactly. Sorry for the confusion, I’m new here.

Yep.

A real-life class can have many students - but they must be stored in separate rows as a Class each, that’s what I want to do in my other question. It doesn’t matter here.

I’m not sure what you mean by this. Yes, a subject has multiple units, each of which has multiple presentations.

I currently have a form with a choice component writing to Presentation and a choice component writing to Student (and date and notes, but they don’t really matter, so we’ll ignore them henceforth). The user finds it hard to search through the hundreds of presentations and select them, so she wants to a) select the subject first, b) select the unit, and c) select the presentation whose choices would now be much fewer in number. This is merely for her convenience - on the Class table, we have only Presentation and Student. So when she submits the form, only the Presentation and Student is written.

Thanks for your help!

I think the right structure here is a table for classes, with a rowID column so each class can have a unique ID.

Then, a students table, where you link them back to the classes by a “Class ID” column.

So is this for the teacher to submit an evaluation of the presentation for the students?

1 Like

OK, so I changed my data structure: one class can have multiple students, after which I use a split column and a multiple relation to achieve this.

In the notes field, yes, but that doesn’t matter. Anyway, the purpose of this question has been achieved, thanks!

Now a doubt: I have a huge table with many duplications of subject and units. Now, in the display of this collection, I want to first show the subjects alone - if they click into a subject, a list of units in that subject, and so on. Is there any way to reduce the 200 columns shown into the two subjects alone? I previously did this by showing the Subject table and then the Unit table and so on, but this is now no longer possible as I have just one table.

Again, thanks for your help!

Do you mean 200 rows?

Can you show a screenshot of what you have so far? Do you mean showing them in choice components?

Here’s what I have:

What I want is first a screen of just the subjects, Geometry and Botany, and when I click on one, the units in that subject, and when I click on one, the presentations in that unit.

I’d previously achieved it using multiple separate tables and relations, as mentioned:

How could I do this with the current relation-less data structure?

What do you mean by relation-less? You should still be able to achieve that using 3 tables of Subjects, Units that are tied to Subjects, and Presentations that are tied to Units.

That’s what I originally had.

That had two problems: one, if I renamed a Unit or something, I had to replace it in two places (the name column in the Unit table, and the Unit column in the Presentation table so that the relation updates itself accurately). The other one was the purpose of this thread. I’ve now changed the data structure as mentioned in the previous comment.

Could you just tell me how I could bring Photo A in the previous comment to Photo B with my current data structure? My project’s running late :slightly_frowning_face:.

Don’t use column values that could change to create relations.
Instead, use RowIDs. They will never change.

4 Likes

Thanks for the great tip!

But if I did maintain the current data structure, could I achieve what I want - the first screen showing only the subjects, the second screen the units in that subject, and so on?

I’m not really sure what your current data structure is, as it seems to have changed/evolved since you first started this topic. But…

Given the above, I would start with a Collection of Subjects (not in a form). When a user selects a Subject they should see a collection of related Units for that Subject (again, not in a form). Selecting a Unit should provide a list of related Presentations. At that point you could present the form, and you already have the context that you need.

1 Like

Yeah, but I just spent a lot of time changing that, and I feel this one would be better as it takes up less space and it’s in the format teachers already have the data in.

Currently, I have just one Presentations table to replace the above three tables. This has three columns: Subject, Unit, and Presentation.

Let’s assume that I cannot change the data structure (because I practically can’t. Not just today, the whole import process would be too tedious for so many subjects, my current one is much easier).

Thanks. This is what I did with my old structure - I didn’t think about the fact that the context is already there, because I actually want it to be possible to add from a different screen. So how would I do this with my current structure?

I may sound ungrateful for your help: by no means so, I’m frustrated with the software and a seriously delayed project. Let’s just say I thought Glide would be much easier than it is. I guess it’s still kinda beta. It’s great in many ways, but very frustrating in it’s limitedless. That’s probably because I’m new here. Anyway, thanks!

Glide is not beta, it’s been here for 4 years. As you work more with it, you may experience new things that can help with your project.

Maybe I’m quite strict with data structures, but I think as long as you can have a separate structure of Subjects, Units and Presentations in 3 different tables, it would make your life much easier.

The Subject table would include the Subject name and rowID of the subject.

The Unit table would include the related Subject rowID, the Unit name, and the rowID of the unit.

The Presentations table would include the related Unit rowID, the Presentation name (if any), and the student ID of the student that presented it.

Then, with that structure, you can easily achieve this.

If changing the format of input makes sense for the project, I always ask people to do it. I’d rather have it changed right from the present to make life easier in the long run. That’s my 2 cents.

1 Like

Please. That’s what I had at the beginning.

I like this data structure. Could you tell me how I could do this with my current structure?

It’s just not feasible, to convert thousands of rows into separate tables and copy over the row IDs for the relations. I realize that’s a better data structure, but I can’t help it, we don’t have the time and energy to do that. How can I achieve the previous screen with my structure?

So can you show us a sample of your current structure, with a screenshot?

Do you have to do this every day though? Can’t you change the whole process of data input?

This is how the teachers have stored it:


Now, I’d have to split this up into four tables, which is hard enough, but now I have to manage the row ID too. I originally copied over the last two columns in a separate Presentation table and added a Chapter relation using the Chapter column, the middle two columns in a Chapter table and a Unit relation using the Unit column, and so on. (I’ve simplified it for this thread and ignored the Chapter table.). I then got this:

Now, as I must use a row ID, I must individually copy over each chapter’s row ID to the Presentations table, and each unit’s ID to chapters, and so on. Not possible. So I’ve just used the table the teachers have given, which is equally valid and useful in a few other ways (fewer rows so less cost, I can achieve the original purpose of this topic - allow the teacher to select a subject first and then unit and so on).

So the table above is my structure. How can I get the photo above?

I’m doing this off the top of my head, so I may or may not be missing something.

  • Make sure you have a RowID column

  • Create a multiple Relation linking Subject to Subject.
  • Create a Single Value column that returns the RowID from the relation.
  • Create an IF column that returns ‘true’ if the RowID in the row matches the lookup RowID.

  • Create a Template column joining Subject and Unit together.
  • Create a multiple Relation linking that template column to itself.
  • Create a Single Value column that returns the RowID from the relation.
  • Create an IF column that returns ‘true’ if the RowID in the row matches the lookup RowID.

  • Create a Template column joining Subject, Unit, and Chapter together.
  • Create a multiple Relation linking that template column to itself.
  • Create a Single Value column that returns the RowID from the relation.
  • Create an IF column that returns ‘true’ if the RowID in the row matches the lookup RowID.

  • In your main list, filter the list to only show rows where the first IF is checked true.
  • Set the action to either ‘Show Detail Screen’ or ‘Show New Screen’.
  • Navigate to the detail screen of a list item.
  • Add a collection to that screen sourced from the first relation.
  • Filter the list to only show rows where the second IF column is checked true.
  • Set the action on that collection to ‘Show New Screen’.
  • Navigate to the detail screen of a list item.
  • Add a collection to that screen sourced from the second relation.
  • Filter the list to only show rows where the third IF column is checked true.
  • Set the action on that collection to ‘Show New Screen’.
  • Navigate to the detail screen of a list item and that is where you will design your presentation screen.
4 Likes

Thank you so much!

You’ve solved my problem, ah, what relief.

Just one thing now: how do I get the breadcrumbs straight? They’re now quite erratic, saying the values of the item I clicked on instead of Subject > Unit > Chapter as I’d like. Got that too!

I’ll say it again: you’ve saved my day, thanks! Sorry for the late reply.

1 Like