Jump to content


  • Posts

  • Joined

  • Last visited

Profile Information

  • Gender
    Not Telling

Flappy's Achievements


Contributor (5/14)

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

Recent Badges



  1. HI Laretta- I enjoyed exploring the website and as it turns out, the transaction model is basically the way I have things set up ( though not nearly as refined), I think I just explained it badly. The modular concept is really interesting and needs further exploration. Thanks for your help- Skip
  2. Hi Laretta- One thing in my favor is that we are avery small shop. We have a total of ten users, but only three of us input quotes & orders. One user is for purchasing, one for accounting, and the rest are essentially view only production types ( looking up job info etc). Can you briefly explain the "Transaction Model" you mentioned ? Is this essentially like a separation model ? Thnaks- Skip ( Flappy)
  3. Our "Cash Register" functions as both simple cash intake, but also as a payments point to receive deposits on orders, and payments on invoices. When the cash register is brought up, there is order references, and account information that is viewed ( open invoices, etc). I do the calculations needed there, then store the result in AR. Rick- please clarify what you mean by "Accounts Receivable" is an unnecessary data point. My solution is used for my screen printing shop, and has worked very well for it's first 8 months. We have used Filemaker for many years for our production jobs, inventory, etc., but this is my first shot at keeping track of money coming in. Just because it works, doesn't mean it's right, so I am all ears if there is something "not so smart" I am doing. LaRetta-The reason I move data is so that the person doing the order or transaction can make a mistake, and cancel their transaction without changing the final transaction data that is stored ( this is much more in orders than the Cash Register as people buying shirts change their minds frequently and there are always edits and changes to be made. I don't see another strategy, but if there is one, I would love to know about it. Thank you both for your time-
  4. I am trying to sort out what the best way to transfer the data from fields in one table, to fields in another table. For example; I have a Cash Register Table, where Cash transactions are performed, and the results of those transactions are transferred to the accounts receivables Table. There are three strategies as I see it. 1. Use The transaction ID Field in the cash register as a match field in a relationship with the Accounts Receivable table that is set to create records in Accounts receivable, then use a series of "Set Field" script steps to Fill in the field data. 2. Set a series of variables in the Cash Register Table, GoTo The Accounts Receivable Table, Create a New Record, Use a series of "Set Field" Script steps to fill in the field data with the contents of the variables. 3. GoTo the Accounts Receivable table and import the contents of the Cash Register Transaction. This is the simplest example I have, there are several others where the amount of data is larger and more complex. I have tried all three, and the import option seems much faster, and easier to script, but I think I read somewhere that it is not a good strategy in a multi user environment. I would appreciate any insight I can get. Thank you
  5. Brilliant! Thanks. I knew it had to be something like that, but it has escaped me.
  6. I am working on an application for garments and I want to use a drop down list in the user interface for garment sizes. My problem is mostly aesthetic in that I cannot figure out a way to sort the sizes into the logical order they come in. I need to use related records because the sizes vary depending on the garment, so using custom values doesn't work, though in my example I use one to show what I am hoping to accomplish. Any ideas ? Size_Example.fp7.zip
  7. I KNOW this is a simple thing, but I need help with it. I want to round a calculation to the nearest nickle(.05). All of the functions I have tried are based on the number of decimal places returned or on rounding to an integer. I feel as if this is so basic, there must be a function I have missed or need a new brand of coffee.
  8. Thanks Comment. I read the help for the function itself over and over, but never made the step back to read the help on design functions themselves. The table I am working with is for order input / job creation. As part of the process, a related record is created in another table (Decorations). This contains the decoration instructions for the products on the order. Most ooccasions, there is only one Decoration ID for an order, so using the job number as the key is convenient and identifies the first order that the set of decorations was used on (handy at reorder time) However, there are times when there are more than one decoration Id needs to be created for a single job number (far less often). When this happens, the decoration id needs to be assured of being unique. It is no problem to do it manually with scripting (how I’ve been doing it), but this new way seemed more elegant.
  9. I am trying to use a single serial number sequence for two things. When I create a new record, I want a Dec_id number to auto enter the same number as an auto enter serial field (job number). No problem. Then, I want to be able to set the next serial value from that sequence in a third field. I have tried every way I can think of with the "GetNextSerialValue" function I can think of with no success. I suspect I have my syntax wrong, but have not had any luck finding my mistake. test.fp7.zip
  10. HI- It seems to me that a four line script isn't that complex to implement. I have had mixed feelings about using tabs for the simple reason they are a pain when they keep jumping around on you. For my situtation, once I understood the syntax of the custom functions, it took me fifteen minutes to write the script, name the tabs, and set the script parameters in my navigation buttons. I am going to check out "Black Magic" and see how it may be an improvement. Thank you very much GenX for the advice on trimming down the code. As an itermediate user who knows enough to be dangerous, but still really struggles with much of the high level techniques, I have found that sometimes less elegent (pedestrian) but understandable (to me)solutions are just what the doctor ordered to keep me productive while I learn more. Thanks again for everyones help!
  11. Thank you Comment. I was doing the right thing the wrong way. Once I saw your example, I was able to get my syntax right, and smooth sailing! Since my last response, I put this thing together and so far it works perfectly. Here is my script; Go_To Layout Scriipt Set Variable [ $dummy; Value:SetGlobalVariable(Get(LayoutName);1; Case( isFrontMostTabPanel ( "1" )=1;"1"; isFrontMostTabPanel ( "2" )=1;"2"; isFrontMostTabPanel ( "3" )=1;"3"; "") ) ] Set Variable [ $dummy; Value:SetGlobalVariable(Get(LayoutName);2; Case( isFrontMostTabPanel ( "a" )=1;"a"; isFrontMostTabPanel ( "b" )=1;"b"; isFrontMostTabPanel ( "c" )=1;"c"; isFrontMostTabPanel ( "d" )=1;"d"; isFrontMostTabPanel ( "e" )=1;"e"; "") ) ] Go to Layout [ Get(ScriptParameter) ] Go to Object [ Object Name: GetGlobalVariable ( Get(LayoutName) ; 1 ) ] Go to Object [ Object Name: GetGlobalVariable ( Get(LayoutName) ; 2 ) ] There does not seem to be a big performanc hit at this point, so I have my fingers crossed. Thank you all for your help.
  12. There is the corresonding GetGlobalVariable function. My use for this is to record the layout name and active tabs in the layout so I can return to the last state of that layout. I have tried another solution to it and it bogs down terribly. My layouts have a consistent tab scheme, 3 top tabs, and five bottom tabs. I have found a custom function which captures the topmost tabs quite nicely. My strategy is to use the SetGlobalVariable function to name the variable the same as the layout that is being navigated out of (using a button), and use the second and third repetitions to store the topmost two tabs. Then be able to recall those values when navigating back to that layout. By giving the tabs common object names (1,2,3, a,b,c) I can use the same script for all of my navigation buttons. Does this make sense ? Is there a better way ?
  13. I have not used custom functions before, and I need to use one to name a global variable. I have found several, the easiest to understand for me is this one I found on Matt Petrowsky's web site called SetGlobalVariable. The problem I have,is I don't know how to implement it in a script. In other words, what script step do I use to get it to name the variable ? It is supposed to replace the SetVariable" step, but with what script step? I am baffled, and I feel like it is right in front of me but I have been staring at it too long. Any clues ? Here's Matt's text: Hi Guys, I recently had the need (or more likely the desire) to set global variables dynamically.. As most of you will know, Set variable allows you to specify a dynamic value and repetition, but not a dynamic name for your variable. This often leads you to store info in a delimited list within one repetition when you need to store multiple peices of information per one subject. This will soon make your scripts become messy and the logic harder to follow Hence two small custom functions: Custom Function: SetGlobalVariable( name ; value ; repetition) Evaluate("Let( $$" & name & "[" & repetition & "] = "" & value & "" ; "" )" ) Example Usage: SetGlobalVariable( "record_" & table::primaryKey ; table::aField ; 1 ) If your primaryKey field contained "991" and your aField field contained "Alex!!" - [color:red]This would be the equivalent of using the script step: Set Variable( $$record_991[1] ; Value: "Alex!!" ) .. or otherwise writing: Let( $$record_991[1] = "Alex!!" ; "" ) Which means that if you were to now retrieve the value of $$record_991 - you would get "Alex!!" as the value returned.
  14. Thanks Stuart. Sorry I was so long in answering, been away for awhile. Skip
  • Create New...

Important Information

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