Kategorija Archives: SharePoint plėtros

Saugokitės naujausias pakeitimų į ItemStyle.xsl

Aš dirbau su ItemStyle.xsl pritaikyti turinio užklausos žiniatinklio dalį ir teisė apie Pietų metu, Aš padariau nesilaikantiems pakeisti į xsl. Aš ne suprato, jis, bet tai buvo didelio masto poveikį visame svetainių rinkinyje. Aš nuėjo į pietus ir po mano grįžimo, pastebėjau šį pranešimą įtrauktų į krūva vietose:

Negali Rodyti šios tinklapio dalies. Norėdami pašalinti triktis, Atidarykite šį interneto puslapį naudodami su Windows SharePoint tarnybomis suderinamą HTML rengyklę, pvz., Microsoft Office SharePoint Designer. Jei problema kartojasi, kreipkitės į žiniatinklio serverio administratorių.

Aš kaltino klientas (ne suprasti iki šiol, kad jis buvo mano kaltė šiuo metu) tačiau ilgainiui pastebėjo, kad visual studio intellisense buvo įspėjimas man kad aš blogai suformuotas XSL. Aš pataisyta ir viskas pradėjo dirbti.

Būti darned atsargūs dirbant su ItemStyle.xsl (ir bet pasaulio XSL failus) — jas įtakoja daug dalykų svetainių rinkinio.

<pabaigos />

Rodyti turinio užklausos žiniatinklio dalis rezultatus tinklelyje / Lentelė

Apžvalga ir tikslas

Out of the box, SAMANŲ’ Turinio užklausos žiniatinklio dalis (CQWP) rodo jo rezultatų sąrašą formatu, panašūs į paieškos rezultatus. Tai taip pat galima matyti rezultatus tinklelyje formatu (ty. HTML lentelės formatą). Tinklelio formatai yra geriau kai kuriais atvejais. Aprašyti, kaip pasiekti kad šis straipsnis.

Verslo scenarijus

Aš dirbau su klientu visos įmonės MOSS rida. Mes turime sukurti jų taksonomija taip, kad projektai pirmos klasės piliečiais hierarchijos ir turi savo aukščiausio lygio svetainės. Projektų vadovai išlaikyti Singletonas sąrašą projekto informacijos santrauka, pvz., pavadinimas, biudžeto, numatomas baigimo data, Likusi biudžeto ir kitų suvestinės tipo laukai. Iš "Singletonas" Aš tai pasirinktinį SharePoint sąrašą garantuoja, kad yra tik viena prekė. Gerokai, atrodo, kad tai:

vaizdas

Techniniu požiūriu yra beveik toks pat kaip aprašyta čia (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). Į CQWP naudoja XSL transformacija išmesti HTML naršyklė teikti.

Aš visada įsivaizduoti rezultatas prieš pasinerdami į XSL nes XSL yra košmaras. Čia yra mano norimo rezultato:

vaizdas

HTML kaip tai generuoja to:

<HTML>
 <įstaiga>
 <centras>
 <lentelė sienos= 1>

<!-- Etiketės->
 <TR bgcolor= blue>
 <TD><šriftas spalva= balta><b>Projekto pavadinimas</b></šriftas></TD>
 <TD suderinti= teisės><šriftas spalva= balta><b>Visą dieną</b></šriftas></TD>
 <TD suderinti= teisės><šriftas spalva= balta><b>Biudžeto</b></šriftas></TD>
 <TD suderinti= teisės><šriftas spalva= balta><b>Faktinių išlaidų</b></šriftas></TD>
 <TD><šriftas spalva= balta><b>Bendras statusas</b></šriftas></TD>
 </TR>

<TR>
 <TD>Vėl vielos kompiuterių klasėje.</TD>
 <TD suderinti= teisės>02/01/08</TD>
 <TD suderinti= teisės>22,500.00</TD>
 <TD suderinti= teisės>19,000.00</TD>
 <TD>Vyksta</TD>
 </TR>

<TR>
 <TD>Nuostata serveriais SQL atnaujinti</TD>
 <TD suderinti= teisės>04/01/08</TD>
 <TD suderinti= teisės>7,500.00</TD>
 <TD suderinti= teisės>0.00</TD>
 <TD>Planuojama</TD>
 </TR>

</lentelė>
 </centras>
 </įstaiga>
</HTML>

Požiūris

Atlikite šiuos veiksmus, norėdami sukurti tinklelį:

  1. Nustatyti sudedamąsias dalis tinklelis (eilutes/stulpelius).
  2. Apibrėžti ir sukurti reikia svetainės stulpeliai.
  3. Sukurti sub svetainių projektai ir pavienių sąrašų.
  4. Pridėti į CQWP tinklapį ir konfigūruoti ją ieškoti savo sąrašus.
  5. Pakeisti į CQWP XML surinkti papildomų stulpelių nustatymą.
  6. Modifikuoti XSL, kad būtų sukurti.

I 'm going to dėmesio numeris šeši. Vienas per keturis skaičius yra tiesiai į priekį ir ko bet CQWP viskas jau padaryta. Numeris penki buvo gerai dokumentuota iš kitų, įskaitant Šis išsamus ekrano fotografiją pakrauta straipsnis iš MSDN čia (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) ir Heather Saliamono Dienoraštis čia (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

Veržlės ir varžtai

Pradėti ir įgyvendinti veiksmus nuo 1 iki penkių MSDN dokumentus ir Heather Saliamono straipsnio.

Šiuo metu, pridėjote savo CQWP į puslapį, ir jūs turite savo <CommonViewFields> sukonfigūruotas prireikus.

Įprasta veiksmus, Man šie tarpiniai rezultatai:

1. Kurti turinio tipą, šablono pasirinktinį sąrašą to turinio tipo ir dvi svetaines. Čia yra turinio tipas:

vaizdas

Čia yra svetainės struktūra:

vaizdas

2. Pridėti į CQWP po sukurtas projekto antrines svetaines ir pavienių projekto santrauka sąrašus:

vaizdas

3. Pridėti visa informacija, kurios aš noriu per į <CommonViewFields>:

        <nekilnojamojo turto vardas, pavadinimas="CommonViewFields" tipo="eilutė">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</nekilnojamojo turto>

Atkreipkite dėmesį, kad man teko išlaikyti visi ypatybių laukai viena linija arba jis neveikia (CQWP būtų pasakyti, kad užklausa grąžino elementų).

4. Šiuo metu, Mes pasiruošę pereiti nuo MSDN straipsnį ir apversti ant per Heather Saliamono straipsnį. Atlikite savo veiksmus pradedant netoli žingsnis #5 kurti individualią / unghosted versija ItemStyle.xsl. Aš po Heather patarimai, aukštyn per žingsnį 11 ir gauti šiuos tarpinius rezultatus:

4.1: Vardas mano XSL šabloną taip:

<XSL:šablono pavadinimas = "tinklelis" rungtynės = "eilutę[@Style = "Tinklelis"]" režimas = "itemstyle">

Aš taip pat šiek tiek modifikuoti jai pasiūlė <XSL:už kiekvieną …> pridėjus a <br /> Tag teikti švaresnis sąrašą:

    <XSL:už kiekvieną Pasirinkite="@*">
      P:<XSL:vertė Pasirinkite="vardas, pavadinimas()" /><br/>
    </XSL:už kiekvieną>

4.2: Aš pakeisti puslapio dalis, Pasirinkite mano "tinklelis išvaizdą ir" stilius:

vaizdas

Pritaikytas ir Štai rezultatas:

vaizdas

Mes galime matyti iš pirmiau kad srityse mes norime (Projekto pavadinimas, sąskaita, statusas, ir tt) yra mums naudoti, kai mes skleisti HTML. Ne tik, kad, bet mes pamatyti pavadinimus, kuriais mes turi nurodyti tuos stulpelius į XSL. Pvz., Mes nuoroda projekto būseną kaip "Project_x005F_x0020_Name".

Šiuo metu, Mes nukrypti nuo Heather dienoraštį ir iš šių milžinų pečių, Pridedu savo šiek tiek.

ContentQueryMain.xsl

PASTABA: Keičiant tiek ContentQueryMain.xsl, tiek ItemStyle.xsl, reikia patikrinti tuos failus atgal į prieš jus pamatyti savo pasikeitimo poveikis.

Tinklo formavimo tikslais, SAMANŲ naudoja du skirtingus XSL failus pateikia rezultatus, matome iš a CQWP. Generuoti į ankstesnį šiek tiek produkcijos, Mes pakeisti ItemStyle.xsl. SAMANŲ iš tikrųjų naudoja kitą XSL failą, ContentQueryMain.xsl, kartu su ItemStyle.xsl kurti savo HTML. Kaip jos pavadinimas, ContentQueryMain.xsl yra "pagrindinė" XSL, kuris kontroliuoja apie bendrą srautą Vertimas. Tai kartojasi per visus rasti elementus ir eina juos po vieną į šablonus ItemStyle.xsl. Mes jums pakeisti ItemStyle.xsl kurti atvirą <lentelė> Tag prieš skleidžiantis pirmos eilutės duomenys ir uždarymas <lentelė> žymę po skleidžiančių paskutinę eilutę. Norėdami tai atlikti, ContentQueryMain.xsl iš dalies keičiami du parametrai perduoti mūsų "tinklelis" šablono ItemStyle.xsl, "paskutinę eilutę" ir "dabartinės eilutės". ItemStyle.xsl naudoja tai sąlyginai išmesti reikia Žymos.

Naudojant Heather Saliamono technika, mes rasti ContentQueryMain.xsl. Jis įsikūręs pačioje vietoje kaip ir ItemStyle.xsl. Šis ekrano nuotrauka turėtų padėti:

vaizdas

Mums reikia atlikti šiuos keitimus:

  • Xsl šablono modifikavimas, "CallItemTemplate" kad iš tikrųjų remiasi mūsų tinklelio šablono ItemStyle.xsl. Mes bus perduoti du parametrai tinklelio šabloną, kad dar reikia sąlyginai generuoti atidaryti ir uždaryti duomenų <lentelė> Žymos.
  • Pakeisti kitą tiek ContentQueryMain.xsl, kad "CallItemTemplate" ją perduoti "LastRow" parametras, kad LastRow gali būti perduodama į mūsų tinklo šablonas.

Rasti šabloną, pavadintą "OuterTemplate.CallItemTemplate" identifikuojami pagal eilutę:

  <XSL:šablonas vardas, pavadinimas="OuterTemplate.CallItemTemplate">

Pakeisti visą šabloną taip:

  <XSL:šablonas vardas, pavadinimas="OuterTemplate.CallItemTemplate">
    <XSL:param vardas, pavadinimas="CurPosition" />

    <!--
      Pridėti "LastRow" parametras.
      Mes tik jį naudoti, kai prekės stilius išlaikyti, yra "Tinklelis".
    -->
    <XSL:param vardas, pavadinimas="LastRow" />

    <XSL:pasirinkti>
      <XSL:kada bandymas="@Style = "NewsRollUpItem"">
        <XSL:taikyti šablonus Pasirinkite="." režimas="itemstyle">
          <XSL:su param vardas, pavadinimas="EditMode" Pasirinkite="$cbq_iseditmode" />
        </XSL:taikyti šablonus>
      </XSL:kada>
      <XSL:kada bandymas="@Style = "NewsBigItem"">
        <XSL:taikyti šablonus Pasirinkite="." režimas="itemstyle">
          <XSL:su param vardas, pavadinimas="CurPos" Pasirinkite="$CurPosition" />
        </XSL:taikyti šablonus>
      </XSL:kada>
      <XSL:kada bandymas="@Style = "NewsCategoryItem"">
        <XSL:taikyti šablonus Pasirinkite="." režimas="itemstyle">
          <XSL:su param vardas, pavadinimas="CurPos" Pasirinkite="$CurPosition" />
        </XSL:taikyti šablonus>
      </XSL:kada>

      <!--
              Dabartinę padėtį ir lastrow perduoti tinklo itemstyle.xsl šablonas.
              ItemStyle.xsl naudos, skleidžia atviro ir uždarymo <lentelė> Žymos.
      -->
      <XSL:kada bandymas="@Style = "Tinklelis"">
        <XSL:taikyti šablonus Pasirinkite="." režimas="itemstyle">
          <XSL:su param vardas, pavadinimas="CurPos" Pasirinkite="$CurPosition" />
          <XSL:su param vardas, pavadinimas="Paskutinis" Pasirinkite="$LastRow" />
        </XSL:taikyti šablonus>
      </XSL:kada>

      <XSL:kitaip>
        <XSL:taikyti šablonus Pasirinkite="." režimas="itemstyle">
        </XSL:taikyti šablonus>
      </XSL:kitaip>
    </XSL:pasirinkti>
  </XSL:šablonas>

Komentarus apibūdinti pakeitimų tikslas.

žinoma, "OuterTemplate.CallItemTemplate" pati iškvietė kitą šabloną. Raskite tą šabloną ieškodami šio teksto eilutė:

<XSL:šablonas vardas, pavadinimas="OuterTemplate.Body">

Slinkimas per OuterTemplate.Body instrukcijas ir įterpti parametrą LastRow taip (rodomas komentare, pasvirasis):

<XSL:Call-template vardas, pavadinimas="OuterTemplate.CallItemTemplate">
  <XSL:su param vardas, pavadinimas="CurPosition" Pasirinkite="$CurPosition" />
  <!-- Įterpti parametrą LastRow. -->
  <XSL:su param vardas, pavadinimas="LastRow" Pasirinkite="$LastRow"/>
</XSL:Call-template>

Po visa tai, pagaliau buvo nustatyti tinkamai, kad mūsų ItemStyle.xsl galėtų duoti dalykų <lentelė> Žymos į reikiamą vietą.

ItemStyle.Xsl

PASTABA: Dar kartą, įsiregistruoti ItemStyle.xsl atlikę pakeitimus, kad matytumėte šių pokyčių poveikį.

Mes turime dvi užduotis čia:

  • Pakeisti visą tinklo šablonas. Jūs galite kopijuoti ir įklijuoti iš apačios.
  • Pridėti kai kurios mumbo jumbo šabloną apibrėžimą, leidžiantis "formatcurrency" šablonas veiktų. (Galite pasakyti, kad aš silpnas rankena XSL).

Pirmosios, viršuje, ItemStyle.xsl, pridėkite šią eilutę:

  <!-- Kai kurie mumbo jumbo, kuris leistų parodyti JAV. valiuta. -->
  <XSL:dešimtainis formatas vardas, pavadinimas="darbuotojai" skaitmuo="D" />

  <XSL:šablonas vardas, pavadinimas="Numatytasis" rungtynės="*" režimas="itemstyle">

Pastaba kad dodałem jį tiesiogiai prieš ir <XSL:šablono pavadinimas = "Numatytasis" …> apibrėžimas.

Kitas, grįžti į mūsų tinklo šablonas. Pakeisti visą tinklo šablonas žemiau esantį kodą. Jis yra gerai pakomentavo, Tačiau nedvejodami rašykite man arba palikti komentarus savo dienoraštį, jei turite klausimų.

  <XSL:šablonas vardas, pavadinimas="Tinklelis" rungtynės="Eilutės[@Style = "Tinklelis"]" režimas="itemstyle">

    <!--
      ContentMain.xsl eina CurPos, su paskutiniais.
      Mes naudojame šias išlygomis skleidžia atviro ir uždarymo <lentelė> Žymos.
    -->
    <XSL:param vardas, pavadinimas="CurPos" />
    <XSL:param vardas, pavadinimas="Paskutinis" />

    <!-- Kintamieji yra nemodifikuotą nuo standartinių ItemStyle.xsl -->
    <XSL:kintamasis vardas, pavadinimas="SafeImageUrl">
      <XSL:Call-template vardas, pavadinimas="OuterTemplate.GetSafeStaticUrl">
        <XSL:su param vardas, pavadinimas="UrlColumnName" Pasirinkite=""ImageUrl""/>
      </XSL:Call-template>
    </XSL:kintamasis>
    <XSL:kintamasis vardas, pavadinimas="SafeLinkUrl">
      <XSL:Call-template vardas, pavadinimas="OuterTemplate.GetSafeLink">
        <XSL:su param vardas, pavadinimas="UrlColumnName" Pasirinkite=""LinkUrl""/>
      </XSL:Call-template>
    </XSL:kintamasis>
    <XSL:kintamasis vardas, pavadinimas="DisplayTitle">
      <XSL:Call-template vardas, pavadinimas="OuterTemplate.GetTitle">
        <XSL:su param vardas, pavadinimas="Antraštinė dalis" Pasirinkite="@Title"/>
        <XSL:su param vardas, pavadinimas="UrlColumnName" Pasirinkite=""LinkUrl""/>
      </XSL:Call-template>
    </XSL:kintamasis>
    <XSL:kintamasis vardas, pavadinimas="LinkTarget">
      <XSL:Jei bandymas="@OpenInNewWindow = "True"" >_blank</XSL:Jei>
    </XSL:kintamasis>

    <!--
      Čia mes apibrėžti kintamąjį, "tableStart".  Tai yra HTML, mes naudojame nustatyti lentelės taip pat stulpelio žymelės atidarymo.  Atkreipkite dėmesį, kad jei CurPos = 1, ji apima HTML CDATA žymę.
      Kitaip, jis bus tuščias.

      TableStart vertė yra emited kiekvieną kartą, kai ItemStyle yra vadinamas via ContentQueryMain.xsl.
    -->
    <XSL:kintamasis vardas, pavadinimas="tableStart">
      <XSL:Jei bandymas="$CurPos = 1">
        <![CDATA[
        <lentelės kraštinėje = 1>
          <TR bgcolor = "blue">
            <TD><Šrifto spalva = "balta"><b>Projekto pavadinimas</b></šriftas></TD>
            <TD align = "right"><Šrifto spalva = "balta"><b>Visą dieną</b></šriftas></TD>
            <TD align = "right"><Šrifto spalva = "balta"><b>Biudžeto</b></šriftas></TD>
            <TD align = "right"><Šrifto spalva = "balta"><b>Faktinių išlaidų</b></šriftas></TD>
            <TD><Šrifto spalva = "balta"><b>Bendras statusas</b></šriftas></TD>
          </TR>
        ]]>
      </XSL:Jei>
    </XSL:kintamasis>

    <!--
      Kitam kintamajam, tableEnd tiesiog apibrėžia uždarymo lentelės žymė.

      Kaip ir tableStart, tai visada emited.  Tai kodėl jo vertė priskiriama tam tikromis sąlygomis grindžiama ar mes jau buvo priimtas paskutinę eilutę ContentQueryMain.xsl.
    -->
    <XSL:kintamasis vardas, pavadinimas="tableEnd">
      <XSL:Jei bandymas="$CurPos = $Last">
        <![CDATA[ </lentelė> ]]>
      </XSL:Jei>
    </XSL:kintamasis>

    <!--
      Visada išmeta tableStart turinys.  Jei tai nėra pirmos eilutės praėjo mums ContentQueryMain.xsl, tada mes žinome, jos vertė yra tuščias.

      Išjungti produkcijos pabėgti nes Kada tableStart tai ne tuščias, ji apima faktinį HTML, kad mes norime būti suteiktas naršyklė.  Jei mes don't tell XSL analizatorius išjungti išvesties pabėgti, ji bus sukurti daiktai kaip"&lt;lentelė&gt;" Vietoj to "<lentelė>".
    -->
    <XSL:vertė Pasirinkite="$tableStart" išjungti-produkcija-pabėgti="taip"/>


    <TR>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <TD>
        <XSL:vertė Pasirinkite="@Project_x005F_x0020_Name"/>
      </TD>

      <TD suderinti="teisė">
        <XSL:vertė Pasirinkite="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </TD>

      <TD suderinti="teisė">
        <XSL:Call-template vardas, pavadinimas="FormatCurrency">
          <XSL:su param vardas, pavadinimas="vertė" 
Pasirinkite="@Project_x005F_x0020_Budget"></XSL:su param> </XSL:Call-template> </TD> <TD suderinti="teisė"> <XSL:Call-template vardas, pavadinimas="FormatCurrency"> <XSL:su param vardas, pavadinimas="vertė" Pasirinkite="@Project_x005F_x0020_Expenses">
</XSL:su param> </XSL:Call-template> </TD> <TD> <XSL:vertė Pasirinkite="@Project_x005F_x0020_Status"/> </TD> <!-- Visi šie yra komentaru siekiant paaiškinti, ką. Tačiau, priima jį atgal ir kita į į <TD> Norėdami pamatyti jos poveikį. --> <!-- <div id = "linkitem" Class = "elementas"> <XSL:Jei bandymas = "eilutės ilgis($SafeImageUrl) != 0"> <div class = "vaizdas-plotas-kairieji"> <a href = "{$SafeLinkUrl}" TARGET = "{$LinkTarget}"> <IMG class = "vaizdas-fiksuoto pločio" src = "{$SafeImageUrl}"
ALT = "{@ImageUrlAltText}"/> </a> </DIV> </XSL:Jei> <div class = "ryšys-prekės"> <XSL:Call-template
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href = "{$SafeLinkUrl}"
TARGET = "{$LinkTarget}" title = "{@LinkToolTip}"> <XSL:vertė-apie pasirinkite = "$DisXSLyTitle" /> </a> <div class = "Aprašas"> <XSL:vertė-apie select="@Description" /> </DIV> </DIV> </DIV>
--> </TR> <!-- Skleisti uždarymo lentelės žymė. Jei mes ne apie paskutinę eilutę, tai yra tuščias. --> <XSL:vertė Pasirinkite="$tableEnd" išjungti-produkcija-pabėgti="taip"/> </XSL:šablonas> <XSL:šablonas vardas, pavadinimas="FormatCurrency"> <XSL:param vardas, pavadinimas="vertė" Pasirinkite="0" /> <XSL:vertė Pasirinkite='formatas-numeris($vertė, "$DDD,DDD,DDD.DD", "personalas")' /> </XSL:šablonas>

Standartinis WSS/MOSS duomenų įvedimo langus nepalaiko pakopinių kritimo sumažėjimas (ar kitos vidaus-bendravimas)

NAUJINIMAS (04/2008): Šis puikus blogas įrašas rodo gerą javascript, kurių požiūris į šią problemą: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

ATNAUJINTI II: (04/2008): Šio dienoraščio įrašas vilčių taip pat: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

Kelis kartus per savaitę, Jei ne kasdien, Forum vartotojams apibūdinti nustatytas reikalavimas, kad būtų įvykdytos paprastai per pakopinis kritimo sumažėjimas. Pvz., Turiu du meniu kontrolė:

  • JAV, sąrašas. Amerikos
  • JAV, sąrašas. miestai.

Kaip atsakingas UI teikėjai, Mes norime, kad ji galėtų veikti kaip tai:

  • Paulius pažymi, JAV. valstybė iš išplečiamojo.
  • Tai sukelia miestų išskleidžiamajame filtruoti tik tų miestų, kurie priklauso būseną.
  • Paulius pasirenka miestą iš filtruoto sąrašo.

Nėra out-of-the-box palaikymo šios funkcijos. tiesą sakant, nėra OOB paramą bet kokios rūšies tiesiogiai viduje-forma komunikacijos. Tai apima programiškai laukuose slepiasi/leidžianti/išjungti lauko pokyčius kitur formoje.

Tikrasis tikslas šio straipsnio kad aprašyti galimi sprendimai ir tai yra galimybių kaip aš jas pažįstu:

  1. Sukurti pasirinktinį stulpelio tipo. Kaip būdas-stulpelio-kūrėjas, Jūs turite pilną kontrolę visame pasaulyje"" kad pasirinktinį stulpelio. Jūs galite įgyvendinti yra pakopinis išskleidžiamajame tokiu būdu.
  2. Apsvarstykite galimybę naudoti darbo eigą. Kai kuriais atvejais, norite automatiškai priskirti vertę pagal kitą lauko reikšmę lauke. Šiuo atveju, Jūs paprastai pabandyti naudoti apskaičiuojamajame stulpelyje, bet kartais, ji tiesiog negali gauti darbą. SharePoint Designer darbo eigos yra santykinai administruoti draugiškas alternatyva nuleisti žemyn į kodą ir visual studio. Jeigu jūs einate šiuo keliu, žinoti svarstomi klausimai iš Šis straipsnis (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. Įvykių apdorojimo programos: Kaip darbo eigos, tai yra sprendimas, po to. Įvykio apdorojimo programą yra .NET surinkimas (C#, VB.NET) į kuriuos SharePoint eina kontrolės. Jums sukurti tikslas turi prieigą prie duomenų sąrašo (ir visą objekto modelio) ir gali padaryti bet kokius reikalingus skaičiavimus.
  4. Naudoti SharePoint Designer Norėdami sukurti pasirinktines formas. Aš neturiu tiesioginės patirties su šiuo požiūriu, but I hear they are doing good things with NewForm.aspx these days 🙂
  5. Riedėti savo ASP.NET duomenų įrašas funkcijos (kaip atskiras tinklapį arba kaip puslapio dalis) ir naudoti jį.

Jei kas žino kitų ir (arba) geriau parinktys, Prašome rašyti komentarą ir I atnaujinti šį postą kūno.

<pabaigos />

Technorati Tags:

Sukurti baras diagramų SharePoint

Apžvalga:

(NAUJINIMAS 12/04/07: Pridėti kitas įdomus šaltinis susieti į vieną dienoraštį, kad adresą tai per labai įdomus puslapio dalies pabaigoje)

Šio dienoraščio įrašas aprašoma, kaip sukurti histogramoje SharePoint. Tai veikia WSS ir samanų aplinkoje, kaip jį tik priklauso nuo duomenų rodinio puslapio dalis.

Bendras požiūris yra toks:

  1. Sukurti sąrašą arba dokumentų biblioteką, kurioje duomenis norite į diagramą.
  2. Vieta susijusių dokumentų biblioteką / pasirinktinio sąrašo į puslapį ir konvertuoti jį į duomenų rodinio puslapio dalis (DVWP).
  3. Pakeisti į DVWP XSL generuoti HTML, kuri parodo kaip grafiką.

Verslo scenarijus / Sąranka:

Aš sukūriau pasirinktinį sąrašą su standarto pavadinimas stulpelį ir vieną papildomą stulpelį, "Statusas". Šis modeliai (labai gerokai) Išlaidų leidimas"" scenarijų kai pavadinimas atstovauja projekto ir statuso vertę iš sąrašo:

  • Pasiūlė
  • Procese
  • Įstrigo

Tikslas yra teikti interaktyvios horizontalios juostos grafa, kuri rodo šie būsenos kodai.

Aš jau gyvena sąraše ir jis atrodo taip:

vaizdas

Sukurti duomenų rodinio puslapio dalis:

Kurti su DVWP pridedant pasirinktinį sąrašą į puslapį (svetainės puslapyje mano atveju) ir vykdykite čia (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

Be to, tiesiog kuriant į DVWP, mums taip pat reikia nustatyti ypatybę perkrauties parodyti visų laisvų eilučių. Man, tai atrodo maždaug taip:

vaizdas

Šiuo metu, Aš visada uždaryti BPD ir naršyklės. Aš tada iš naujo Atidarykite puslapį naudojant naršyklę. Taip išvengiama netyčia mucking iki žiniatinklio dalies išdėstymo puslapyje.

Modifikuoti XSLT:

Dabar atėjo laikas pakeisti XSLT.

Aš visada naudoti visual studio tai. (Žr. čia svarbi pastaba apie intellisense, kurie padės jums daug).

Sukurti tuščią projektą įtraukti keturi nauji failai (pakeisti žodžiai "originali" ir "New" atitinkamai):

  • Original.XSLT
  • New.XSLT
  • Originalus Params.xml
  • Naujas Params.xml

Mano atveju, atrodo, kad tai:

vaizdas

Keisti puslapio dalį ir kopijuoti parametrus ir XSL "pradinėje" Visual Studio versija.

Čia siekiama sukelti XSL rezultatais mes grįžti iš DVWP užklausos į HTML, kad tampa kaip grafiką.

Šiuo tikslu, ji padeda pirma nuomone kas HTML turėtų atrodyti prieš mes susipainioti veiksnumas, kuris yra žinomas kaip "XSL". (Turi būti aišku, Žemiau yra tiesiog pavyzdys; nereikia įvesti jį arba kopijuoti ir įklijuoti į visual studio. Aš turiu pateikti visą smūgį atskaitos taškas, kad vëliau rašymą į viršų). Šie mėginys diagrama būtų generuojamas kaip HTML iš karto po:

Juostinės diagramos pavyzdys

Atitinkamus HTML:

<HTML>
<įstaiga>
<centras>
<stalo plotis = 80 %>
<TR><TD><centras>Horizontali histograma</TD></TR>
<TR>
<TD align = "centrą">
<lentelės kraštinėje = "1" plotis = 80 %>
<TR>
<TD plotis = 10 %>Atidaryti</TD>
<TD><lentelės cellpadding ="0" cellspacing ="0" sienos = 0 plotis = 50 %><TR bgcolor = red><TD>&nbsp;</TD></TR></lentelė></TD>
</TR>
<TR>
<TD plotis = 10 %>Uždarytas</TD>
<TD><lentelės cellpadding ="0" cellspacing ="0" sienos = 0 plotis = 25 %><TR bgcolor = red><TD>&nbsp;</TD></TR></lentelė></TD>
</TR>
<TR>
<TD plotis = 10 %>Įstrigo</TD>
<TD><lentelės cellpadding ="0" cellspacing ="0" sienos = 0 plotis = 25 %><TR bgcolor = red><TD>&nbsp;</TD></TR></lentelė></TD>
</TR>
</lentelė>
</TD>
</TR>
</lentelė>
</įstaiga>
</HTML>

Aš miręs paprasta požiūris sukurti mano barų iš nusistatykite fono spalvą iš eilės, "raudona".

Išsinešimui čia tai: Galiausiai, visi mes darome yra sukurti HTML su eilučių ir stulpelių.

Šablono XSLT:

Nukopijavau XSLT, kuris generuoja horizontalioje histogramoje. Tai gana gerai pastebėjo, kad nebus pridėti daug čia išskyrus šios pastabos:

  • Aš pradėjau su numatytąjį XSL, kuris SharePoint Designer davė man, kai aš pirmą kartą sukurta pagal DVWP.
  • Man pavyko sumažinti tai nuo BPD 's 657 eilučių 166 linijos.
  • Aš ne pažaisti su parametrų XML faile (kuri yra atskirta nuo XSL ir jūs žinote, ką reiškia, kai jūs einate į keisti DVWP, pati; ten yra du failai, keičiant). Tačiau, siekiant supaprastinti, Aš padariau beveik visi iš jų pašalinti XSL. Tai reiškia, kad jei jūs norite naudoti šiuos parametrus, jums tik reikia pridėti jų kintamųjų apibrėžimai atgal į XSL. Kad bus lengva, nes jūs turite pradinio XSL kintamųjų apibrėžimai visual studio projekte.
  • Jums turėtų turėti galimybę nukopijuokite ir įklijuokite šį tiesiai į jūsų visual studio projekto. Tada, pašalinti mano skambučius ir įrašyti savo skambučius į "ShowBar".
  • Darbų sukuriant detalizavimas, <a href> va taip: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. Šis metodas gali būti vertės kituose kontekstuose. Iš pradžių, Maniau, kad man reikia kad atitiktų sudėtingesnes formatas: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, bet mano aplinkoje tai nėra būtina. Į sąrašą URL perduodama mums iš SharePoint, tai gana paprasta apibendrinti.

Čia yra:

<XSL:stilių versija="1.0" neįtraukti-rezultatas-priešdėlių="RS z o s ddwrt dt msxsl" 
xmlns:msxsl="Balsuokite:schemas-microsoft-com:XSLT" xmlns:XSL="http://www.w3.org/ 1999/pertvarkymą"
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:o="Balsuokite:schemas-microsoft-com:tarnyba" xmlns:s="UUID naudojimas:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:DT="UUID naudojimas:C2F41010-65B3 - 11d 1-A29F-00AA00C14882" xmlns:RS="Balsuokite:schemas-microsoft-com:eilučių rinkinio" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="Balsuokite:FrontPage:vidaus"
> <XSL:išvesties metodas="HTML" įtrauka="ne" /> <XSL:dešimtainis formatas NaN="" /> <XSL:param vardas, pavadinimas="ListUrlDir"></XSL:param> <!-- Man reikia remti yra detalizavimo. --> <XSL:šablonas rungtynės="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:ASP="http://schemas.microsoft.com/ASPNET/20"
> <XSL:kintamasis vardas, pavadinimas="dvt_StyleName">Lentelė</XSL:kintamasis> <XSL:kintamasis vardas, pavadinimas="Eilučių" Pasirinkite="/dsQueryResponse/eilučių/eilučių" /> <XSL:kintamasis vardas, pavadinimas="dvt_RowCount" Pasirinkite="skaičius($Eilučių)" /> <XSL:kintamasis vardas, pavadinimas="IsEmpty" Pasirinkite="$dvt_RowCount = 0" /> <XSL:kintamasis vardas, pavadinimas="dvt_IsEmpty" Pasirinkite="$dvt_RowCount = 0" /> <XSL:pasirinkti> <XSL:kada bandymas="$dvt_IsEmpty"> Nėra duomenų kreivę!<br/> </XSL:kada> <XSL:kitaip> <!-- Įdomių dalykų čia prasideda. Mums reikia nustatyti kintamųjų kiekvienoje eilutėje poros grafikas: bendras skaičius elementus ir procentais nuo bendro. --> <XSL:kintamasis vardas, pavadinimas="totalProposed" Pasirinkite="skaičius(/dsQueryResponse/eilučių/eilučių[normalizuoti vietos(@Status) = "Siūlomi"])" /> <XSL:kintamasis vardas, pavadinimas="percentProposed" Pasirinkite="$totalProposed div $dvt_RowCount" /> <XSL:kintamasis vardas, pavadinimas="totalInProcess" Pasirinkite="skaičius(/dsQueryResponse/eilučių/eilučių[normalizuoti vietos(@Status) = "Procese"])" /> <XSL:kintamasis vardas, pavadinimas="percentInProcess" Pasirinkite="$totalInProcess div $dvt_RowCount" /> <XSL:kintamasis vardas, pavadinimas="totalStalled" Pasirinkite="skaičius(/dsQueryResponse/eilučių/eilučių[normalizuoti vietos(@Status) = "Sustojo"])" /> <XSL:kintamasis vardas, pavadinimas="percentStalled" Pasirinkite="$totalStalled div $dvt_RowCount" /> <!-- Mes nustatome mūsų HTML lentelės čia. Aš esu skolinimosi iš kai kurių standartinių SharePoint stilių čia suderinti. Manau, kad tai bus garbė pasaulio css failo keitimai taip pat tema pakeičia. --> <lentelė plotis="100%" cellspacing="0" cellpadding="2" stilius="sienos-teisė: 1 kieta #C0C0C0; sienos apačioje: 1 kieta #C0C0C0; sienos kairėje-stiliaus: kietas; sienos-kairės-plotis: 1; siena viršų-stiliaus: kietas; sienos viršaus pločio: 1;"> <TR> <TD suderinti="centras"> <lentelė sienos="1" plotis="100%"> <!-- Už kiekvieną būseną, kuri norime grafikas, Mes vadiname "ShowBar" šablonas. Mes perduoti jį: 1. Eilės etiketė. Tai yra transformuojami į hipersaitą. 2. Procentas (kintamasis iš viršaus). 3. Faktinė lauko pavadinimas iš pagrindinės sąrašo kodas. Tai nėra būtina suderinti ekranas etiketės. 4. Lauko vertė suderinta #3. 5. Bendras elementų, šis būsenos kodas (ne bendrą visų būsenos kodai). Ji skleidžia a <TR></TR> ir horizontalioje histogramoje linija. Mes vadiname šį šabloną kiekvieno būsenos kodo norime Rodyti. --> <XSL:Call-template vardas, pavadinimas="ShowBar"> <XSL:su param vardas, pavadinimas="BarDisplayLabel" Pasirinkite=""Siūlomi""/> <XSL:su param vardas, pavadinimas="BarPercent" Pasirinkite="$percentProposed"/> <XSL:su param vardas, pavadinimas="QueryFilterFieldName" Pasirinkite=""Statusas""/> <XSL:su param vardas, pavadinimas="QueryFilterFieldValue" Pasirinkite=""Siūlomi""/> <XSL:su param vardas, pavadinimas="TotalItems" Pasirinkite="$totalProposed"></XSL:su param> </XSL:Call-template> <XSL:Call-template vardas, pavadinimas="ShowBar"> <XSL:su param vardas, pavadinimas="BarDisplayLabel" Pasirinkite=""Sustojo""/> <XSL:su param vardas, pavadinimas="BarPercent" Pasirinkite="$percentStalled"/> <XSL:su param vardas, pavadinimas="QueryFilterFieldName" Pasirinkite=""Statusas""/> <XSL:su param vardas, pavadinimas="QueryFilterFieldValue" Pasirinkite=""Sustojo""/> <XSL:su param vardas, pavadinimas="TotalItems" Pasirinkite="$totalStalled"></XSL:su param> </XSL:Call-template> <XSL:Call-template vardas, pavadinimas="ShowBar"> <XSL:su param vardas, pavadinimas="BarDisplayLabel" Pasirinkite=""Procese""/> <XSL:su param vardas, pavadinimas="BarPercent" Pasirinkite="$percentInProcess"/> <XSL:su param vardas, pavadinimas="QueryFilterFieldName" Pasirinkite=""Statusas""/> <XSL:su param vardas, pavadinimas="QueryFilterFieldValue" Pasirinkite=""Procese""/> <XSL:su param vardas, pavadinimas="TotalItems" Pasirinkite="$totalInProcess"></XSL:su param> </XSL:Call-template> </lentelė> </TD> </TR> </lentelė> </XSL:kitaip> </XSL:pasirinkti> </XSL:šablonas> <!-- Šis šablonas veikia Rodyti atskiros eilutės stulpeli┼│ grafikas. Jūs tikriausiai padaryti didžiąją dalį jūsų tweaking čia. --> <XSL:šablonas vardas, pavadinimas="ShowBar"> <XSL:param vardas, pavadinimas="BarDisplayLabel" /> <!-- etiketės parodyti --> <XSL:param vardas, pavadinimas="BarPercent"/> <!-- Procentais nuo bendro. --> <XSL:param vardas, pavadinimas="QueryFilterFieldName"/> <!-- Naudojami pereiti prie užklausos & filtras --> <XSL:param vardas, pavadinimas="QueryFilterFieldValue"/> <!-- Naudojami pereiti prie užklausos & filtras --> <XSL:param vardas, pavadinimas="TotalItems" /> <!-- bendras skaičius šiame barlabel --> <TR> <!-- Baro etiketės pati. --> <TD klasės="MS-formbody" plotis="30%"> <!-- Šis kitą atskaitomybės rinkinys stato užklausos eilutę, kuri leidžia mums naudoti detalizavimą ir filtruotas rodinys pagal giliau esančių duomenų. Mes naudoti keletą dalykų čia: 1. Mes galime perduoti FilterField1 ir FilterValue1 į sąrašą filtruoti stulpelyje. 2. SharePoint bėga pagrindiniai parametrai mums, ListUrlDir, kurį nurodo pagrindinės sąrašas nuo kurių šis DVWP "veikia". Nėra XSL įdomus? --> <XSL:tekstas išjungti-produkcija-pabėgti="taip"> <![CDATA[<a href ="]]></XSL:tekstas> <XSL:vertė Pasirinkite="$ListUrlDir"/> <XSL:tekstas išjungti-produkcija-pabėgti="taip"><![CDATA[?FilterField1 =]]></XSL:tekstas> <XSL:vertė Pasirinkite="$QueryFilterFieldName"/> <XSL:tekstas išjungti-produkcija-pabėgti="taip"><![CDATA[&FilterValue1 =]]></XSL:tekstas> <XSL:vertė Pasirinkite="$QueryFilterFieldValue"/> <XSL:tekstas išjungti-produkcija-pabėgti="taip"><![CDATA[">]]></XSL:tekstas> <XSL:vertė Pasirinkite="$BarDisplayLabel"/> <XSL:tekstas išjungti-produkcija-pabėgti="taip"><![CDATA[</a>]]></XSL:tekstas> <!-- Kitą bitų rodo keletą skaičių formatas: "(iš viso / % iš viso)" --> (<XSL:vertė Pasirinkite="$TotalItems"/> / <!-- Tai sukuria gražus procentų etiketės mums. ačiū, Microsoft! --> <XSL:Call-template vardas, pavadinimas="percentformat"> <XSL:su param vardas, pavadinimas="procentų" Pasirinkite="$BarPercent"/> </XSL:Call-template>) </TD> <!-- Pagaliau, išmesti su <TD> žymių juostos pati.--> <TD> <lentelė cellpadding="0" cellspacing="0" sienos="0" plotis="{turas($BarPercent * 100)+1}%"> <TR bgcolor="raudona"> <XSL:tekstas išjungti-produkcija-pabėgti="taip"><![CDATA[&nbsp;]]></XSL:tekstas> </TR> </lentelė> </TD> </TR> </XSL:šablonas> <!-- Tai yra paimami tiesiai iš kai kurių XSL radau MS šablone. --> <XSL:šablonas vardas, pavadinimas="percentformat"> <XSL:param vardas, pavadinimas="procentų"/> <XSL:pasirinkti> <XSL:kada bandymas="formatas-numeris($procentų, '#,##0%;-#,##0%')= 'NaN'">0%</XSL:kada> <XSL:kitaip> <XSL:vertė Pasirinkite="formatas-numeris($procentų, '#,##0%;-#,##0%')" /> </XSL:kitaip> </XSL:pasirinkti> </XSL:šablonas> </XSL:stilių>

Rezultatai:

XSL iš viršaus generuoja Šis grafikas:

vaizdas

Detalizuoti iki pagrindžiantys duomenys paspaudę ant būsenos kodas yra:

vaizdas

Pabaigos mintys:

Tai gali būti apibendrintas?

Aš myliu šią diagramų sudarymo koncepciją, bet man nepatinka tai, kad aš turiu eiti ir padaryti tiek daug rankų-kodavimo. Aš daviau mažai apgalvotos ar jis gali būti apibendrintas ir aš optimistiškai, bet aš taip pat mažai bijo, kad gali būti plytų siena kažkur palei kelią, kad negali pasiūlyti bet apeiti. Jei kas nors turi keletą idėjų apie tai, Prašome būti pažymėta komentarus arba rašykite man.

Vertikalus grafikai:

Tai yra horizontalioje histogramoje. Tai tikrai įmanoma sukurti vertikali grafikas. Mes tiesiog reikia pakeisti HTML. Norėčiau pradėti taip pat: Sukurti HTML pateikimas vertikalus histograma ir tada suprasti, kaip gauti, kad per XSL. Jei kas nors yra suinteresuotas, kad, Aš galėtų būti įsitikinęs, kad jį išbandyti ir dirbti iš the kinks. Jei kas nors turi jau padaryta, kad, Praneškite man ir aš mielai pateiksiu nuorodą į jūsų tinklaraštį 🙂

Manau, kad vertikali grafikas uždavinys kad etiketės grafikui sudaryti yra kur kas sunkiau valdyti, bet tikrai ne neįmanoma.

Lauko pavadinimas Gotcha:

Yra ne mažiau kaip du dalykai atkreipti dėmesį, su jūsų laukų pavadinimus.

Pirmosios, lauko pavadinimas su vietos turi būti pakeistas į XSL. Tai tikriausiai bus problema čia:

        <XSL:kintamasis vardas, pavadinimas="totalProposed" 
Pasirinkite="skaičius(/dsQueryResponse/eilučių/eilučių[normalizuoti vietos(@Status) = "Siūlomi"])" />

Jei būseną"" stulpelyje iš tikrųjų pavadintas "būsenos kodas" tada jums reikia nuoroda kaip "Status_x0020_Code":

   <XSL:kintamasis vardas, pavadinimas="totalProposed" 
Pasirinkite="skaičius(/dsQueryResponse/eilučių/eilučių[normalizuoti vietos(@Status_x0020_Code) = "Siūlomi"])" />

Antrojo, ir aš esu šiek tiek neaiškus šiuo, bet jūs taip pat turite būti perspėjimas dėl lauko pavadinimas keičiasi. Jei pavadinimą savo srityje "būsenos kodas" ir vėliau, pervardykite jį į "Titas būsena", "vidaus pavadinimas" nekeičia. Vidaus pavadinimas bus "būsenos kodas" ir turi būti nurodyti kaip "Status_x0020_Code". "Kitos lėšos" nuorodos gali padėti diagnozuoti ir taisyti tokios problemos.

Apie šios spalvos:

Mane pasirinko "raudona" nes tai malonus man metu. Būtų baisi parodyti skirtingų spalvų būtų ne tik vizualiai Aprašymas skaičiaus, bet taip pat teikti naudinga KPI. Pvz., jei procentinė dalis "užstrigo" AFE 's > 10% Tada parodyti jį raudona, kitaip parodyti jį juoda. Naudoti <XSL:pasirinkti> Norėdami tai atlikti.

Kitų išteklių:

Laimingas transformuojant!

<pabaigos />

Prenumeruoti savo dienoraštį!

Pateikti OM duomenis naudojant pasirinktinį sąrašą (arba, Dar kitas OM duomenų Displayor [kaip YACC, bet skirtingi])

Šiandien, Aš praleido keletą valandų stebėjimo nustatyta priežastis už pranešimą "jūsų įvestas stulpelio pavadinimas jau naudojamas arba rezervuotas. Pasirinkite kitą pavadinimą."

Atitinkamų stulpelių galėtų būti sukurtos, panaikinti ir iš naujo sukurta kita aplinka, tai aš žinojau, tai buvo ne rezervuotas. Tačiau, Aš tiesiog negalėjo rasti stulpelio bet kur per standartinę SharePoint vartotojo sąsają bet kurioje vietoje, svetainių rinkinio.

I posted MSDN forumai čia ir į nesutramdomas Andrew Woodward priminλ man kryptimi, objekto modelio duomenimis.

I vyko į codeplex rasti kai kurių įrankių, kurie padėtų man kolegų į OM duomenimis ir padėti man rasti problemų.

Bandžiau keletą įrankių ir jie buvo labai kietas ir įdomus, bet galų gale, UI nebuvo pakankamai gera, mano tikslas. Aš ne kritikuoti juos bet kokiu būdu, bet aiškiai įrankis-kūrėjai neturėjo mano problema į tai, kai jie sukūrė savo UI :). Dauguma žmonių, atrodo, reikia investuoti nemažai laiko ir pastangų kuriant darbo vietos / kliento programų, kurios medžio vaizdais, Dešiniuoju pelės mygtuku spustelėkite kontekstinio meniu ir tt. Tai yra gražus ir visi, bet tai daug darbo sukurti top-of-the-line vartotojo sąsają, kuri yra taip pat labai lanksti.

Man tikrai reikia šią problemą išspręsti. Jis įvyko man, jei aš galėčiau gauti visų svetainės stulpelių rinkinio į pasirinktinį sąrašą, Aš galėtų filtruoti, rūšiuoti ir sukurti nuomonei, kad padėtų man ieškoti šio tariamai esamo stulpelio (jas, BTW). Aš nuėjau į priekį ir padarė, ir valandą ar dvi vėliau, buvo visi mano svetainės stulpeliai įkelta į pasirinktinį sąrašą su grupės, rūšiavimas ir kt. Aš Radau atsakymą penkių minučių vėliau.

Jei aš sėkmingai perimti pasaulyje, Manau, aš bus dekretas, kad visas SharePoint priemones teikėjų rimtai atsižvelgti į dangų savo objekto modelio duomenų pasirinktinį sąrašą. Tokiu būdu, Aš turiu teisę Jei norite ieškoti bet taip noriu (apribojimų, žinoma, iš standartinių sharepoint funkcijas).