Ok, first of all, I have no iPhone or iPad and no way to play around with barcodes / qr-codes. Any help on that would be really appreciated.
But for the rest I think we can work something out.
For now, as I understand it, we would have a layout for students and we will store their information.
We will enter all the classes beforehand and we will list all the possible dates they will be given on, the times they will be given on and the locations.
Then later on, a teacher chooses a class based on the current date (he can only select a class that's given on that specific date) he selects a time and a location (he should only see the times and locations for this specific class) and then students get entered (barcode part should come later)
The time a students "scans in" is stored so you can tell which students were to late.
Then on the student layout we want to see a list of the classes they attended, and we want to make reports listing classes and the attendance.
Students will be scanned at the door with what hardware? Scanners linked to computers typically run in keyboard emulation mode such that the scanned data is entered into the computer just as though you had someone sitting at the comptuer rapidly typing in the data. Such scanners can usually be configured to put a specific character or group of characters at the beginning of the scanned text and you can configure your layout to use the OnLayoutKeystroke trigger to perform a small script that puts the cursor in the correct field so that the scanned data then is correctly entered into the field.
Then you can set up the scanner to append a return, tab or enter character to the end of the scanned data and this character can then cause the cursor to exit the field, tripping the OnObjectExit trigger to perform a script to process the scanned data.
Thus scanning the barcode can put the code into global field and a script can then process the scanned data to log the student's attendance and all the user did was scan their ID card.
But if they will be using an iOS device such as an iPhone to scan the barcode, the process is more complex and you should ask that question in the FM GO Forum.
If you search this forum with the keyword Barcode, you should be able to find a number of posts where I've suggested sample scripts for integrating a barcod scanner with FileMaker.
Thank you DaSaint for moving this to the forums and PhilModJunk for your advice. The barcodes will be scanned using an iOS device, and I plan on using FileMaker Go on the devices. I'll definitely look there for guidance.
As for the main database, DaSaint - you definitely have the right idea. I can create a table with the student info and I can generate individual barcodes based on their username. I'm not sure how to organize the table/layout for the classes - how could I input multiple dates and locations for each class? I think I'm too used to thinking of tables as simply 2-dimensional, so I'm having trouble imagining the organization of this database.
Allright, so here's a first screencast on getting this database made.
It's a little long but I think it is handy to see someone do it.
It's just one way of doing this kind of thing and there might be other / better ways to do this.
It's also pretty basic and I don't add all the details, and bells and whistles.
EDIT/ I had to change the URL because the video didn't seem to be playing. I hope it works now.
Now if you want you can start making all kinds of printable reports showing the list of students attending a specific class, or printing the list of classes a particular student has visited. etc.
Hello, I have followed your YouTube tutorial and it was really good. I got everything to work and even made some changes so I could track things for my karate school.
I am trying to get the LayClass layout to pull the records from the attendance - so that I can create a record in attendance and then go to the classes and see all the lessons that have been recorded for that main class.
That's my database that I have so far. I couldn't figure out how to turn off security so the user is Admin and there is no password.
If you have any advice on how to get that to work I would appreciate any ideas.
You have a problem in your Attendance Layout.
You are selecting a class. But no Class Detail.
It took me a little while to figure out but you are selecting a Main Focus. And that is supposed to correspond with a Main focus from your classes. But you are not setting the Class Detail ID here. Just the main focus.
What you need is to:
- Select a class.
- And then in the Main Focus you should only be able to select the Main focuses that exist for that class. Maybe with Date and everything.
This is called a Conditional Value List. I have a video on that.
I made some changes to your file but I can't explain them all. I made a conditional value list on your attendance layout so you can select a Main Focus from the Class details.
I suggest you check out my video on conditional value lists. And analyze the changes I made.
Thanks for your quick reply - I saw the changes and watched the video again. I think I understand how it works a little bit better now. You are such a huge help!
The only problem is that I can't figure out how to make class record work backwards from attendance.
In my case, the classes themselves never change - they are always on the same day at the same time. So I would like to be able to use the attendance layout to select the date - then the class - then define what we did in that class and take attendance.
Then when I go back into the classes layout - it just gives me a visual of what we've done in each class.
Right now, the way I understand it, I would have to first create the class in the class layout and define what we did - then go to the attendance layout to choose that class - that main focus - and then take attendance. I'd like to cut out the extra step.
Sorry if this is confusing - I can't reverse engineer it and have it work :/
Hey Alexis. If I were you I would just throw out the Attendance table and relate your Attendance detail stroight to your Class details.
That way you go to your Class layout, enter a Class detail in the portal. Set the Date, Time and main focus. And immediatly set attendence on that layout.
I don't think you need the extra attendance layout.
I think that might make your file a whole lot simpler.
I made a quick little test here:
I didn't check it thouroughly but it seemed to be working.
I added attendance taking to the Classes layout. And modified the portal on the Student layout.
Let me know if this is in the right direction.
Thank you for taking the time to go through this with me, I am learning a lot.
I went through the file you created and it is almost exactly what I need. I made some changes (I hope they make sense) and put the new layouts in KarateLayouts. I didn't want to delete the originals incase I broke something.
Everything works just how I need it to, so thank you very much! The last piece is using a barcode scanner to enter the attendance.
I looked over the forums and found a bunch of article and even a sample file with example scripts. I tried to implement them - but while I can get the scanner to open - I can't get it to do anything with the information.
I know you posted on a previous question that you don't really do scanners - but if you or anyone else had an idea of why the script won't pull the data into the portal - I'd be really grateful if you could take a look.
I just looked at your file and I don't really think any of those scripts can really work. There is way to much stuff that's missing or not working. (Like layouts that aren't present etc.)
I think you should start with the simple basics.
Ideally something like this should happen:
You hit your scan button.
Then your cursor goes into a field that wil accept the scanned data.
You scan and the ID number of the scanned item is entered.
This creates a new record in your portal that's related to this selected lesson.
Voila. Sounds simple, now let's break it down:
A scanner is simply something like a keyboard that's going to enter a number.
This number is the ID of your student.
You need to capture this ID, and when the ID is entered you need to do something with that entered id.
How do you know when your ID has been entered completely?
You need to set your scanner to add a tab or an enter at the end.
Then your field wil be "committed" And you can then set a "script trigger" to the "OnObjectModify event of this field to do something with your scanned ID.
I created a little sample in your file:
You can test this without a scanner by simply manually entering a Pupil ID (1, 2 or 3) and hitting enter or tab.
Then this pupil will be added and you are returned back to that scan field. This continues until you don't scan and leave the field empty. Then the cycle is broken.