You'll need to walk through all the details of setting up the portal to see what isn't set up correctly.
First you need a relationship linking the layout's table occurrence to the portal's table occurrence. Open Manage | Database | Relationships and check. The occurrence name selected in Show Records From in Layout Setup should match the name of one of these boxes. The name in Show Records From in Portal Setup should match a the name of a different box. There should be a relationship line linking the two. (Sometimes the link goes through several table occurrences to make the link, but that isn't a good idea unless you have no other choice.)
Now look at the fields added to the portal. They should come from the same table occurrence as the portal's table occurrence (or a related table occurrence, but let's stick with fields from the one table occurrence to start here.) You can check this by double clicking each filed while in layout mode. The Specify Field dialog will pop up and the name of the field's table occurrence will be shown in the drop down at the top of the dialog.
If all that looks correct, check the values of the two fields used to define the relationship. If you have this relationship in Manage | Database | Relationships:
LayoutTO::Field = PortalTO::Field
Then check the value of LayoutTO::Field for your current record. (Make sure that you have at least one record in your table too.) Compare that to the values of the PortalTO::Field and confirm that you have exactly matching values in both fields of at least one record in each table.
Also, Go TO Manage | Database | Fields and make sure that the field data types for both of these are the same type.
Thank you for your comment. I'm using a filtering relationship with a utility portal layout. The fields I'm interested in have 1. A unique ID, 2. A Type (name) field and 3. A fee field. My filtering relationship uses a global type field, a calculation field that sets the filtering and a global text field. I initially used the relationship with the global type field equal to the unique ID field. It would not work that way. However, I got it to work by changing from an equal relationship to an "X" relationship. When I did that the fields showed as expected and the filtering script also worked as expected. Perhaps you could explain why that works and the equal relationship won't.
That depends on what you needed to see, the data types of the two fields and how you set up the relationship.
I've used a global field with = more times than I can count as the portal filter is a relatively new feature and we originally had no other option but to include a global field in a portal's relationship if we wanted some kind of selectable filter for the portal's displayed records.
A global field (or any other unstored/unindexed field) can only be used on the parent table's side of the relationship. If I have:
Parent::GlobalField = Child::DataField
I can place a portal to Child on the Parent layout and all records where DataField stores a value matching the current value in the global field will be listed in the portal. I can't, however, put a portal to parent on a child layout and use this relationship to display any data.
GlobalField and DataField in this example should also be of the same data type. (Both fields of type number, both text, both date...)