Archifau Misol: Rhagfyr 2007

Creu Graffiau Bar yn SharePoint

Trosolwg:

(Y NEWYDDION DIWEDDARAF 12/04/07: Ychwanegwyd adnodd diddorol arall ar y diwedd cysylltu i flog arall sy'n mynd i'r afael hyn drwy gyfrwng y we rhan diddorol iawn)

Mae'r cofnod blog hwn yn disgrifio sut i greu graff bar yn SharePoint. Mae hyn yn gweithio mewn amgylcheddau WSS a MOSS fel dim ond mae'n dibynnu ar y rhan o'r we farn data.

Y dull cyffredinol yw fel a ganlyn:

  1. Greu rhestr neu Llyfrgell ddogfen sy'n cynnwys y data yr ydych am i graff.
  2. Gosod y Llyfrgell dogfen gysylltiedig / personol rhestr ar dudalen a'i droi yn rhan we farn data (DVWP).
  3. Addasu XSL y DVWP i gynhyrchu HTML sy'n dangos fel graff.

Senario Busnes / Setup:

Yr wyf wedi creu rhestr bersonol gyda y golofn teitl safon ac un golofn ychwanegol, "Statws". Modelau hwn (iawn simplistically) "awdurdodiad ar gyfer treuliau" senario lle mae teitl yn cynrychioli y prosiect a statws y gwerth o'r rhestr o:

  • Arfaethedig
  • Yn y broses
  • Arafu

Y nod yw cynhyrchu graff bar llorweddol rhyngweithiol sy'n dangos codau hyn statws.

Mae yn cynnwys y rhestr ac mae'n edrych fel hyn:

Delwedd

Creu rhan o'r we farn Data:

Greu y DVWP drwy ychwanegu rhestr bersonol i dudalen (Tudalen safle yn fy achos i) a dilyn y cyfarwyddiadau yma (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

Yn ogystal â chreu y DVWP yn unig, hefyd mae angen inni osod yr eiddo tudalennu i ddangos pob rhes ar gael. I mi, hwn yn edrych rhywbeth fel hyn:

Delwedd

Ar y pwynt hwn, Yr wyf bob amser yn agos ddogfen raglennu sengl a y porwr. Yna yr wyf yn ail-agor y dudalen gan ddefnyddio porwr y. Mae hyn yn osgoi ddamweiniol ymhel hyd y cynllun rhan we ar y dudalen.

Addasu y XSLT:

Mae bellach yn bryd i addasu y XSLT.

Yr wyf bob amser yn defnyddio'r stiwdio gweledol ar gyfer hyn. (Gweler yma ar gyfer Nodyn pwysig am intellisense a bydd yn eich helpu llawer).

Rwyf yn creu prosiect gwag ychwanegu pedair ffeil newydd (disodli geiriau "gwreiddiol" a "newydd" fel y bo'n briodol):

  • Original.xslt
  • New.xslt
  • Params.xml gwreiddiol
  • Params.xml newydd

Yn fy achos, mae'n edrych fel hyn:

Delwedd

Addasu rhan we ac anfon copi params a XSL i'r "gwreiddiol" fersiwn yn stiwdio gweledol.

Y nod yma yw achosi XSL i drawsnewid y canlyniadau a gawn yn ôl gan yr ymholiad DVWP i HTML golygu fel graff.

I'r perwyl hwn, Mae'n helpu i ystyried yn gyntaf sut y HTML dylid edrych cyn inni gael eu drysu gan y gwallgofrwydd a elwir yn "XSL". (I fod yn glir, Mae'r canlynol yn unig enghraifft; Peidiwch â theipio neu copïwch/pastiwch i stiwdio gweledol. Rwyf yn darparu ergyd llawn yn fan cychwyn ar gyfer hynny yn ddiweddarach yn yr awgrymir). Yn y graff sampl canlynol wedi'u rendro fel y HTML yn syth ar ôl:

Graff Bar Sampl

HTML cyfatebol:

<html>
<corff>
<canolfan>
<Tabl lled = 80%>
<tr><TD><canolfan>Graff Bar llorweddol</TD></tr>
<tr>
<alinio Td = "Canolfan">
<ffin tabl = "1" lled = 80%>
<tr>
<Td lled = 10%>Agored</TD>
<TD><Padin celloedd tabl ="0" cellspacing ="0" ffin = lled 0 = 50%><tr bgcolor = coch><TD>&nbsp;</TD></tr></tabl></TD>
</tr>
<tr>
<Td lled = 10%>Ar gau</TD>
<TD><Padin celloedd tabl ="0" cellspacing ="0" ffin = lled 0 = 25%><tr bgcolor = coch><TD>&nbsp;</TD></tr></tabl></TD>
</tr>
<tr>
<Td lled = 10%>Arafu</TD>
<TD><Padin celloedd tabl ="0" cellspacing ="0" ffin = lled 0 = 25%><tr bgcolor = coch><TD>&nbsp;</TD></tr></tabl></TD>
</tr>
</tabl>
</TD>
</tr>
</tabl>
</corff>
</html>

Defnyddiais dull farw syml i greu fy bariau drwy osod y lliw cefndir mewn rhes i "coch".

Yma cludfwyd yw hyn: Yn y diwedd, cyfan rydym yn ei wneud yw creu HTML gyda rhesi a cholofnau.

Templed XSLT:

Dwi wedi fy copïo XSLT sy'n creu graff bar llorweddol. Mae'n eithaf da sylwadau felly ni fydd ychwanegu llawer yma heblaw am nodiadau hyn:

  • Dechreuais gyda y XSL a roddodd dylunydd SharePoint imi pan wyf yn Gyntaf wedi creu y DVWP diofyn.
  • Llwyddodd hyn dorri i lawr gan y ddogfen raglennu sengl 657 llinellau i 166 llinellau.
  • Nid oedd yr lolian gyda ffeil XML paramedrau (ar wahân i y XSL a byddwch yn gwybod beth a olygaf pan fyddwch yn mynd i addasu y DVWP ei hun; Ceir dwy ffeil a gallwch addasu). Fodd bynnag,, er mwyn symleiddio, Oedd yn cael gwared bron pob un ohonynt gan y XSL. Mae hyn yn golygu os ydych am wneud defnydd o'r paramedrau hynny, Mae angen i ychwanegu eu diffiniadau newidiol y XSL chi. Bydd hynny'n hawdd ers y bydd gennych y diffiniadau newidiol XSL gwreiddiol yn eich prosiect, stiwdio gweledol.
  • Dylech fod yn gallu copïo a gludo hyn uniongyrchol yn eich prosiect stiwdio gweledol. Yna, tynnu fy nghais a rhowch eich hun yn galw i "ShowBar".
  • Dril i lawr gwaith gan greu <a href> fel hyn: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. Gall fod yn dechneg hon o werth mewn cyd-destunau eraill. Yn gyntaf, Yr oeddwn yn meddwl y byddai yn gorfod cydymffurfio â fformat mwy cymhleth: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, ond yn fy amgylchedd Nid yw hynny'n angenrheidiol. Yn y rhestr URL yn trosglwyddo i ni gan SharePoint felly mae'n eithaf hawdd i generalize.

Yma mae'n:

<XSL:Taflen arddull fersiwn="1.0" Peidiwch â chynnwys-canlyniad-rhagddodiaid="RS z o s ddwrt dt msxsl" 
xmlns:msxsl="URN:schemas-microsoft-com:xslt" xmlns:XSL="http://www.W3.org/1999/XSL/Transform"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:y="URN:schemas-microsoft-com:swyddfa" xmlns:s="sesiwn:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:DT="sesiwn:1-A29F C2F41010-65B3-11d-00AA00C14882" xmlns:RS="URN:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="URN:Tudalen flaen:mewnol"
> <XSL:allbwn dull="html" mewnoliad="na" /> <XSL:degol-fformat NaN="" /> <XSL:param Enw="ListUrlDir"></XSL:param> <!-- Yr angen hwn i gefnogi Dril i lawr. --> <XSL:templed yn cyd-fynd="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
> <XSL:amrywiol Enw="dvt_StyleName">Tabl</XSL:amrywiol> <XSL:amrywiol Enw="Rhesi" dewis="/dsQueryResponse/rhesi/rhes" /> <XSL:amrywiol Enw="dvt_RowCount" dewis="cyfrif($Rhesi)" /> <XSL:amrywiol Enw="IsEmpty" dewis="$dvt_RowCount = 0" /> <XSL:amrywiol Enw="dvt_IsEmpty" dewis="$dvt_RowCount = 0" /> <XSL:dewis> <XSL:pan prawf="$dvt_IsEmpty"> Nid oes unrhyw ddata i graff!<br/> </XSL:pan> <XSL:fel arall> <!-- Mae pethau diddorol yn dechrau yma. Mae angen inni ddiffinio'r pâr o newidynnau ar gyfer pob rhes yn y graff: Cyfanswm nifer yr eitemau a y cant o'r cyfanswm. --> <XSL:amrywiol Enw="totalProposed" dewis="cyfrif(/dsQueryResponse/rhesi/rhes[normaleiddio'r gofod(@Status) = 'Arfaethedig'])" /> <XSL:amrywiol Enw="percentProposed" dewis="$totalProposed div $dvt_RowCount" /> <XSL:amrywiol Enw="totalInProcess" dewis="cyfrif(/dsQueryResponse/rhesi/rhes[normaleiddio'r gofod(@Status) = 'Yn broses'])" /> <XSL:amrywiol Enw="percentInProcess" dewis="$totalInProcess div $dvt_RowCount" /> <XSL:amrywiol Enw="totalStalled" dewis="cyfrif(/dsQueryResponse/rhesi/rhes[normaleiddio'r gofod(@Status) = 'Arafu'])" /> <XSL:amrywiol Enw="percentStalled" dewis="$totalStalled div $dvt_RowCount" /> <!-- Yr ydym yn diffinio ein Tabl HTML yma. Yr wyf yn benthyca rhai arddulliau SharePoint safon yma er mwyn ei gwneud yn gyson. Credaf y bydd yn cadw'r newidiadau i'r ffeil css byd-eang yn ogystal â Mae'r thema yn diystyru. --> <tabl lled="100%" cellspacing="0" Padin celloedd="2" arddull="ffin dde-: 1 #C0C0C0 solet; ffin isaf: 1 #C0C0C0 solet; ffin-chwith-arddull: solet; ffin-chwith-led: 1; ffin-top-arddull: solet; ffin uchaf lled: 1;"> <tr> <TD alinio="canolfan"> <tabl ffin="1" lled="100%"> <!-- Ar gyfer pob statws yr ydym am ei graff, Rydym yn galw "ShowBar" templed. Yr ydym yn ei basio: 1. Label ar gyfer y rhes. Mae hyn yn trawsffurfio hyperddolen. 2. Y cant (amrywiol oddi uchod). 3. Enw maes gwirioneddol y Cod oddi ar y rhestr sylfaenol. Nid oes angen i gyfateb y label arddangos. 4. Maes gwerth cyfatebol ar gyfer #3. 5. Eitemau cyfanswm y Cod hwn statws (na chyfanswm yr holl godau statws). Mae ei allyrru <tr></tr> llinell llorweddol graff bar a. Rydym yn galw y templed hwn ar gyfer pob cod statws yr ydym am weld. --> <XSL:galw-templed Enw="ShowBar"> <XSL:gyda-param Enw="BarDisplayLabel" dewis="'Arfaethedig'"/> <XSL:gyda-param Enw="BarPercent" dewis="$percentProposed"/> <XSL:gyda-param Enw="QueryFilterFieldName" dewis="'Statws'"/> <XSL:gyda-param Enw="QueryFilterFieldValue" dewis="'Arfaethedig'"/> <XSL:gyda-param Enw="TotalItems" dewis="$totalProposed"></XSL:gyda-param> </XSL:galw-templed> <XSL:galw-templed Enw="ShowBar"> <XSL:gyda-param Enw="BarDisplayLabel" dewis="'Arafu'"/> <XSL:gyda-param Enw="BarPercent" dewis="$percentStalled"/> <XSL:gyda-param Enw="QueryFilterFieldName" dewis="'Statws'"/> <XSL:gyda-param Enw="QueryFilterFieldValue" dewis="'Arafu'"/> <XSL:gyda-param Enw="TotalItems" dewis="$totalStalled"></XSL:gyda-param> </XSL:galw-templed> <XSL:galw-templed Enw="ShowBar"> <XSL:gyda-param Enw="BarDisplayLabel" dewis="'Yn y broses'"/> <XSL:gyda-param Enw="BarPercent" dewis="$percentInProcess"/> <XSL:gyda-param Enw="QueryFilterFieldName" dewis="'Statws'"/> <XSL:gyda-param Enw="QueryFilterFieldValue" dewis="'Yn y broses'"/> <XSL:gyda-param Enw="TotalItems" dewis="$totalInProcess"></XSL:gyda-param> </XSL:galw-templed> </tabl> </TD> </tr> </tabl> </XSL:fel arall> </XSL:dewis> </XSL:templed> <!-- Mae'r templed hwn yw'r gwaith o arddangos llinellau unigol yn y graff bar. Byddwch chi fwy na thebyg yn gwneud rhan fwyaf o'r addasu eich yma. --> <XSL:templed Enw="ShowBar"> <XSL:param Enw="BarDisplayLabel" /> <!-- label i ddangos --> <XSL:param Enw="BarPercent"/> <!-- Y cant o'r cyfanswm. --> <XSL:param Enw="QueryFilterFieldName"/> <!-- Defnyddio i neidio i'r ymholiad & Hidlydd --> <XSL:param Enw="QueryFilterFieldValue"/> <!-- Defnyddio i neidio i'r ymholiad & Hidlydd --> <XSL:param Enw="TotalItems" /> <!-- cyfrif cyfanswm y barlabel hon --> <tr> <!-- Labelwch y bar ei hun. --> <TD dosbarth="Ms formbody" lled="30%"> <!-- Mae'r set nesaf hon o ddatganiadau yn adeiladu llinyn ymholiad sydd yn caniatáu inni dreiddio'n ddyfnach i farn wedi'u hidlo o'r data sylfaenol. Rydym yn gwneud defnydd o rai pethau yma: 1. Gallwn basio'r FilterField1 a FilterValue1 i restr i hidlo ar Colofn. 2. Yn SharePoint yn pasio baramedr allweddol i ni, ListUrlDir pwyntiau at y rhestr sylfaenol yn eu herbyn yw hwn DVWP "rhedeg". Ddim yn hwyl XSL? --> <XSL:testun analluoga-allbwn-dianc="ie"> <![CDATA[<a href ="]]></XSL:testun> <XSL:gwerth o dewis="$ListUrlDir"/> <XSL:testun analluoga-allbwn-dianc="ie"><![CDATA[?FilterField1 =]]></XSL:testun> <XSL:gwerth o dewis="$QueryFilterFieldName"/> <XSL:testun analluoga-allbwn-dianc="ie"><![CDATA[&FilterValue1 =]]></XSL:testun> <XSL:gwerth o dewis="$QueryFilterFieldValue"/> <XSL:testun analluoga-allbwn-dianc="ie"><![CDATA[">]]></XSL:testun> <XSL:gwerth o dewis="$BarDisplayLabel"/> <XSL:testun analluoga-allbwn-dianc="ie"><![CDATA[</1>]]></XSL:testun> <!-- Mae y rhan nesaf yn dangos rhai rhifau yn y fformat: "(Cyfanswm / % o'r cyfanswm)" --> (<XSL:gwerth o dewis="$TotalItems"/> / <!-- Mae hyn yn creu label y cant braf i ni. Diolch, Microsoft! --> <XSL:galw-templed Enw="percentformat"> <XSL:gyda-param Enw="y cant" dewis="$BarPercent"/> </XSL:galw-templed>) </TD> <!-- Yn olaf, allyrru <TD> tag ar gyfer y bar ei hun.--> <TD> <tabl Padin celloedd="0" cellspacing="0" ffin="0" lled="{rownd($BarPercent * 100)+1}%"> <tr bgcolor="coch"> <XSL:testun analluoga-allbwn-dianc="ie"><![CDATA[&nbsp;]]></XSL:testun> </tr> </tabl> </TD> </tr> </XSL:templed> <!-- Cymerir hyn o rai XSL a oedd yn templed MS yn uniongyrchol. --> <XSL:templed Enw="percentformat"> <XSL:param Enw="y cant"/> <XSL:dewis> <XSL:pan prawf="fformat rhif($y cant, '#,##0%;-#,##0%')= 'NaN'">0%</XSL:pan> <XSL:fel arall> <XSL:gwerth o dewis="fformat rhif($y cant, '#,##0%;-#,##0%')" /> </XSL:fel arall> </XSL:dewis> </XSL:templed> </XSL:Taflen arddull>

Y canlyniadau:

Mae y XSL uchod yn cynhyrchu graff hwn:

Delwedd

Dril i lawr y data sylfaenol drwy glicio ar y Cod statws:

Delwedd

Meddyliau i gloi:

Gall cyffredinoli'n hyn?

Dwi'n caru cysyniad hwn graffiau, ond mae'n gas gennyf y ffaith bod gennyf i fynd i mewn a gwneud codio llaw cymaint o. Dwi yn cael ychydig o ystyriaeth i p'un a y gall eu cyffredinoli'n ac yr wyf yn optimistaidd, ond yr wyf hefyd yn ofni ychydig fod wal frics rywle ar hyd y llwybr a fydda i ddim yn cynnig unrhyw weithio o amgylch. Os oes gan unrhyw un syniadau da ar hyn, Gwnewch nodyn yn y sylwadau neu e-bost ataf.

Graffiau fertigol:

Dyma graff bar llorweddol. Mae'n sicr yn bosibl i greu graff fertigol. Ond mae angen inni newid y HTML. Byddai yn dechrau yr un ffordd: Greu cynrychiolaeth HTML graff bar fertigol a ffigur wedyn sut i gael hynny drwy XSL. Os bydd unrhyw un sydd â diddordeb yn hynny, Gellid fy mherswadio i arni a gweithio allan y kinks. Os bydd rhywun wedi gwneud hynny eisoes, rhowch wybod i mi a byddaf yn falch o gysylltu â'ch blog 🙂

Credaf mai'r her gyda graff fertigol yw bod y labeli ar gyfer y graff yn fwy anodd i reoli, ond yn sicr nid amhosibl.

Gotcha enw maes:

Leiaf dau beth i edrych allan ar gyfer eich enwau caeau.

Cyntaf, Mae enw cae gyda lle i fod wedi dianc yn y XSL. Hyn mae'n debyg y bydd mater yma:

        <XSL:amrywiol Enw="totalProposed" 
dewis="cyfrif(/dsQueryResponse/rhesi/rhes[normaleiddio'r gofod(@Status) = 'Arfaethedig'])" />

Os eich "statws" Mae Colofn mewn gwirionedd a enwir "Cod statws" yna mae angen ichi ei gyfeiriad fel "Status_x0020_Code":

   <XSL:amrywiol Enw="totalProposed" 
dewis="cyfrif(/dsQueryResponse/rhesi/rhes[normaleiddio'r gofod(@Status_x0020_Code) = 'Arfaethedig'])" />

Ail, ac yr wyf braidd yn niwlog ar hyn, ond mae hefyd angen i chi fod ar y rhybudd ar gyfer newid enw'r maes. Os byddwch yn enwi eich maes "Cod statws" ac yna yn ddiweddarach ar, ei hailenwi i "AFE statws", enw"mewnol" Nid yw newid. Bydd yr enw mewnol yn dal i fod "Cod statws" a rhaid cyfeirio at fel "Status_x0020_Code". Y "adnoddau eraill" Gall cysylltiadau yn helpu i wneud diagnosis a chywiro y math hwn o broblem.

Am y lliw:

Cydiais "coch" oherwydd mae'n bleser i mi ar hyn o bryd. Ni fyddai rhywbeth mawr yn dangos lliwiau gwahanol er mwyn darparu mwy na dim ond disgrifiad gweledol o nifer, ond hefyd i ddarparu KPI yn ddefnyddiol. Er enghraifft,, Os oedd y ganran o "wedi arafu" Mae y AFE > 10% yna dangos coch, fel arall mae'n dangos ddu. Defnyddio <XSL:dewis> i gyflawni hyn.

Adnoddau eraill:

Trawsnewid hapus!

<diwedd />

Tanysgrifio i fy mlog!

Tagiau Technorati: , , , , , ,

Nid yw SharePoint Darparu “Pwy A Mynediad” Adroddiadau

Y NEWYDDION DIWEDDARAF 01/28/08: Mae'r prosiect hwn yn Codeplex afael â'r mater hwn: http://www.codeplex.com/AccessChecker. Nid wyf wedi defnyddio, ond mae'n edrych yn addawol os yw hyn yn fater y mae angen i chi fynd i'r afael yn eich amgylchedd.

Y NEWYDDION DIWEDDARAF 11/13/08: Ysgrifennodd Joel OLESON â swydd dda iawn ar y mater rheoli diogelwch mwy o faint yma: http://www.sharepointjoel.com / Lists / Neges / Post.aspx?List=0cd1a63d-183c-4fc2-8320-ba5369008acb&ID = 113. Mae'n cysylltu â nifer o adnoddau defnyddiol eraill.

Fforwm defnyddwyr a chleientiaid yn aml yn gofyn cwestiwn ar hyd y llinellau hyn: "Sut wneud greu rhestr o'r holl ddefnyddwyr gyda mynediad i safle" neu "sut gall awtomatig hysbysu fy holl ddefnyddwyr sydd â mynediad at rhestr am newidiadau a wnaed at y rhestr?"

Nid oes dim allan o'r ateb yn y blwch ar gyfer hyn. Os ydych yn meddwl am y peth am eiliad, nid yw'n anodd deall pam.

Diogelwch SharePoint yn hyblyg iawn. Ceir o leiaf pedwar categori mawr o ddefnyddwyr:

  • Defnyddwyr anhysbys.
  • Defnyddwyr a Grwpiau SharePoint.
  • Defnyddwyr Active Directory.
  • Ffurflenni Dilysu yn Seiliedig ar (FBA) defnyddwyr.

Mae hyblygrwydd yn golygu, o safbwynt diogelwch, Bydd unrhyw safle SharePoint penodol yn sylweddol wahanol i'r un arall. Er mwyn cynhyrchu adroddiad rhestr mynediad, un angen i ganfod sut mae'r safle'n cael ei sicrhau, ymholiad ystorfeydd proffil defnyddiwr gwahanol lluosog ac wedyn ei gyflwyno mewn modd defnyddiol. Dyna yn broblem anodd ei datrys yn enerig.

Sut mae sefydliadau sy'n ymdrin â hyn? Byddwn wrth fy modd i glywed eich sylwadau neu e-bost.

</diwedd>

Tagiau Technorati: ,