1 Reply Latest reply on Aug 16, 2013 6:52 AM by philmodjunk

    Assigning Values Through Different Layouts

    DerekWeagle

      Title

      Assigning Values Through Different Layouts

      Post

           HI Everyone,

           I'm rather new to FileMaker (a couple days), however, I've caught on to most things pretty quickly and I'm looking to see if anyone can guide me. 

           I work for a Community Orchestra and I've created a system that will track our students (and their contact info), their attendance, and our inventory of instruments. I've created multiple databases to get the job done. See the screenshot for the databases and relationships.

           So far, I've created the student database and everything independent in that is functional. There's only a few things I'm confused about.

           1. What exactly are the purpose of the Serial Numbers and how do they function?

           2. Obviously my databases are connected in multiple ways. I want to "assign" values in different places and have them carry across databases.

             
      •           Assign a Student to an Ensemble (I have already entered all of the ensembles and they have serial numbers) via the Student Layout. How would this information carry over to the Enrollment Database so I have a roster to work off of for Attendance?
      •      
      •           Assign an Instrument to a Student via the Instrument Layout (via a list or indexing). How would this assignment show the Serial Number back in the Student Layout? Assigning it to a Student would also return the Ensemble name. 
      •      
      •           I read another Forum Post about how to set up an attendance system. (http://forums.filemaker.com/posts/a3737b235e?commentId=145067#145067) I have the relationships set up aside from the database that contains the class occurences. But I'm not sure how to tie that all together on the attendance layout, or how to execute the entry. 

           3. I also created a Find button in the student layout, which just executes "Perform a Find" however, it won't match any records when I use it. Are there any further things I need to define?

           Sorry for the long list of confusion. Hope someone can help!

           Thanks in advance!

      Screen_Shot_2013-08-16_at_2.01.50_AM.png

        • 1. Re: Assigning Values Through Different Layouts
          philmodjunk

               1) auto-entered serial numbers are the simplest way to set up a field where the value in the field is unique in every record in your table. This makes it an excellent choice for setting up a match field in the table to use as a primary key. Students::Student ID is an example of a field that should be defined in your database as an auto-entered serial number.

               It looks like you need to rethink your relationships a bit more. The link between students and Ensembles appears to be a many to many relationship. (I'm guessing that a student can participate in more than one Ensemble.)

               Start with these relationships:

               Students-----<Enrollment>-----Ensembles

               Students::__pkStudentID = Enrollment::_fkStudentID
               Ensembles::__pkEnsembleID = Enrollment::_fkEnsembleID

               You can place a portal to Enrollment on the Students layout to list and select a Ensembles record for each given Students record. Fields from Ensembles can be included in the Portal to show additional info about each selected Ensembles record and the _fkEnsembleID field can be set up with a value list for selecting Ensembles records by their ID field. And note my use of __pk to identify primary keys--fields defined as auto-entered serial numbers and _fk to identify foreign keys--number fields that match to primary keys.

               For an explanation of the notation that I am using, see the first post of: Common Forum Relationship and Field Notations Explained

               This addresses just some of the issues that I see in your example.

               The Perform Find script step/button option will do nothing unless you specify search criteria. You may find this thread on scripted find examples helpful: Scripted Find Examples