Jump to content


Popular Content

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

  1. 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.
  2. 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.
  3. 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


  4. 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)
  5. 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 )
  6. 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.
  7. 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.
  8. 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.
  9. 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.
  10. 2 points
    Apparently, the issue is fixed in FileMaker 16.0.2!
  11. 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
  12. 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.
  13. 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/
  14. 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).
  15. 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 ; "" ]
  16. 2 points
    Here's one way. RowCalc.fp7.zip
  17. 1 point
    Try the Middle() function: Middle ( full_ticket_number ; 3 ; Length ( full_ticket_number ) - 3 ) If all ticket numbers have the same length, you can shorten it to: Middle ( full_ticket_number ; 3 ; 13 )
  18. 1 point
    It should be include only related values, starting from Program. Note that you'll need to add a ProgramName field to the ProgramCompany table if you want to also show the name in the value list. Or add another occurrence of Program to the graph, and make it the source of the value list.
  19. 1 point
    Try Upper(TextSize(TextFont(TextColor(Left ( P1::TN1 ; 1 ); RGB( 0 ; 0 ;0 )); "font1" ) ; 12)) & Upper(TextSize(TextFont(TextColor(Middle ( P1::TN1 ; 2 ; Length(P1::TN1 )-1); RGB( 0 ; 0 ;0 )); "font2" ) ; 12))
  20. 1 point
    It may be less than obvious but the FIND requests should be BEFORE the OMIT requests. Each find and omit request is ADDITIVE/DEDUCTIVE, and multiple field entries in the same find request are COMPOUNDED together so that all entries must match. Your search procedure should go: Find Omit (if necessary) Constrain (if necessary) The constrain requirement can be used as part of the find request by specifying the field value, ergo [Type ≠ "Assessment"] In your specific example I don't see a need to use Omit or Constrain as you can get all 3 search criteria in a single find request. Any clearer?
  21. 1 point
    XSLT seems to me like it would probably be the fastest. Exporting the CSV to disc and importing can also be advantageous if your schema is already a convenient match for that or you're willing to adapt your schema for that. The built-in JSON functions have many virtues. Execution speed is not one of them. In every test I've run, GetValue on return-delimited lists leaves the built-in JSON functions in the dust. The MBS plug-in handles JSON differently in a way that makes it much faster (MBS does what I was hoping FileMaker would do with an in-memory data structure), if you're into plug-ins. If you like sticking with return-delimited lists, you can make the processing of a large list go faster by pruning the list as you go: Set Variable [ $value ; GetValue ( $list ; 1 ) ] Set Variable [ $list ; Replace ( $list ; 1 ; Length ( $value ) + 1 ; "" )] This makes the parsing of the whole list work in roughly O ( N^1.5 ) time, rather than O ( N^2 ).
  22. 1 point
    Ehhh, there is bot API and Telegram API: https://core.telegram.org/api what you really want is to make your own Telegram Messenger client inside FileMaker from what I read. I believe more than 90% of the knowledge you will need to apply was covered in Steve Winter's curl presentation at FM Dev Con 2017 Telegram Messenger is the snappiest IM I ever tried.
  23. 1 point
    In calculations, time fields are evaluated as seconds, so try = CallTime * CostPerMinute / 60 If the cost is given in cents rather than Euros, then of course divide by 6000 instead of 60 to get the price in Euros.
  24. 1 point
  25. 1 point
    Technically, it could be done. As Wim mentioned, performance is a major constraint. The JSON functions are slow compared to the built-in functions for return-delimited lists, and very slow compared to repeating variables.
  26. 1 point
    In theory: yes. The question will come down to whether the JSON building and parsing functions are faster or slower than the regular text functions I guess.
  27. 1 point
    I've just tested it with a clean database (see attached) and it works correctly on 16.0.2. So I'm assuming this was a bug specific to 16.0.1... FileMaker Server Bug.zip
  28. 1 point
    I am afraid now you have lost me again. I don't understand your description at all (what on earth is a "modal script"?). Extend Found Set is the opposite of Constrain Found Set: the former adds records to the found set, the latter removes records from the found set. More precisely, both operations combine the current found set with the results of the find operation: Constrain Found Set returns the intersection of the two sets, while Extend Found Set returns their union. Again speaking in general, you have the following options: If you know by which criteria those records were omitted, you can use the same criteria to find them and add them to the current found set (using Extend Found Set as explained); If you don't know, you can possibly find out by restoring all the requests of the last find (using Modify Last Find) and identifying the one of interest (perhaps it's the only one with the Omit box checked?); If - as you say - the previous find is scripted, use that script to remember the criteria; Open a new window before omitting the records and do whatever you need to do there; when you're done, close the window and return to the original found set as it was before the omit operation.
  29. 1 point
    I am afraid you have lost me at this point. This thread is about the ExecuteSQL() function, so I don't see what a portal has to do with this. The result specified in your post can be easily achieved using the following query: SELECT Invoice, MIN (UUID) FROM Sales GROUP BY Invoice as shown in the attached screenshot. And since you say you don't care about the UUID values, you could do simply: ExecuteSQL ("SELECT DISTINCT Invoice FROM Sales " ; "" ; "" ) and get the result of: 64320 64565 If you want something else, then you need to clarify - preferably in a new thread.
  30. 1 point
    What you have is two conflicting events that you handle without regard for each other. You want your OnButtonClick to done one thing but your OnLayoutExit does another thing. I have the sense that this is a simplified demo so it may not show exactly what you do in your actual solution. Events fire in a very particular order (see http://www.soliantconsulting.com/blog/2015/05/filemaker-14-script-triggers for a really good overview and sandbox file) and a script attached to an event that runs after your intended event can produce a totally unexpected result if not handled properly.
  31. 1 point
    You can redirect a user into a webd session with an html page with a little javascript like so... <form id="myForm" action="https://your_host_name/fmi/webd/YourFile" method="post"> <input type="hidden" name="user" value="yourUser" /> <input type="hidden" name="pwd" value="yourPwd" /> </form> <script type="text/javascript"> document.getElementById('myForm').submit(); </script> However, I would only use this to enable guest type access to a hosted file, and this is not really that secure, even if you have SSL enabled since the credentials are in the html. I have yet to find a way to redirect using POST, so for now, I would use with caution. Mike
  32. 1 point
    Only connections to the server count, not the connections to individual files.
  33. 1 point
    If you wish to add a new icon into your button or button bar setup using the '+', you may have noticed that it does not stick in a served file. When you close out and go back in, the new icon has again disappeared. One must unserve the file and add it locally. However, I just discovered that if you add the icon into a local button or button bar then copy the button bar and paste it into the served file, it appears for selection in other buttons in the served file and remains even if you then delete the pasted button bar back out. This has been useful, not only in adding new icons, but keeping a button bar with all icons is a quick way to add your favorites into any other file. Originally, I was keeping my svg files and inserting one at a time when I created a new file, LOL.
  34. 1 point
    Depending on which prerelease you got, it may have been the final version. But in case of reinstall, just move old FileMaker folder to trash (on Mac). on Windows, please use uninstaller.
  35. 1 point
    This one has a ton of examples and includes one to show a fully functional sortable table: http://www.soliantconsulting.com/blog/2016/12/web-viewer-integrations-library
  36. 1 point
    Hi guys, We apologize for the lack of response lately in these forums. As you can imagine, we are experiencing an extraordinarily high volume of support issues and have not had as much time to dedicate to the forums as we usually do. As always, if you are not able to get a response here, please send an email to support@360works.com to open an official support case or call our office. We are open Mon-Fri 10AM-6PM EST. We did push an update of our plugins to our website yesterday that addresses the 32-bit issue reported in this thread. Please download this version and if you continue to have issues, please send us an email or call.
  37. 1 point
    Interesting post about this on the FM Community site. This was apparently not an intentional behavior change. https://community.filemaker.com/message/671487#671487
  38. 1 point
    Hi Kalle, Just a few thoughts. The E-utility Web Service (SOAP) was terminated on July 1, 2015. See https://www.ncbi.nlm.nih.gov/books/NBK43082/?report=reader. The new syntax is provided here: https://www.ncbi.nlm.nih.gov/books/NBK25499/?report=reader#chapter4.Eutility_DTDs Please check this page regarding the NCBI migration to https on September 30, 2016: https://www.ncbi.nlm.nih.gov/home/develop/https-guidance/ If you are interested in fleshing out the complete xsl for FileMaker using the PubMed DTD, let me know. It's close to 3000 options and I've managed to write the main 500 or so. Best, Daniel
  39. 1 point
    Use Set Field[] if within a loop. Step through debugger to watch how this all works when you run it. You use Replace Field Contents[] when you want it to automatically run through all records. Why did I provide you with both? To confuse you, ROFLMAO! No, I provided all methods as a way for you to learn and choose the best for your situation. For instance, if this is an on-going need while Users are in the system, you would want to error trap using the looping method in case a User has one of those records locked and it didn't set. Using the loop also allows you to do other things at the same time to those records if you wish. The reason Replace Field Contents[] worked is because it did it all records and then moved to the next and again did it to all records - MAJOR overkill BIGLY. Use debugger and watch it working. So use either a loop OR Replace Field Contents. Replace Field Contents[] also throws an error but does so only at the end so you don't know WHICH record failed so it is never good to use RFC when Users are in the system.
  40. 1 point
    Hi Charity, I think I understand your question. FileMaker uses lazy loading ... it will not fetch records until it has a reason (fields or references are displayed which require records). Using a blank form view is very advantageous because a blank form view allows scripted actions on a table without first fetching a set of unasked for records. If during development you then switch to table view AND in table view you have fields selected for display then records are fetched at that switch. The same holds true if there is a tab control on a form and the default front tab lacks fields - no records are fetched but when you switch to a tab with fields, records are fetched. We provide blank layouts of most tables, sometimes place summaries and unstored calculations on second tab panel on the form or only specify fields in table view. Scripts run faster (be sure the default remains form view) but when a Developer wants to see the data from that context, they can switch to table view. FileMaker's lazy loading is a really good thing and they have improved it quite a bit since version 12. As for knowing when records are fetched, it requires expensive software from what I understand, which tracks packets. But if you understand the theory, you'll be good to go. If I misunderstood your questions, please explain a bit more. :-) Actually, I worry about it a lot and we do have control over it. When displaying any layout, it is important to know how many records (and from which relationships) will be pre-fetched since that determines speed of load, record scrolling speed, and redraw times which is particularly critical for iOS but in general still very important.
  41. 1 point
    I don't see an opinion in Josh's reply. so mine doesn't differ From the little I know from your description of your setup, I would think that the 2nd paragraph may apply.
  42. 1 point
    It will run but it will throw an error 3 (not supported) when your script comes to the line where you show a new Card window. You can trap for the error and branch around it and do something else if your user does not have 16. You can also specify 16 as the minimum version required to open the file, that's a setting in File Options.
  43. 1 point
    Why wonder, try it out. It's what the script step is for in the first place.
  44. 1 point
    I spent 8 of my 10 years developing on Windows. So I am familiar with the pain. It may just be a difference in development. I almost never have the user have more than one window open. Unless it's a temporary, comparison driven task, or a customized dialog style window. You open up a lot of record locking issues with so many windows open. Other than that, the I close windows as the user moves to something else. There are some versions of FM that are just a performance hog. If the windows the user has open are from multiple files, FM is obliged to update the cache files on the local machine for as long as they are open. So for any records that FM has touched, or thought about, or needed to calculate something, it was downloaded to the local cache. When another user updates a record you have downloaded to the cache, FMS sends that record to the local cache. That can become a very chatty network, indeed!! In addition to the performance impact. Just some thoughts. Not dismissing that it is a big change. But it is one that most users have been asking for, for a long, long time.
  45. 1 point
    Josh, I would guess that Adduartes issue is similar to my own. Until version 16 I have always run my database windows maximised under Microsoft Windows to avoid the mess that is two sets of window borders and,even worse, the database window half disappearing behind the application window. So the PC users are used to seeing only a single window at a time. Clearly 16 offers a whole new world of options for window management on PCs, but, initially, I would want to reproduce the former behaviour in 16 before assessing how to take best advantage of the new possibilities. One of my clients might end up with close to 20 full screen windows by the end of a day in 16 compared to a single visible window in 15. Hence my script for hiding all but the active window (I will also need to ensure that windows are lo longer maximised but adjusted to fit instead.) When I moved for PC to Mac a few years ago it took some time to get used to having so many more windows to deal with and at first it seemed very 'messy' to have so many windows and more difficult to locate the window I was looking for. My aim is to ensure the migration to FileMaker 16 is a easy as possible for users and then add any additional windows in a considered and controlled manner. Hopefully you can now understand the issues that SDI raises for some of us on PCs
  46. 1 point
    FileMaker's 'Open' command will work with Excel and text files -- converting them to FileMaker files in the process -- but not PDF. I believe you can fill in PDF forms using Scribe: 360works.com/filemaker-pdf-plugin/
  47. 1 point
    No. Try the Open URL[] script step to open a non-Filemaker file in its native application. I don't know of a way to do that natively from Filemaker. Perhaps with a plugin.
  48. 1 point
    FWIW, nothing in this list would take 5 minutes are less... so be a bit careful expressing things like this, you might not get the takers that you want.
  49. 1 point

    Version 1.0


    Here is an example of a modal transactional popover on *list view that I created when 13 first came out. It uses Get ( RecordOpenState ) to lock the popover in place if a change is being made, eliminating the need to set global variables or fields. I'm including a screen shot so those with older versions can see what is possible in 13. It can come in handy if on ipad since we can't open modal windows. You can provide this popover with more details but allow User to scroll the list. If they DO change data, only then does the popover freeze which then requires button to exit. And since there is transparent button over the popover, the user cannot commit the record until time to exit, which provides transactional control and revert for portals - all only when finished and a save is requested. * The number of records in list view should always be kept at minimum in any technique. If nothing else, and if you wish for a good laugh, go through the people in the list. They were people who applied for the 'ugliest person in the world' contest. The data is dummy data. I enjoyed putting it together and I hope others find it worthwhile and humorous as well. :-)


  50. 1 point
    I wouldn't say that. There are lots of things that repeating fields do that repeating variables don't. For example, List ( RepeatingField ) returns a list of values in all non-empty repetitions of the field. OTOH, List ( $repeatingVariable ) returns ... well, nothing particularly useful. In fact, there is nothing "repeating" about repeating variables: each repetition is a completely independent variable with nothing in common with the other repetitions except the first part of the variable name.
This leaderboard is set to Los Angeles/GMT-07:00

Important Information

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