Как сообщить о выполненной работе за определенную неделю в TFS 2008?

Мы работаем на Team Foundation Server 2008, и я пытаюсь найти способ сообщать об изменении выполненной работы от недели к неделе на уровне задач. Приведенный ниже запрос MDX работает довольно хорошо, но я хотел бы избавиться от необходимости жестко кодировать дату прошлой недели. Я безуспешно пытался использовать prevmember и parallelperiod, но я не эксперт по многомерным выражениям.

WITH 
MEMBER [Measures].[Completed Work by WI on dt1] AS
(
[Assigned To].[Person].CurrentMember,
[Work Item].[System_Id].CurrentMember,
[Date].[Year Week Date].[Week].&[2008-12-07T00:00:00],
[Measures].[Microsoft_VSTS_Scheduling_CompletedWork]
)

MEMBER [Measures].[Completed Work by WI on dt2] AS
(
[Assigned To].[Person].CurrentMember,
[Work Item].[System_Id].CurrentMember,
[Date].[Year Week Date].CurrentMember,
[Measures].[Microsoft_VSTS_Scheduling_CompletedWork]
)

MEMBER [Measures].[Completed Work] AS
[Measures].[Completed Work by WI on dt2] - [Measures].[Completed Work by WI on dt1]

SELECT
NON EMPTY
{
[Measures].[Completed Work] 
}
ON COLUMNS,

NON EMPTY
{
Filter(
([Assigned To].[Person].[Person],[Work Item].[System_Id].[System_Id],[Work Item].[System_Title].[System_Title]), [Measures].[Completed Work] >0 )
}
ON ROWS

FROM [Team System]

person Paul G    schedule 19.12.2008    source источник


Ответы (2)


Посмотрите на предоставленный отчет о выполненных работах. Он автоматически устанавливает одно из полей даты на сегодняшний день минус один месяц.

РЕДАКТИРОВАТЬ: Только что вошел в свою рабочую систему, чтобы перепроверить это. Отчет на самом деле называется «Оставшаяся работа». Перейдите на портал SharePoint, созданный для вашего командного проекта, и найдите список стандартных отчетов. Он будет в этом списке. Вы можете экспортировать этот отчет в файл, открыть его в Visual Studio и посмотреть логику поля даты.

РЕДАКТИРОВАТЬ 2: Чтобы функция MDX получила предыдущую неделю, попробуйте вариант этого: http://social.msdn.microsoft.com/Forums/en-US/tfsreporting/thread/0a656453-eaf1-47a2-a376-cb6eaec0db51

person sliderhouserules    schedule 20.12.2008

@sliderhouserules - я просмотрел этот отчет, и оказалось, что он просто берет введенную дату и использует функцию strtomember. В моем запросе похоже, что это будет эквивалент строки с жестко запрограммированной датой:

StrToMember("[Date].[Year Week Date].[Week].&[" + Format(DATEADD("d", -7, "2008-12-21"), "s") + "]")

Это прекрасно работает. Однако то, что я действительно хочу, - это устранить необходимость жестко кодировать что-либо. Я попытался использовать функцию Now() вместо жестко заданной даты. Я не смог заставить его работать, но даже если бы я это сделал, это все равно означало бы, что мне нужно будет изменить количество дней, которые нужно вычесть, чтобы вернуться к воскресенью предыдущей недели. Кажется, должна быть функция MDX, которая заставит это работать. Если нет, то, возможно, есть какой-то способ изменить строку StrToMember, чтобы получить дату предыдущего воскресенья в правильном формате.

person Paul G    schedule 22.12.2008
comment
Я ничего не знаю о MDX. Я только что повозился с отчетом об оставшихся работах достаточно, чтобы посмотреть на конкретную итерацию. И я знаю, что он автоматически заполняет текущую дату каждый раз, когда я его открываю, поэтому в целом это должно помочь вам найти свое решение. - person sliderhouserules; 22.12.2008
comment
А, я понимаю, что вы имеете в виду, когда говорите об изменении количества дней. Я не понял из вашего OP, что вы хотите увидеть всю предыдущую неделю, независимо от того, в какой день текущей недели вы можете запускать отчет. Так что всегда хочется видеть предыдущее вс - сб. Могу поспорить, что есть и встроенная функция. - person sliderhouserules; 22.12.2008
comment
Попробуйте этот social.msdn. microsoft.com/Forums/en-US/tfsreporting/thread/. - person sliderhouserules; 22.12.2008
comment
Даггум MSDN. Кажется, ни одна из ссылок не работает в эти дни. Я буду искать. Большое спасибо за ваши усилия, чтобы помочь. Я думаю, что приближаюсь к решению. - person Paul G; 23.12.2008