RWX Posted March 11, 2014 Posted March 11, 2014 Hello everyone. I'm trying to build a tag browser interface in FileMaker. I'm open to a broader discussion on the subject of tags and would welcome any references to previous tag-related threads. My database is a project management tool with records like Contact, Project, Service, and Note. I want to give each user the ability to apply his or her own tags to each of these records. I also want the user to be able to browse by tag and generate a list of all tagged records regardless of record type (i.e.: table). When a user applies tags to a record for the first time, a TagList record is created and matched to the tag-able record. This TagList is a join table with match fields for each record type that can be tagged. Only one relationship is valid. If I am applying a tag to a Contact, the ContactMatch field in TagList will receive the ContactID. The ProjectMatch, ServiceMatch, and NoteMatch fields will all have a (default) value of 0. UserName will be recorded as well. So while multiple TagList records may contain the same value in ContactMatch, there may only be one TagList record that matches both ContactMatch and UserName. The Tags field in the TagList record will contain the tags. This might just be a text field and I might use some text functions to add/remove tags from the field. I might make tags related records and use the List ( ) function to generate the list of tags. I'm not sure yet. After I have the tag list, however, I need to process is it. And this is where I am having trouble. I want to create a portal-based Tag Browser interface. One portal shows me all available tags. The other portal shows me all matched TagList records. When I add/remove a tag by clicking on it in the "Available Tags" portal, the Tag Browser match field is updated. If my selected tags in my Tag Browser are: Cat Dog Frog ...my Tag Browser match field is: CatDogFrog On the TagList side, I have a record with the same tags (Cat, Dog, Frog) in its tag list. I need a calculated multiline match field with all possible combinations formatted as shown above (with tags in alphabetical order and no spaces). This calculated field would produce the following result: Cat Dog Frog CatDog CatFrog DogFrog CatDogFrog Can anyone point me in the right direction? I'm happy to go into more detail on the tag browser in general if required (or desired), but I didn't want to turn this question into a massive post on tagging. I've worked out most of the details, but I need some help in generating this list of combinations. Thank you kindly for any thoughts and references. -Rob
comment Posted March 11, 2014 Posted March 11, 2014 (edited) 1. I would suggest that at least until you figure out the basics of it, consider a simpler situation where only one table is being tagged, e.g.: Objects -< ObjectTags > Users This is assuming each user has his/hers own set of tags. 2. I am quite sure that you will need a separate record in the ObjectTags table (TagList in your example) for each tag assigned to an object. 3. You should also consider if you want to have any kind of control over the allowable tags, or leave this entirely to the discretion of the users. Edited March 12, 2014 by comment 1
Lee Smith Posted March 11, 2014 Posted March 11, 2014 I think I remember a custom function at Brian Dunning’s site that did something like this (IIUC), but I’m on my way out right now, so try doing a search for your keywords at http://www.briandunning.com/filemaker-custom-functions/recentlist.php
RWX Posted March 12, 2014 Author Posted March 12, 2014 Thanks for the feedback Lee! I found a custom function on Brian's website that does, more or less, what I want: http://www.briandunning.com/cf/1535 I need to make a few changes to the output formatting, but it looks promising. Best, Rob
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now