Jump to content

Leaderboard


Popular Content

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

  1. 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.
  2. 2 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.
  3. 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.
  4. 2 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.
  5. 2 points
    Apparently, the issue is fixed in FileMaker 16.0.2!
  6. 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
  7. 1 point
    To display products grouped by their name, sort them by name and use a layout with a sub-summary part and no body part.
  8. 1 point
    That a Girl. Let us know what you find. Lee
  9. 1 point
    Take a look at the attached. In future please zip your file and attach it here -- it's not very appealing to click an untrusted download link. MASTER_POS-Ploblem.zip
  10. 1 point
    Looks good. Nice job handling the Commit. One thing you might consider is using GTRR to open the card window rather than Open + Find.
  11. 1 point
    I have now. The 16.0.2 update does not change the performance characteristics of the JSON functions relative to return-delimited lists or repeating variables.
  12. 1 point
    A couple things that come to mind if you go down this path...there is a limit to how many variables you can set with a Let statement, 1000. And if you use the "JSONFormatElements" function, it may re-sort your data unexpectedly. I would consider JSON for passing variables, possibly, over using for virtual lists. Mike
  13. 1 point
    The JSON functions in FileMaker 16 have constraints the SortValues and UniqueValues do not. The JSON parsing functions check that the input they're trying to parse is in fact completely valid JSON. FileMaker has to do this to be able to return an error result when appropriate. You can't know if the outer-most structure in a JSON string is correctly terminated without starting at the beginning, checking every inner structure, and getting all the way to the end. Due to how the JSON format works, this requires stepping through the entire string for every single operation. (This could be resolved by FileMaker using a more efficient internal data structure for JSON in place of the raw string, but performance tests from a few folks suggest that FileMaker isn't doing this.) In comparison, the GetValue function only has to parse as many newline characters as it takes to get to the value you want, and it can ignore everything in a string after that point. With repeating variables, there doesn't need to be any parsing at all (depending on how you do it) — you can just use the whole content of the variable (repetition). The JSON writing functions have a similar constraint. They validate any JSON you had to start with, and then the JSON writing functions are somewhat fastidious in organizing the contents of their JSON outputs. You can make parsing nested structures in JSON less slow by parsing out inner structures, then getting the details from the inner structures, rather than pulling from the outer structure for every inner detail. This reduces how much total work FileMaker spends validating the JSON for each read. When speed is more important than simple code, do this: Let ( [ _dictionary0 = JSONGetElement ( $json ; 0 ) ; _0a = JSONGetElement ( _dictionary0 ; "a" ) ; _0b = JSONGetElement ( _dictionary0 ; "b" ) ; _dictionary1 = JSONGetElement ( $json ; 1 ) ; _1a = JSONGetElement ( _dictionary1 ; "a" ) ; _1b = JSONGetElement ( _dictionary1 ; "b" ) ] ; ... ) Not this: Let ( [ _0a = JSONGetElement ( $json ; "[0].a" ) ; _0b = JSONGetElement ( $json ; "[0].b" ) ; _1a = JSONGetElement ( $json ; "[1].a" ) ; _1b = JSONGetElement ( $json ; "[1].b" ) ] ; ... ) And for writing JSON, add as much in each JSONSetElement call as you can, rather than using many separate calls. Do this: JSONSetElement ( "[]" ; [ "[0].a" ; 1 ; JSONNumber ] ; [ "[0].b" ; 2 ; JSONNumber ] ; [ "[1].a" ; 3 ; JSONNumber ] ; [ "[1].b" ; 4 ; JSONNumber ] ) Not this: Let ( [ _json = JSONSetElement ( "[]" ; "[0].a" ; 1 ; JSONNumber ) ; _json = JSONSetElement ( _json ; "[0].b" ; 2 ; JSONNumber ) ; _json = JSONSetElement ( _json ; "[1].a" ; 3 ; JSONNumber ) ; _json = JSONSetElement ( _json ; "[1].b" ; 4 ; JSONNumber ) ] ; ... ) While these patterns make FileMaker's JSON functions less slow, it isn't enough to make them competitive with return-delimited lists or repeating variables for speed.
  14. 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.
  15. 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.
  16. 1 point
    You can calculate the date of last Wednesday using = Get ( CurrentDate ) - Mod ( Get ( CurrentDate ) - 3 ; 7 ) Note that this will return the current date when the calculation is performed on a Wednesday. I am afraid I did not get this part: The calculation looks only at the weekly cycle and ignores year boundaries. If you like, you can use = Get ( CurrentDate ) - Mod ( Get ( CurrentDate ) - Weekday + 1 ; 7 ) where Weekday is a number between 1 (Sunday) and 7 (Saturday).
  17. 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
  18. 1 point
    Sometimes it's better to just recognize and accept current limitations, proceed to do a few minutes work, and get a clear, scripted solution. Which provides the result you need and provides a script that you can adapt, monitor in debugger, print, review, etc. See attached mod to your file. Sort_by_field_object_name_MODBFR.fmp12
  19. 1 point
    Hi Aleesha, welcome to FMForums! I've re-attached your file. Since Affiliations can be multiple (the many side) to one Activity, they need to be displayed in a portal when on Activity layouts. Also note, you already had 'Allow Creation' active on the Affiliations side of the relationship which was perfect so you should be good to go. Let me know if I missed anything. :-) People and ActivitiesMOD.fmp12
  20. 1 point
    Your comment on line 15 says you don't want to update existing records but only add new ones. Still ... it should add any new records. A few things to consider: The Data type of Code is the same. ? is a very bad idea in field names. That can cause failures when dealing with external sources. What does your import log say?
  21. 1 point
    The only way to reduce the size of the mirrorsync.data file is by resetting the sync data. You can safely delete the .log files (there are probably thousands of them), but keep them for at least a two week previous window. They are necessary if you need to repair the sync data, but only for a week or two (we make a backup every week).
  22. 1 point
  23. 1 point
    I agree. It appears that you are hard-coding the field name in the object name? That makes your solution vulnerable if field names ever change (or table occurrence names change (?). Since you are going to the field anyway, are you instead setting the script parameter with: Get ( ActiveFieldName) and skip the hard-code. Another option ... why not find unpaid records first? In that way, the record set would not be sorted and the record would not disappear when changed to Paid. Anyway, I wish you well with your project!
  24. 1 point
    Yes, there is. You have a many-to-many relationship between People and Activities (one person can participate in many activities, one activity can have many participants). This requires a third table to join the two - a table where each record will represent the participation of one specific person in one specific event. You can see a basic demo of a join table here: https://fmforums.com/topic/50942-portal-grouping-problem/?tab=comments#comment-239210 Note that you can add records to the join table from either parent table, and have them show up in the portal from the other parent. You can also have any number of join records and there is no need to predefine numbered fields in any table for this purpose.
  25. 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.
  26. 1 point
    Probably not, since you're only showing the prescriptions of a single patient at a time. As I said earlier, you could have done this with 2 calculation fields only: a field in the Prescriptions table = ItemName & Char(9) & ItemSize & Char(9) & ItemCycles & Char(9) & ItemQtyTotal and a field in the Visits table using the List() function to create the above line for each prescription.
  27. 1 point
    Merge fields. You can see it in the menu bar in layout mode Insert>Merge Field... Also as a tip, you can highlight everthing between the first and last chevron and change the font to 1 point, to shrink them up in layout mode for easier viewing. If you ever need to see which field it is, click on the field, select 12 point. When your done, click outside the field and Ctrl +Z to undo and return it as it was. <<LONGTABLENAME::ExtraLongFieldName>> would basically look like <<LONGName>> (1 pt. font not available on this forum)
  28. 1 point
    Hi, I'm Nick Hunter developer at RCC who designed the new FMSP. There's only one way to tweak Tab Control height. There is 2 type of Tabs: The Tab Control in Themes for Desktop Tab control in Themes for Touch. Tabs for Desktop are "thin" when tabs for touch are twice as big. How to transfer thick tabs control from a Touch Theme to a desktop theme? 1- Create a layout with the theme of your choice for Touch. 2 - Create a Tab Control 3 - Copy the Tab Control Tab from the theme for touch. 4 - Go to the layout with the theme for Desktop 5 - Create a Tab Control 6 - Paste the style to the Tab Control... The tab becomes like the one for Touch. 7- Save a new Style... and Voilà. You have now both Tab Control in the same layout.
  29. 1 point
    I already did: To print only the last 25 entries (of the current parent record), do something like: Go to Related Record [ From table: “Child”; Using layout: “Print” (Child); Show only related records ] Go to Record/Request/Page [ First ] Omit Multiple Records [ Get (FoundCount) - 25 ] Print [ ] To print fields from the parent record, place them in header, footer or grand summary parts (or in a sub-summary part, provided you also sort the records).
  30. 1 point
    If you based your layout on the portal table, then your layout would be in list view, and can look exactly like that. O don't see any summaries, so if you want to show the last 25 lines, do a find, or omit the records you don't want to show, then print.
  31. 1 point
    Yes, and I also should mention, for others reading even if not your situation ... hard-coding values normally isn't a good approach. If those names will be used as record data or elsewhere, it might be worth it to store the part names in a table with only a unique auto-enter serial number and referencing its text from the relationship in the tooltip instead. Anyway, I can tend to overthink but I thought it good to mention the dangers of hard-coding values. I envisioned this might be the only place you would need to change the name but if the scientists decided that a cuello should really be properly named a cou and you had used cuello all through your solution, it would require a substantial cleanup whereas if the parts were in a table, you would just change it in one place and use its Serial all through your solution.
  32. 1 point
    Well, here is one way but it will mean you must change your tooltip. I used fields but theory is the same. Your tooltip sets a global variable and your script reads that global variable when you fire the script. In this way, you don't need to add both a tooltip AND a script parameter but you'll still need to change every tooltip that you've already written. tooltip.fmp12
  33. 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.
  34. 1 point
    Yes, but you must also specify the year: http://www.briandunning.com/cf/1439 Note that this assumes you're using the same method to number weeks as does Filemaker's WeekOfYear() function (most significantly, that any fraction of week occurring at the beginning of the year counts as a full week). The last date of week 26 is, of course, the first date of week 25 + 13.
  35. 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.
  36. 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.
  37. 1 point
    Ok. Problem solved. It was a very simple problem: As Daniel suggested it had to do with the http versus https request. I changed the URL to https and everything is fine! Thanks Daniel!
  38. 1 point
    Is there a reason why you cannot use the Substitute() function within a single Set Field (or Replace Field Contents, if you're handling multiple records) script step? A single instance of Substitute() can contain up to 999 search/replace pairs, and you can nest multiple instances if you need more. BTW, if you have a "map" of search/replace pairs that you need to use in both directions, you might consider storing it in a table or hard-coding it to variable/s. Then use a looping script to perform the substitutions. This would be useful if the "map" ever needs to be changed, as it would only require one change for both directions.
  39. 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.
  40. 1 point
    Has anyone noticed how many threads begin with: "Hello, I am very new to Filemaker and databases in general, and I have been tasked with the responsibility of creating our company's new database."? What are the bosses of these people thinking when they assign the management of their data to someone with no skills to handle the task? I wonder if other forums also get similar messages, for example: "Hello, I am very new to civil engineering and construction in general, and I have been tasked with the responsibility of designing our town's new bridge." "Hello, I am very new to money-markets and finance in general, and I have been tasked with the responsibility of managing our company's investment portfolio." "Hello, I am very new to NASA and space flight in general, and I have been tasked with the responsibility of directing our next shuttle mission." "Hello, I am very new to hospitals and medicine in general, and I have been tasked with the responsibility of performing our CEO's open-heart surgery." "Hello, I am very new to physics and science in general, and I have been tasked with the responsibility of developing our country's nuclear weapon." "Hello, I am very new to the White House and politics in general, and I have been tasked with the responsibility of leading the free world." (OK, so scratch this last one...) Why are our skills as developers so under-rated by the executives that they do not hesitate to assign a summer intern to the job?
  41. 1 point
    another option... 24u Software Phidgets Plugin
  42. 1 point
    Here's another site that has a bunch of card printers: http://www.idsuperstore.com They should have some kind of data encoding printer.
This leaderboard is set to Los Angeles/GMT-07:00
×

Important Information

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