John Chamberlain Posted February 15, 2003 Posted February 15, 2003 Can anyone tell me if it is possible to script a button such that it changes the value in a field each time it is switched (like a logic switch)? What I want is for the field value to change from 0 to 1 (if it is 0) and change back from 1 to 0 the next time it is clicked. I know I can do this with two buttons for each choice, but I have to need a lot of them, and it really clutters up my layout. Thanks,
Ugo DI LUCA Posted February 15, 2003 Posted February 15, 2003 Script the button with If "yourfieldvalue" = 1 setfield "yourfieldvalue", 0 End If If "yourfieldvalue" = 0 setfield "yourfieldvalue", 1 End if
LaRetta Posted February 15, 2003 Posted February 15, 2003 Hi John, I think there may be simpler ways to handle your situation, but without knowing the purpose or a bit more, we can't give you other ideas. Are you using this switch to track whether another field value has been changed? Or simply to select/de-select a record? For instance, if the switch should change if a value in another field is changed or modified, you could use a calc, unstored num (and identify the fact that a field has changed, via several possibly functions, including Status(CurrentRecordModificationCount) or if ModificationDate has changed, etc. If you simply want a switch, you might consider creating a value list called Switch (which I stole from CobaltSky). Here is the explanation of the process: An example of a value list that might get used more than once would be a value list called 'Switch' with the value set as 1, which can be used to drive a checkbox interface (so that if the box is checked the field holds a 1 and if not it is null). With a 'Switch' value list, you only need one of them, because the same value list can be attached to many fields on a layout - all the checkboxes in fact. So when a user brings up a layout, they may be looking at a dozen instances of the 'Switch' value list in a variety of states (i.e. on or off) scattered throughout the data. Another example would be a value list for a questionnaire based on the Likert Scale method (where each record has a number of questions which are answered as: Passionately Agree Agree Undecided Disagree Violently Object Again, the same value list might be applied to all twenty fields of the questionaire. Very ecomonical! Then there's all the generic value lists that have things like Small Medium Large Extra Large with Fries and a Coke You can also attach the script directly to the field instead of having to select a button. Anyway, I think we could offer better suggestions if we had a bit more information as to what you wish to accomplish! LaRetta
John Chamberlain Posted February 15, 2003 Author Posted February 15, 2003 Hi Ugo - I tried this script: If ["Area 1 =1"] Set Field ["Area 1=0"] End If If ["Area 1=0"] Set Field ["Area 1=1"] End If When I click the button nothing happens. If I click in the field and then click the button, it becomes a 0. Clicking the button again still gets me no change. Can you tell me what I'm not understanding here, please? Thanks, John
John Chamberlain Posted February 15, 2003 Author Posted February 15, 2003 Hi LaRetta - My problem is this: 1. I have a series of city names that can be chosen by a Volunteer at Trinity Hospice Care. The Volunteer may chose one or more of these cities in which to provide hospice care. 2. What I want to end up with is a field that is a concatenation of the cities chosen. 3. I figured that, if I could assign a button that would switch on or off for each of the City choices, I could then compute a field that would contain just those choices (e.g. choosing Redondo Beach and Torrance would yield "Redondo Beach, Torrance, while choosing Hermosa Beach, Torrance and Palos Verdes would yield Hermosa Beach, Torrance, Palos Verdes). Maybe I am making this too complicated - can you suggest a better approach? Thanks, John
LaRetta Posted February 15, 2003 Posted February 15, 2003 Hi John! Well, I'm no expert, but I would suggest you check out a demo file called List Compiler by CobaltSky ListCompiler. What this will do is, as each city is selected, it will be added to the list. Then you'd just need a calc to display the results in a Case statement. If you use a switch field (which would apply to each record), you can end up with duplicate cities selected by accident. How are you displaying the cities? Are you finding all unique and then displaying on a list? LaRetta
Ugo DI LUCA Posted February 15, 2003 Posted February 15, 2003 Sorry for that. You need to insert stop script. If Value = 1 Set field Value, 0 Stop script End if If Value = 0 Set field Value, 1 Stop script End if
Ugo DI LUCA Posted February 15, 2003 Posted February 15, 2003 I felt idiot some time ago with this. Duplicate your field in the layout. Set format for first field as a checkbox format Set format for second to plain text. Go and see what happens.
John Chamberlain Posted February 15, 2003 Author Posted February 15, 2003 Well, now i'm really confused! Ugo - tried your changes using "Halt Script" - no change - tried using "Exit Script" still no change (this ocurred with both a plain text field and a checkbox field. LaRetta - downloaded that file, but it does not work. When I selected another ingredient the results field cleared itself permanently. Regards, John
Ugo DI LUCA Posted February 15, 2003 Posted February 15, 2003 Here you R See attachments for radio button 1/0 + checkboxes
John Chamberlain Posted February 15, 2003 Author Posted February 15, 2003 Ugo - Perfect! Thanks mon ami. PS What kind of cars do race? I was involved in sports car racing as an official here in Southern California for about 25 years, and was the Chief observer for the final F-1 race at Long Beach in 1983.
Ugo DI LUCA Posted February 15, 2003 Posted February 15, 2003 Glad it workded.: Well for the rest, it's not me, it's just Gilles Villeneuve. But in 1983... For so many italian (was born there just one mile from Ferrari's circuit), he still remains a Myth...
Lee Smith Posted February 15, 2003 Posted February 15, 2003 Hi John, Here is one without the halt scripts. If [ YourField = 1 ] Set Field [ YourField , YourField = 0 ] Else Set Field [ YourField , YourField + 1 ] End If HTH Lee I removed the go to layout, you don't need it.
harryk Posted February 15, 2003 Posted February 15, 2003 Set field ["yourfield","abs(yourfield-1)"] THE oneliner for toggle between 0 and 1 Harryk
LaRetta Posted February 16, 2003 Posted February 16, 2003 Oh so sorry John! If it cleared the field when you tried to use it, you must be using vs. 5.0!! List Compiler requires FMPv5.5 or above because ListCompiler takes advantage of the GetField() function. I should have asked you which version you were using, sorry about that. LaRetta
John Chamberlain Posted February 16, 2003 Author Posted February 16, 2003 Thanks to all of you, your suggestions and ideas were great. I can't believe you all paid so much attention to my little problem. Thanks especially to LoRetta and Ugo (who gave me the best clues and solutions). You guys are wonderful! John
Recommended Posts
This topic is 7955 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now