Jump to content


Popular Content

Showing most liked content since 05/15/2017 in all areas

  1. 3 points
    May I suggest that you work with this version going forward. It clarifies key field names, reorganizes the graph, and eliminates "portal" from any table or relationship names. The TO may be used in a portal. But labeling the TO as someThing_someThingPortal hides actual relational concepts. Test File DemoJOBR.fmp12
  2. 3 points
    Not sure in what form you need the results. Here's your file back with two global fields that contain a list of unique skus and the count of that field (set by script). DEMOv2.fmp12
  3. 3 points
    Let's all get along? It's been rare for our forums, but on occasions I have had to step in to keep the peace and harmony of the site. At times personalities clash - and the typed repsonses are often done in haste - and the sort of thing that wouldn't be said if we were all in same room together. I am encouraging everyone to re-read https://fmforums.com/guidelines/ our guidelines. Let's please keep threads on topic. - and not abuse the "reporting" system. Please be courteous of others and if you have offended someone please extend a sincere apology. The least thing I enjoy doing is to put people in 'timeout' or ban them from the site. Thank you.
  4. 3 points
    Aleesha, another thing which fits for you right now is making it easy on yourself in future to know specifically which table occurrences have Allow Creation turned on. It looks obvious here but as your solution grows, it won't always be obvious and we can forget as well. What many developers do is use the text tool to create reminders such as the A or a - if 'deletion' or S for sort.
  5. 3 points

    Version 1.0.0


    This technique was inspired by @Claus Lavendt in a tweet. Now with offset new card style mode you can now create a tool pallet to interact with a document in preview mode


  6. 2 points
    Hi Gilbert, There's a tiny box when you double-click the script step (Perform Script on Server) called "optional script parameters": That is where you need to enter your parameter. It could be a variable ($variable) or just text in quotes. Don't forget that you can't debug on the server, so you'll want to add error trapping very often and send yourself a mail if something can fail. Also, you might want to Exit the server script with a parameter, if you need to pass it back to your original script: Exit Script (parameter). And in your original script then you'll have to get that parameter back by: Get (ScriptResult). Hope this helps, Agi
  7. 2 points
    You took the words right out of my mouth, Tom. Unfortunately, I hadn't had the time to follow this thread as I'd liked. Wim explains it very well below, link here https://community.filemaker.com/thread/149215?start=0&tstart=0 (although the entire thread is well worth the study). OneStop, you're lucky to have such great assistance. This is why I still ask questions here as well. :-) My apology for not reading the entire thread so I'll only suggest that using Perform Script on Server is lightening fast if you can use it. I'm still blown away at the speed differences. Agnes, you've been quite helpful and respectful throughout. This forum is lucky to have you assisting.
  8. 2 points
    With the advent of a new Fiscal Year for the FileMaker Developer Community, we will experience five emerging trends in FileMaker Information Security. Each of these will likely have specific impact on developers, on our clients, on the Platform, and on the larger business environment in which we operate. Cumulatively and symbiotically, the magnified impact of the five will have the potential to alter many long-standing practices and conventions. What are these five trends? How will they impact the developer community? Read more and download article here: https://fmforums.com/files/file/94-five-emerging-trends-to-impact-filemaker-platform-security/ Steven H. Blackwell
  9. 2 points
    I'm not sure which topic this belongs in but... I really just wanted to let everyone on these forums know how thankful I am for your support, advice and guidance. Over the past few years as my small business has grown into a bigger business I've needed filemaker to do more advanced things and as I am not a developer and simply a business owner, I've turned to these forums and to you all and I couldn't have built my database without your help. From the bottom of my heart thank you so much!! Matt
  10. 2 points
    Not quite. OneStop, you'll need to search for *-
  11. 2 points
    I don't understand the question. It seems to me like you've already identified what needs to be done. I would recommend breaking it down and getting one portion working at a time, doing whatever research/experimenting you need to figure out each step. If you searched through the help file, I think you'd find you can piece this together. For your first step "Open Find" for example, you might want to read this: https://fmhelp.filemaker.com/help/16/fmp/en/#page/FMP_Help%2Ffind-request.html. The reference section of the help is useful for exploring what script steps are available: https://fmhelp.filemaker.com/help/16/fmp/en/#page/FMP_Help%2Fscript-steps-category.html%23 Here is some more general help on writing a script: https://fmhelp.filemaker.com/help/16/fmp/en/#page/FMP_Help%2Fscripts.html%23
  12. 2 points
    I think you want to use a Loop Script. http://www.filemaker.com/help/15/fmp/en/#page/FMP_Help%2Floop.html%23wwconnect_header # Do a find to Isolate Records to be changed # This will replace field contents with nothing. # Go to Record/Request/Page [ First ] # Loop # Set Field [zz_DeleteWarning__lxn ; "" ] Go to Record/Request/Page [ Next ; Exit after last: On ] # End Loop Lee
  13. 2 points
    Hi riadh2002 Thanks fo posting this mod. I love it, when someone can extend on what I start. Really glad that my tool seems to have been helpful to you and others. In case someone has only had their hands on the first version, I released, the most recent version of the tool, let's you both import, "make FM ready" SVG - but the most useful feature of the newest version, is that you can take a found set, press the button to "copy" all found icons and paste them into your solution all at once. So say you have a standard collection of SVG icons, that you normally want to use. Find these icons in the tool. Copy them. And then you use the paste shortcut, which will insert a button bar object, that you can delete immediately after you pasted it. Now, all your icons appear in the tools palette of your file. Newest version can be found here: http://thebrainbasket.com/?p=404 (completely free and open)
  14. 2 points
    For anyone who have pale icons in filemaker after importing here is how to change the colour to red Many thanks to Claus Lavendt, of DataMani for providing the tool for free Using SVG icon Helper, can be downloaded here for free: http://www.filemakervideos.com/filemaker-14-svg-icon-helper-tool-filemaker-14-training/ And this code takes into account all shape elements of SVG such as circle, rectangle, polygon,,,etc. and Works Great with IonIcons.com Library It removes existing fills and fm_fill class and substitutes with new values so it works with SVG with or without fill attribute. You can also change the color at the top of the code 1. Open SVG icon Helper FM database and open Script Workspace 2. Go to Script “Edit SVG files - mini icons….” 3. Go to the comment “#make changes” 4. Open the Set variable script step just below 5. replace the existing code by the following: 6. save and go back to the main layout and click the button with the blue pen, select folder and validate You’re done :-), now you can re import the icons into filemaker Let ( [ ~content = $content; ~color = "#FF0000"; // We need to search for all existing fills and remove them ~content=If ( PatternCount ( ~content ; "fill=\"" ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "fill=\"" ; 1 ; 1 ) ; 14 ) ; "" ) ; ~content ); // We need to search for all existing fm_fill and remove them class=\"fm_fill\" ~content=If ( PatternCount ( ~content ; "class=\"fm_fill\"" ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "class=\"fm_fill\"" ; 1 ; 1 ) ; 15 ) ; "" ) ; ~content ); // Then add the fills in the appropriate positions covering all possible SVG elements //<path ~content=If (PatternCount ( ~content ; "<path " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<path " ; 1 ; 1 ) ; 6 ) ; "<path fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<rect ~content=If (PatternCount ( ~content ; "<rect " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<rect " ; 1 ; 1 ) ; 6 ) ; "<rect fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<circle ~content=If (PatternCount ( ~content ; "<circle " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<circle " ; 1 ; 1 ) ; 8 ) ; "<circle fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<ellipse ~content=If (PatternCount ( ~content ; "<ellipse " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<ellipse " ; 1 ; 1 ) ; 9 ) ; "<ellipse fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<line ~content=If (PatternCount ( ~content ; "<line " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<line " ; 1 ; 1 ) ; 6 ) ; "<line fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<polygon ~content=If (PatternCount ( ~content ; "<polygon " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<polygon " ; 1 ; 1 ) ; 9 ) ; "<polygon fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<polyline ~content=If (PatternCount ( ~content ; "<polyline " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<polyline " ; 1 ; 1 ) ; 10 ) ; "<polyline fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ); //<text ~content=If (PatternCount ( ~content ; "<text " ) > 0 ; Substitute ( ~content ; Middle ( ~content ; Position ( ~content ; "<text " ; 1 ; 1 ) ; 6 ) ; "<text fill=\""&~color&"\" class=\"fm_fill\" " ) ; ~content ) ]; ~content )
  15. 2 points
    There is a file called permittedlist.txt. It is located in the /Users/{username}/Library/Application Support/FileMaker/Shared folder. This Library folder is normally hidden. To view it, go to Finder and open the Go menu while holding down the option key. The option key allows you to select the Library folder. Drill down to this file, permittedlist.txt and delete it. Or, to be ultra-cautious, just rename it. Now, when you try to upload a database to FM Server, it will alert you to any SSL certificate issues. When you choose to connect anyway, it will generate a new permittedlist.txt and it will allow you to freshly enter your FM Server admin name and password and upload the file.
  16. 2 points
    I'll counter that. One of our standards is to always an explicit "Exit Script" and to explicitly pass an empty string "" when no real value needs to be passed out of the script. The main reason is that the Get(ScriptResult) will remember the last explicit returned result. If you don't use Exit Script in the sub script but expect Get(ScriptResult) to be empty because you didn't pass anything back then you may be surprised to see a value if a previous script did use Exist Script with a return.
  17. 2 points
    Just to let anyone know that may have the same issue, I have submitted this to 360works support and they replied that this is a confirmed bug and recommend to go back to ver 1.67 until a fix has been issued. -Sydney
  18. 2 points
    Come to think of it, that's not entirely true. Suppose you add a field that cannot be empty (such as ClientID) into the portal and give it an object name. You could then use the GetLayoutObjectAttribute() function to get the object's content - and hide the portal when it's empty.
  19. 2 points
    I don't think playing 20 questions is a good method to get to the bottom of this. No one can tell why something fails without being able to reproduce the problem on their own first. The proper way to present this would be to attach the two files - preferably reduced to the absolute minimum that still shows the problem. Without this, all we can do is generalize and/or guess. In general, I can think of two possible reasons why records will not be imported: 1. There are no records to import; 2. There are records to import, but they do not pass validation. Now for the guess part: First, I don't know what you mean by "the autocomplete box on import". I am going to guess it's actually the "Perform auto-enter options while importing" option. And I am going to guess further that one or more of your fields is defined to auto-enter a value and validated as Not empty, Validate always. And I am going to guess that the source file contains no data to import into this field.
  20. 2 points
    Apparently, the issue is fixed in FileMaker 16.0.2!
  21. 2 points
    Extra step: yes. Hassle: after a while it doesn't feel that way because that new Layout Object inspector brings so much goodness that you'll use it all the time anyway and it won' feel like a hassle to have to move over to it. It'll become a very natural flow of your layout design. But it definitely is a change and requires a bit of mental retraining and so there is a bit of 'who moved my cheese'. I certainly scoffed at it in the beginning, now I can think of all the bigger hassles I had to go through before having this.
  22. 2 points
    Not sure if "master list" = client cache. I've not heard that term. However, I've read that some are seeing bad data (outdated) because of cache! Several desperate posts on TechNet. https://community.filemaker.com/thread/168254 But good reviews here: https://blog.beezwax.net/2016/06/15/performance-optimizations-make-compelling-case-for-filemaker-15-upgrade/
  23. 2 points
    I doubt very much you need or want to do that. What would be the purpose of this? You will end up with several numbered Category fields. Numbered fields are a prime example of poor database structure. You won't be able to find a record by its category, unless you search all the fields. You won't be able to define a relationship matching on category. You won't be able to produce a report of records grouped by category. I suggest you either split the field into individual records in a related table or just substitute the > character with a carriage return, so that your field contains a list of the relevant categories (same as a checkbox field would).
  24. 2 points
    Not sure I follow entirely, but in your script, just before the "Show Custom Dialog" just do a Set Field [Examples::MASTER CODE ; "" ]
  25. 2 points
    OK - I did it myself. Over a couple weekends of spare time, I wrote a few dozen scripts that interface between Filemaker and the Amazon Marketplace Web Service API. Sad to say, this is non-trivial. Amazon's documentation is poor: there are a surprising number of mistakes, misspellings, and obsolete/outdated sections. The one bright spot is the Amazon MWS Scratchpad, which provides a direct sandbox to allow testing different calls. Most of the documentation and online help is aimed at PHP & Java & Python developers; it's not too difficult to map this into Filemaker land. I wrote scripts to gather my orders from Amazon Market Place, and to send confirmations to buyers. Like most API's, there are many gotcha's. Here's a few hints, mainly to save time for others in my position. 1) A simple Filemaker WebViewer is *not* going to work, unless you do screen-scrapes from the Amazon MWS Scratchpad. 2) I used cURL to communicate with Amazon Web Service via POST. The information to be POSTed is the Amazon parameter string (which includes the hashed signature). The Monkeybread Software Filemaker functions (www.mbsplugins.eu) are just the ticket. 3) The outgoing information must be signed with a SHA256 hash. Again, this is available in the Monkeybread software functions. Use MBS("Hash.SHA256HMAC"; g_AWS_Secret_Key; g_AWS_Text_to_Sign_With_NewLines_Replaced; 1) 4) Getting the correct SHA256 signature requires very strict observance of line-feeds ... carriage return / linefeeds in OS X and Filemaker will cause a bad signature. Before making the SHA256 hash, do a complete replace so as to generate only Unix-style line-feeds. Within the "canonical parameter list" there aren't any linefeeds (but there are linefeeds before that list) 5) The Amazon API demands ISO-8601 timestamps, based on UTC. Filemaker timestamps are not ISO-8601, but there are several custom functions to generate these. The Filemaker function, get(CurrentTimeUTCMilliseconds), is very useful, but its result must be converted into ISO-8601. Notice that Amazon UTC Timestamps have a trailing "Z" ... when I did not include this, the signatures failed. 6) The Amazon API must have url encoded strings (UTF-8). So the output from the SHA256 hash must be converted to URL encoding -- again, the Monkeybread software comes through (use MBS function Text.EncodeToURL) 7) The Amazon "canonical parameter list" must be in alphabetical order, and must include all of the items listed in the documentation. 8) Errors from Amazon throttling show up in the stock XML return, but check for other errors returned by the cURL debug response. At minimum, search through both responses by doing a filemaker PatternCount (g_returned_data; "ERROR") 9) When you're notified of a new Amazon order, you must make two (or more) cURL calls to Amazon MWS: 1) first, do cURL request to "list orders", which will return all the Amazon Order Numbers (and some other info) for each order since a given date/time. 2) Then, knowing an order number, you do another cURL to get all the details for a given order. Repeat this step for every new Amazon order number. Each of these calls requires your Amazon Seller_ID, Marketplace_ID, Developer_Account_Number,_Access_Key_ID, and your AWS_Secret_Key. Each also requires a SHA-256 hash of all this information along with the "canonical parameter list" If anyone wants my actual scripts, drop a note to me (At this moment, my scripts do the all-important /orders /list orders and /get order. I'm almost finished writing a /feeds filemaker API to send confirmations. I probably won't build scripts to manage inventory or subscriptions, but once you've built a framework for the scripts, it's not difficult to expand to more functionality) Best of luck all around, -Cliff Stoll
  26. 2 points
    For the most part people come to FM Forums seeking advice or assistance. If given a little thought, your topic can really engage the reader to want to assist you in finding the best answer or solution. Step 1: Choose Wisely! By first looking at the topical nature of the forums you can see there are many different forums that cover a wide range of discussions. By way of self-curating the site, try to choose a forum that covers the intent of your topic. We realize that some items cross boundaries and that is ok, just choose a forum that fits the spirit of your topic. If it's wrong a moderator will move it to a forum that best suits the conversation. Step 2: Titles, Names, & Tags Be terse but informative. With your topic title, encourage your reader to want to read your topic. Don't be needy or demanding with "please help" post titles. We realize you've hit a brick wall or may be very frustrated or have a demanding boss. But take a breath - it will be ok. Then compose a topic title that draws them in. Add a tag or two, they will appear next to the topic, it can just be a simple word or phrase that tags the post to some FileMaker-centric topic. Step 3: No Need for Apologies It is not necessary to start your post with an apology to the reader regarding where you are posting or your current understanding of a topic. We are pretty nice here and won't fault you for trying. Step 4: Prerequisite In order for your reader to provide the best response, make sure your profile has been updated with the platform and version of FileMaker that you are using. Otherwise we will assume you are using the most current versions, and the advice given may not work in older versions. If your post is specific to a version / platform / deployment please inform the reader — we don't necessarily need your computer specs, just enough background so that the reader can envision your environment. Step 5: Goals Stating your desired goals, and what you are attempting to achieve in a simple statement will aid the reader as they read further in to the details of your conversation. Step 6: What have you tried? Outline your process and steps you have taken, to get to you the point you are at. It doesn't have to be overly verbose, an essay isn't necessary. Step 7: Format for Emphasis Use the WYSIWYG editor to format text as needed to provide details. You can reference generic terms such as table::field or use your own nomenclature but if the context dictates provide the reader clarity what things may mean if they would not be apparent to someone outside your organization, or industry. this is code from a calculation bullets lists Step 8: Pictures & Sample Files Admit it, you know you miss Show & Tell from kindergarten. Re-live a past life by providing a screen image of your solution. Provide the reader information and context. Use third party tools to draw arrows on your image if needed. Can you send a clone of your solution? - If you do please make sure confidential data is removed, and your boss says it is ok. If you are modifying a commercial version of software that you have purchased — we request that you not do post a clone of these files; as that would be most likely against your terms of service. In that case you can make and post a sample file that recreates the issue you are having. Step 9: Cross Posting There are other venues on the internet that discuss FileMaker and many of our users are active participants of these resources. If you have already posted your question or topic on another site please copy the link and mention that your topic is a cross post this way others will know and may choose to review the threads and offer alternatives or not repeat a reply in both places. If you received your answer please report back here with a link to the response so that we all have a sense of closure. Step 10: A Sense of Humor Keep your sense of humor, and don't forget to smile. The site is visited by members of all skill levels, many are full time developers and consultants and generously volunteer their time and energy to the site. When the occasion calls for it give them your gratitude . A little levity never hurts. Also keep in mind that American English is not everyone's native language -- some things may not translate. If English is not your first language, just do your best. We really appreciate this! It gives us a little spring in our step.
  27. 2 points
    Here's one way. RowCalc.fp7.zip
  28. 1 point
    Hi beckham, This need comes up from time to time. Here is a recent thread that may help. https://fmforums.com/topic/99647-category-and-sub-category/#comment-453607 I linked to example files to this link. Let us know if this isn't what you meant. Lee
  29. 1 point
    1. You can add a script trigger to field where you add a new line. Have it set the global fields to the values that connect the relationship the way you want. It may take some playing around with the different functions to get the IDs of the records you need. 2. Add an auto-enter timestamp field to the related table. Sort the portal on that field, descending order.
  30. 1 point
    OK, I fixed it, and the process might be interesting. Here's the original calc. Case ( dev.IsSet ( c_score_cache ) ; math.Fractile ( c_score_cache ; List ( prsn_PRSN~cross::c_score_cache ) ; 7 ) ; dev.Nil ) I started unwrapping the custom functions. `dev.IsSet` is just `not IsEmpty` and `dev.Nil is an empty string. Here's `math.Fractile`: // math.Fractile ( _value ; _list ; _pieces ) // Purpose: Return which fraction of a list of numbers the value appears in. // Parameters: _value: The value to get the fractile of // _list: The list of value the value is found within // _pieces: How many pieces to break the list into // Requirements: list.ValuePosition // math.RoundUpTo // Version: 1.0 - Charles Ross - 17-12-10 // Notes: Fractile is my own term for percentail or septile where the number of pieces determined by a parameter. // Percentiles can be computing by passing 100 to `_pieces` for example, and septiles by passing 7. Let ( [ _list = SortValues ( _list ; 2 ) ; _pos = list.ValuePosition ( _value ; _list ; 1 ) ; _count = ValueCount ( _list ) ; _fraction = _pos / _count ] ; math.RoundUpTo ( _fraction ; 1 / _pieces ) * _pieces ) I was mistaken earlier when I said there were no recursive functions being called. `list.ValuePosition` is, so for the time being I left that in. Unwrapping the three custom functions in the original calculation: Case ( not IsEmpty ( c_score_cache ) ; Let ( [ _list = SortValues ( List ( prsn_PRSN~cross::c_score_cache ) ; 2 ) ; _pos = list.ValuePosition ( c_score_cache ; _list ; 1 ) ; _count = ValueCount ( _list ) ; _fraction = _pos / _count ] ; math.RoundUpTo ( _fraction ; 1 / _pieces ) * _pieces ) ; "" ) At this point, the behavior was the same. So I unwrapped `math.RoundUpTo`. That function is: // math.RoundUpTo ( _number; _precision ) // Purpose: Rounds the number up to the nearest multiple of the precision. // Parameters: _number: The number to round. // _precision: The multiple to round to. // Version: 1.0 - Mikhail Edoshin - 06-01-01 // Notes: http://web.archive.org/web/20100122090742/ // http://edoshin.skeletonkey.com/2006/01/rounding_to_a_g.html // To round time use a precision that is the number of seconds you want to round to, for // example, a precision of 300 would round to the nearest 15 minutes. // To round currency to the nearest quarter, use a precision of 0.25. // Example: ( math.RoundUpTo ( 5 ; 2 ) = 2 ) // and ( math.RoundUpTo ( Time ( 1 ; 23 ; 45 ) ; 15 * 60 ) = Time ( 1 ; 30 ; 0 ) ) Ceiling ( _number / _precision ) * _precision Unwrapping that in the calculation brings us (with the addition of parentheses where necessary to preserve the original) to: Case ( not IsEmpty ( c_score_cache ) ; Let ( [ _list = SortValues ( List ( prsn_PRSN~cross::c_score_cache ) ; 2 ) ; _pos = list.ValuePosition ( c_score_cache ; _list ; 1 ) ; _count = ValueCount ( _list ) ; _fraction = _pos / _count ] ; ( Ceiling ( _fraction / ( 1 / 7 ) ) * ( 1 / 7 ) * 7 ) ) ; "" ) Again, at this point, the behavior hasn't changed. But that straight substitution above isn't necessary. Outside the `Ceiling` call we're multiplying by 1/7 and then by 7. That's redundant. Case ( not IsEmpty ( c_score_cache ) ; Let ( [ _list = SortValues ( List ( prsn_PRSN~cross::c_score_cache ) ; 2 ) ; _pos = list.ValuePosition ( c_score_cache ; _list ; 1 ) ; _count = ValueCount ( _list ) ; _fraction = _pos / _count ] ; Ceiling ( _fraction / ( 1 / 7 ) ) ) ; "" ) At this point, it works. So my guess here is that at the end, even though everything said the field stored the value 5, it was actually something like 4.99999999... because of the division and multiplication by a number whose reciprocal wasn't easily represented in binary, or, in math ( 1 / 7 ) * 7 = 1, in FileMaker, not exactly. When I asked for the value at index 4.9999... it truncated it and gave me the value at index 4. If the client had asked for octiles instead, with 1/8 exactly representable in binary, it probably wouldn't have been a problem. I went back to the original calculation's form, but edited the math.Fractile function to round to the nearest integer before returning the result.
  31. 1 point
    Well, then it's time to learn about relational database structure. I recommend the FileMaker Training series or read about it on Google. Different entities should be stored in different tables. A SKU is different from the actual product sold. You can sell more of the same product under the same SKU correct? And PRODUCT is different from SALES. So as a minimum you should have 3 tables in your system. Otherwise you basically just have an Excel sheet.
  32. 1 point
    Oh OK, right well I've updated again. Had to just create a new Value list that shows the correct staff. You can see it in the list of Value Lists. I also renamed all the table occurrences in the graph using standard anchor-buoy naming conventions so they weren't all called Office 2, Staff 2 etc. Assets.fmp12
  33. 1 point
  34. 1 point
    You don't provide much context about what you expect to happen. Just based on looking at your file, I'm curious as to why you chose this path of 2 relationships to dashboard via a 'Constant' (1). This is more of an outdated approach as now you can use the Cartesian relationship to do the same thing. I guess your goal is to display what is due for retest and what is about to expire on your dashboard? It might be easier just to ditch all the relationship hoops and use 2 self join relationships with filtered portals. As a side note, you may want a rolling expirations/retest dates, so on the last day of the month you know what's happening tomorrow. Modified file Retest_ExpiryModSM.fmp12 Edit: I see doug posted the same time as me :)...2 different approaches.
  35. 1 point
    That is fine. And, as you have it, one Tenant can be 'paying' for, or be responsible for, one or multiple Property Listings. I would suggest that what you consider 'Rent History' should actually be a join table between Property and Tenant. Join Property_IDFK from Property to RentHistory. Then join Tenant_IDFK over to Tenant. This allows more flexibility, such as a Tenant leaving then coming back and it allows one Tenant to be responsible for multiple Properties etc.
  36. 1 point
    (This has been reported to FMI with no response thus far.) Filemaker 16 FMPA & Server Mac client, PC server Scenario: I have a client's "MASTER" file HOSTED on an FMS at a hosting company. I have a copy of that "MASTER" file on a development FMS at my office. After that copy was made I added a script to both MASTER files. (wrote it on one, copy/paste to the other) I have a LOCAL file that calls that script in the MASTER file. In my LOCAL file I set up the External File Reference to the MASTER file on the hosted FMS. I set up the script in the LOCAL file to call the MASTER file script on the hosted FMS. All is well. I then change the External File Reference to the MASTER file on my development server. Now when I look at the script in the LOCAL file I would expect one of two things: the Perform Script step to the script on the MASTER file would either: 1. still be connected to the correct script or (more likely) 2. show <unknown> for the name of the script it is looking to call. BUT INSTEAD the call is linking to an entirely different script. It has a different script in the Perform script call - one that has nothing to do with the process. Clearly this is a dangerous bug. I can (probably) solve the issue for me in this one case by grabbing a copy of the client's MASTER file to my DEV server then relinking the external script call. At that point the call should "stick". BUT this is a potential data-damaging bug that could crop up in any similar client/development environment. Mark
  37. 1 point
    If I understand your question correctly, you need to import your records (to a new table) multiple times, each time importing the title and one of unique combinations of size, color and short.
  38. 1 point
    If you use this in a calculation, be sure to set the field Options > Storage Options to 'do not store calculation results'. Nice, Jeremy!
  39. 1 point
    I don't think there's a shorter way = Trim ( Substitute ( text ; ["A" ; " A" ] ; ["B" ; " B" ] ; ["C" ; " C" ] ; ["D" ; " D" ] ; // ... ["X" ; " X" ] ; ["Y" ; " Y" ] ; ["Z" ; " Z" ] ) ) Hopefully you don't have any accented or Greek capital letters.
  40. 1 point
    make a new Dates table occurrence and attach it to enrollment by the program ID from there you can create a drop down list once you choose the program you can select the corresponding dates. - however that wouldn't prevent users from picking dates that had already passed. Ideally instead of a drop down picker use a popup with a portal or a card window where you are presented a list of Dates sorted by Program and omitting past dates then when selecting it would set all the needed fields.
  41. 1 point
    It's true that XSLT is a world of its own. However, you only need a very limited knowledge of it in order to manipulate a Filemaker XML export into something useful. There used be some basic examples included with the application, but I see that's no longer true. Still, there are quite a few examples here on FM Forums you can use for learning.
  42. 1 point
    To display products grouped by their name, sort them by name and use a layout with a sub-summary part and no body part.
  43. 1 point
  44. 1 point
    OK I figured it out ... I had the interface file opened by default with an account, but I have set up the data file to asks for the login and password (when accessing from FM Pro). I have removed the auto-login for the interface file and now it works perfectly: one user can open two files now
  45. 1 point
    I think the 25 is list view only, LR. Also, I dare not mention the client cache.
  46. 1 point
    To clarify a couple of points: - When you're on a form view with no fields, no data is fetched. - If ONE field is present, then ALL data from THAT RECORD is fetched. I.e. ALL FIELDS from that record. The other big difference in form view is that you're only viewing ONE record. In table or list view you might be looking at many records. Check out server under the hood for more: https://youtu.be/VCrNP4VZiM4
  47. 1 point
    I wouldn't use drop-downs for this. You are better off using portals. (You just don't know it yet.) Drop-downs are useless for one, and get exhaustive for more than 10 records. When you assign a contact to an activity you want to stop their ID in the Activity::ID_contact (or fk_contact.) ID_pk is redundant because ID means the primary key. I recommend you cal the primary keys just simply "ID" in the table, and when you reference them in the child table (activity in this case) you call the foreign key ID_table (ID_COntact in your case). So if you just choose a contact from a value list (drop-down) you can't store their ID, you can only store their name (unless you show the second field, but scripting is nicer in my humble opinion). Sounds like you don't have a problem, rather you need to learn to develop in FM. Hence I recommended the training series. By the way, the ACTIVITY table comes after the project. So you can call the activity PROJECT_ACTIVITY if that helps. That assumes you can have many activities for one single project. And all those activities will have one leader running the activity. And then you can add other people who are volunteers. So, again, start simple and build your way up. Learn to add a contact to an activity. Read my post above again. Once you hacked this you can move onto the other tasks. Also, identify your tasks clearly and put them in order of importance.
  48. 1 point
    Hi Cable, The FM Forums is not part of FileMaker Inc., and no one here works for FileMaker Inc. Our members are all volunteers donating their time, knowledge and skills to help other members overcome things they run across when developing files. To continue to express your frustration to us about this change isn't going to accomplish anything. You need to take this up with FileMaker Inc. Lee
  49. 1 point
    This question does come up from time to time. This likely cannot be done natively within FIleMaker Pro, at least in a reasonable fashion. IOW, there is no Get(CurrentAccountNamesConnected) function. This matter has been raised with FMI. Some people have tried setting up a user's table whereby the name of a user is entered at log-on and removed at log-off. But if the user exits by some unanticipated fashion, the name remains in the table. In Server 10, it might be possible to run a server side script to use the command to query the Admin Tool for a list of users and populate the table that way. Maybe once a minute? That seems a major production however. Steven
  50. 1 point
    Rockin, dude. That gave me the direction I needed. I was trying to access an event without telling which calendar it should be looking in. I was able to combine your "select calendar" code into one line by changing it to "set theEvent to item 1 of (every event of theCalNum whose uid is theUID)" --- bingo! Happy code. -- GET or MAKE new calendar # if need be set allCalendarTitles to the title of every calendar if allCalendarTitles contains theCalendarTitle then set theCalNum to (first calendar whose title is theCalendarTitle) else set theCalNum to (make calendar at end of calendars with properties {title:theCalendarTitle}) end if -- find and select or make event if exists theUID then set theEvent to item 1 of (every event of theCalNum whose id is theUID) --delete (every event of theCalNum whose uid is theUID) else set theEvent to make event at end of events of theCalNum end if I also tried both "id" and "uid" for iCal references --- Leopard iCal works with both. Rumor has it Tiger and before only likes "uid" -- but I haven't tried it. I'm going to stick with "uid" since all versions of OSX seem to like it. I may post the rest of my code when it's completed...if anyone is interested that is. Thanks, Fenton!
This leaderboard is set to Los Angeles/GMT-08:00

Important Information

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