Створення звіту за допомогою TFS і Crystal Reports. частина 2, Різне, Інтернет-технології, статті

 









У нещодавно завершеною мною серії робіт показано, як створювати деякі типи звітів для agile-проектів з використанням TFS і Crystal Reports. Дана стаття продовжує традицію використання TFS і Crystal Reports, на цей раз для створення карток історій на основі інформаційного сховища даних.


В частини 1 нашої серії статей ми розглянули передумови використання Базового сервера команди (TFS) та інструментального засобу Crystal Reports для створення звітів в рамках agile-проектів. У 2-ї частини серії публікацій ми створимо 2 звіту: Звіт по журналу реєстрації подробиць історій, який дозволяє розповсюдити журнал оброблюваних історій між віддаленими користувачами. До другого розглянутому типу звітів відноситься звіт про поточну ітерації, в якому фіксується стан поточної ітерації і звіт про аварії.


У частині 3 розглядається процедура створення діаграми відмов з використанням TFS і Crystal Reports.


В рамках цієї статті буде створений звіт, який дозволить менеджеру проекту розмістити картки історій, створені на основі зберігаються на сервері TFS даних, на інформаційній дошці в оперативній кімнаті.  Даний звіт має також відношення до питань, пов’язаних з відмінностями в поданні стандартних карт історій і роздрукованих з сервера карт історій.



Системні вимоги



  • Базовий сервер команди (TFS);

  • SQL Server 2005;

  • Visual Studio 2005

  • Crystal Reports XI.







 


Звіт по історіям


Як було детально розглянуто в частині 1, ми використовуємо TFS для збору історій.Я здійснюю збір історій в TFS по ряду прічін.Одна з причин полягає в можливості зберігання цих історій в масиві даних, який постійно резервується і т.д. Інша причина полягає в можливості створення звітів різними способами з використанням SQL.


Для віддалених замовників існують звіти, які ці замовники можуть переглядати. Вирішальним фактором для мене є зручність зберігання моїх історій в базі даних, а не у вигляді каталожних карток, які я можу втратити.


Ми розглянемо крок за кроком процедуру створення звіту, який буде генерувати історії для Вас. Перш за все, звіт історій призначений для роздруківки карток історій, які можна приколоти до інформаційної дошці. Якщо читач знайомий з agile-проектами, при створенні яких використовується ЕП або аналогічні методики, то він, ймовірно, знаком також і зі звичайною процедурою створення карток історій. Більшість команд розробників, що працюють з історіями, використовують картки для нотаток, на яких вони записують історії. Після цього вони поміщають картку з історією на інформаційну дошку, де фіксується робочий заділ.


Згідно з нашим сценарієм, інформація з конкретної історії вводиться в робочий компонент сценарію на базовому сервері команди. І потім ми використовуємо цей звіт для роздруківки історій. Один із створених мною оригінальних звітів історій не містив жодної розмітки, яка б визначала його унікальність. Після роздруківки та розміщення історій на інформаційній дошці проекту деякі отримані від замовників відгуки свідчили про те, що виявилося досить складно орієнтуватися в роздрукованих картках історій.


Зазвичай написані від руки картки історій мають свої специфічні, характерні особливості з різними позначеннями. Я вважаю, що непогано було б надати деяку унікальність віддрукованим на лазерному принтері картках історій. Коли ми приступимо до створення звіту, ви побачите спосіб вирішення цієї проблеми.


Давайте розглянемо SQL-оператор, використаний для генерації цього звіту.


Лістинг 1


 


select      [System.Id]


            , [System.Title]


            , [System.CreatedDate]


            , [System.TeamProject]


                                , [Microsoft.VSTS.Common.RoughOrderOfMagnitude]


                                , [Microsoft.VSTS.Common.Rank] as Iteration 


            , [System.State]


                                , [System.Reason]


            , [Microsoft.VSTS.Common.ClosedDate]


from dbo.WorkItemsLatestUsed


where [System.WorkItemType] = “Scenario”








У цьому SQL-операторі ми збираємо ID, Заголовок, Microsoft.VSTS.Common.Rank для ітерації і. VSTS.Common.RoughOrderOfMagnitude як бального показника. Цей SQL-оператор створює основу для звіту історій.


Створення звіту


За допомогою цього SQL-оператора можна створити звіт, що містить історії розміром 4×6 каталожних карток. Давайте створимо звіт з використанням звичайної сторінки розміром 8.5 “x 11”, як я зазвичай роблю, а потім вирізаю з нього у міру потреби картки історій.


Перш за все для звіту нам потрібно додати наступні поля. System.ID, System.Title, Microsoft.Common.VSTS.RoughOrderOfMagnitude і Iteration. Поле ID зручно для пошуку історії в TFS пізніше в ході проведення наради з планування із замовниками. Після цього можна зберігати подробиці в поле опису. З його допомогою легше знаходити ці історії, особливо при наявності великої їх кількості. В середньому проект можна обробляти до 200 історій, і такий проект дуже зручний для їх зберігання.


На ілюстрації 1 показані місця розташування полів. Поле @ IdNum (формула, яка додає знак # перед числом) повинно знаходитися в центрі верхнього рядка. Поле System.Title розташовується в середині, а поля Score і номер Iteration розміщуються в нижній частині картки. Для всіх полів використовується шрифт Arial розміром 36 пунктів, якщо не вказано інше. Давайте застосуємо додаткове форматування.


Рисунок 1



 


Перш за все, для кожної картки ми повинні передбачити унікальний зовнішній вигляд з тим, щоб картки легко розрізнялися на нараді з планування. Для цього давайте скористаємося шрифтами Wingdings, які подаються разом з іншими шрифтами ОС Windows. Якщо у Вас на комп’ютері відсутня шрифт Wingdings, пошукайте шрифт символьного типу, який може бути унікальним.


На додаток, щоб надати кожній картці унікальний зовнішній вигляд, ми хочемо присвоїти кожній картці унікальний колір. Для імітації випадкового кольору ми скористаємося формулою для кольору шрифту, щоб зробити його різним для кожної 10-ї картки.


Для цього будемо використовувати поле System.ID, яке завжди має різні значення. Тому ми задамо значення першого поля System.ID. Помістимо це поле у ​​верхню ліву частину картки. Давайте встановимо шрифт поля System.ID на Wingdings в розділі властивостей. Потім на вкладці Font Color клацнемо мишею на кнопці Formula і помістимо формулу в Лістинг 2.


Лістинг 2


 


iif(mid (cstr( {command.System.Id} ),3)=”1″, crBlack,


 iif( mid( cstr( {command.System.Id} ),3) =”2″, crRed, 


iif( mid( cstr( {command.System.Id} ),3) =”3″ , crBlue , 


iif( mid( cstr( {command.System.Id} ),3)=”4″, crGreen, 


iif( mid( cstr( {command.System.Id} ),3)=”5″, crPurple, 


iif( mid( cstr( {command.System.Id} ),3)=”6″, crYellow, 


iif( mid( cstr( {command.System.Id}),3) =”7″, crGray, 


iif( mid( cstr( {command.System.Id} ),3)=”8″, crMaroon, crTeal))))))))








Ми хочемо також підставити ту ж саму формулу в формулу для кольору поля System.Title.Прі цьому колір заголовка буде збігатися з унікальним кольором картки. Тепер давайте скопіюємо це поле System.ID, що має шрифт wingding, в правий верхній кут картки, а потім в нижні два кути на кожній стороні картки. Тепер вашу картку можна роздрукувати!


  







Короткі висновки


У цій статті ми показали, як можна використовувати базовий сервер команди і додаток Crystal Reports для створення карти історії. Ця інформація корисна для будь-якого користувача, що використовує TFS в якості сховища інформації для свого agile-проекту. Цією карткою може скористатися будь-який співробітник, що розуміє переваги використання в проекті роздрукованої карти щодо написаних від руки індексних карт. Я сподіваюся, що наведена тут інформація буде корисною для будь-якого розробника, що застосовує стиль ЕП при розробці agile-проекту, і бажаю всім розробникам успіхів в програмуванні.


 



Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*