Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


Everything posted by LaRetta

  1. So close - one piece of portal puzzle missing

    Aleesha, I just want to be sure you understand this point: It does NOT create records in the Activity table but only in the Affiliates table which appears in that Affiliates portal. It only displays on the Activity layout because they are now related. So, if you are on Activities and you want a unique list of the last time you saw Elsa even if it was on ANOTHER Activity other than the current one currently being viewed? Is THIS what you want displayed in that portal? Hey, don't get discouraged, this isn't the easiest form of communication. We'll get there. :-)
  2. Printing in different orientations

    Create two scripts: Name: Print: Portrait Print Setup [ Restore ; Dialog Off ] ... and set the orientation to portrait Repeat with Print: Landscape Then use script trigger attached to the layout ( Layout> Layout Setup > Triggers tab and select the script as a trigger to the OnLayoutEnter. Now it will automatically switch to the correct orientation.
  3. So close - one piece of portal puzzle missing

    I also want to explain that you saw the 3 because you didn't have a popup list attached to the field. Popups insert the ID but DISPLAY the name. If you re-select the 3 and select Elisha, it will correctly display, same with the others - re-select them.
  4. So close - one piece of portal puzzle missing

    Here is how we force refresh. Script trigger attached to the Affiliations::ActivityID field that, when modified refreshes the lower portal. Notice that I object named the lower portal. This makes it update immediately. People and Activities_MOD2.fmp12 We cross posted. Please stand by while I review your file. :-) ---- after reviewing ---- In Activities, Person portal ... the first two records were inserting the person's NAME into the personID field. Go to your Affiliations table and check it. Delete those two records. It should insert the ContactID not name. To know, create a value list named People. Base it values based upon field, People and select ContactID in the left pane and full name in right pane. Below, specify display all values. Just duplicate how I set up the Activity value list. Then go to your Activity table person portal and on the ContactID, change it to use popup based upon the new People value list. By the way, it is simpler if you name the table the same as its primary ID, in this case 'Contacts' or rename the ContactID to PersonID.
  5. So close - one piece of portal puzzle missing

    I should also mention, Aleesha, that sometimes we use script triggers to force a refresh if a portal really needs to display immediately but it depends upon what you're doing because if you are adding multiple Affiliate records, the lower Activities portal will update once you move on. You will also want to probably show scroll bar on the portals.
  6. So close - one piece of portal puzzle missing

    Well, that's what the Affiliations table does. You must tell the computer that 'this Contact wants to attend a certain Activity so you select the Activity. One the relationships knows the ContactID and the ActivityID for the Affiliations table, you're set to go. Committing the record is necessary for the Activity relationship to 'see' the new Affiliations record. The People::ContactID is related to the Affiliations::ContactID so when you create an Affiliation record, the ContactID is automatically inserted into Affiliations to assist in the relationship. But it still needs to know which Activity and when you choose the Activity in the Affiliations table, the Affiliations record isn't REAL to the Activities relationship until you commit or exit the portal. But if you are displaying the Affiliations portal, why do you need to also display the unique Activities portal? That lower Activities portal will never display an Activity record that the current person isn't a member of. Asking questions is always okay here, Aleesha. :-) Are you actually looking for a way of displaying ALL ACTIVITIES in a portal, even ones the person does not belong in? I guess I should have asked you for the specific purpose first.
  7. So close - one piece of portal puzzle missing

    The table below is the Activities table. When you select the Activity in the upper Affiliates table, it inserts both the ContactID and the ActivityID into the Affiliates table. Since the Affiliates table is linked to Activities, that relationship (for that Contact) is now complete and the unique Activity will now automatically appear in the lower Activities portal. You will have to commit the record (click outside the portal or into another field) to see it appear below. A global field's value is the same for every record in the table so if you typed a 1, ALL Contacts would then have ContactID 1 which isn't what you want. Global fields can be accessed from any other table without a relationship and they are handy mostly for Developer work but for real data, you want to use stored values. In the case of ContactID, you need a unique serial for every Contact record so you can tell one from the other.
  8. So close - one piece of portal puzzle missing

    You had browse mode unchecked on the ActivityID field in the portal so you couldn't create the new record. But it's also important that ContactID not be global. :-) I originally thought you wanted a portal showing only the unique Activities, which is why I gave you both. :-)
  9. So close - one piece of portal puzzle missing

    Hi Aleesha, Your Lookup layout is actually your Contact layout. It would be where you list Contact data and display a portal to Affiliations and add an Activity to the Contact. BTW, you had ContactID set as a global field which won't work so I changed it back to regular auto-enter serial number. So now you can add Contacts to the join table. Below that, I placed a portal to Activities which lists only the activity they attended. This portal might or might not be needed but if you wish for a unique list of Activities they attended, then you can use it that way. Turn off entry to fields in Activity and do not check 'allow creation' into the Activity table. Notice I created a value list of Activities (the ID and also displaying the description) to make selecting an Activity easier. People and Activities_MOD.fmp12
  10. Filemaker project structure

    Hi John, welcome to FMForums! It is feasible to use two files, one called the UI (which holds all the layouts and scripts) and the second file holding the data itself. Search here for 'Separation Model' for many discussions on it. I suppose one could use different UI modules files (an Invoice UI, a Contacts UI etc) but that seems overkill since these modules must interact via scripting and jumping from one file to another adds complexity and cost. All modules can reside in single UI file and be displayed for different customers according to whether they have rights. Secondly, separating customers into different data files might be necessary but only if each Customer possesses their data file legally such as customers which are actually Cities or if the size of each City's data file is in the GB size. Normally, your customers would reside in the same data tables but each record would be designated with different CustomerIDs and you would use a Customer table to hold their information. You haven't yet indicated your FM version. If 16, a new feature is the ability to specify the external file reference via global variable which adds great flexibility The added bonus of separate UI is ease of design because changes can be made independently on the UI and then you simply replace the served UI. Of course if you add fields, you'll need to track those changes and be meticulous in making those changes in same sequence in the data file but most work, after a solution is functioning, are layout/script based. As Comment asks, it would help to have more information on your set-up and your relationship to these 'customers.'
  11. Deleting Found Records

    One possibility ... Go to your layout with zero records Perform your find Open a new window Perform Delete All Records Close your window This should leave you with your 0 record state. Of course it still fetches those needless records but at least you've back to 0. I suppose you could instead Show Omitted so I doubt this will help.
  12. Import Excel not working

    Welcome to the world of knowledge based upon the input of others. This is why Stephen's FMForums is so powerful. I too have learned far more from these forums than any FM Help manual and I am beholding to the folks here. And that is why I, like others, give back here to assist with questions every chance I get, and still can't rate myself an expert. I will NEVER be an expert particularly since FM functionality changes version to version. If I EVER admitted I was an expert, it would be boxing myself in from future improvement. Smugness and ego is a dead-end and has no place in FMForums. Most folks here only want to help.
  13. Import Excel not working

    Indeed, Mike. I should add that Comment isn't really guessing (even though he says he is) ... he is deducing and nobody does it better than Comment.
  14. TJ53, could you please update your profile? It helps us when we respond to your questions. Thank you! :-)
  15. Import Excel not working

    WOW! Great guess!
  16. Too many calculations!

    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.
  17. Too many calculations!

    Aleesha, you are a quick study! You'll be up to speed in no time flat! It is really nice to see someone begin their files with a relationally-sound base structure. Way to go! Again, welcome.
  18. Too many calculations!

    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
  19. Import Excel not working

    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?
  20. Insert Calculated Result Bug

    Yes, another example is: Insert Calculated Result [ TextSize ( Middle ( Get ( ActiveFieldContents ) ; Get ( ActiveSelectionStart ) ; Get ( ActiveSelectionSize ) ) ; 24 ) ] It certainly has its value when the User is on a layout. Also, Insert Calculated Result[] can paste its result into the current field in the current record or into a variable. It would help to know specifically the script and calculation jaboda used that fails. It is probably because the field isn't on the layout.
  21. Insert Calculated Result Bug

    jaboda, there are times where Insert Calculated Result[] is valuable. One example is when using Set Selection[] step and then use Insert Calculated Result[] to insert text at that point. Set Field[] wouldn't work in that example and there are a few others not coming to me at the moment. But Josh is correct that it is far more limited than Set Field[]. Can you provide the calculation and how you are using it?
  22. 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!
  23. I see the issue, thanks for explaining it further. The only suggestion I have is to: Set Variable [ $priorRecordNumber ; Get ( RecordNumber ) - 1 ] ... put your existing steps here Go To Record/Request/Page [ by calculation ; $priorRecordNumber ] This would put you at the last 'not paid' record before you changed the next one. Would that help? I would also suggest making the suggestion to FMI. :-) On second thought, you could drop the -1 and should land on the 'next' record in sorted order.
  24. Try: Left ( Get ( ActiveFieldName ) ; Length ( Get ( ActiveFieldName ) ) - 5 ) Remember both Length() and Get() need closing brackets BEFORE the Left() is closed.
  25. Since you might click either portal, and the portals are based upon different table occurrences, how do you set a global field with the value within the same script, depending upon two different table occurrences? And if you use a script attached, you can't identify the 'active field' to GET the activetablename. Is this where you are stuck? AND without hard-coding the source table/field name.

Important Information

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