October 4, 200223 yr Anybody has an idea as to how to do that when you have thousands of records showing? I have been using a global field to which I Copy All Records' IDs, but I started getting the "Sorry, this operation could not be completed because you have reached text block limits." I guess this means I've hit the 65,000 chars ceiling of the text global field. Any alternatives? Thanks people.
October 4, 200223 yr Couple of ways. Create a text field and a script that puts, say, an "x" in the field in all found records. Then later you can do a find for the "x" in that field. or... Create a related file, choose a name for the found set and have the related file create related records containing the name in a separate field. Then in the main file do a find for all records with that name in the related field. This way, you can save multiple found sets.
October 4, 200223 yr Flagging fields in a multi-user solution can create problems if several users are doing it at the same time. An improvement is to do the following. 1. Create a global field gSessionID and set its value to something unique like: Status(CurrentDate)&"-"&Status(CurrentTime)&"-"&Status(CurrentUser)&"-"&Int(Random*10000) 2. To flag the found set, do a replace on the flag field with this formula: Flag = Flag & "
October 4, 200223 yr RE: Flagging fields in a multi-user solution can create problems if several users are doing it at the same time. An improvement is to do the following. Not in Global fields. If you put the number of record into global fields, you can then retrieve it again.
October 4, 200223 yr The Flag field is not a global it's just a regular text field that has a session ID appended to it to tell if the record belongs to someone's found set. If Joe has a session ID of 7/6/2002-11:15:34-Joe-388, and Fred has a session ID of 7/6/2002-12:01:23-Fred-2938, then If a record's flag field contains: 7/6/2002-12:01:23-Fred-2938 7/6/2002-11:15:34-Joe-388 then the record belongs to both users' found set. If it contains: 7/6/2002-11:15:34-Joe-388 then the record belongs only to Joe's found set If it contains: 7/6/2002-12:01:23-Fred-2938 then the record belongs only to Fred's found set Rather than have a global that contains all records in a found set which can exceed the 64000 char limit, the flag fields will only contain about 30 characters per active user so there is no problem with the field hitting the limit. BTW, this method allows for a user to save more than one found set. Just create additional session ID's and flag the fields accordingly. Then search for the appropriate session ID to get back to the found set.
October 4, 200223 yr Assuming that you have a max recordID of say 5 digits, which allows for about 100,000 records. This will allow for about 11000 records in a single found set, assuming that ALL records need the full 5 digits for the recordID. Do you really need to save found set this large? Do you realize the performance hits when dealing with saving and restoring this size of a found set? I have found that when implementing this kind of functionality set a reasonable number (I like something about 2500 max) and if the result of a find is larger than this, just inform the user that the set cannot be saved and that they should refine thier criteria. I would bet that even 2500 is way too high for most solutions, as most user do not want or need to deal with this many records at one time.
October 5, 200223 yr I suggest that you check out a demo file which is available from John Mark Osbourne's site, which shows a very neat and efficient way of saving found sets and restoring them. The file is still available on his site at the URL: http://www.filemakerpros.com/Save_Found_Set.zip The method demonstrated is reltively simple, does not involve record marking, allows saving of an unlimited number of found sets and works in either multi-user or single user mode.
October 5, 200223 yr A cursory examination of Osborne's solution seems to be very similar to my second alternative above. Great minds DO think alike!
October 5, 200223 yr Yes. Although you'd referred to the approach in broad terms, I thought the example file would make it easier for alexliz to bring the technique into focus. I guess that when it all boils down, though, the question is which of the solutions suggested will enable 'alexliz' to circumvent the 64,000 character limit which is confounding her present system. As a best case scenario, saving found set key fields to a single field using serial numbers to identify the records (because they are shorter than recordIDs, which are non-contiguous and rapidly increment to eight digits) it should be possible to save found sets of up to around ten thousand records. It is not clear from the original post whether the requirement is for saved sets which exceed these limits, but if so, some variation on the the method Bob proposed may be necessary.
Create an account or sign in to comment