Преглед:
(УПДАТЕ 12/04/07: Додао још један интересантан ресурс на крају повезује на други блог који се бави ова преко веома занимљив вебпартом)
This blog entry describes how to create a bar graph in SharePoint. This works in both WSS and MOSS environments as it only depends upon the data view web part.
Општи приступ је следећи:
- Направите листу или библиотеку докумената која садржи податке које желите да графикон.
- Поставите повезане библиотеку докумената / прилагођене листе на страници и претворити га у део података видели Веб (ДВВП).
- Измените ДВВП КССЛ да генерише ХТМЛ који приказује као графикон.
Пословни сценарио / Намештаљка:
Ја сам створио прилагођене листе са стандардним наслова колоне и још једну колону, "Status". This models (Веома упрошћено) an "Authorization For Expense" сценарио где наслов представља пројекат и статус вредности са листе:
- Предложена
- У процесу
- Застоју
Циљ је да се произведе интерактивну хоризонтални бар графикон који показује статус ове кодове.
Су насељена сам листу и то изгледа овако:
Креирање података Парт видели Веб:
Креирајте ДВВП додавањем прилагођене листе на страници (Сајт страна у мом случају) и пратите упутства овде (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).
Поред једноставно креирање ДВВП, we also need to set the paging property to show all available rows. За мене, то изгледа овако:
У овом тренутку, I always close SPD and the browser. I then re-open the page using the browser. This avoids accidentally mucking up the web part layout on the page.
Измените КССЛТ:
Сада је време да се мења КССЛТ.
I always use visual studio for this. (Видети овде за Важна напомена о ИнтеллиСенсе који ће вам помоћи да много).
Ја створи празан пројекат додају четири нова датотека (replacing the words "Original" and "New" по потреби):
- Оригинал.кслт
- Нев.кслт
- Оригинални Парамс.кмл
- Нови Парамс.кмл
У мом случају, то изгледа овако:
Modify the web part and copy the params and XSL to the "Original" Верзија за Висуал Студио.
Циљ је да се изазову КССЛ трансформације резултата се вратимо из ДВВП упита у ХТМЛ који чини као графикону.
У том циљу, it helps to first consider what the HTML should look like before we get confused by the insanity that is known as "XSL". (Да буде јасно, Следећи је само пример; don’t type it or copy/paste into visual studio. I provide a full blow starting point for that later in the write-up). The following sample graph is rendered as per the HTML immediately following:
Одговарајући ХТМЛ:
<ХТМЛ> <тело> <центар> <Ширина стола = 80%> <тр><тд><центар>Хоризонтална бар грапх</тд></тр> <тр> <td align="center"> <table border="1" видтх = 80%> <тр> <тд видтх = 10%>Отворено</тд> <тд><Табела целлпаддинг ="0" бордер ="0" бордер = 0 видтх = 50%><тр бгцолор = црвена><тд>&нбсп;</тд></тр></табела></тд> </тр> <тр> <тд видтх = 10%>Затворено</тд> <тд><Табела целлпаддинг ="0" бордер ="0" бордер = 0 видтх = 25%><тр бгцолор = црвена><тд>&нбсп;</тд></тр></табела></тд> </тр> <тр> <тд видтх = 10%>Застоју</тд> <тд><Табела целлпаддинг ="0" бордер ="0" бордер = 0 видтх = 25%><тр бгцолор = црвена><тд>&нбсп;</тд></тр></табела></тд> </тр> </табела> </тд> </тр> </табела> </тело> </ХТМЛ> |
I used a dead simple approach to creating my bars by setting the background color of a row to "red".
Понијети овде је ово: На крају, сви ми радимо је стварање ХТМЛ са редовима и колонама.
Шаблон КССЛТ:
I’ve copied the XSLT that generates a horizontal bar graph. It’s fairly well commented so I won’t add much here except for these notes:
- Почео сам са подразумеваним КССЛ СхареПоинт Десигнер који ми је дао када сам креирао ДВВП.
- Био сам у стању да смањи ово доле из СПД 657 линије до 166 lines.
- Нисам се зезају са параметрима КСМЛ датотеке (која је одвојена од КССЛ а ви ћете знати шта мислим када одете да измените ДВВП себе; постоје две датотеке можете да измените). Међутим, да би га поједноставио, I did remove nearly all of them from the XSL. This means that if you want to make use of those parameters, you just need to add their variable definitions back to the XSL. That will be easy since you will have the original XSL variable definitions in your visual studio project.
- You ought to be able to copy and paste this directly into your visual studio project. Онда, remove my calls and insert your own calls to "ShowBar".
- Дрилл довн ради стварањем <хреф> овако: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. This technique may be of value in other contexts. Прво, Мислио сам да ћу морати да се прилагоди комплекснијем формату: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, but in my environment that is not necessary. The List’s URL is passed to us by SharePoint so this is quite easy to generalize.
Овде је:
<клс:стиловима верзија="1.0" искључују-резултат-префикси="рс З О с ддврт ДТ мсксл" |
Резултати:
КССЛ одозго генерише овај графикон:
Дрилл до основних података кликом на статусној коду:
Закључна разматрања:
Ово може се генерализовати?
Волим овај концепт градите, but I hate the fact that I have to go in and do so much hand-coding. I’ve given a little thought to whether it can be generalized and I’m optimistic, but I’m also a little fearful that there may be a brick wall somewhere along the path that won’t offer any work-around. If anyone has some good ideas on this, молимо вас да забележите у коментарима или пошаљи ми.
Вертикалне Графикони:
This is a horizontal bar graph. It’s certainly possible to create a vertical graph. We just need to change the HTML. I would start the same way: Create an HTML representation of a vertical bar graph and then figure out how to get that via XSL. If anyone is interested in that, I could be persuaded to try it out and work out the kinks. If someone has already done that, please let me know and I’ll gladly link to your blog 🙂
Мислим да је проблем са вертикалном графикону се да су ознаке за графику су теже управљати, али свакако не и немогуће.
Поље Име је Готцха:
Постоје најмање две ствари треба обратити пажњу са називима поља.
Прво, a field name with a space has to be escaped in the XSL. This will probably be an issue here:
<клс:варијабла име="тоталПропосед"
изабрати="рачунати(/дсКуериРеспонсе / редове / Ров[нормализује-простор(@ Статус) = 'Предлог'])" />
If your "Status" column is actually named "Status Code" then you need to reference it as "Status_x0020_Code":
<клс:варијабла име="тоталПропосед"
изабрати="рачунати(/дсКуериРеспонсе / редове / Ров[нормализује-простор(@ Статус_к0020_Цоде) = 'Предлог'])" />Други, и ја сам мало нејасно ово, but you also need to be on the alert for field name changes. If you name your field "Status Code" а онда касније, rename it to "AFE Status", the "internal name" does not change. The internal name will still be "Status Code" and must be referenced as "Status_x0020_Code". The "other resources" везе могу да утврдите да исправе ову врсту проблема.
О тој боји:
I picked "red" because it’s pleasing to me at the moment. It would not be a big deal to show different colors so as to provide more than just a visual description of a number, but to also provide a useful KPI. На пример, if the percentage of "stalled" АФЕ је > 10% затим га покаже црвени, otherwise show it in black. Коришћење <клс:изабрати> ово постићи.
Остали ресурси:
- Одређује унутрашњу име (и других добар инфо) за подацима на листи: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!134.entry
- Покажи све податке које СхареПоинт (сирови КСМЛ): http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!190.entry
- Набавите КСПатх израз одређене колоне: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!155.entry
- Други приступ користи ова(?). I have not dug into it, али изгледа обећавајуће, посебно за пие дијаграма: http://www.waka.dk/Blog/PermaLink,guid,e2532e71-d774-4ac9-8f25-883964b830f4.aspx
Срећан претварајући!
<крај />