2

Please assist me here. I have designed an infopath form and users will use the info path form to populate their timesheet information. I want to know how can i retrieve the previously entered information when the user enter for the second time. Monthly i have to populate a report / view per Employee.

For example: let me say a user enter the information below: Name Emp_ Number date worked hours total hours worked(current month) total Smith 4111 1/2/2015 3 0 3

When the user for the second time the above information will be over-written. How can i get this information? Thanks

0

This would require version control on the list itself. I.e. Each time an item is overwritten, a new version is created. To see previous versions, you would navigate to the version history attached to that item. Look under List Settings > Versioning Settings to configure versioning. Hope this helps

  • Thank you George, now If I have 10 users using this list, will I able to compile a report based per user for the whole month? I am asking this because I will need to pull a report that shows hours worked per day for that month. – Siphesakhe Jan 6 '16 at 11:24
  • Unfortunately there is no way to have a "view" of old versions, only the most current versions will be shown. Might I suggest creating a custom content type and then filter by metadata to have weekly/monthly views? For example: create a "Work Week" field, of numerical type and you can then filter by work week within the view? Exporting to excel where necessary. (Note that versioning wouldn't be required through this method, rather, all items are split up by view). – George Grainger Jan 6 '16 at 11:51
  • Hi George, I see what you saying. our issue is currently we use a paper for timesheet and on that timesheet you need to specify the reason for the hours claimed. now whenever an employee use this form on the second time it will override the first entry. – Siphesakhe Jan 6 '16 at 12:08
  • My second suggestion wouldn't require the use of versioning, therefore each employee's time sheet would be a separate item in the list. You can then filter these items by creating a custom view. Thanks – George Grainger Jan 6 '16 at 12:40
0

You could create a workflow that, when the item is editied (maybe put some checks in to see if it was a new months entry, or ammending a previous entry) and then create a new item in a seperate list.

You can then use the second list to generate your reports on the historical data.

It would be good to place some sort of unique identifier in the second list, based on the user and month, so that if a user updates the current month, you can use the unique id to update the item in the second list, rather than creating a new one.

You could then generate reports in your new list by grouping items by user and sorting by Month, you could even have the view total up the hours worked for each user.

Hope this gives you a good idea.

EXAMPLE

Start by adding 2 new fields to you list Yes/No: Update Existing (default value = NO) Single Line of Text: UID Then update your form to include a button at the top asking if user is updating the existing month (If you don’t want people to be able to amend months, then you can leave that out) If they are amending the month, set the field to TRUE

Also, have a field for the month (maybe just a date field) (You could then also have a separate calculated field that displays just the year & month)

Create a new list with all the same fields as your first list, including the UID field

Build a workflow on your 1st list using SharePoint Designer

Start with an IF

IF 'Update Existing' = FALSE

Set workflow variable (of type text) to be "Month“+”username"

(This will be used as our UID)

Create new item in list

(Set all variables including the UID)

ELSE

Update Item in List

(Update the fields in the second list, using the UID to find the item)

DONE Ps. this is a very basic solution with no checking in place, so would be advisable to add additional checking to prevent duplicates, either in the workflow, or in the form

  • Thank you Jordan, that is exactly what i am looking for. but how could i build something like this. Please help – Siphesakhe Jan 6 '16 at 11:46
  • added sample above – j0rdan Jan 6 '16 at 12:14
  • Thank you Jordan, let me try what you have given me above and i will come back with feedback – Siphesakhe Jan 6 '16 at 12:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.