Visió de conjunt:
(ACTUALITZACIÓ 12/04/07: Afegit un altre recurs interessant al final vinculació a un altre bloc que tracta això mitjançant un element web molt interessant)
Aquesta entrada del bloc descriu com crear un gràfic de barres en SharePoint. Això funciona en entorns WSS tant MOSS com només depen el element web de visualització de dades.
El plantejament general és la següent:
- Crear una llista o biblioteca de documents que conté les dades que voleu gràfic.
- Lloc a la biblioteca de documents associats / costum llista a una pàgina i convertir-lo en un element web de visualització de dades (DVWP).
- Modificar l'XSL de la DVWP per generar el codi HTML perquè et mostra com un gràfic.
Escenari de negocis / Programa d'instal·lació:
He creat una llista personalitzada amb la columna de títol estàndard i una columna addicional, "Estat". Aquest model (elementalment molt) un "autorització de despesa" escenari on el títol representa el projecte i l'estat un valor de la llista de:
- Proposat
- En procés
- Aturat
L'objectiu és produir un gràfic de barres horitzontal interactiva que Mostra aquests codis d'estat.
Han poblat la llista i s'assembla a això:
Crear l'element Web de visualització de dades:
Crear el DVWP, afegint la llista personalitzada a una pàgina (pàgina del lloc en el meu cas) i seguiu les instruccions aquí (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).
A més de simplement crear el DVWP, També cal definir la propietat de paginació per mostrar totes les files disponibles. Per a mi, Això es veu alguna cosa com això:
En aquest punt, Sempre tanco SPD i el navegador. Jo llavors tornar a obrir la pàgina utilitzant el navegador. Això evita accidentalment mucking fins al disseny de part de web a la pàgina.
Modificar el XSLT:
Ara és el moment de modificar l'XSLT.
Sempre utilitzo visual studio per a això. (Veure aquí per a una nota important sobre intellisense que t'ajudarà alot).
Puc crear un projecte buida afegir quatre nous fitxers (substituint les paraules "Original" i "nou" Si s'escau):
- Original.XSLT
- New.XSLT
- Original Params.xml
- Params.xml nou
En el meu cas, s'assembla a això:
Modificar l'element web i copiar la params i XSL a l'Original"" versió en estudi Visual.
L'objectiu és provocar l'XSL transformar els resultats que vam tornar de la consulta DVWP en HTML que rendeix com un gràfic.
Amb aquesta finalitat, ajuda a considerar en primer lloc que el codi HTML ha de ser semblant abans podem confondre amb la bogeria que es coneix com "XSL". (Per ser clars, a continuació és simplement un exemple; no escriviu-lo o copiar i enganxar en estudi visual. Vaig donar un cop ple, punt de partida per a que més tard en el reportatge). El següent gràfic mostra es rendeix segons el codi HTML immediatament després:
HTML corresponent:
<HTML> <cos> <Centre> <amplada de la taula = 80%> <tr><TD><Centre>Gràfic de barres horitzontals</TD></tr> <tr> <TD alinear = "center"> <frontera taula = "1" amplada = 80%> <tr> <amplada TD = 10%>Obert</TD> <TD><taula cellpadding ="0" cellspacing ="0" frontera = 0 width = 50%><tr bgcolor = vermell><TD> </TD></tr></taula></TD> </tr> <tr> <amplada TD = 10%>Tancat</TD> <TD><taula cellpadding ="0" cellspacing ="0" frontera = 0 width = 25%><tr bgcolor = vermell><TD> </TD></tr></taula></TD> </tr> <tr> <amplada TD = 10%>Aturat</TD> <TD><taula cellpadding ="0" cellspacing ="0" frontera = 0 width = 25%><tr bgcolor = vermell><TD> </TD></tr></taula></TD> </tr> </taula> </TD> </tr> </taula> </cos> </HTML> |
Utilitzava un enfocament totalment simple per crear la meva barres posant el color de fons d'una filera de "vermell".
És l'aquí per emportar: Al final, tots estem fent està creant HTML amb files i columnes.
Plantilla XSLT:
He copiat l'XSLT que genera un gràfic de barres horitzontal. És bastant bé comentar perquè no afegeixo molt aquí excepte aquestes notes:
- Vaig començar amb l'omissió XSL que SharePoint Designer em va donar quan primer he creat el DVWP.
- Jo era capaç de reduir aquest des de l'SPD 657 línies a 166 línies.
- No perdré amb el fitxer XML de paràmetres (que és independent de l'XSL i sabrà a què em refereixo quan vas a modificar el propi DVWP; hi ha dos arxius que pot modificar). No obstant això, per tal de simplificar-lo, Em va treure gairebé tots ells de l'XSL. Això significa que si voleu fer ús d'aquests paràmetres, només cal afegir les seves definicions variables a l'XSL. Que serà fàcil ja que tindran les definicions de variable XSL originals en el seu projecte d'estudi visual.
- Vostè hauria de ser capaç de copiar i enganxar aquesta directament en el teu projecte d'estudi visual. Llavors, treure les meves trucades i inserir el seu propi trucades a "ShowBar".
- El desglossar els treballs creant un <un href> d'aquesta: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. Aquesta tècnica pot ser de valor en altres contextos. En un primer moment, Vaig pensar que seria necessari ajustar-se a un format més complex: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, però en el meu entorn que no és necessari. D'URL de la llista es passa a nosaltres per SharePoint perquè això és bastant fàcil de generalitzar.
Aquí és:
<XSL:full d'estil versió="1.0" excloure-resultat-prefixos="RS z o s ddwrt dt msxsl" |
Els resultats:
L'XSL de dalt genera aquest gràfic:
Perfori avall les dades subjacents fent clic al codi d'estatus:
Reflexions finals:
Pot això ser generalitzada?
M'encanta aquest concepte graphing, però odio el fet que he d'entrar i fer tanta mà codificant. Li he donat una mica de pensament per si es poden generalitzar i sóc optimista, però jo també sóc una mica de por que hi hagi una paret de Maó en algun lloc al llarg del camí que no ofereix cap treball al voltant. Si algú té algunes bones idees sobre aquest, Si us plau fer una nota en els comentaris o Rebi per email.
Gràfics verticals:
Aquest és un gràfic de barres horitzontal. És certament possible crear un gràfic vertical. Només hem de canviar el codi HTML. M'agradaria començar igual: Crear una representació d'HTML d'un gràfic de barres vertical i després esbrinar com aconseguir que la via XSL. Si algú està interessat en que, Jo podria ser persuadits a provar-ho i treballar l'enrosca. Si algú ja ha fet que, please let me know and I’ll gladly link to your blog 🙂
Jo crec que el repte amb un gràfic vertical és que les etiquetes per a la gràfica són més difícils de gestionar, però certament no és impossible.
Del camp nom Gotcha:
Hi ha almenys dues coses cal buscar amb els seus noms de camp.
Primer, té un nom de camp amb un espai poder escapar a l'XSL. Això serà probablement un problema aquí:
<XSL:variable nom="totalProposed"
Selecciona="Comte(/dsQueryResponse/files/fila[Normalitzar-espai(@Status) = 'Proposar'])" />
Si el seu estatus de"" columna és en realitat anomenat "codi d'estatus" llavors vostè necessita fer referència a ell com "Status_x0020_Code":
<XSL:variable nom="totalProposed"
Selecciona="Comte(/dsQueryResponse/files/fila[Normalitzar-espai(@Status_x0020_Code) = 'Proposar'])" />Segon, i estic una mica borrós en aquest, però també cal estar alerta a canvis de nom de camp del. Si anomeneu el seu camp "codi d'estatus" i més tard, Rebategi'l a "AFE estatus", el nom"intern" no canvia. El nom Interno encara serà "codi d'estatus" i cal fer referència a com "Status_x0020_Code". "Altres recursos" enllaços poden ajudar a diagnosticar i corregir aquesta classe de problema.
Sobre aquell Color:
Triava "vermell" perquè és agradable per a mi en el moment. No seria una gran cosa per mostrar diferents colors per aportar més que una descripció visual d'un nombre, però també proporcionar una útils KPI. Per exemple, Si el percentatge de "estancat" És del AFE > 10% llavors mostrar-ho vermell, en cas contrari es mostra en negre. Ús <XSL:triar> per aconseguir això.
Altres recursos:
- Determinar el nom intern (i una altra bona informació) per a les dades en una llista: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!134.entry
- Mostra totes les dades proporcionades pel SharePoint (l'XML crua): http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!190.entry
- Obtenir l'expressió d'XPATH d'una columna concret: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!155.entry
- Una altra aproximació utilitzant OWA(?). Jo té no excava-, però es veu prometedor, especialment per a gràfics circulars: http://www.waka.dk/Blog/PermaLink,guid,e2532e71-d774-4ac9-8f25-883964b830f4.aspx
Transformant feliç!
<final />
Aquesta pàgina gairebé acabada la tasca que estava buscant.
Tinc un grup que vol utilitzar la llista del SharePoint enquesta per crear una enquesta setmanal. La captura? Que no volen veure el codi… O canviar el sistema cada vegada enviar l'enquesta (previst per a una actualització setmanal).
Jo era capaç de connectar això amb la llista d'enquesta i crear el gràfic a la primera columna de resposta. Però el que puc predir són els valors i les etiquetes que necessitaran avançant. Fer matèria pitjor que poden tenir més o menys Respostes disponibles cada setmana.
Em referiré en un altre lloc per si de cas, però ningú ha trobat una manera de crear files i Etiquetes basa en el nombre d'opcions disponibles i dinàmicament posant aquestes en comptes de dur codificar els valors esperat?
Gràcies Pau. Molt útil. Gràcies al seu treball, Era capaç d'afegir una columna de barra de gràfic a un DVWP existent (e. g. per a les tasques) molt fàcilment amb només unes poques línies del vostre codi.
Al SharePoint Designer, He inserit una visualització de dades amb el títol i % completar les columnes a una llista de tasques. Vaig posar el cursor en una de les cèl·lules i clic correcte. Jo Seleccioneu Insereix una columna a la dreta. En la visualització del codi, He trobat la <TD> i va substituir el <XSL:element de text dins la cel·la amb el seu codi:
<taula cellpadding ="0" cellspacing ="0" frontera ="0"
amplada = "{ronda(@PercentComplete * 100)+1}%">
<estil tr = "color de fons:vermell">
<XSL:text disable-sortida-escapant = "yes"><![CDATA[ ]]></XSL:text>
</tr>
</taula>
Nota canviava el codi de color de fila de bgcolor = "Roig" a l'estil = "color de fons:vermell"
També, va ser capaç de seleccionar una de les columnes en la meva llista (@PercentComplete) en lloc de "$BarPercent"
Greg
Un altre mètode (utilitzant només el SharePoint UI):
http://pathtosharepoint.wordpress.com/2008/09/02/a-progress-bar-for-your-tasks-list/
http://pathtosharepoint.wordpress.com/2008/10/21/progress-bar-color-coding/
xmlns:__designer =http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:escurçó ="http://schemas.microsoft.com/ASPNET/20">
Seleccioneu = "comte(/dsQueryResponse/files/fila[Normalitzar-espai(@Status)= 'WIP'])" />
http://www.microsoft.com/sharepoint/downloads/components/detail.asp?a1=701Ian Morrish això publicat a maig 2006. He intentat en MOSS 2007 i funciona bé. Afegit a la GAC, havia execadmsvcjobs i iisreset…
Gran post, Gràcies!
Gran post, Gràcies!
Hola Pau!
Bon treball! I also had something like this in my mind to view SharePoint lists in a graphical way 😉
I have a ‘Using Dashboards in SharePoint’ pregunta. We are a military hospital using MOSS standard for our Intranet and would like to build a dashboard for our Command Group to see ‘real time’ Si és possible. Un dels punts principals és visitat la càrrega de treball en temps real actual dins de les instal. lacions i, literalment, veure-ho canviar amunt i avall (pot haver de fer clic “refresc”/F5).
Gràcies per endavant,
You can do something useful with jQuery to accomplish this effect. Email me at Galvin.Paul@gmail.com and I’ll be happy to try and give a hand.