Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
UI for denormalized timesheet entry
Message
From
14/09/2004 13:23:25
 
 
To
13/09/2004 18:41:10
General information
Forum:
ASP.NET
Category:
Other
Miscellaneous
Thread ID:
00941744
Message ID:
00941989
Views:
16
Hi Nancy,

I actually did something similar for the government as a government employee a couple of years ago and it was NOT fun :o) Due to government regulations (I always wanted to meet the person who wrote some of them or the 'team' that did because some of them went against almost every guideline and principle I learned) I had to have some data stored in denormalized tables permanently. It was very frustrating when designing the user interface but I have to admit it was much faster in a client/server environment when the tables got large and a lot of trips back and forth to the server were required. Not to mention in a denormalized table fewer joins are required so that actually sped the process up too. There are times as you know when denormalized tables are much faster that normalized tables.

For the UI we had a few ways of keying and viewing the data. One approach was by a readonly grid and the user tabbed to the appropriate day and task which then opened up a modal form for keying on that task for that day. There was a running total in the rightmost column on the grid. Another approach was for the users to view tasks by the week in a listview and they selected the day and then the task with a reverse process available too (by task and then by date). The most popular means was a custom calendar that was created and minigrids existed on each day on the calendar that only contained the task ids so as not to take up too much real estate. The user clicked on the row in the 'mini grid' and a form opened up for entering the time and specifics, comments, etc. In all cases the same modal form opened up for the actual keying of the data. At the end of each week there was a field that displayed the total for each week and a button to preview the detail spreadsheet of the time and details for each task during the week - the same for the month. We had a few users that requested a treeview for this and the treeview was populated with a parent node of the week and child nodes of days with grandchild nodes of tasks for each day. When the user clicked on the task node he/she was presented with the modal form to key data. To see the total though in that case the user had to click on the week node and then a button to produce a preview report. We had a manager that actually wanted a list of just the tasks and the modal form to key data into for that task and only wanted to see a week at a glance or a month at a glance in reports. As you can guess by now, I was paid by the hour so it made no difference to me how many different UIs were required. I don't envy you at all, but I would definitely be interested in the method you decide upon in the end. You never know when you might have to do something similar again! :o)



>I'm struggling with what the best implementation would be for a particular situation.
>
>The data is normalized timesheet data with hours entered for each day worked in a month for varying tasks.
>
>The customer would like to see the tasks listed in the left most column, with the days 1-31 shown across the top in the first row. This is how they're used to tracking their time on paper forms.
>
>The list of tasks isn't fixed. And the emp. won't enter hours for every task, maybe one or two. They'd like to see a total in the right-most column for each task, and an overall total for the month. A summary row for each day would be nice, too.
>
>My problem is that I keep trying to be clever (a mistake, of course) and keep coming back to KISS. The KISS solution seems to me to be a straightforward issue of creating a denormlized table with 32 attributes (task, and 31 days) for each possible task. Then I can display it in a datagrid. There are problems of course with this. Not least of which is that 31 columns won't even come close to nicely displaying on monitor so I'd need to "freeze" the left-most task column so it always displays.
>
>The customer will not want the employees to have to mouse to click and choose the tasks from a drop or navigate in a calender to pick the day to enter time for. They'll probably click in the first day of the month they have time for and tab thereafter.
>
>What do you all think is my best bet? Create a denormalized datatable to collect the time in and bind to a datagrid?
.·*´¨)
.·`TCH
(..·*

010000110101001101101000011000010111001001110000010011110111001001000010011101010111001101110100
"When the debate is lost, slander becomes the tool of the loser." - Socrates
Vita contingit, Vive cum eo. (Life Happens, Live With it.)
"Life is not measured by the number of breaths we take, but by the moments that take our breath away." -- author unknown
"De omnibus dubitandum"
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform