1 of 1 people found this helpful
I assume when you click the button, you have a script assigned. You can have the script add record the value. I would probably have a table that stores the timestamp and maybe account name everytime the button is pressed (you would have to go to the other layout, create new record and store the tiemstamp and account name and return to the original layout). That way you know who and when a the button was pressed. Or if you just need to know the number of times pressed in a session, I would probabyl use a global variable.
Thanks for the prompt reply... I just only need a number count that can be manually reset one time each month. I would add the same script to each of twelve buttons to give one total into a single counter field. (number field?) Seems easy, but I can't get my head around a way of achieving it!
Use the same script and just create a new record and add a 1 in field that you can total up.
Go To Layout ( Counter )
Enter Browse Mode
New Record Request
Set Field ( Count ; Value: 1 )
Go To Layout ( Original )
Tried all that but it won't work for me (as yet!)
Any further suggestions?
Did you sum up the counts? Or I'm not sure what you say is not working. The above script works for counting when a button is clicked. Did you create the script? Can you share it here?
If you want to reset the value each month, you can have it done automatically by adding an additional date field.
Simply create a Counter table with a counter field and a date field, and create one new record. Attach the following script to your buttons:
Go to Layout [ Counter ]
Set Field [ Counter::counter ; Case ( Month ( Counter::countDate ) = Month ( Get ( CurrentDate ) ; Counter::counter ) + 1 ]
Set Field [ Counter::countDate ; Get ( CurrentDate ) ]
Go to Layout [ original ]
or relate the Counter table to your other table in a Cartesian relationship (x), so you don't need to leave the layout.
And please be more descriptive than "it won't work".
you need a field to hold the count and either one or two scripts, depending on whether (case 1) you are just counting clicks or (case 2) counting clicks and performing something else when the button is clicked.
in both cases you need a script that does this: set field counter01 equal to " 1 + table:counter01 "
in the second case you need another script that runs the first script and then anything else you need to do.
in the first case set the button to perform script 1
in the second case set the button to perform script 2
Hope this helps.
If you use the table suggested by taylorsharpe and add a further field to record which of your twelve buttons has recorded each click you will build statistics over time, and will easily be able to extract monthly counts or any other subtotal you want. If the data is retained you have data which will enable some analysis—were there more clicks this month than last month? which button gets used the most? which user clicks the most buttons? which button does that user click most?
If you simply use a field to record the total clicks and restart it each month you (a) gather less data and (b) lose all the data at each reset.
I've been thinking of doing something similar- I'd like to see which buttons/scripts are not getting used. Those with low usage should be cleared off layouts to reduce clutter.
Has anyone come up with a more global button click counter that could record stuff like:
button Name, layout, user, date
You could easily capture all those values in a single text calculation which gets posted into a buttonData field on the usage table.
If I create a sub script to create the log, how can I pass the main script name to the sub script? Being lazy, I'd just like to add a sub-script to any Scripted button that I want to log.
If I create a sub script to create the log, how can I pass the main script name to the sub script?
Use a script parameter.
There are a lot of good suggestions on the thread, but I suspect you are getting hung up on the issue of where to actually store the data. There are a couple of methods, but the bottom line is that you'll need a separate table to hold the counts.
The way I'd do it is create a table with a field for the button "name" and a field for the count. I'd then create a global field that has a "creation" relationship to the button Name field.
Then every time some clicks a button, your script would set the global field to the button name and set the button count field (across the creation relationship) to itself plus 1. The first time a button is clicked, it will automatically create a record with the button name and a 1 (0 + 1) in the count field. The next time the button is clicked the button record will already be there, so it will simply increase the count field by 1. Remember to commit the record after you set the count field.
Managing the monthly counts could be done in several ways, but this is a simple methodology to get started.
having trouble with a simle step- catching the name of a button in a Var $Button
I've named the button in the inspector/Position: Name. In the script attached to the button I put Set Variable $Button, Value:Get(ActiveObjectName)]. The var $Button is not getting set.
Jumping to a separate table and setting other items such as Script Name, layout name, user, and dates is easy.