We have reset all users FileMaker related profile fields. Please take the opportunity to update your information,  this will provide background to members whom read your posts. Click here.

Jump to content


Popular Content

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

  1. 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.
  2. 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/
  3. 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).
  4. 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 ; "" ]
  5. 2 points
    Here's one way. RowCalc.fp7.zip
  6. 1 point
    I don't really understand your description - esp. the part about "controlling the flow based on prior answers". In general, a solution that collects answers to questions (i.e. a survey) will have a table of Questions (where each question is a separate record), and a table of Responses (where each response is a record linked to the corresponding question). If you have multiple respondents, then you would have a table for them too - and each response would be linked to both a question and a respondent. There are variations on the theme, but this is the basic structure.
  7. 1 point
    When I open your file on my system, I see the actual value in A_NUM field as 1,1 not 1.1. Similarly, in B_NUM field in record #14 of Table_B I see the value of 1,1. A string containing a comma is not a number, unless your file is set to use comma as the decimal separator. Your file is set to always use the current system's setting - so the question is what is your OS using as the decimal separator. Added: I see that the file's settings are to use a comma as the decimal separator. I believe you have entered "1.1" into a number field on a system that requires a comma to be used as the decimal separator, and therefore the value is indexed as 11 ( same as any string value would be indexed using only digits, the minus sign and the decimal separator - see the attached demo). NumIndex.fmp12
  8. 1 point
    You have titled this as "quick portal filter question", but I don't see anything "quick" about it. The method you use (taken from here) relies on a list of all related values in order to remove the duplicates. If the relationship does not exclude non-active records, they too will be included in the list. You cannot use such list to filter only active records. The idea here is it pass a value only if it's the first time it appears in the list - but the first occurrence may have been a non-active record, so this becomes utterly unreliable. The simplest solution, IMHO, is to modify the relationship so that it only includes active records. Otherwise you would have to find an alternative way to produce the list - e.g. by a recursive custom function. Or devise a completely different method. None of these will be "quick".
  9. 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
  10. 1 point
    Cross-post with https://community.filemaker.com/thread/175457 (It's ok to cross-post but it is good form to indicate your post as such since a lot of the people on both forums are the same)
  11. 1 point
    I'm a big fan of the DDR; but here's another approach that would be faster for your purpose: Create a script and: use the design functions to get a list of fields on the current layout (set a variable to: FieldNames ( get( filename ) ; get(layoutname) )) Then set another variable to interrogate the hidden metatables: ExecuteSQL( "SELECT FieldName FROM FileMaker_Fields WHERE TableName = ?" ; "" ; "" ; get(layouttablename )) grab the AntiFilterValues custom function from www.briandunning.com set a 3rd variable to the AntiFilterValues of the first two variables and you will have a list of field names that belong to the table the layout is built on but are not on the layout This way the result is always accurate and you don't have to take the extra steps of generating the DDR.
  12. 1 point
    Only connections to the server count, not the connections to individual files.
  13. 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
  14. 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.
  15. 1 point
    That probably depends on their specific policies. One should note that FileMaker Server 16 can now generate PDF files, so one could probably do this in WebDirect using the "Perform Script on Server" command, and avoid needing a second "robot" user altogether.
  16. 1 point
    It appears that the method getLength() on a fmpro.getContainerStream object is no longer available - it does appear as getSize() If this is true this will be why I have been tearing my hair out most of the day trubleshooting some functions Please can 360works confirm if this is A: correct B: indicate if they would like to put the getLength() method back too, so that functions can be backwards compatible Try this fcs = fmpro.getContainerStream ( 'Globals::g_C' ) // the name of a container field //comment out each in different versions to see effect return fcs.getSize() //return fcs.getLength() john renfrew
  17. 1 point
    If you just want to "highlight" your search result, you could just add Conditional Formatting to your fields, so if they match what you entered in QuickFind they will be highlighted. Of course, then you want to replace QuiCkFind with a scripted QuickFind so you can temporarily store your search criteria. 360Works' Scribe plug-in also does highlighting text.
  18. 1 point
    This seems like a rewrite of your previous question: http://fmforums.com/topic/101657-help-find-and-highlight-field-data-with-quickfind/#comment-462727 Now, while you could use Perform Find/Replace (searching current record, all fields), the better solution would probably be to change your data structure so that the fields become individual records in a related table.
  19. 1 point
    I can't figure out what your question is. What is "a calculated list field"? And what exactly does "filtering by a calculated list field" mean? You speak of filtering portals, but then you say "My usual technique is to do by relationship" which makes no sense to me. Most often you filter a portal in order to avoid adding a relationship. Why don't you back up a bit and explain what you're trying to accomplish here, not how.
  20. 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.
  21. 1 point
    As an aside; look into using sparse image bundles when installing trial or pre-release software: http://blog.fosketts.net/2015/07/22/how-to-use-mac-os-x-sparse-bundle-disk-images/ cleanup is as simple as just throwing away the image if you don't need it anymore.
  22. 1 point
    I don't think that's a good starting point. You have tabular data - and the proper way to display tabular data in HTML is to use a HTML table. Here's the simplest code I could come up with to use in your web viewer: "data:text/html,<html><body><table border='1'><tr><td>" & ExecuteSQL ( "YOUR SQL QUERY GOES HERE" ; "</td><td>" ; "</td></tr><tr><td>" ) & "</td></tr></table></body></html>" Of course, that's just a beginning. You will probably want to add headers, style different columns by their data type, and so on. But it does solve the problem of variable-width columns.
  23. 1 point
    Yes. FileMaker parses the JSON for every single query. The MBS Plugin can parse once and than reuse the same structures in memory to query. So the plugin will always be magnitudes faster.
  24. 1 point
    In my tests the FM16 functions are about 10x slower than our plugin for large JSON blocks: http://www.mbs-plugins.com/archive/2017-05-23/JSON_Functions_MBS_vs_FM16/monkeybreadsoftware_blog_filemaker And FM16 does not handle data types well with JSON, all handled as text.
  25. 1 point
    Numbered RAIDs are obsolete. Do yourself a favour and read up on: O3X: https://openzfsonosx.org ) AFPS may work well for a workstation, for a server you will still benefit from running ZFS. I would say the correct setup is to move as much of your solution as possible to RAM. If you move your filmmaker files to the SSD RAID in essence you have moved them to RAM. The single most effective way to improve speed of any server service on a mac regardless of drive spec is to turn off spotlight; I see from your profile that you use Yosemite: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist According to this link: http://recomhub.com/blog/how-to-disable-or-enable-spotlight-in-mac-os-x-yosemite-mavericks-mountain-lion/
  26. 1 point
    What on earth are you talking about? ZFS( the mac implementation is called O3X: https://openzfsonosx.org ) gives an amazing performance boost if you use a good HBA( RAID card in JBOD mode ) I have RAIDZ2 running with 8x 500MB/sec drives in which gives me 2800MB/sec read and write. My guess is something like this would be nice: Areca ARC-8050T2 8-Bay Thunderbolt 20Gb/s SAS/SATA/SSD Drive RAID Storage Enclosure This one I have attached to an iMac: https://eshop.macsales.com/item/OWC/TB4MJB0GB/ as an o3x RAIDZ1 Well, that may go for the old numbered RAID systems 0, 1, 5, 6, 10, 55 and 66, but for the FS level RAIDs it's a different story. ZFS provides, ciphering, RAIDZn, compression, copy on write, snapshots and all kinds of good stuff. My guess is Apple has implemented some of this stuff as well in the APFS. For RAIDZ the number is how many drives can go down without loosing data.
  27. 1 point
    You're on the right track, but the problem here is that the script would trigger after you've already landed on the layout so the server would still have to download whatever records happened to be in the found set. You should create a simple layout that's based on a layout with zero (or very few) records. Set this layout as your startup layout. Attach this script to a button on that layout: Enter Find Mode Go to Layout[ invoice list] Set Field[ date ; Month ( Get ( CurrentDate ) ) & "/" & Year ( Get ( CurrentDate ) )] Perform Find You don't incur a penalty when you go to Find mode before you go to a layout. The server doesn't download data until you go back to Browse mode (after the Find).
  28. 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
  29. 1 point
    I'm not so worried about things like window names. The audit log approach I showed at Devcon relies on Code() calls on field names for instance and those will fail now. Many data collection routines where I use strings like Project Manager names, project names, as buckets for reporting will now fail too. Unless I take Ron's approach to use Evaluate() calls on Let() to set my variables. Played around with HexEncoode on Md5 Digests but even then only a portion of the string gets converted to a number and while it reduces to likelihood of generating the same number for similar strings it's still too close to be comfortable. Obviously with 16 my approach would be to use JSON or Arrays and not repeating vars but this not bode well for the upgrade process of many solutions.
  30. 1 point
    I am not sure what exactly you mean by that. Let us assume you already have the selected course's name (should really be an ID) in a variable. Then you can do: Go to Layout [ Students ] Enter Find Mode [ ] Set Field [ Enrollments::CourseName; $courseName ] Set Field [ Enrollments::Status; "Pass" ] Omit Record Duplicate Record/Request Set Field [ Enrollments::Status; "Transfer" ] Perform Find [ ] At this point, you will have a found set in the Students table of all students that did not pass (or transferred) successfully in the selected course. Now we'll just get those students' enrollments - all of them at first, then we'll keep only those of interest: If [ Get(FoundCount) ] Go to Related Record [ Show only related records; Match found set; From table: Enrollments ] Enter Find Mode [ ] Set Field [ Enrollments::CourseName; $courseName ] Constrain Found Set [ ] End If This may seem a bit convoluted, having to search for the course twice - but it requires no additions to the schema: neither relationships nor fields. I have used "Pass" and "Transfer" (instead of "win and "homologate", respectively) in the example code above.
  31. 1 point
    Hi LaRetta, I am excited as well, hijack anytime. I just finished that video. We are still on 14 also but I think we will move to 16 later this year because this sure seems like a great improvement. Thank you everyone. I always get very excited when I come here because I get such great ideas and help.
  32. 1 point
    Here is why I say 25 records in form view and unlimited in table/list view, both by Mark Richman: Design Performance in 14: https://community.filemaker.com/docs/DOC-4168 Page 15 says: In Form view, up to 25 records of data are moved from the server to the client when a user traverses a record. In List view or Table view, FileMaker moves all the records that are currently displayed in the window, which can easily exceed 40 or 50 records at a time, especially on larger displays. DevCon on 13, he said and I copied word for word: If you touch the record you own the record, the whole record, all fields download with exception of container fields. 25 at a time in form view and how many are seen in list or table view. Summary fields move data when displayed, unstored calcs and containers only download when you see the record ON THE SCREEN. All fields download – all fields back to server with a single-field change. Batches … pre-fetch stored in temp so scrolling feels local. However we've been working entirely in 14 and I've only played a bit in 15 but I've heard that 15 was much faster. This Jon Thatcher link provided by Tom hits the spot. I have yet to find where numbers of prefetch is discussed or different from prior but the use of this Master List (?) is intriguing so I suspect I need to review the principles! Thanks Barbara! If you find more about the issue, I'd love to learn it. I wanted to ask what you meant about client cache - is that the Master List stored on the User system? Top Call Logging is very exciting! Only downloading records which have changed is indeed a game changer on network traffic, right?
  33. 1 point
    I think the 25 is list view only, LR. Also, I dare not mention the client cache.
  34. 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
  35. 1 point
    However, Michael, one would think I'd have learned to ask for context so I could provide a specific answer instead of causing confusion by providing too many alternatives. If an on-going solution and if I knew the loop were the best choice, I would have provided error trapping as well. I appreciate you stepping in. Yes, well we can't name fields just with numbers but any time we see someone newer to FM naming several fields the same name, followed by a number, it usually indicates they are making the mistake outlined by Comment AND you called yourself Novice so we were protecting you. :-)
  36. 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.
  37. 1 point
    I neglected to answer this portion of your question. Downloading from server and fetching are same thing.
  38. 1 point
    Or any of the scripts in the closed folders.
  39. 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.
  40. 1 point
    Hi Charity FileMaker fetches data as it needs it, and it's beyond the scope of most developers to understand how the internal database engine works, and when data is fetched. You don't need to tell FileMaker when to fetch data. If you display a field in a tab on a form view, or in a column in a table view, then FileMaker will fetch and show the data. When it does fetch the data, it will be downloading from the server, or wherever the file is physically located. Usually we don't worry about it too much (as we have little control over it), but if you have very large images stored in the database, or are paying for data transfer (such as when using FileMaker Cloud), or even when using WebDirect where performance is a big consideration, it can be worth considering. If you could explain why it is important to you, perhaps we could give a bit more detail?
  41. 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.
  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
    So why don't you implement your mockup as a popover containing 48 buttons, all running the same script with a different parameter? For simplicity, let's say the parameter is just a number between 1 and 48. Then your script could do: Set Field [ YourTable::Year ; AnyTable::gYear ] Set Field [ YourTable::Month ; Div ( Get (ScriptParameter) - 1 ; 4 ) + 1 ] Set Field [ YourTable::Week ; Mod ( Get (ScriptParameter) - 1 ; 4 ) + 1 ] where gYear is a the (global) field shown at the top of your picker. Well, then you don't really need a Month field and could make this even simpler.
  45. 1 point

    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


  46. 1 point
    Thanks Beverly and Kevin - you've both been a big help. I think I have the correct information in front of me now. I'm going to have to wrestle with the syntax a bit, but these reference are much better than the FM documentation! ...and I think I'm okay without the Japanese version, Beverly. I'm confused enough as it is!
  47. 1 point
    Robot "machine" is also misleading, in that it's perfectly fine to have the robot user be another account on the same machine as the server - we've been doing this with great results for years on our OS X servers. We set up the robot user to have very limited permissions, so it can't do any harm to the administrator account that is in control. YMMV of course, but it's a technique that's worth a consideration if you only have one machine.
  48. 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. :-)


  49. 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.
  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-07:00

Important Information

By using this site, you agree to our Guidelines.