October 15, 200421 yr Newbies I would like to have a window Editor to Edit or Add New Customers. This window Editor opens in a new window. In order to edit a record, I want to pass RecID over to Editor, and create a relationship RecID :: _RecID (_RecID being global). In order to do that, I need an existing relationship, say Constant :: _Constant. In FM6, you could pick... use Constant Relationship to pass RecID, and use RecID to pass the values back, once edited. In FM7, i don't see how i could choose. We have Customer and Editor linked with Constant = _Constant AND RecID = _RecID Because both Customer and Editor live in the same file, and are merely different tables, is the Constant relationship unnecessary? Are tables automatically linked by a ghost Constant? I deleted the Constant relationship and it seems to work. I can't find any other logic. --soda
October 15, 200421 yr Tables are not automatically linked; use the Graphical Relationships editor to link primary and foreign keys in tables.
October 15, 200421 yr In 7, a relationship is not required to access globals. All that's necessary is a Table Occurrence in the relationships graph. A constant-to-constant relationship is not required either. The Cartesian (X) join relationship operator allows you to link all records in one table to all records in another table. I'm concerned why you're displaying globals on the right side of your relationship when globals can only be used as left-hand keys.
October 18, 200421 yr Author Newbies What is a Cartesian X join relationship? And could you explain the use of globals on the left side? Relationship Customer_local :: Editor_global is not valid? If a constant to constant relationship is not needed and you don't need a relationship to access globals, then this relationship is only being used by Editor when the user submits changes. I can't seem to place Editor on the 'left' hand side of the relationship (ie Editor_global :: Customer_local) in the relationships tab. FM7 relationships go both ways,
October 18, 200421 yr A Cartesian join relationship uses the X operator (instead of =, >, et al) and relates all records between two tables (or the same table) to each other. This is why constant-to-constant relationships are not required anymore for this purpose. Relationship Customer_local::Editor_global is valid, but only from the perpspective of the Editor table (right-hand side). You can access related Customer data from it, but Customer cannot access Editor data from it because globals cannot be indexed and used as the child key of a relationship, only the parent key. FileMaker designates this by putting a 'T' in the relationships graph next to a global or unstored calculation field, indicating that data cannot flow towards it, only away from it. So it is not a bi-directional relationship. If you are only wanting to access the data in the globals, then no relationship is required. You would merely use the name of the table and its field name to reference it. As long as the table exists as a Table Occurrence in the graph, this is easily done.
Create an account or sign in to comment