Expand my Community achievements bar.

The next phase for Workfront Community ideas is coming soon. Learn all about it in our blog!

Task Report - Display Dates of tasks in Columns instead of rows.

Avatar

Level 3
Hello Workfront Community! I have a Task report that displays plannedStartDate based on the template name of three tasks. Task 1, Task 2, Task 3. I would like to display these tasks within one row Project Name, Task 1, Task 2, Task 3. Is this possible with special code in the text mode? Note: A Matrix Report will not work cause I'm gonna add some calculated fields based on the dates. Thank you for reading! Kind regards, - Joe
Topics

Topics help categorize Community content and increase your ability to discover relevant content.

18 Replies

Avatar

Level 10
Hi Joe, If a matrix is off the table, since a Task report would return a separate row for each Task, one (albeit inefficient) way to make three Tasks appear on a single row could be to switch to a Project report and iterate through the Tasks with an an IF statement that plucks out and displays only those three Tasks of interest (e.g. based on Template Task name). In principal, it's quite similar to this "https://community.workfront.com/discussions/community-home/digestviewer/viewthread?MessageKey=bc4c106c-8940-4895-b5ff-567fe6460b29&CommunityKey=aaafaff0-5e4e-4e38-8903-f1f990935567&tab=digestviewer#bmbc4c106c-8940-4895-b5ff-567fe6460b29">2nd Coolest Textmode Column thread that shows the active Task(s) for each Project at at any point in time. Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 3
Hi Doug! Thanks for the fast response, I've tested out the solution provided and although it's a cool project report it wasn't able to assist me with my efforts. I've prepared a screenshot of what I'm trying to achieve on a task report. I admit I had reference this post but wasn't able to implement Any option to transpose task rows to column - Sadashiv Kulkarni12-30-2016 00:38 https://community.workfront.com/discussions/community-home/digestviewer/viewthread?MessageKey=6af6a0... The code on col. G0 is displayname=G0 listdelimiter=
listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({Taskname}="G0",{plannedStartDate},"") valueformat=HTML Hope these articles helps present what I'm trying to achieve. Another thought is to build a custom form and try to have the custom form extract a date from a task. Then feature that Custom Form Date in the report (is that possible)? Thanks for reading! Kind regards, - Joe

Avatar

Level 10
Hi Joe, If you are to do this, you'll need to be working in a Project report instead of a Task report so that you have one row per project. Once in the project report, you'll be able to add four columns for each "milestone" using the tasks collection. The ""https://workfrontpro.com/textmode/text-mode-views-collections/#milestone-tasks">Milestones Tasks " example shows how you can control what's show in each column. I even have an example of pulling in a date in the "Active Milestone" example. Let us know how this goes! displayname=G0 listdelimiter=
listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({Taskname}="G0",{plannedStartDate},"") valueformat=HTML displayname=G1 listdelimiter=
listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({Taskname}="G1",{plannedStartDate},"") valueformat=HTML Narayan Raum Workfront Delivery Lead - SunTrust Bank https:// wf-pro .com for Text Mode & More

Avatar

Level 10
Thanks Narayan, Totally agree; in fact, I'd been typing up a similar response, but you've covered it all. Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 3
Hello Doug and Narayan! Thanks for your responses I'm happy to provide the following results. For some reason the {taskname} and {name} within the valueexpression is kinda unstable. valueexpression=IF({Taskname}="G0",{plannedStartDate},"") valueexpression=IF({name}="G0",{plannedStartDate},"") Sometimes the dates would not appear. I had to modify the dates on the task in order for the following two value expressions to work. The Project had been created from a Template and for testing purposes had 0 Duration 0 planned hours (did have a planned date). I was able to reference: "https://workfrontpro.com/textmode/text-mode-views-collections/#milestone-tasks">https://workfrontpro.com/textmode/text-mode-views-collections/#milestone-tasks and pull Task dates if assigned to a MILESTONE with great success. I am now focused on the second half of my report where I am experience difficulty with the syntax to reference two milestones and Subtract for a number. In the attached image, Items 3-5 are different methods used. Thanks for your help! GRAPHIC KEY 1 = Milestones dates pulled successful displayname=G0 listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003",{plannedCompletionDate},"") valueformat=HTML 2 = Milestone +Add 14 days successful displayname=MC DUE +2weeks G0 listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003",ADDDAYS({plannedCompletionDate},14),"") valueformat=HTML 3 = Take Two Milestone Dates using function WeekdayDIFF(G0 - MCCRTV) no data displayname=WeekdayDIFF(G0 - MCCRTV) listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=WEEKDAYDIFF({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003".{plannedCompletionDate},{milestone}.{ID}="71681ab4d1389c65e2360253cb565e23".{plannedCompletionDate}) valueformat=HTML 4 = Take Two Milestone Dates using function SUB(G0 - MCCRTV) no data displayname=SUB(G0 - MCCRTV) listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=SUB({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003".{plannedCompletionDate},{milestone}.{ID}="71681ab4d1389c65e2360253cb565e23".{plannedCompletionDate}) valueformat=HTML 5 = Take Two Milestone Dates and a minus sign, no values in a function, no data displayname=MC STATUS days past G1 listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003",({milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003".{plannedCompletionDate} - {milestone}.{ID}="c0a783e6533bd7c0c57b32d6d0065003".{plannedCompletionDate}),"") valueformat=HTML

Avatar

Level 10
Hi Joe, I'm surprised you had to refresh the dates to get them to come in, but glad you got it to work. As for taking the difference, I don't believe that will be possible within an iterate; technically, each task within the iterate is dealt with in a separate path, so by the time the second half of the subtraction is in hand, the first has already been processed, and is gone. Conversely, if you saved both dates in custom data fields at the Project level, the subtraction you're after becomes trivial. You could expose them on the same report you are showing and copy/paste them in, or if you want something more automated, consider our "http://store.atappstore.com/product/ubercalc/">UberCalc solution, which could do it for you. Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 3
Hi Doug, thanks for your response! I was able to research the "http://store.atappstore.com/product/ubercalc/">UBERCALC available at ATAPPSTORE it looks very cool! Thanks again for both @Narayan Raum and your help! Kind regards, - Joe

Avatar

Level 1
Replying to an older thread, I'm new to the more advanced reporting method so could someone clarify what I'm thinking is correct? For the text mode example that was provided below am I correct in stating that it will pull the planned start date for the task named "G0" within the project that is referenced in the particular line for a project report? I tried this on one of mine, but it is not pulling any dates...

Avatar

Level 10
Hi Chris, Since you're enumerating through tasks, you can (ok, must) then reference any property of each task directly in the loop, so instead of: valueexpression=IF({ Task name}="G0",{plannedStartDate},"") try this: valueexpression=IF({name}="G0",{plannedStartDate},"") Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 1
Doug you sir are a legend, something so simple to most, but a big help to me much appreciated! Chris Guffey Lewellyn Technology, Inc.

Avatar

Level 3
Hi All, I've advanced further with this method by trying to subtract two milestone dates to determine amount of days in between milestone completion dates. is there a way to SUB() two milestone dates from each other in the same method/format? displayname=MC STATUS days past G0 listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=SUB({milestone}.{ID}="57b32d6d0065003c0a783e6533bd7c0c".{plannedCompletionDate}, {milestone}.{ID}="5c65e2360253cb5671681ab4d1389c47".{plannedCompletionDate}) valueformat=HTML Joe Salas Logitech International SA

Avatar

Level 10
Hi Joe, Valiant attempt, but iterations do not allow "math" (or sorting). Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Community Advisor
Doug, your next challenge... should you choose to accept it! Similar to Chris' issue, but I'm trying to super-nest IF statements. displayname=Task Status listdelimiter= listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=**Is where I'm struggling** valueformat=HTML This valueexpression works, I get my task status full name, not just the status key: valueexpression=IF({teamID}="Team A", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", "")))))) This valueexpression does NOT work, the status names for Team A show, but for Team B I just get a blank spot in that row: valueexpression=IF({teamID}="Team A", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", IF({teamID}="Team B", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", "")))))))))))) Can I do crazy super-nesting like this??

Avatar

Level 10
Hi Heather, Looking at your original: valueexpression= IF({teamID}="Team A", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", ""))))) ) I suspect you're missing this: valueexpression=IF({teamID}="Team A", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", ""))))) ,"This Is Not Team A" )

Without which would resolve to a blank beside anything but Team A; and a blank beside Team A for an unknown status, I would add, which is why I'd recommend "dropping out" to the status, just to be safe: valueexpression=IF({teamID}="Team A", IF({status}="NEW","New", IF({status}="CIA","Creative", IF({status}="YVX","Review", IF({status}="BTX","Revions", IF({status}="MJZ","Deployment", status )))))) So a general pattern for translating such Team specific statuses could be: valueexpression= IF({teamID}="Team A", IF({status}="NEW","New",...,status), IF({teamID}="Team B", IF({status}="NEW","NewB",...,status), ... )) As for "can I do crazy super-nesting like this??": sure you can (as have I), subject only to your imagination, patience, and the 2000 character database limits. Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Community Advisor
DOUG, Saving the day AGAIN! Now I can relax and head to Leap to soak up even more knowledge!

Avatar

Level 10
My pleasure Heather -- see you next week! Regards, Doug Doug Den Hoed - AtAppStore Got Skills? Lend a hand! https://community.workfront.com/participate/unanswered-threads

Avatar

Level 3
Hi Doug, thanks for your response, I had a feeling this was the case. I believed it would be possible to pull two milestone dates and display the difference; since I was able to use the add() function to a single milestone displayname=MC DUE +2weeks G0 listdelimiter= < div > listmethod=nested(tasks).lists textmode=true type=iterate valueexpression=IF({milestone}.{ID}="57b32d6d0065003c0a783e6533bd7c0c",ADDDAYS({plannedCompletionDate},14),"") valueformat=HTML "https://store.atappstore.com/product/ubercalc/">Uber Calc sounds good at this point of my report capabilities! Thanks again for your help! Kind regards, - Joe Joe Salas Logitech International SA

Avatar

Community Advisor
Just took this one step further with something I learned in a session this morning... Used the double pipe character to say OR: IF({teamID}="Team A" || {teamID}="Team B", IF({status}="NEW","New",...,status), ... ) So exciting to learn!