6 Replies Latest reply on Sep 8, 2009 10:37 AM by philmodjunk

    Portal filtering question

    petertoo

      Title

      Portal filtering question

      Post

      <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:DisplayHorizontalDrawingGridEvery&gt;0&lt;/w:DisplayHorizontalDrawingGridEvery&gt;   &lt;w:DisplayVerticalDrawingGridEvery&gt;2&lt;/w:DisplayVerticalDrawingGridEvery&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:SpaceForUL/&gt;    &lt;w:BalanceSingleByteDoubleByteWidth/&gt;    &lt;w:DoNotLeaveBackslashAlone/&gt;    &lt;w:ULTrailSpace/&gt;    &lt;w:DoNotExpandShiftReturn/&gt;    &lt;w:AdjustLineHeightInTable/&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:新細明體;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-alt:PMingLiU;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} @font-face      {font-family:&quot;\@新細明體&quot;;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0cm;      margin-bottom:.0001pt;      mso-pagination:none;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;      mso-font-kerning:1.0pt;} /* Page Definitions */ @page      {mso-page-border-surround-header:no;      mso-page-border-surround-footer:no;} @page Section1      {size:595.3pt 841.9pt;      margin:72.0pt 90.0pt 72.0pt 90.0pt;      mso-header-margin:42.55pt;      mso-footer-margin:49.6pt;      mso-paper-source:0;      layout-grid:18.0pt;} div.Section1      {page:Section1;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:表格內文;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0cm 5.4pt 0cm 5.4pt;      mso-para-margin:0cm;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:&quot;Times New Roman&quot;;      mso-ansi-language:#0400;      mso-fareast-language:#0400;      mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]  -->

      Hello,

      I know how to create a drop down list to filter a portal when portal field only contain one value. However, in my portal, a field contains more than one value.

      For example, below is how my portal rows looks like. Field [registered student] in row "Englsih" contain four values A,B,C, and D in a form of list.

       

      [course name][registered student]

       English           A,B,C,D

       History           C,F

      .....

       

      My drop down list is based on a value list which contains all the student names looks like below

       

      'Show All

      A

      B

      C

      D

      F

      ...'

       

      I would like to see portal row English is displayed (for example) if student name B is selected in the drop down list (since B is one of students who registered course English). Any idea on how to do this? Thank you in advance.

       

      Peter

       

        • 1. Re: Portal filtering question
          philmodjunk
            

          In your portal table, add a calculation field:

           

          Substitute(Registered student; "," ; "¶" ) & "¶'Show All"

           

          Use this field as your filter key.

           

          The carriage returns (¶) set up an "Or" type of logic in the relationship's value matching.

          • 2. Re: Portal filtering question
            petertoo
               <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:新細明體;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-alt:PMingLiU;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} @font-face      {font-family:&quot;\@新細明體&quot;;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0in;      margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} @page Section1      {size:8.5in 11.0in;      margin:1.0in 1.25in 1.0in 1.25in;      mso-header-margin:.5in;      mso-footer-margin:.5in;      mso-paper-source:0;} div.Section1      {page:Section1;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:&quot;Table Normal&quot;;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0in 5.4pt 0in 5.4pt;      mso-para-margin:0in;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:&quot;Times New Roman&quot;;      mso-ansi-language:#0400;      mso-fareast-language:#0400;      mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]  -->

            Hello Phil,

            Thanks for reading my post and solution.

            I tested out the solution and found it works perfectly when the calculation field can be indexed. However, in my scenario, since [registered student] in portal table is a calculation field that cannot be indexed. (not sure whether it is because the values came from other related tables). When I added a new calculation field (follows your solution), [cal_student] for example and let [cal_student] = Substitute(Registered student; "," ; "¶" ) & "¶'Show All", it cannot be indexed too. And when I tried to create a new value list and link to [cal_student] field, filemaker pop out an alert message and showed “This value list will not work because the field “cal_student” cannot be index. Proceed anyway?”. Pressed “ok” and returned to portal browse mode. Found drop down list was blank. I guess I need to make my [cal_student] calculation field becomes an indexed field in order to solve this issue but cannot figure it out until now. Thanks for any advice & sharing.

             

            Peter  

            • 3. Re: Portal filtering question
              petertoo
                 <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:新細明體;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-alt:PMingLiU;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} @font-face      {font-family:&quot;\@新細明體&quot;;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0in;      margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} @page Section1      {size:8.5in 11.0in;      margin:1.0in 1.25in 1.0in 1.25in;      mso-header-margin:.5in;      mso-footer-margin:.5in;      mso-paper-source:0;} div.Section1      {page:Section1;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:&quot;Table Normal&quot;;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0in 5.4pt 0in 5.4pt;      mso-para-margin:0in;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:&quot;Times New Roman&quot;;      mso-ansi-language:#0400;      mso-fareast-language:#0400;      mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]  -->

              Forgot to mention how [registered student] in portal table is pulling data from other related tables.

              Below are related tables and the relationships. And [registered student] = Substitute(List(Student::student name);” ¶”;”,”)

               

              Tables:

               

              Course (portal table)

              [id] [course name][Registered student]…

               

              Register

              [id][course_id][student_id]

               

              Student

              [id][student name]…  

               

              Relationships:

               

              Course       Register        Student

                id       =    course_id

                               student_id  =  id

               

              One course can be registered by many students, and one student can register many courses.

               

              Thank you for your time.

               

              Peter

              • 4. Re: Portal filtering question
                philmodjunk
                  

                Yes, you've correctly identified the problem. The calculation I described must be a stored, indexed field in order for it to work. There are other problems your solution also reveals:

                 

                What if two students have the same name?

                What if a student changes their name?

                 

                Both situations do occur in the real world and your database needs to allow for those possibilities.

                 

                Maybe it would be simpler to redesign your layouts/portals.

                 

                If you set your portal up to show:

                [id][course] [StudentID] [Name]

                123 Math     1              John Smith

                123 Math     3              June Smith

                123 Math     2              John Smith //different student from first "John Smith"

                456 English  1               John Smith

                 

                You could set up filtering on the portal to select a course (or all courses) and/or a student (or all students).

                 

                Note: the above portal would refer to a Register Table Occurrence and the fields from other tables can be added due to the relationships you've defined.

                • 5. Re: Portal filtering question
                  petertoo
                    

                  <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:新細明體;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-alt:PMingLiU;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} @font-face      {font-family:&quot;\@新細明體&quot;;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0in;      margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} p      {mso-margin-top-alt:auto;      margin-right:0in;      mso-margin-bottom-alt:auto;      margin-left:0in;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} @page Section1      {size:8.5in 11.0in;      margin:1.0in 1.25in 1.0in 1.25in;      mso-header-margin:.5in;      mso-footer-margin:.5in;      mso-paper-source:0;} div.Section1      {page:Section1;} /* List Definitions */ @list l0      {mso-list-id:593367388;      mso-list-type:hybrid;      mso-list-template-ids:-625982526 67698711 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} @list l0:level1      {mso-level-number-format:alpha-lower;      mso-level-text:&quot;%1\)&quot;;      mso-level-tab-stop:.5in;      mso-level-number-position:left;      text-indent:-.25in;} ol      {margin-bottom:0in;} ul      {margin-bottom:0in;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:&quot;Table Normal&quot;;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0in 5.4pt 0in 5.4pt;      mso-para-margin:0in;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;      mso-ansi-language:#0400;      mso-fareast-language:#0400;      mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]  -->

                  Hello Phil,

                  Thank you for let me the know the drawback of the relationship I am currently working on.

                  I tried to follow the method in your previous post but encountered two issues.

                   

                  Issue 1: Failed in creation portal as you mentioned.

                   

                  Here are the steps I did:

                  <!--  [if !supportLists]  -->a)       <!--  [endif]  -->Create a blank layout base on "register" table

                  <!--  [if !supportLists]  -->b)       <!--  [endif]  -->Insert a portal, in portal setup, add fields from "course" and "student" tables and make portal row looks like this in layout mode

                  [course::id][course::course name][course::course description][student::id][student::student name]

                   

                  <!--  [if !supportLists]  -->c)       <!--  [endif]  -->Go back to browse mode. But only able to see one row of data displayed on the first row of portal. Need to use book icon or slider bar (on the top-left of tool bar) to move through each record.

                   

                  <!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:WordDocument&gt;   &lt;w:View&gt;Normal&lt;/w:View&gt;   &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:PunctuationKerning/&gt;   &lt;w:ValidateAgainstSchemas/&gt;   &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:Compatibility&gt;    &lt;w:BreakWrappedTables/&gt;    &lt;w:SnapToGridInCell/&gt;    &lt;w:WrapTextWithPunct/&gt;    &lt;w:UseAsianBreakRules/&gt;    &lt;w:DontGrowAutofit/&gt;    &lt;w:UseFELayout/&gt;   &lt;/w:Compatibility&gt;   &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt; &lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]  --><!--  [if gte mso 9]&gt;&lt;xml&gt; &lt;w:LatentStyles DefLockedState=&quot;false&quot; LatentStyleCount=&quot;156&quot;&gt; &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]  --><!--  /* Font Definitions */ @font-face      {font-family:新細明體;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-alt:PMingLiU;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} @font-face      {font-family:&quot;\@新細明體&quot;;      panose-1:2 2 3 0 0 0 0 0 0 0;      mso-font-charset:136;      mso-generic-font-family:roman;      mso-font-pitch:variable;      mso-font-signature:3 137232384 22 0 1048577 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal      {mso-style-parent:&quot;&quot;;      margin:0in;      margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} p      {mso-margin-top-alt:auto;      margin-right:0in;      mso-margin-bottom-alt:auto;      margin-left:0in;      mso-pagination:widow-orphan;      font-size:12.0pt;      font-family:&quot;Times New Roman&quot;;      mso-fareast-font-family:新細明體;} @page Section1      {size:8.5in 11.0in;      margin:1.0in 1.25in 1.0in 1.25in;      mso-header-margin:.5in;      mso-footer-margin:.5in;      mso-paper-source:0;} div.Section1      {page:Section1;}   --><!--  [if gte mso 10]&gt; &lt;style&gt; /* Style Definitions */ table.MsoNormalTable      {mso-style-name:&quot;Table Normal&quot;;      mso-tstyle-rowband-size:0;      mso-tstyle-colband-size:0;      mso-style-noshow:yes;      mso-style-parent:&quot;&quot;;      mso-padding-alt:0in 5.4pt 0in 5.4pt;      mso-para-margin:0in;      mso-para-margin-bottom:.0001pt;      mso-pagination:widow-orphan;      font-size:10.0pt;      font-family:&quot;Times New Roman&quot;;      mso-ansi-language:#0400;      mso-fareast-language:#0400;      mso-bidi-language:#0400;} &lt;/style&gt; &lt;![endif]  -->

                   

                  Issue 2: Actually "register" table is not the only join table in my program. My relationship looks more like below diagram

                   

                       Course                    register               student

                                                        id      

                         id            =            course id               

                  Course name                student id      =       id  

                  Course description                                   student name

                   

                   

                       Course                    teach                   TA

                                                        id      

                         id            =           course id                

                  Course name                   TA id         =       id        

                  Course description                                   TA name

                   

                  For example: Second join table (teach) is linked to course table. One TA (teaching assistant) can teach many courses and one course can have many TAs. In other words, TA is one of fields in my portal cloumns (same as student) and users should be able to use drop down list to filter portal by TA (same as student). So, given such relationship, I am not sure which table should be used for creating my portal.

                   

                  I am very new to Filemaker. Thank you very much for your help.

                   

                  Peter

                   

                   

                   

                   

                   

                   

                   

                  • 6. Re: Portal filtering question
                    philmodjunk
                      

                    I'm glad to see you've got the basics of many to many relationships and join tables down.

                     

                    I'm afraid my previous post was a bit too generic to use as a blue print for setting up your portal. I posted it to see if the change in format would work for you.

                     

                    step a)       <!--     [endif]     -->Create a blank layout base on "register" table

                     

                    Is where we have a problem. Using your existing relationships you could base your layout on either Courses or Student and set the portal to refer to register. If you base it on Courses, you'll get a list of all students registered for that course. If you base it on Student, you'll get a list of all courses for which that student is registered.

                     

                    Things get quite a bit more complex if you want a list of all Register records in your portal for which you can filter down to just a specific student and/or course. You'd have to set up additional relationships and fields to support this. While this can be done, it might be simpler for you to set up either a table or list view layout based on register and then perform finds to pull up specific groups of records. Such an approach might also be more flexible.

                     

                    As to your TA records, putting that data in a separate table complicates things. I'd consider adding a "TA" field to the register table. I could then register a TA just like any other student, but put text such as "TA" in this extra field to identify them as the TA.