Jump to content


Popular Content

Showing most liked content since 08/24/2017 in all areas

  1. 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!
  2. 1 point
    Okay, I have managed to reproduce the problem. It's a bug. 1. How to work around the bug: Use Insert Calculated Result[] instead of Set Field[]. 2. How to avoid the bug: Save a copy of your file as clone (no records) and import the records into the clone. The new file's date format will be YYYY-MM-DD and your script will work. 3. How to avoid the bug and follow the best practice of not having your script depend on any date format: Make your script do: Enter Find Mode [] Set Field [ Calendar::calDate; Date ( Get (ScriptParameter) ; 1 ; Year ( Get (CurrentDate) ) ) & ".." & Date ( Get (ScriptParameter) + 1 ; 0 ; Year ( Get (CurrentDate) ) ) ] Perform Find [] where script parameter is a number between 1 and 12 (there's really no good reason to send the month name as text, then spend 12 lines of code converting it to a number).
  3. 1 point
    Actually, there were at least four of them: EventScript, DoScript, zippScript and FMI's own plugin example.
  4. 1 point
    Hi Siroos, Thank you for providing the sample file. :-) Unfortunately it isn't enough for us to have a clear sense of what you are wishing to accomplish. It normally requires a SCRIPT to perform a script action. Custom functions are functions used in calculations and calculations can't act. There was a plugin, I forget its name, which would fire a script based upon a field-value change. I quit using it 15 years ago because it was too dangerous and unpredictable. Michael, Tom or Wim might remember its name. Why wouldn't a Resume Script work for you? Anyway, I've attached a revised file showing how I could provide you with your request immediately above. I hope it is helpful but I suspect, as Tom points out, you need to rethink your approach instead. testREV.fmp12 By the way, I included passing a script parameter back. Sometimes a small thing can help in reconsidering an approach.
  5. 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 )
  6. 1 point
    Let me add a general note: Portal filtering is slow - and will get progressively slower as the number of records to filter grows. It is much more efficient to filter the relationship itself. You may think it's not possible because it would require an unstored calculation to serve as the match field on the portal side. However, that is not true: you can define a stored calculation field in the Services table as = Next Service Date - Day ( Next Service Date ) + 1 and use it as the match field opposite an unstored calculation field of = Get (CurrentDate) - Day ( Get (CurrentDate) ) + 1 in the dashboard table, to make only records in the current month related.
  7. 1 point
    Hi Ocean West, The functions are the same between 2 and 3 so you should not have to change any of your scripts when upgrading
  8. 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.
  9. 1 point
    For many clients I use a different container data folder so that the FMS backup schedule only backs up the FileMaker database files, and I use CrashPlan for backing up the container folder. Unfortunately, 360Deploy expects the folder RC_Data_FMS to exist only in the database folder and fails with a 500 error if that path doesn't exist. Is a fix for this on the radar? Some of my solutions have many GBs worth of container data and I'd rather not have FMP back up all of this data every time a backup schedule runs. Dave
  10. 1 point
    Barbara! Looks great, and excellent refinements. I want to implement something like this in a future version as well. Thanks for sharing your code.
  11. 1 point
    Newbies to the forum (those with less than 6 posts) will be highlighted now in a different color box. This will be useful for all members, so they will now know they are new to the Forum, and we can greet them appropriately, encourage them and inspire them, make them feel welcome and a part of our community!
  12. 1 point
  13. 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))
  14. 1 point
    Hi Phil, I reported your support issue to Jesse and he is currently looking into it and will be in contact soon. I'll update this thread for anyone else that is running into this issue.
  15. 1 point
    Even better = BE_RegularExpression ( "AlphaBravoÇharlie" ; "(\p{Ll})(\p{Lu})" ; "g" ; "$1 $2” ) returns: "Alpha Bravo Çharlie" Basically, this looks for a lowercase character (excluding punctuation and digits) followed by an uppercase one, and inserts a space between them.
  16. 1 point
    Well, that is unless you're willing to use a plugin: BE_RegularExpression ( "AlphaBravoCharlie" ; "(\p{Lu})" ; "g" ; " $1" ) will return: " Alpha Bravo Charlie" and will recognize any uppercase characters, in any language.
  17. 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.
  18. 1 point
    Readme.txt: * Use '360deploy' as the username and password to open the included database You then immediately get prompted to change the password.
  19. 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?
  20. 1 point
  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
    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.
  23. 1 point
    Steven Blackwell almost always starts a phone call with "greetings and salutations" and often ends with another famous quote, "keep the faith". I've never asked what he means but I'm pretty sure it's not religious. Steven Blackwell loves the FileMaker platform and he likes other people who feel the same as he does. Keeping the faith is just trusting in the FileMaker platform. I'm also pretty sure he didn't start using this quote when he started developing FileMaker solutions. It's just how he sees everything in life. When he believes in something, he gives it his all. I appreciate that about him so much. But, let me introduce you to him first since you may not know him as well as I do. View the full article
  24. 1 point
    You could place the Country field over the calculation field and make it non-enterable, so that clicking on it would enter the calculation field and reveal the entire address.
  25. 1 point
    Why not just put the country field on the layout. Clicking on the field can copy the calculation field results on the clipboard. You can also put the same calculation into a tooltip so the user can see the results before clicking.
  26. 1 point
    Outstanding! That worked like a charm. Thanks for the help!
  27. 1 point
    OK, I see what you're saying. To do what you want, the best thing is going to just simply be copying and pasting that section of the MirrorSync script into a separate script that you run manually. You'll find this towards the end in the sync finished section of the script.
  28. 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)
  29. 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 )
  30. 1 point
    it's probably reading the field value as text. If you want to be safe, do a getasnumber( ) around what you compare
  31. 1 point
    cheers 2016FMPiconPack_PNG.zip
  32. 1 point
    What exactly does "support from FMI" mean?
This leaderboard is set to Los Angeles/GMT-07:00

Important Information

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