Jump to content
Sign in to follow this  
owangolama

Obtaining looked-up data based on a list stored in a field

Recommended Posts

Here is my situation.

I have a 25x25 grid - let's call it a map. Think of it like a game board, like Battleship or perhaps an Excel spreadsheet.

I have a 9x9 view of this grid since it is not possible for a phone user to practically view 25x25, but 9x9 seems to work fine.

And I have the concept of Current_Location on the map, which is dynamic and changes based on other factors.

In TABLE1 I have records of all the "cells"  in the 25x25 map that hold information about the cell (for example, the color of the cell). There is other information stored here that includes, for example, whether you can "see" other cells from this particular location in the grid. So in the record for, say, cell B5, I have a field that houses a return-delimited list of the other cells that can be "seen" from this cell (B5 in this instance).

Another table, TABLE2 has records that are also have a field for Current_Location, and it tells me which cells (of the 25x25 grid) should be displayed in the 9x9 grid. Usually, the Current_Location is the middle cell in the 9x9 grid, but if the Current_Location is on the edge of the 25x25 grid, then the 9x9 view is adjusted accordingly and the Current_Location is shown on the edge of the 9x9 grid. The user can also change their orientation so they can view the map from a different direction. The way I store this information is in a field that simply lists (return-delimited) all the cell that should be shown in the 9x9 grid. So in our previous example of B5, the record for B5 has a field called Grid that is a list of the 81 cells that should be shown in the 9x9 grid.

For other reasons, I cannot combine these two tables even though they both are based on the concept of relating information to Current_Location. TABLE1 is actually not as simple as described, but I'm trying to limit the scope of my question.

So here is my question: I have 81 (sigh) objects on my layout for this 9x9 grid. I need to access information in TABLE1 for each of the cells that are represented in the 9x9 grid.

For example, let's again assume that my Current_Location is B5 and by using TABLE2 I know the names of all the cells shown in the 9x9 grid (they are stored in a list in a field in TABLE2). How do I then get information about each of those 81 cells out of TABLE1. I.e., each of the 81 cells should be colored according to information in TABLE1.

So, for the top-left cell in the 9x9 grid (which appears as the FIRST item in the list field in TABLE2), I need to be able to look up the color in TABLE1, and use it to drive Conditional Formatting of the cell. So if Color(B5)=3, then make the background color of the cell green. I can grab the cell name, and could easily write a script to figure out the color, but I need to *look up* the color to use it in Conditional Formatting.

I was trying to generate another field somehow that was an analogous list of 81 items that showed the color of each of the 81 cells (in the correct order), but 1) I couldn't figure out how to do that without running a script (which would take too long since these things are changing frequently and I really just need a data lookup); and 2) I think there must be a much cleverer way. I am still very new to join tables, but I think the answer is in that arena somewhere. The other idea I had was trying to write a Custom Function since I can easily grab the name of the cell, B5. But I don't know how to create such a function since it needs to access a particular table and it seems like functions don't really work that way.

Thanks in advance for any help!!

Share this post


Link to post
Share on other sites

Why not create a layout with 9 button bars, each 9 buttons (to accommodate your 9x9 grid) and drive the values with a json variable? Json is essentially an array and you can create your 9x9 grid quite easily (without using a table). A button bar has the advantages that you can calculate the value it shows on the button (normal buttons can't though there are workarounds), and you can drive the conditional formatting easily through the json variable.

The json variable should have 81 subarrays, which can then each hold various properties, such as colour.

Share this post


Link to post
Share on other sites

This quite confusing and very difficult to follow. I picked these three sentences:

Quote

TABLE2 has records that are also have a field for Current_Location, and it tells me which cells (of the 25x25 grid) should be displayed in the 9x9 grid. 

The way I store this information is in a field that simply lists (return-delimited) all the cell that should be shown in the 9x9 grid.

How do I then get information about each of those 81 cells out of TABLE1.

Let's say you have a field in Table B that holds a return-delimited list of names. And that there is a Name field in Table A. If you define a relationship matching on these two fields, then the record in Table B will see all the records in table A whose name appears in the list as related - and can get their information. For example, a calculation of:

List ( Table A::Color )

would return a return-delimited list of 81 colors. How to use such list is another question and I am afraid I did not understand your description well enough to provide an answer.

--
P.S. I am not sure what is your overall purpose here, and I suspect there may be a better way to approach this.

 

Share this post


Link to post
Share on other sites

Going back to the beginning:

3 hours ago, owangolama said:

I have a 25x25 grid - let's call it a map. Think of it like a game board, like Battleship or perhaps an Excel spreadsheet.

I have a 9x9 view of this grid since it is not possible for a phone user to practically view 25x25, but 9x9 seems to work fine.

Have a look at the attached file, where I use a 5x5 window to look at a 16x16  grid. I don't think can it get any simpler than that. 

Another option would be to use 5 portals of 5 rows each, arranged side-by-side to form a grid, and filtered to show the corresponding records from the large grid. 

SmallWindowToLargeGrid.fmp12

Share this post


Link to post
Share on other sites

Thanks to all for the comments/thoughts - I will have a look at these and see if I can make them work. I found a solution that uses ExecuteSQL that seems to be helping a lot.

Share this post


Link to post
Share on other sites

Thanks again for posting those files. They are similar (though more refined) than a layer I am using in my solution, so they will help since I can improve that particular layer.

I have still ended up using ExecuteSQL for some of the other functionality of the grid. I think it might be possible to simplify my solution further and perhaps do away with ExecuteSQL, but I'm not sure yet.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By alanf
      I have a table named Sales with the following data:
      ----------
      ID
      DATE
      UNITS
      -----------
      Based on Sample data below, i am trying to query the table by creating a relationship to find the ID that achieved a specified Unit amount on the earliest date.
      In other words, and for example, which ID achieved a specified Unit amount first (earliest date)
      Specified Unit Amt of 5 = 1 Expected records returned result
      301 10/13/2018 6.5 Specified Unit Amt of 2 = 2 Expected records returned result
      766 10/03/2018 2 360 10/03/2018 2  
      I think a selfjoin may be required.  Any thoughts appreciated!
       
      Thanks
      Alan
       
      SAMPLE DATA
                                         ID                          DATE                                     UNITS
      301 10/15/2018 9 301 10/14/2018 8.5 301 10/13/2018 6.5 360 10/14/2018 5.5 305 10/15/2018 5.5 301 10/12/2018 4.5 656 10/13/2018 4.5 360 10/13/2018 4.5 305 10/14/2018 4.5 611 10/14/2018 4.5 305 10/13/2018 4 15 10/13/2018 4 301 10/11/2018 3.5 360 10/12/2018 3.5 611 10/13/2018 3.5 301 10/09/2018 3 15 10/11/2018 3 656 10/12/2018 3 611 10/12/2018 3 200 10/14/2018 3 301 10/06/2018 2.5 611 10/09/2018 2.5 200 10/13/2018 2.5 766 10/03/2018 2 360 10/03/2018 2 785 10/05/2018 2 301 10/05/2018 2 611 10/05/2018 2 439 10/10/2018 2 656 10/11/2018 2 510 10/15/2018 2 360 10/01/2018 1.5 510 10/04/2018 1.5 611 10/04/2018 1.5 305 10/05/2018 1.5 200 10/08/2018 1.5 656 10/09/2018 1.5 785 10/02/2018 1 766 10/02/2018 1 305 10/03/2018 1 439 10/03/2018 1 15 10/04/2018 1 301 10/04/2018 1 200 10/07/2018 1 656 10/08/2018 1 766 10/01/2018 0.5 510 10/01/2018 0.5 611 10/01/2018 0.5 200 10/06/2018 0.5
    • By Richard Carlton
      Summer is over and our weekly FileMaker webinars are back! 

      Our first one is this Thursday at 11am PDT, on “Relationships for Beginners”. 

      Register Here: 
      https://attendee.gotowebinar.com/register/6892433068111504642 

      We will spend 30 minutes covering a specific topic. Then the last 30 minutes will be an open Q&A on any topic.

      Topic List:
      Sept 13th: Relationships for Beginners
      Sept 20th: Find Records, Date Ranges, and Special Operators
      Sept 27th: Conditional Formatting (Can I making something Red?)
      Oct 4th: Automation (Repetitive Tasks can become Scripts)
      Oct 11th: Reporting & SubSummaries
      Oct 18th: Merge Fields and Hiding Objects (Harry Potter Invisibility Cloak)
      Oct 25th: Sharing your FileMaker App with Co-Workers
      Nov 1st: Basic Concepts for Building Mobile Apps


      All the best, 
      Richard Carlton 
      CEO & Video Trainer
    • By LabMole
      Hello All. 
      Just dipping my toes into FM and finding it opens many possibilities. Still must learn a lot to be proficient, so TIA for help.
      Background: I sign out molecular diagnostic cases.
      We have a compendium of tests run in the laboratory (all the tests that can be ordered, run and reported out) A Test (type) can be run on many patients. A test (instance) has one patient and each test/report/result has a patient (one). Each patient can have >1 tests. There are a set number of reporting options per test  (TestA results can be Positive, Negative, Suspicious, etc (options are in a value list) Each report (ex: TestA/ReportPositiveHomozygous) has a specific text content (Table TestResults) (Pos/Neg, Report text, disclaimers, method, references) I seem to have figured out many of these relationships (I've attached my db)
      Where I'm stuck:
      1) I have not been able to create the relationship between the test result (tr_TestResult)  and the patient instance to link the result text to the patientTest instance (currently TOC Patient|TestResult).
      2) (not relationship related... rather a calculation problem): How to do the calculation so that TestOrdered:TestFinalized gets timestamped when TestOrdered:TestStatus is set to "Finalized".
       
      Thanks for the help!
       
      Molecular Reporting.fmp12
    • By Hproth
      I'm sure there is a simple solution to this problem, but I can't seem to figure it out!
      I have a custom app that allows the user to write letters amongst other things. 
      Each patient is linked to a GP and a Consultant, when writing a letter to a patient there is the option to CC both the linked GP and Consultant. However, occasionally another GP or Consultant might need to be CC'd in the letter (in addition to the ones already linked to the patient). So I would need the address of this additional consultant/GP to also be CC'd in the letter. For the life of me I can't work out a simple way to do this. 
      Does anyone have any suggestions?
      Thanks in advance.
       
    • By Stavie
      We have a complex MySQL and PHP; multi-tenanted application which we are now looking at syncing to an offline portable FileMaker model.
      I have essentially solved every problem thus far and have MirrorSync running properly.  
      My challenge is this:  Our main MySQL database works in tandem with a second MySQL database; the second database contains 25 million property records.
      The working set of data which needs to be synchronised is a small subset of data from the primary; and a single record from the secondary database into the mobile version of the application which consists of a single FileMaker file with identical tables to that of the primary mysql database and a table identical to that of that of the secondary.
      How do sync the two seperate databases in a single configuration?  Or is that even possible.  I could see that I could generate two seperate configurations; and perhaps split the mobile version into two seperate FileMaker files; i'm just wondering if there is a smarter way to go about what I need to achieve.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.