Jump to content


  • Posts

  • Joined

  • Last visited

Profile Information

  • Industry

FileMaker Experience

  • Skill Level
  • FM Application
    14 Advanced

Platform Environment

  • OS Platform
  • OS Version
    Win 7 Ultimate, Mac OS El Capitan

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

BAleiHi's Achievements


Explorer (4/14)

  • First Post
  • Collaborator
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges



  1. Wow, that's cool. I never considered brute force calculating the formatted text. I suppose I could write a custom function to support formatting rounded to a given number of decimals. I guess I'm spoiled and used to platforms that have that kind of functionality built in. For this one, however, I think the easiest solution is to use the field formatting with conditional visibility rather than the calculation. Not too bad! Thanks for the help
  2. Thank you Kaizentu. In this case the layout object is a button bar with a conditionally calculated title and there is no option to set the format of the object. I've gotten used to using that technique a lot to display conditional or calculated text. It's a great way to avoid creating another calculated field but seems to have this limitation. I went back to the workaround for this - two instances of the field superimposed, using "Hide object when" to display the relevant one. Any other option? Thanks
  3. I have a layout calculation that looks like: Round(If($$NoGPABump = 1;Classes::GPANoBump; Classes::GPABumped);2) In most instances, this rounds the appropriate value to 2 decimals and displays those two digits. But on occasion, it displays only one decimal as in this one: . Instead I want to see 4.20. If I round to, say, 4 decimals, it works properly: . Rounding to 3 digits gives 4.199. How do I get the trailing zero to show up? This seems to be consistent for all data that rounds to a last digit of zero. Is this a bug? Is there a workaround? Thanks,
  4. Thank you again Mr. V. Turns out my analysis of the situation was flawed in several respects. Your comments helped me try some other things and I realized that when I use InsertFile to get a filename and store it into a variable instead of into a container field, everything seems to work just fine - whether I'm in the hosted file or in a local copy of it. So I think I'm off the hook. I appreciate your help!
  5. Thank you, Mr. V, for the Troi tip - I'll look into that. Re: your second point, I apologize for inexact language - as a newcomer to server based solutions, I'm sure I'm confused in ways I don't even know about. Please allow me to try again. My solution is hosted on FMServer, but is opened by one of several machines running their own copy of FM17 Advanced. When I say I want to "run it on the server" I mean only that I'm running the server hosted version of the file from one of those machines. All those machines are networked and have access to a common directory that contains the Excel file that I want to import. I *also* have a copy of the solution on my local machine where I do most of the development, only uploading it to the server when the development version is stable. When I run the solution locally, the "Insert File" thing works fine...it's when I'm trying to run the hosted file that causes the problem since "Insert File" does not work. If I don't specify the filename in the import script step, the user can do it at run time, but has to do it three times. The only workaround I can think of is to hardcode the filename and pull the full path from a user profile table that is unique to each machine which feels very clumsy.
  6. Hi, My solution opens an Excel file and loops through 3 tabs in it, importing and processing the contents of each. What I really need to do is get the user to specify an Excel file (preferably by opening a script generated default directory and filtering to only Excel files...something I can't seem to get to happen) then, in a loop, import data from 3 separate tabs in the file (tab names are fixed but import mapping is different for the different tabs) and process that data. When I'm running locally I can get the input file name by using Insert File into a container to hold on to the file name and can set up the imports specifying the filename, tab, and import order for each import step. This seems like a really clumsy way to get a filename that can be accessed multiple times without repeated user input, but it seemed to be the only approach back when I wrote .V1 of this script (a couple years back). But it worked for a local database. Now I'm trying to run from FM Server where Insert File is not supported. So how do I do this? I'm running on Mac and Windows so any solution that involves plugins needs to work for either (seamlessly). Conceptually, this seems to be very simple ... get a filename and access it multiple times. But I'm tearing my hair out trying to make this work. Thoughts or guidance? Thanks
  7. I'm trying to arrange for "Insert File" to open in a particular folder (cross platform). It seems it will only go to a specific file that I fully specify. If the file doesn't exist, it seems to go to some other place (like the last folder or the documents folder). Any way to control this? Thanks
  8. I want a layout with a fixed header for every page across the whole page, a leading sub-summary across the whole page, then another leading sub-summary and a body that each span two flowing columns, then a trailing sub-summary across the whole page. From what I can tell, FM can only do the flowing two column thing in all the layout parts except the header and footer, not specific to particular layout parts. Any chance 16 or 17 have that feature? (I'm in 14). If not, any ideas for a workaround? Any way to get the contents of the header and footer to vary like a sub-summary? Any other possible workarounds? Thanks,
  9. I need to determine whether a variable exists as distinct from whether it is empty. From what i can tell, if i access a non-existent variable, it returns empty. If $$foo doesn't exist, IsEmpty($$foo) returns true. But If $$foo exists and is empty, then IsEmpty($$foo) also returns true. How can I distinguish an existing but empty $$foo from a non-existant $$foo? Thanks,
  10. Sorry for the confusion - I was trying to be concise. The Excel files are exported from the web site that hosts the system through which our teachers take attendance. I have a script that automates the export of these files into their default file names. I set up my browser to always save the files in a particular directory - that's the directory that, nominally, I am trying to access from the solution.
  11. Thanks David. This is a process that gets repeated a lot - every day, 7 files per day. Prompting for all of those files gets really tedious and the process is very repetitive so I want to avoid it. But your suggestion reminded me that I also have a user preferences table. I could store user specific paths in that. User can set that path...I think I'll try that.
  12. I have a student records solution into which I regularly want to import attendance data that's coming from Excel files. Each day's attendance is stored in 7 separate Excel files. The user populates the files, then runs a script to import and process them. When I was developing the solution on a stand alone machine I set up a table that contains the path and filenames of the 7 files that the script loops through. If I ever had to move to different paths or decided to change file names, I could just change the paths and names in the table. Fast forward to trying to implement this solution via FMServer (...FMServer newbie alert!). I figure I can just put those files....hmmm...where? On the server in the same directory as the solution? Problem is I don't want the users who populate the Excel files having access to that directory. So I decided to put them on a DropBox folder that's shared between the server and the users who will be populating the Excel files. But now I don't know what path to use to reference the files from the solution. Specifically, the .fmp12 file is in the root directory of the server as in <servername>/Databases/mysolution.fmp12. The files I need to access are physically located on a different machine than the server under it's DropBox folder as in <othermachine>/DropBox/DataSupport to which I have created a symlink on the server that makes that folder look like <servername>/DataSupport. How do I reference that location from the solution? Is it even possible to do so? If so, that would seem like a security risk. So then it occurred to me that these files shouldn't reside on the server, but rather on the clients. But then how do I reference the locations on the clients? The only client paths that I know how to identify reliably are from Get(DocumentsPath), Get(DesktopPath), Get(DesktopPath) and Get(PreferencesPath). Should I set up a preferences file of some sort that documents the necessary paths on the client machine(s)? I suspect someone is going to say that I should put the files in the container directory on the server and access them through containers in the solution. Can I set up the container directory to be a symlink to a Dropbox share? Is that the preferred solution for this kind of situation? Thanks for your thoughts and advice,
  13. I am finding that when I try to create the first record in a child table via a relationship, it doesn't work (101 record is missing). But if there is at least one record in the child table, things work as advertised. Do others have this experience? Is it a "feature"? Any way to get around it other than to just add a dummy record to the child? TIA
  14. Sorry Bruce, I tried to excise the code that caused the problem, and of course, it doesn't occur in the test script. So there muse be some obscure thing in the complete file. But it's 80MB so i think I'll just go with my workaround for now. I'll return if I have some time later... Thanks for trying to help...
  15. I'm encountering a subtle behavior that I can't seem to work around or fix. I have a script that opens a window to select a subset of students from those in a master table. In the layout for the selection, I have two buttons (on top of each other) that set a global field to include or exclude the current primary key in the list of selected students. It all works fine except for one glitch. When I first open the window with the list of students from which to select, I want to move to a record that I think the user is likely to select (a sibling). So I Go to Field(studentname), then do a Perform Find/Replace on the current field with the name that I want to look for, and then pause to wait for user input. Really all I'm trying to do is to set the record pointer to a record that I know. That seems to work fine. The problem is that when I click on the selection button for a record other than the current one, the button code does not execute. The record pointer just changes to the new record. If I click on the button a second time, the code executes. From then on, everything works as expected, whether I select the current record or a different one. It's just the very first time I click on a record other than the current one, the button code does not execute. I have determined that this only happens when I Pause after doing a Go to Field or a Perform Find/Replace. I've tried refreshing the window, setting a field to it's current value, going to the current record - everything I can think of but nothing seems to work. My current workaround is to loop through the records until I find the matching one rather than using the Perform Find. Any insights on why the Perform Find causes this behavior? Bug?? Thanks for your thoughts.
  • Create New...

Important Information

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