Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 08/07/2019 in all areas

  1. This year 2020 will be one of Change and Challenge for the Claris FileMaker Community. It will require Commitment, Confidence, and Community Effort to see it to a successful conclusion. Herewith, in outline form, are some of the Challenges I foresee we will face: 1. We will need to develop a finer level of audit logging of Personally Identifiable Information (PII). Most logs currently focus on system level activity. A finer level of focus will assist in achieving compliance with various privacy requirements. Prompt response timelines for breaches will be an
    3 points
  2. Well, I suggest you put some restriction on the number of allowed values, because otherwise this gets (even more) complicated. Some background: Your question is a variation of the subset sum problem, which in turn is a special case of the knapsack problem. Both are VERY difficult problems to solve programatically. Even worse, the known solutions are difficult to implement in Filemaker, because its calculation engine has no arrays. Fortunately, with a small number of values, a naive brute-force solution is feasible: enumerate all possible combinations of the given values, calculate
    3 points
  3. Could it be = C * Tan ( Radians ( A ) ) + B ?
    3 points
  4. It's actually pretty basic arithmetic. Start by calculating the interval between the numbers; in your example, this would be: ( 3394 - 109 ) / ( 256 - 1 ) = 12.8823529411764706 Now you can build a looping script that starts with 109 and adds the interval 256 - 1 times. Note that due to rounding errors the final number might not be exactly 3394 - you can use the Round() function to compensate for that.
    2 points
  5. When you make statements about what is better than an alternative, please qualify the statement. Why is 'choose' better than IF() or CASE() for you? If two or three different approaches produce the same result, how do you select the one you want to use? Performance? What if it doesn't matter and makes the code less readable?
    2 points
  6. Yes, I'm aware of all those options. But here's the deal: Filemaker runtimes have allowed me to roll out small targeted label and report solutions to meet Customer requirements, easily and quickly. In each case, the data originates in other systems. Often it is in the form of distribution grids that Filemaker could not possibly process (not a record-based data model). We have Python routines to do the heavy lifting of depivoting this data into a normalized record-format. These are all one-off jobs. Nothing lives in an ERP or other database system. It's project work. The only way to retain
    2 points
  7. In layout mode, put the fields you want on the Body part, and Ctrl-i to bring up the Inspector. Here you have a couple of options: 1. If you just want to keep the fields from printing, select them and use the Hide when printing checkbox. 2. If you want to hide the fields in Browse mode, use the Hide object when option, with a formula of True -- and leave the Apply in Find mode checkbox empty. If you're not wanting to even have a Body part, then forget all the above and just use a different layout for the Find. Welcome to the forums.
    2 points
  8. A better alternative, IMHO, is to use characters designated for such purpose. Here are some you can choose from: Char ( 31 ) - UNIT SEPARATOR Char ( 30 ) - RECORD SEPARATOR Char ( 29 ) - GROUP SEPARATOR Char ( 28 ) - FILE SEPARATOR Char ( 8233 ) - PARAGRAPH SEPARATOR Char ( 8232 ) - LINE SEPARATOR There are also non-characters "intended for process-internal uses": Char ( 65534 ) Char ( 65535 )
    2 points
  9. There exist several variations of the CSV format. The variation that Filemaker uses encloses all fields in double quotes. This allows exporting fields that contain commas, carriage returns and double quotes. According to the RFC 4180 specification: Any field may be quoted (with double quotes). Fields containing a line-break, double-quote or commas should be quoted. (If they are not, the file will likely be impossible to process correctly.) If double-quotes are used to enclose fields, then a double-quote must be represented by two double-quote characters. It should be
    2 points
  10. The easy way to solve such problems is to: 1. Enter the "native" version of your AppleScript into a text field: display dialog "Hello \"world\" " 2. Open the Data Viewer and enter: Quote ( YourTable::Textfield ) 3. Paste the result into your calculated AppleScript formula: "display dialog \"Hello \\\"world\\\" \" "
    2 points
  11. Here is my documentation on word break rules, taken mostly from discussions here on FMForum over the years and MOSTLY from Comment 🙂 The ampersand and hyphen are word delimiters - but they are not the only ones. There are many more, first and foremost a space, of course. I don't know if there's a comprehensive list, but at least !@%^()≠+[]{}<>≤≥`~|\? are all word delimiters. Word delimiters are not words, so you cannot get them with the MiddleWords() function. space * # ; " = $ € & / ≈ ∏ ‡ Detailed feedback: If I go to FileMaker Pro 11 Help for MiddleWords, the example u
    2 points
  12. It depends not only on the character following the punctuation mark, but also on the character preceding it: WordCount ( "A-1" ) = 2 WordCount ( "1-1" ) = 1 And these results are not necessarily the same for all punctuation marks.
    2 points
  13. Perhaps I am missing something here, but ... the SQL query is nothing more than a text string. If you know the name of the table, you can enter it as literal text; if you have it in a variable, you can simply concatenate the variable to the rest of text, so that instead of: "SELECT * FROM ITEM" you have: "SELECT * FROM " & $table_name Adding both Quote() and Evaluate() to the mix does not accomplish anything. Evaluate ( Quote ( text ) ) returns the original text unchanged. However, if the name of the table does not begin with an alphabetical character, you must enclose it in
    2 points
  14. I am not sure this is the best place to start, but let's try. And let's start with a Sunday: Mod ( 4 - 1 ; 7 ) = 3 That's 3 days until Wednesday. Next, let's take a Monday: Mod ( 4 - 2 ; 7 ) = 2 That's 2 days until Wednesday. Now, Tuesday is of course 1 day before Wednesday:: Mod ( 4 - 3 ; 7 ) = 1 and I think it's clear that 4 - 4 will result in 0 days to move from Wednesday to Wednesday. So far, we have simply subtracted the day-of-week of today from 4 (Wednesday). Applying mod 7 to the result did not change it. Now this is where it starts to get interesting. If
    2 points
  15. The way your find works is this: first, it finds records with duplicate values in the QItemSerial field. Next, it finds records with duplicate values in the Type field. Finally, it returns the intersection of the two sets. So for example, if you had 3 records in a table: Field A Field B A 1 A 2 B 2 your find would return a found set of one record: A 2 because that's the only record that has a duplicate value in
    2 points
  16. Hi Dave - we’re working on a change to MirrorSync to include our own Java, separately from whatever else is installed for the operating system. For now, it might be necessary to stick with Oracle java for a month or so.
    2 points
  17. I am not sure what exactly I am looking at. To move this forward, I suggest you do the following: Enter some dummy data into your FMP file (if necessary, use a copy of the real file). Make sure you have at least two records; Export the fields you need as XML, using the FMPXMLRESULT grammar, with no XSLT stylesheet applied; Write an XML document, using the same dummy data, in the format you need for importing. Then post the two files here. Note: I am asking for at least two records, because the files you have shown so far seem to have only one record and no provi
    2 points
  18. Hi Dave, Thanks for your interest in Carafe! As it happens, the two datatables bundles we have up there are two of the very first proofs of concept, and they aren't very configurable. In fact, we have a new consolidated datatables bundle in the works, and I'll dig that up today, and see if it's ready to publish officially. Even if it's not, I'll attach a pre-release version here for you to mess with. Jeremiah
    1 point
  19. If all related records have the same timestamp, then there is no point of having the timestamp field in that table. Place it in the parent Products table and make the script that updates the related table update this field too. This is assuming you update the related table for each product separately. Otherwise, there is no point in having the same timestamp replicated in all the product records. Place it in a single-record Preferences table instead.
    1 point
  20. Use an API and let the user authenticate so that you don't have to store credentials. See https://www.soliantconsulting.com/blog/microsoft-graph-api-filemaker-one/ Or if you are on AWS, let the AWS instance check out credentials from the AWS key store and push into FM so that you don't have to store credentials at all.
    1 point
  21. Yes, but I took the liberty and posted based on your input file on my gist in the link as described in my post above. @comment and my example does the same if you only have 1 record, the one I posted will be able to separate records properly without adding metadata for each record. There are benefits to using the command line tool `tidy`, Xmplify.app or similar in Mac OS X while developing, then again when you are done making it work there are no benefits to line breaks in XML or XSLT. Rather on the contrary different systems may interpret different kinds of separators for line break
    1 point
  22. That sometimes happens when the auto-login feature is still turned on but the pw for that account is now different. Check to see if that toggle is still on and toggle it off.
    1 point
  23. You're not supposed to touch or be able to read from that path directly; the RC data files are live FM files just like the actual FM file. Only FMS itself should have access to it. The way to email a file is to first export it out fo the container, to say the user's doc folder or temp folder and use that path for the Send Mail script step.
    1 point
  24. A Responses table is required if you want to record more than one response to a question - IOW, when you intend to have more than one person take the test/survey. Or if you want to test yourself multiple times, and keep the results of each trial. In such case, you have two choices: either pre-create a response record for each question at the beginning of the test, or create a response record as a result of user picking an answer. If the answers are presented in a portal, then the user can select an answer by clicking a button in the portal - and then a script will create a response recor
    1 point
  25. File > Save a copy as... Type: clone (no records)
    1 point
  26. Consider doing the "merging" in a calculation field. Then any change in the calculation formula will be automatically propagated to all layouts displaying this field.
    1 point
  27. This might be helpful https://www.geistinteractive.com/2018/03/13/filemaker-json-parsing-generator/
    1 point
  28. There isn't. But it sounds like there is an opportunity to change the design a little. If you find that many fields are repeated across the panels then add them outside the tab panel object so that you don't need to repeat it. Resize the tab panel and use it only for those pieces of information that are different.
    1 point
  29. Keep in mind that Google is going to take away that kind of 'basic authentication' (or less secure as they call it) for the SMPT protocol and other protocols. Consider switching over to their APIs as quickly as you can. Here's a write-up for Office 365, it has links to the Google announcements and some links to other community blog posts that show how to use the Google APIs https://www.soliantconsulting.com/blog/microsoft-graph-api-filemaker-one/
    1 point
  30. If the user is already in FM when that piece of the workflow starts then it doesn't make sense to do this in AppleScript just because you have an AppleScript developer. This would be the time to push through and figure out how to make this all work in FM.
    1 point
  31. Why choose between checkboxes or radio buttons when you could have both? Nick Hunter has a neat trick to share on making a new type of "checkbox" in FileMaker. support@rcconsulting.com www.fmtraining.tv www.fmstartingpoint.com www.rcconsulting.com
    1 point
  32. I cannot reproduce the problem: However, in my experience portal filtering becomes unusably slow when the number of records to filter exceeds a few thousands. Perhaps you're experiencing a memory overflow problem.
    1 point
  33. Hi Dominic You could rewrite your code as follows. Assuming the pattern you have established so far carries on into the future, it will save you having to edit this calc in the future Case ( //First case is true if date is prior to 1st April in its specific year Month ( Date of Referral to Regulatory Body ) < 4 ; Year ( Date of Referral to Regulatory Body ) - 2011 ; //Second case is true if date is on or after 1st April in its specific year Year ( Date of Referral to Regulatory Body ) - 2010 )
    1 point
  34. $__pk...appears to be a variable. If so you have to set the variable in the script first before you use it in 'Set Field'.
    1 point
  35. Here is your case statement on a line-by-line basis Case ( IsEmpty ( DatePaid ) or DatePaid>Due Date ; AmountDue*.05 ; 0 ; Due_Date<Get (CurrentDate) ; AmountDue*.05 ; 0 ) All I have done is put in some returns to separate the individual cases Notice that case #2 starts with "0". This is not a comparative but will always be true and will yield either 0 or 1 based on Due_Date<Get(CurrentDate) Should your statement actually be... Case ( IsEmpty ( DatePaid ) or DatePaid>Due Date ; AmountDue*.05 ; Due_Date<Get (CurrentDate) ; AmountDue*.05
    1 point
  36. Once again, I cannot reproduce the problem from your description. Can you post a simple file that shows this behavior (and if possible, nothing else)?
    1 point
  37. Got the following from my Office 365 tenant today...looks like I will be unable to do "basic" (normal) authenitication for IMAP using the 360Works Email plugin to Office 365 mailboxes starting 10/13/2020. I don't see any mention of OAuth in the current documentation for the Mail plugin, so I'm assuming it doesn't yet exist.... Is 360Works working on adding OAuth functionality to the Email plugin? Thanks, John
    1 point
  38. In proper normalization you could even consider 3 tables: - the core table with People info - a table for Customers where the Person is just represented by a foreign key to the People table, the other attributes in the Customer table just describe customer attributes such as "customer since", or "tier" or whatever else is relevant - a table for Contacts where the person similarly is just represented by a foreign key to the People table and where you track attributes for the contact that you wouldn't track on the people table, such as "last contacted", ... or other such stuff
    1 point
  39. If you don't have the Advanced version, you cannot use a custom function (unless someone installs it for you). And if you don't have version 18, you cannot use the While() function. That leaves us with a looping script. The attached demo shows how it could work. Note that you can use a script trigger to run the script automatically OnObjectSave. ProcessEntry.fmp12
    1 point
  40. Actually, you only need to "deal" with the "-" operator. The "+" and the comma can be simply substituted with a carriage return to get a list that Filemaker recognizes as a list of values (assuming that's what you want as the result). Iterating from 1 to 5 and creating the intermediate values requires either a custom recursive function or the While() function or a looping script. Please update your profile to reflect your version and OS so that we know which one of these you can use. -- Note: 1. A field where a user is allowed to enter "12+82" or "1-5" or "31,33,35,37" should be
    1 point
  41. Hold on: I've found a stupid mistake in my file. Try it again. BarcodeLookupAPI.fmp12
    1 point
  42. Your script cannot work the way you want. The Get(LastError) function returns the error number for the most recently executed script step. In your script, the most recently executed script step is Set Error Capture[] - and this will never return an error, let alone error #504. In order to get a validation error, you must attempt to validate the field - and you must do this before the field is validated normally. Otherwise your window will open after the built-in validation error message, not instead (if at all). Try triggering the following script OnObjectValidate: Set Error C
    1 point
  43. That's not necessary. Use a variable, and add a comma and a value to the variable at each iteration. When you get to a new cause, add the accumulated line to the result (another variable), and initialize the line variable by setting it to the current cause. That's if you're looping over each record in the found set; the Fast Summaries method allows you to set the result with a complete line at each iteration, and jump directly to the next cause.
    1 point
  44. Cloud FIRST, not Cloud ONLY Oh, and get with the programme and start learning to update.... That's the message (paraphrased obviously)
    1 point
  45. Here is a short tutorial how to send Telegram message from FileMaker 16 (previous version needs to set target as field): 1. Find @BotFather from telegram 2. Send message: /newbot 1. Answer to questions (Bot name, bot username) 2. Get token (12345:AAFzdx1231sfasfddafskv_KBkARu5UdsdsfHM) 3. Find newly created bot and start conversation (/start) 4. Create a FileMaker script 1. Set variable ($cmd; "getUpdates") 2. Insert From Url 1. With dialog: off 2. Specify target as variable: $$response 3. Specify URL: "httpspost://api.telegram.o
    1 point
  46. There are multiple reasons for that. You don't need a font, this simplifies the deployment It works on iOS It works on FMS and WebDirect I don't know exactly, but I believe that the font is unable to calculate the checksum It works on containers, so it's more flexible and it can be scaled easily It works on all layouts, it doesn't need a specific layout object, like a custom text field, just a container It's cooler this way
    1 point
  47. Try the following stylesheet: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/PubmedArticleSet"> <FMPXMLRESULT xmlns="http://www.filemaker.com/fmpxmlresult"> <METADATA> <FIELD NAME="PubmedID"/> <FIELD NAME="PiiID"/> <FIELD NAME="DoiID"/> <FIELD NAME="PmcID"/> </METADATA> <RESULTSET> <xsl:for-each select="PubmedA
    1 point
  48. Try = not IsEmpty ( FilterValues ( Scope::FieldName ; ValueListItems ( Get (FileName); "ValueListName" ) ) )
    1 point
  49. If you hold down the Option key, the Paste command changes to "Paste Text Only" - i.e. plain text with no styling. Plain text is what you need to get the field's contents to take on the styles defined for the field on the layout.
    1 point
This leaderboard is set to Los Angeles/GMT-07:00
×
×
  • Create New...

Important Information

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