Newbies Velda Posted April 1, 2006 Newbies Posted April 1, 2006 Please excuse my lack of proper terminology, but this is my first day with FM and it will be a couple days before i can get to a bookstore to properly learn the application. im trying to build a simple database first, a comment card system. A poor little girl hasta sit with my laptop and enter 5,000 comment cards into this DB: 5 fields of Excellent, Good, Fair, Poor, or NA. I have it set up with drop down menus and tab completion, so she hits G tab E tab F tab N tab E tab Enter or whatever the ratings are per card. i havent yet figured out how to give the final report, but id also like to make the data entry for her easier, specifically removing all those tab completions. Is thate Any way to auto advance fields on a single key press like that? thanks in davance for any assistance.
Ender Posted April 1, 2006 Posted April 1, 2006 Is thate Any way to auto advance fields on a single key press like that? Sorry, No. I'd probably use radio buttons for those fields, as it's visually easier to follow, and usually matches closer to the format used in a paper survey. But a , , or key would still be needed to advance to the next field (you can allow the and keys to advance by setting the options in the field's Behavior setting.)
LaRetta Posted April 1, 2006 Posted April 1, 2006 "5 fields of Excellent, Good, Fair, Poor, or NA." These five fields should be ONE field. The most common mistake here is to set these types of survey/questionnaire solutions up as flat-file. There is a difference between a computer-taken survey and a paper survey. Computer survey should be radio button as Mike indicates. But for data-entering completed surveys there may be easier ways; such as using a one-field portal and entering a 1, 2, 3 etc. into standard field; tab creates new record. Keying from numpad is easier than typing E, G, F etc. You can then easily convert (or display) the data using Choose(). If only one field, that gal could type a number, TAB, type a number, TAB ... instead of TAB TAB TAB to the right field then typing a G. What are the 5,000 comment cards? Is each card a question? Or does each card have many questions? Who answers the questions? You are just now beginning the design so I suggest you get the base structure correct now. If you do so, your reporting needs will be MUCH easier. Would you feel comfortable posting your file and letting the Relationship Experts here (not me) give you suggestions? LaRetta :wink2:
comment Posted April 1, 2006 Posted April 1, 2006 You could enter all 5 values into a single temp field, then use calculations to break them up. Use a looping script like: Loop Go to Field [ tempField ] Pause Script If [ Length ( tempField ) = 5 and Length ( tempField ) = Length ( Filter ( tempField ; "EGFPN" ) ) ] New Record Else Beep End If End Loop to create new records as you go.
Ender Posted April 1, 2006 Posted April 1, 2006 "5 fields of Excellent, Good, Fair, Poor, or NA." These five fields should be ONE field. Hmm, I took the original statement to mean five questions where each has those choices (otherwise why enter a value and tab between them?) Perhaps Velda can clarify.
LaRetta Posted April 1, 2006 Posted April 1, 2006 Hi Mike, I think you're right. I wasn't sure at the time. But I posted because of structural concerns I observed. Those five response fields indicate 5 response fields or ... 5 QUESTIONS within one record (I think). Having each question as a field instead of a record may (will?) cause reporting problems, right? I hope I didn't jump in and confuse this thread but I wanted to warn Velda about an improper structure and how it might cause problems. Turning Surveys and Questionnaires into flat-file is a common error. I'd just as soon bow out and let you and Comment run with it ... you both are far better at this stuff than I. LaRetta :wink2:
Ender Posted April 1, 2006 Posted April 1, 2006 Having each question as a field instead of a record may (will?) cause reporting problems, right? If only one question is summarized at a time, then there's no problem with 5 question fields for this. But if Velda needs to have all questions summarized on the same report, then yes, a relational structure is better. The relational structure also gives much more flexibility for adding additional questions later (without having to change the reports.) Turning Surveys and Questionnaires into flat-file is a common error. Well, I was originally just trying to answer the question about tabbing, but you're correct that the structure of such a solution is important to think through to the reporting requirements (I had assumed Velda had already found a structure, so I didn't want to suggest going back to the drawing board.) I've done surveys & checklists both both flat and relational, and I've commented on both techniques in these forums. If you or Velda are interested in more discussion about structuring a survey, or are interested in seeing an example of making a single multi-question report with a flat-file survey, check this thread: http://fmforums.com/forum/showtopic.php?tid/173576/
Newbies Velda Posted April 2, 2006 Author Newbies Posted April 2, 2006 this is my first DB, so i really have little clue as to how to structure it. Unfortunately i MUST have this working before il ever have a chance of getting a book on FM, so im restricted to slower than dialup internet to figure it out right now. Correct, it is five fields, with either Excellent, Good, Fair, Bad, or NA in them. Right now they are drop-downs with tab auto completes. Im not using radio buttons as a mouse is so much lower than a keyboard, even when tabbing between entries. To enter the radio buttons in by keyboard its a letter, space, tab, which is way too much for the girl to do for 5,000 comment cards. so what ive gathered is that im just stuck hitting tab between fields? I see how a single field with five letters would work, but i do not have the skill level to write the calculation or macro needed to disect each entry and add them to the appropriate fields. hell, i still cant figure out how to get my totals yet. worying about speed of data entry is trivial if i cant even get my report. thanks for the info
coconutt2000 Posted April 16, 2006 Posted April 16, 2006 I cheated and used a custom function in this file, but since the custom function is included in the file... Well, see if this helps. The five response fields have been changed to Auto-Enter using a calculation. Enter in 1-5 in each field, and the calculation will fill in Excellent to Not Available. Not available is the default when empty. Tabbing is done using either tab, enter, or return. 1= Excellent 4= Poor 5= Not Available The list layout is as a table, creating a new record is as simple as using a keyboard shortcut. Tab to the next field and continue to enter. Modify the file as much as you want. fields.fp7.zip
Ender Posted April 16, 2006 Posted April 16, 2006 Not sure how a custom function is going to help a beginner with the standard version of FM8. And since the CF is not necessary for that auto-enter calc, it's probably better not to disguise the solution with it. In any case, the question was about avoiding having to or between fields.
coconutt2000 Posted April 16, 2006 Posted April 16, 2006 (edited) The custom function is a shortcut that the user can call. It accepts a number and converts that number into Excellent, Good, Fair, Poor, or Not Available. The file demonstrates how an auto entry calculation field works, and it provides a nifty little custom function that only requires that the user figure out a way to pass a number to it. Now, the following file, field_2, continues to use a custom function, but it is a bit more complex, and it uses a single field for data entry, and auto entry calcs to populate the comment fields. The second attached file, field_1, uses the same function as the first file I posted a few posts back, except it uses the same method of parsing a data entry field for the look up, auto entries. fields_1.fp7.zip fields_2.fp7.zip Edited April 16, 2006 by Guest
coconutt2000 Posted April 16, 2006 Posted April 16, 2006 I have to warn everybody, and LaRetta pointed this out to me, I have a tendency to use "lookup" to describe auto-entry calculations. In my mind, the actual lookup fields are in fact a subtype of auto-entry calc, but instead of using a customizable calculation, the field grabs data via a relationship. Believe me... This does some odd things to the way I do some things in Filemaker. -) Anyhow, happy pecking.
Ender Posted April 16, 2006 Posted April 16, 2006 I'm afraid you've missed the point. Custom functions are a great tool for reusing complex code, but they cannot be viewed or edited with the standard version of FM7 or FM8. Your reader would need FM7 Developer or FM8 Advanced to understand what's going on. Since your calc does not use recursion, the CF is not necessary, and since Velda is likely using the standard version of FM8, offering a sample with the calc tucked into a custom function is probably not very helpful.
coconutt2000 Posted April 16, 2006 Posted April 16, 2006 Ender, I think you missed the point. The custom function will translate any integer between 1-5 to the appropriate text value. The user can design around the use of the function without having to write the case function. The Case function is simple but repetitive, and the requirements for this simple database are light. The meat of the examples in the file is in the use of the calculated auto-entry and not in the script. The user can easily figure out how to use the Case function by doing a simple search online, but having a chance to play around with calculated auto entry that works along the lines of the requirements, without being exposed to lots of code, is in my opinion more useful and less overwhelming. Once the newbie has a grasp on how the auto entry works, they're free to write their own calculation from scratch, or to use the shortcut provided by the custom function. If what the user wanted was to learn how to code in filemaker, I'd have designed the file differently. But since the newbie wanted to learn how to design a solution to his particular needs, understanding how auto entry calcs work was more important, in my mind, and I'm not above providing more help with understanding the calculations when the newbie gets to that part of the design and customization of their solution. This was a design problem, and I offered some ideas and samples on how the design problem can be solved. When the user decides they have a grasp on the design aspect, they'll be able to ask questions on how best to leverage their (new) understanding of how the auto entry fields work to design a calculation that works for them. Without knowing how the auto entry calc works, the newbie will be stuck asking questions about all kinds of irrelevant stuff. The example files are in the context of what the original poster was trying to do. They provide decent examples of auto entry calculations. They include a simple custom function if the new user wants to customize the files using what they learned about auto entry without having to learn any new functions or attempt to modify 5 different case functions in five different fields. If the original poster finds my attempts to help inadequate, he can tell me that, and I'll do what I can to help further. Chiding me for my method of choice is silly. If you feel that the newbie needs an example of a case function, which won't do him much good if he doesn't know how to use auto-entry calcs, provide an example file for him.
Ender Posted April 17, 2006 Posted April 17, 2006 I understood what your CF does. But for a beginner, it may not be obvious what your calc is doing, and since there's no reference for the function 'rating( anum )' in the FileMaker help, this seems like a likely source of confusion for Velda, or anyone else who stumbles across your solution in the future. I can just imagine someone trying to type that auto-enter calc in, not knowing anything about CFs, and getting stuck before they even have a chance to see the utility of the auto-enter calc. My point is that using a developer-only feature like this, when it is unnecessary to do so for the solution and where your target audience does not have a developer version, is likely to cause confusion for the person you're trying to help. While I am not the original poster, I hope you don't mind if I chime in if I think something could be made clearer. The issue is not with the method you would choose to use, but how to communicate the general solution. If the point of the solution is an auto-enter calc, then it would seem better to keep it simple by using an auto-enter calc without the CF.
LaRetta Posted April 17, 2006 Posted April 17, 2006 Heck (untested and in my sleep) Choose ( anum - 1 ; "Excellent" ; "Good" ; "Fair" ; "Poor" ; "NA" ) No custom function either. And yes, CF would confuse someone because - even though Velda may be a newbie, she has a name and a mind. And I would think she would want to see whatever it was that was happening. I certainly would. : I've gotten ahold of some demos which I couldn't figure out. And I sometimes truly think I'm seeing magic before my eyes!! Hopefully I figure it out. But if Velda doesn't have Developer (Advanced) then she can neither SEE it or USE it in her solution. LaRetta
coconutt2000 Posted April 17, 2006 Posted April 17, 2006 The file is a demonstration of the use of auto-entry calc on fields. The custom function means there's less magic. But LaRetta has a good point. Choose() is far more elegant. Never used it before, but looking at the desk reference, I have to admit, that's a nice solution. Just insert Choose(Middle(dataentry; %n; 1)-1; "Excellent"; "Good"; "Fair"; "Poor"; "Not available") into the auto-entry calc, where %n is the ordinal of the character you want to extract, and it should work. I didn't test it, or double check the syntax, but the gist should be clear. Now, if either of you looked at the files I uploaded, you'll see that there are included a sample data set that demonstrates what the custom function does do through the simple expedient of its results. Essentially, this is a design question, and I answered with a demonstration of a technique. But, I think this broohaha over the custom function is misplaced since the custom function is used to keep the code in the calc clean, and not as the final solution to the proposed problem. As LaRetta has demonstrated, the actual calculation can take different forms, but without knowing anything about auto-entry calculations, and how a second field can be used as the trigger/source for an auto-entry calc, the elegant calculation proposed by LaRetta does Velda absolutely no good. All I've done is provide a demonstration file for two techniques for fast data entry using substitution calculations embedded in auto-entry calc'd fields. The first file demonstrated that the auto-entry calc can take the data out of the field to which it is attached, work on it, and then return it to that field. The second file demonstrated that the auto-entry calc can watch for changes in a second field, grab the data, manipulate it, perform its subsitutions, and insert the result into its field. Now, this could've been demonstrated using completely unrelated examples. I chose to try an example that closely resembled the problem being solved. I personally don't believe that including the custom function is going to confuse Velda, because I noted specifically that the calculated transformation/substitution was being performed by a custom calc and that the calculation itself is irrelevant to the technique, as LaRetta has amply demonstrated with her far more elegant use of Choose(). And, as of yet, Velda has yet to chime in as to whether or not I horribly confused her and ruined her life. Thus, such criticisms of my teaching method are premature. Besides which, if anybody has a better idea, post it. Don't waste time handing out evaluations. I learn a lot from reading how different people approach a single problem. I've been lurking on these forums for a long time now, and in the last few days since I started actually contributing, I've managed to help a few people. That makes me feel good, and I'd like to help more people. What I don't need is non-constructive criticism. Honestly, if you think there's a problem with the way I presented a technique, and you feel strongly enough to tell me there's a problem with my technique, you should be able to whip out your expertise and modify my unlocked an open file and upload a new copy or upload a copy of your own idea of how it should be presented. Now look at how much time we've wasted because you fixated on the custom function which is really arbitrary, easily ignored and replaced, and obviously less elegant than the Choose() function that I forgot to use. One thing is for certain, I'm going to be looking at the project I'm working on right now and I'm going to see about using the Choose() function more often. (As for my demo files, you'll notice that replacing the expressions used by the auto-entry calc is as easy as copy and paste. You'll also notice that the technique being demonstrated, auto-entry calc, continues to function even when a different function is used to evaluate the dataentry string. As far as I'm concerned, I think the files work rather well as a demonstration of two auto-entry calc techniques for shortening data entry times. And now that Lent is officially over, I'm going to go out and eat myself the first meat I've had since Mardi Gras. If I seem a little testy, it is because of the complete and utter waste of time it has been trying to explain that the custom function was completely irrelevant to the technique, and that its presence in the file is not likely to cause massive amounts of confusion, and until an end user tells me that it confused them, I'll continue to stand by my demo as a reasonable and simple demonstration of two auto-entry calc based techniques for quick, simple data entry. Full stop.)
LaRetta Posted April 17, 2006 Posted April 17, 2006 Whoa there ... we were only pointing out that CF wasn't necessary here. And if it is presented, it should be made clear that one needs Advanced to see it. But, just as we don't give someone a .fp7 file if they are using .fp4 - we must match the needs to the person posting and I would hope and expect anyone to step in and correct ME if I err'd on this. And I DO get corrected quite often. You are doing wonderfully here. We help each other by filling in any pieces that we, because we ALL give a lot of time we don't have, just can't always mention. Mike, of all people, is not one to criticize. And I'm the Queen of What-Not-To-Do so don't sweat it. You have a deep love to helping people as do I (and many here on Forums). We are all like a fine stew (some are potatoes and some are veggies and some are ) but a good stew would be tasteless and boring without ALL the ingredients. LaRetta
coconutt2000 Posted April 17, 2006 Posted April 17, 2006 The difference is that I already knew the custom function was irrelevant, and didn't need anyone pointing that out to me. But if somebody is going to point it out, they should provide an alternative calculation that works just as well. In point of fact, if Ender had instead posted the Choose() function as a replacement for my custom function, that would've been the end of it. I would've been reminded that a useful built-in function already did what my custom function did, and did it far more elegantly. Velda would've benefited from the file I provided and the much more elegant and customisable calculation that Ender could've provided in less than 20 seconds. None of us will have wasted any time arguing how pointless it is to argue over something that is pointless. I dislike non-constructive criticisms because they're pointless, and I tend to dislike people who engage in such pointless behavior. Ever have a passenger in your car who criticized the route your were taking to get somewhere, but who offered no better routes? It doesn't matter that the passenger might be a formula one race car driver or even a veteran cab driver, such behavior is annoying and rude. In this case, focusing on the custom function was annoying. I took the time to put together the file from scratch, and in my opinion it is a functional file. The custom function was included because I'd completely forgotten about the Choose() function, and I wanted a simple way to write the auto-entry calc without having to do a lot of editing. I also wanted the calculation to demonstrate the use of Middle(), and I didn't want a Case() function filling up the screen. The Choose() function is far more elegant, and it works. Its use is clear and it is concise. Understand that I respect Ender's expertise. I've been coming across his posts all over the Internet in Filemaker related forums for a while now. But in my opinion, bed side manner is just as important as expertise when dealing with people. A good book, and easy reading, is "Carry On Mr. Bowditch." In one scene, the genius in the book is confronted by a little girl's observation that he intimidates people because he is so smart, and that when he's explaining something and if somebody is slow to grasp it he is even more intimidating. It is like he's stumbled across a chair and he kicks at it, except that people aren't chairs. And that goes back to the point that if Ender was so concerned about the custom function confusing Velda, a couple seconds to post a Choose() function that does exactly the same thing would've been enough, because in the context of my uploaded files, the actual function didn't matter, only the output from the calculation. And in that regard, my files do exactly what they're supposed to, which is demonstrate the use of auto-entry calcs to modify data inside a field, based on data entry into the field or into an external field. Now I'm starving. I'm going to go find me a steak and some shrimp.
Ender Posted April 17, 2006 Posted April 17, 2006 Hey, how'd this turn into something about me? Let's talk about something else. Hmm, that stuff about stew & steak & shrimp sounded kind of good... :beertime:
Søren Dyhr Posted April 17, 2006 Posted April 17, 2006 Ever have a passenger in your car who criticized the route your were taking to get somewhere, but who offered no better routes? Excellent metaphor, except that, what Ender noticed was your seemingly ignorance of an important roadsign, but didn't question your instinct or sense of direction as such - what you forgot to explain in the haste, was namely your interpretation of the questioners profile. What you have to get used to, is that even if you can make filemaker jump hoops, are you likley to get your reasoning scrutinized, you can't make the amount of the efford thrown into it being a legitimate cause, in it self. Did you take it for granted that it (the profile) was a bygone or even worse a bluff? How likely is it after just 3 postings?? It made me think of Clausewitz and the need for scouting ...this kind of explain my thinking: http://en.wikipedia.org/wiki/Fog_of_war --sd
Charles Delfs Posted April 18, 2006 Posted April 18, 2006 Geez, lighten up, this is fiemaker not a UN debate. this was not a compicated probem ... C.
Recommended Posts
This topic is 6795 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