Jump to content

Leaderboard


Popular Content

Showing most liked content since 07/22/2017 in all areas

  1. 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.
  2. 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.
  3. 1 point
    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)
  4. 1 point
    Hey everyone, I love how open the Filemaker Community is, and how much is shared freely, so I wanted to contribute. I created a database to manage SVG icons. The icons are all royalty free provided by Syncfusion and there are about 4,000 icons, all with search tags to make finding them super easy. You can find out more about the file, and download it here: http://www.indats.com/2015/06/15/indats-icon-manager/ Please let me know any feedback you have on the file, thanks!
  5. 1 point
    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. 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.
  7. 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.
  8. 1 point
  9. 1 point
    FQL is executed on the server as a rule. It is executed on the client if that client has an open (locked, uncommitted,...) record in the target table, any table that is part of the SQL query. Only the client's open record state counts. If other users have open records then that does not matter. Obviously their data will not be in the result set since neither server nor the executing client knows about that data yet, it has not been committed yet. When the server executes the FQL, nothing is cached on the client because no actual record data was sent down. If the client executes the query then server sends *ALL THE DATA FOR ALL THE RECORDS* in the target table, and that is cached at the client as much as the client's cache allows. It is that sending of all the data from the server to the client that is responsible for the slowdown. You can actually see this in action by looking at the FMS stats log, the "Network KB Out" counter. If there are not a lot of record in that target table then the penalty is not high, but it is very linear with the record count. In that demo file I linked to earlier I have two tables to test with, one with 100,000 or so records and one with 1.5 million.
  10. 1 point
    Well, if you don't mind having a tall footer that will be empty on every page except the last one, then it can be quite easy: place the information in the footer part, select the parts you want to show only on the last page and set it to hide when: Get ( PageNumber ) < $lastPage Then make you printing script do: Enter Preview Mode Go to Record/Request/Page [ Last ] Set Variable [ $lastPage; Value:Get ( PageNumber ) ] before calling the Print step.
  11. 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.
  12. 1 point
    This month at the Atlanta FileMaker Developers Group meeting we covered some topics we learned about at DevCon this year. View the full article
  13. 1 point
    Via a script: absolutely. What you are describing is often referred to as a 'scratch' table. A table whose data you will export but that is only there to transform the actual data into whatever form you need for exporting. When you are done with the export you can delete the data from the scratch table. There are other ways too, ranging from exporting from each table individually and using OS-level scripting to concatenate the 3 exports into one excel file. Or exporting to FM XML and using an XSLT style-sheet to transform that XML into an XLSX format.
  14. 1 point
    Neither. We are talking about a simple entity-relationship diagram, uncluttered by the restrictions of the relationship graph (e.g. using circular references, if necessary). It doesn't matter how you produce it - for all it matters, it could be a hand-drawing on a napkin. That is exactly why DB design should start with an ERD. If you don't have an ERD in front of you - if not physically, then at least mentally - then it's very easy to become confused.
  15. 1 point
    FileMaker Server is not able to export in FileMaker Pro format. This is documented on the Export Records script step here: https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help/export-records.html Note the "partial" support for FM Server. Mike
  16. 1 point
    Didn't say that it was, just how we do it and why. Doesn't matter where the "problem" comes from; our practice makes it safe no matter what someone's expectation is. For any level of developer, one of ours or one of the in-house devs. It's clear and well-understood.
  17. 1 point
    Would this work for you: Let ( postcall = Leave - timesheets::wrap - ( Camera + 2700 ) ; If ( Leave and postcall > 0 ; Ceiling ( postcall / 1800 ) * 1800 ) ) Note: you must be careful not to name your variables with a name already used as a field name - otherwise you might get unexpected results.
  18. 1 point
  19. 1 point
    Actually, I do know a couple, though they may not be as easy to work with as EZXslt or Scribe claim to be (I haven't worked with either, so I can't say for sure). But you can use XML export, with a custom XSLT stylesheet, to produce a document that Word can read. I presume you would want a fomatted document conforming to some template. The most convenient format for this would be the Microsoft Word 2003 XML format (a.k.a WordProcessingML or WordML), which is just an XML document that Word considers as one of its native formats. The process can be something like this: Create a template in Word, with some placeholders and save it as Microsoft Word 2003 XML; Open it in a text editor and use it as a basis for your XSLT stylesheet; Script your export to use the stylesheet. Step 2 is manual and requires knowledge of the XSLT language. And you will need to repeat it any time you want to modify your template. But once it's done, it's just a matter of pressing a button and getting your document - just like exporting in one of the built-in formats. It's also possible to use a similar process to produce a .docx document - but the format is more complicated, and you would also need a plugin to zip the result (I believe the free Base Element plugin could do this even in v.11). And of course there 's AppleScript/VBA as you mentioned in the opening post.
  20. 1 point
    My test file from the devcon presentation a few years back can be found here: http://www.soliantconsulting.com/blog/2016/04/bag-goodies-executesql-named-buckets-relationinfo
  21. 1 point
    That wouldn't work any way you look at it, because (a) portal sorting is done at the layout level and the chart has no access to the sorted data; and (b) a portal - or the underlying relationship - can sort, but they will not summarize. It's actually very simple. Set your chart to use data from current record (delimited data). Then make sure you have two variables containing, for example: $$labels = Adam Betty Cecil $$data = 350 125 72 and use them as the pie chart's category labels and slice data, respectively.
  22. 1 point
    Same deal, the connection license is included. Your users can connect with FMP, FM Go and WebDirect. But you only get 5 connections total, so if one user connects with all 3 of those then you only have 2 left.
  23. 1 point
    If you use FM Cloud then your licensing will the new "FileMaker Licensing for Teams" and your license will include the FileMaker Pro licenses. So you get them with the server. You can download the installers from the FM Cloud admin console. Note that those FMP clients can not be used standalone, they can only be used to connect to the server. If you open a local database without connecting to the client the user wil get a prompt after 15 minutes that they need to connect.
  24. 1 point
    While I agree with #3 (and I would expand that to include conditional formats, hide conditions,... anywhere that you don't have control over the open-state of the target table - given the documented penalty with using ExecuteSQL() against a table that you have an open record in), I don't agree with #2. There's no point in adding TOs just for SQL. Because SQL is context insensitive you can use whatever TOs you already have. The less schema you have the better your solution will perform. And I only partially agree with #1: all tables and fields should already be mostly SQL safe if you follow best practices, but even with that I would strongly suggest that people use one of the many custom functions that allow field references to be used in SQL instead of hard-coded TO and field names. Not only does that automatically make any TO and field name safe to use but it also (and more importantly) protects against TO and field name changes.
  25. 1 point
    indeed these blog entries and manuals are well worth reading. I might add my two cents in that you should consider keeping your FileMaker solution 'SQL clean'. By that I mean three things: 1. use names for tables and fields so that you don't need escape codes. It makes your SQL much nicer to read and maintain. 2. use a separate set of Table Occurrences for your SQL. SQL operates without the Filemaker context, so there there's no need to stick to your schema and you don't need cryptic names in your SQL statements. 3. don't use SQL in field definitions. You will run into record locking conflicts without knowing it. HE
  26. 1 point
    Are you aware that in Version 16 it handles AS different? You need to go in to into the Accounts and Privileges and check the box Allow Apple Events.
  27. 1 point
    Doesn't work because of this: Get ( DocumentsPath ) the path you pass to any SM function needs to be a correct O/S path not the FileMaker version of that... The raw path I get back from my Server 16 is: /C:/Program Files/FileMaker/FileMaker Server/Data/Documents/ setVariable $thePath = Substitute ( Middle ( Get ( DocumentsPath ) ; 2; 999 ) ; "/" ; "\\" ) will work, then use it in the function call and you are appending the FILENAME to a new file not it's contents with this - f.append ( container ) try this? // SaveContainerAsFile ( fm_field ; fm_fileOut ) // v1.0 // J Renfrew // fm_field = FQFN of container field // fm_path = fullOS path and filename f = new File( fm_fileOut ) if (f.exists()) { if (!f.delete()) { //throw new IOException('Could not delete ' + f.getAbsolutePath()) return 'Could not delete ' + f.getAbsolutePath() } } try { f.append( fmpro.getContainerStream ( fm_field ) ) } catch (e) { return e.getMessage() } return true
  28. 1 point
    Field names are included when you export in one of these formats: dBase FileMaker Pro HTML table Merge Excel XML Additional formats can be created by exporting as XML and using an XSLT stylesheet to transform the output.
  29. 1 point
    I did not attend Devcon this year. But I see that Kevin Frank posted the following comment recently on a different list. And actually - even elsewhere in this forum. But I thought it might be good to add his comment within this thread. Anyway, quoting him: https://filemakerhacks.com/2017/07/27/json-virtual-list/
  30. 1 point
    It would be helpful to see the original calculation, before you tried to "force" it. What you gave us is difficult to read, esp. when we don't know what the calculation's purpose is. I think you want do: If ( Cash Sales Total Sales Value ; Round ( ( Cash Sales Total Last 7 Days - Landed Cost * Cash Sales Total Last 7 Days * 1.2 ) / Cash Sales Total Sales Value ; 2 ) ; 0 ) This tests that your divisor is not empty or zero and if so, performs the division and rounds the result. Otherwise it returns 0. Note that 0 does not require rounding. -- P.S. IMHO, outputting an artificial zero result is bad practice. The correct result in case of division by zero should be either an error or nothing.
  31. 1 point
    My pleasure, is your calculation filed set to return numbers or text?
  32. 1 point
    Maybe this? if(Round ( If ( IsEmpty ( Cash Sales Total Sales Value )=1 ; 0; (Cash Sales Total Last 7 Days-(Landed Cost*Cash Sales Total Last 7 Days)*1.2) / Cash Sales Total Sales Value ); 2) = "?"; 0 ;Round ( If ( IsEmpty ( Cash Sales Total Sales Value )=1 ; 0; (Cash Sales Total Last 7 Days-(Landed Cost*Cash Sales Total Last 7 Days)*1.2) / Cash Sales Total Sales Value ); 2)) more professional method is using Let function: Let( Calculation = Round ( If ( IsEmpty ( Cash Sales Total Sales Value )=1 ; 0; (Cash Sales Total Last 7 Days-(Landed Cost*Cash Sales Total Last 7 Days)*1.2) / Cash Sales Total Sales Value ); 2); if(Calculation = "?";0;Calculation) )
  33. 1 point
    There are several ways this could be accomplished. A simple one would be to add a calculation field to the Participants table, along the lines of = If ( not Inactive ; NumberOfChildren ) then change your existing calculation to sum this field instead of the NumberOfChildren field. I don't see why you need the summary field; you could do simply: Count ( Participants::ClassID ) - Count ( Participants::Inactive )
  34. 1 point
    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
  35. 1 point
    Hi Carlsson, The video by Claus and Richard is very helpful, at least is was for me. No, you don't. The tool creates files on your hard drive, you can select one from that folder. I usually do it a different way because I convert the images or import them. I import a qualifying image. There are several sites you can find ready to use icons, and most are free, including inDats and Noun Project. When you find the image you like, download it on your hard drive. Open your file, double click the target button, then click on the + plus button. find your image, select it, it will add it to your button and the Button Setup Icon list. HTH Lee
  36. 1 point
    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.
  37. 1 point
    Hello - We recently upgraded to FileMaker Server 16. We use the JDBC driver to access our databases via the RJDBC package in R. Since our upgrade, however, connections are refused by the server. Has anyone else had this experience, or any ideas to test or narrow down the problem? More facts: FMS version 16.0.2.212 latest version of fmjdbc.jar Java v8 update 131 We can connect to databases on a separate FMS 14 server successfully We had no problems connecting to databases when we were using FMS 15 ODBC/JDBC is enabled on the server admin console and in the database we want to access for the user account we are using We thought this might be related to an SSL certificate issue, but we resolved that issue and also tested with SSL off on the server and got the same problem (connection refused) Questions: Are you successfully using JDBC to connect to databases on FMS 16? If so, did you have any trouble after upgrade? I would like to find out if this is an FMS 16 problem or a specific problem with something on our server. Does anyone know of some test database on an FMS 16 server that would allow JDBC access? What else can we try to narrow down the problem? Thanks!
  38. 1 point
    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.
  39. 1 point
    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.
  40. 1 point
    Hi Bev, This link has been changed from SQL Builder (this forum) http://fmforums.com/forum/files/file/25-sql-builder/ To http://fmforums.com/topic/83765-solutions-sql-builder/
  41. 1 point
    I had just finished an example. See if this gets you closer to what you want. It appears this is similar to Comment's suggestion. Select#numRecords.fmp12
  42. 1 point
    Beverly Voth and I have both written extensively on ExecuteSQL, e.g., The Missing FM 12 ExecuteSQL Reference PDF version of FM 12 ExecuteSQL Reference FM 12 ExecuteSQL, part 1 FM 12 ExecuteSQL, part 2 FM 12 ExecuteSQL: Dynamic Parameters, part 1 FM 12 ExecuteSQL: Dynamic Parameters, part 2 FM 12 ExecuteSQL: Robust Coding, part 1 FM 12 ExecuteSQL: Robust Coding, part 2
  43. 1 point
    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
  44. 1 point
    Hello, I think you just need to use the Get (TemporaryPath) function, see the post at ... This gives you an example of a script that sends a PDF and the resulting PDF does not clutter the iOS, since it is saved in the TemporaryPath location, which is purged by FileMaker Go regularly.
  45. 1 point
    You need a path, and I don't see why you're changing layouts. In fact, that might change your record. User is on Contact form. Clicks "Mail PDF of Record" 1. set var $filename; patients::lastname & ".pdf" ( I might also add id) 2. set var $path ; get (temporarypath) 3. set var $fullpath; $path & $filename 4. Save as PDF; create email, current record only $fullpath
This leaderboard is set to Los Angeles/GMT-07:00
×

Important Information

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