A single timesheet in your system follows the structure of a traditional paper-based timesheet:
A grid layout can be seen, with the hours worked for each day of the week entered under a column titled with that day's name. Those hours in turn are assigned in each row to a set of billing codes listed in the project, activity and task columns to identify the project under which that work was performed, with a "Bill" column indicating with a checkbox whether or not the work entered on that line is to be considered billable or non-billable.
The activity and task billing codes are each dependent upon the 'parent' billing code selected before them in the timesheet's row. This provides a hierarchy of billing codes to enable an employee to indicate their logged time in as little or as much detail as required for their work. The available activity and task billing codes will change depending upon the project selected for the timesheet row. For example, if you selected the Project "Widget Co. Project" and the Activity "Analysis", the following task options would be made available for selection: