Pārskats un mērķi
No kastes, SŪNA’ Satura vaicājuma Web daļu (CQWP) tās rezultāti parāda saraksta formātā, līdzīgi kā meklēšanas rezultāti. Tas ir arī iespējamos rezultātus attēlot režģa formātā (ti. HTML tabulas formātā). Režģa formāti ir labāk dažos apstākļos. Kā sasniegt šajā sakarā, šajā rakstā es aprakstīt.
Biznesa scenāriju
Ir strādājuši ar klientu par uzņēmuma MOSS izvēršana. Mēs esam izstrādājuši savu taksonomiju, tāda, ka projektu hierarhijā pirmās klases pilsoņi un ir savas augstākā līmeņa vietnes. Projektu vadītāji uztur vienīgo sarakstu projekta kopsavilkuma informācija, piemēram, virsrakstu, Budžets, paredzamo izpildes datumu, Atlikušie budžeta un citas kopsavilkuma tipa laukiem. Ar "Vienīgajos" Es domāju, pielāgots SharePoint saraksts garantē satur tikai vienu vienumu. Vienkāršoti, tas izskatās šādi:
Tehniskā pieeja ir daudz tādas pašas, kā aprakstīts šeit (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP XSL transformāciju izmanto, lai ģenerētu HTML pārlūku, lai atveidotu.
Es vienmēr iztēloties rezultāts pirms iegremdēšanās XSL, jo XSL ir murgs. Te ir mans vēlamais rezultāts:
HTML, piemēram, tas rada, kā rezultātā:
<HTML> <organizācija> <centrs> <tabula apmale= 1> <!-- Uzlīmes-> <TR BGColor= blue> <TD><fontu krāsu= white><b>Projekta nosaukums</b></fontu></TD> <TD Līdzināt= pa labi><fontu krāsu= white><b>Pabeigtu datumu</b></fontu></TD> <TD Līdzināt= pa labi><fontu krāsu= white><b>Budžets</b></fontu></TD> <TD Līdzināt= pa labi><fontu krāsu= white><b>Faktisko izdevumu</b></fontu></TD> <TD><fontu krāsu= white><b>Vispārējo statusu</b></fontu></TD> </TR> <TR> <TD>Vadu datorklase.</TD> <TD Līdzināt= pa labi>02/01/08</TD> <TD Līdzināt= pa labi>22,500.00</TD> <TD Līdzināt= pa labi>19,000.00</TD> <TD>Notiek</TD> </TR> <TR> <TD>Noteikums serverus SQL Upgrade</TD> <TD Līdzināt= pa labi>04/01/08</TD> <TD Līdzināt= pa labi>7,500.00</TD> <TD Līdzināt= pa labi>0.00</TD> <TD>Plānots</TD> </TR> </tabula> </centrs> </organizācija> </HTML> |
Pieeja
Izpildiet šos norādījumus, lai izveidotu režģi:
- Noteikt tīkla sastāvdaļas (rindas/kolonnas).
- Noteikt un izveidot nepieciešamo vietnes kolonnām.
- Izveidot vietnes apakš projektiem un Vienīgajos saraksti.
- Lai web lapai pievienotu CQWP un konfigurēt tā, lai meklētu savus sarakstus.
- Modificēt XML CQWP savākt papildu kolonnas.
- Modificēt, lai XSL ģenerētu tabula.
Es esmu gatavojas koncentrēties uz numuru seši. Skaitļi pa četriem ir taisni uz priekšu un kaut ko, kas jau ir izdarījis jebkurš lietotājs, CQWP. Numuru pieci ir labi dokumentēta, citi, ieskaitot šo izsmeļošs ekrāna nošauti kravu raksts no MSDN šeit (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) un Heather Solomona blog šeit (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).
Uzgriežņus un bultskrūves
Uzsākt un īstenot soļus viens līdz pieci saskaņā ar MSDN dokumentācijai un Heather Solomona pants.
Šajā brīdī, esat pievienojis savu CQWP lapas un jums ir jūsu <CommonViewFields> konfigurēts pēc nepieciešamības.
Šādas parastās darbības, Es varu saņemt šo starpposma rezultāti:
1. Izveidot satura tipu, templatized pielāgota saraksta satura tipam un divas vietas. Šeit ir satura tips:
Šeit ir vietnes struktūra:
2. Pievienot CQWP pēc tam, kad manu projektu apakšvietnes un Vienīgajos projekta kopsavilkuma sarakstu izveidošanu:
3. Pievienot visu papildu informāciju, ko vēlaties, izmantojot <CommonViewFields>:
<īpašuma vārds="CommonViewFields" tips="virkne">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</īpašuma>
Ņemiet vērā, ka man vajadzēja parūpēties par rekvizītu laukiem vienā rindā vai nedarbosies (CQWP taču man pateiktu, ka vaicājums neatgrieza nekādus vienumus).
4. Šajā brīdī, mēs esam gatavi iet tālāk MSDN raksts un uzsist pa Heather Solomona pants. Sekot viņas darbības sākuma solis tuvāk #5 lai izveidotu pielāgotu / unghosted versija ItemStyle.xsl. I sekot Hetere ir konsultācijas, līdz ar soli 11 un saņemt šos starpposma rezultāti:
4.1: Šādi nosaukt savu XSL veidnes:
<XSL:veidnes nosaukums = "Grid" atbilstu = "rindu[@Style = "Grid"]" Mode = "itemstyle">
Es arī nedaudz mainīt viņu ieteica <XSL:par katru …> pievienojot <br /> tagam, lai nodrošinātu tīrāku listing:
<XSL:par katru atlasiet="@*"> P:<XSL:vērtību no atlasiet="vārds()" /><br/> </XSL:par katru>
4.2: Modificēt web daļu, dodieties uz izskatu un izvēlēties manu "Grid" stils:
Izmaiņas tiek ieviestas, un šeit ir rezultāts:
Mēs varam redzēt no iepriekš mēs gribam laukus (Projekta nosaukums, izdevumi, statuss, uc) ir pieejamas mums izmantot, kad mēs izstarot HTML. Ne tikai to, ka, bet mēs redzam vārdus, kas ir atsauces slejās XSL. Piemēram, mēs projekta statuss atsaucē kā "Project_x005F_x0020_Name".
Šajā brīdī, mums atkāpties no Hetere ir blog un no šīm milžu pleciem, Es varu pievienot savu mazumiņu.
ContentQueryMain.xsl
PIEZĪME: Veicot izmaiņas gan ContentQueryMain.xsl, kā arī ItemStyle.xsl, jums nepieciešams pārbaudīt šos failus atpakaļ pirms jūs redzat jūsu izmaiņu efektu.
Grid veidošanas nolūkos, SŪNA izmanto divas dažādas XSL failos esošo rezultātu mēs redzam no CQWP. Lai ģenerētu izvades iepriekšējo bits, mēs mainīt ItemStyle.xsl. MOSS, faktiski izmanto citu XSL failu, ContentQueryMain.xsl, lai kopā ar ItemStyle.xsl, lai radītu savu HTML. Kā norāda tās nosaukums, ContentQueryMain.xsl ir galvenais"" XSL, kas kontrolē kopējo plūsmu tulkošanas. Tas atkārtojas pa visu atrasto vienumu un nodod tos pa vienam, lai veidnes ItemStyle.xsl. Mēs ņemšu mainīt ItemStyle.xsl radīt atvērtu <tabula> pirms izstaro pirmās rindas datus un beigu tagu <tabula> tagu pēc emisijas pēdējās rindas. Lai to paveiktu, ContentQueryMain.xsl modificēta divi parametri nodot mūsu "režģis" veidnes ItemStyle.xsl, "pēdējā rindā" un "pašreizējā rinda". ItemStyle.xsl izmanto tie nosacīti izdala vajadzīgos tagus.
Izmantojot Heather Solomona tehnika, mēs atrast ContentQueryMain.xsl. Tā atrodas tajā pašā vietā kā ItemStyle.xsl. Vajadzētu palīdzēt šajā ekrānuzņēmums:
Mums ir nepieciešams veikt šādas izmaiņas:
- Xsl veidnes modificēšana, "CallItemTemplate" faktiski, kas izsauc mūsu Grid veidnes ItemStyle.xsl. Pāriesim divi parametri Grid veidni tā, ka tas būs dati tai ir nosacīti ģenerēt atvēršana un aizvēršana <tabula> Tags.
- Modificēt citā bitu ContentQueryMain.xsl, kas aicina "CallItemTemplate" to varētu nodot "LastRow" parametrs tāpēc, ka LastRow var nodot mūsu Grid veidni.
Atrastu veidni ar nosaukumu "OuterTemplate.CallItemTemplate" ar virkni identificēta:
<XSL:Veidne: vārds="OuterTemplate.CallItemTemplate">
Šādi aizvietot visu veidni:
<XSL:Veidne: vārds="OuterTemplate.CallItemTemplate"> <XSL:param vārds="CurPosition" /> <!-- Pievienot "LastRow" parametrs. Mēs tikai izmantot to elementu stilu caurlaide, esot "Grid". --> <XSL:param vārds="LastRow" /> <XSL:izvēlieties> <XSL:kad tests="@Style = 'NewsRollUpItem'"> <XSL:lietot veidnes atlasiet="." režīms="itemstyle"> <XSL:ar param vārds="EditMode" atlasiet="$cbq_iseditmode" /> </XSL:lietot veidnes> </XSL:kad> <XSL:kad tests="@Style = 'NewsBigItem'"> <XSL:lietot veidnes atlasiet="." režīms="itemstyle"> <XSL:ar param vārds="CurPos" atlasiet="$CurPosition" /> </XSL:lietot veidnes> </XSL:kad> <XSL:kad tests="@Style = 'NewsCategoryItem'"> <XSL:lietot veidnes atlasiet="." režīms="itemstyle"> <XSL:ar param vārds="CurPos" atlasiet="$CurPosition" /> </XSL:lietot veidnes> </XSL:kad> <!-- Pašreizējo stāvokli un lastrow nodot Grid itemstyle.xsl veidni. ItemStyle.xsl, kas izmantos emitēt atklātā un aizvēršana <tabula> Tags. --> <XSL:kad tests="@Style = "Grid""> <XSL:lietot veidnes atlasiet="." režīms="itemstyle"> <XSL:ar param vārds="CurPos" atlasiet="$CurPosition" /> <XSL:ar param vārds="Pēdējais" atlasiet="$LastRow" /> </XSL:lietot veidnes> </XSL:kad> <XSL:Pretējā gadījumā> <XSL:lietot veidnes atlasiet="." režīms="itemstyle"> </XSL:lietot veidnes> </XSL:Pretējā gadījumā> </XSL:izvēlieties> </XSL:Veidne:> |
Piezīmes apraksta izmaiņas mērķis.
protams, "OuterTemplate.CallItemTemplate" sevi sauc no citas veidnes. Atrodiet šo veidni, meklējot šo teksta virkni:
<XSL:Veidne: vārds="OuterTemplate.Body">
Ritinātu instrukcijas OuterTemplate.Body un ievietojiet parametru LastRow, šādi (parādītas kā komentāri kursīvā):
<XSL:zvanu veidni vārds="OuterTemplate.CallItemTemplate"> <XSL:ar param vārds="CurPosition" atlasiet="$CurPosition" /> <!-- LastRow parametra ievietošana. --> <XSL:ar param vārds="LastRow" atlasiet="$LastRow"/> </XSL:zvanu veidni>
Pēc visa šī, mums beidzot ir iestatīts pareizi, tāpēc ka mūsu ItemStyle.xsl var izstarot lietas <tabula> tagi ir īstajā vietā.
ItemStyle.Xsl
PIEZĪME: Atkal, Pārbaudiet ItemStyle.xsl pēc tam, kad veicat jebkādas izmaiņas, lai varētu redzēt šo izmaiņu ietekme.
Mums te ir divi uzdevumi:
- Aizstāt visu režģa veidni. Jūs varat kopēt/ielīmēt no apakšas.
- Pievienot dažas mumbo gigants ārpus veidnes definīcija, kas ļauj "formatcurrency" veidni, lai tā strādātu. (Jūs varat pateikt, ka man ir niecīga rokturi XSL).
Pirmais, ItemStyle.xsl augšdaļā, pievienotu šo līniju:
<!-- Dažas mumbo gigants, kas dod mums iespēju parādīt ASV. valūta. --> <XSL:decimāldaļu formātā vārds="personāls" ciparu="D" /> <XSL:Veidne: vārds="Noklusējuma" atbilst="*" režīms="itemstyle">
Ņemiet vērā, ka es pievieno tieši pirms <XSL:veidnes nosaukums = "Default" …> definīcijas.
Nākamo, doties atpakaļ uz mūsu Grid veidni. Aizstāt visu režģa veidni ar kodu zemāk. Tas ir pamatīgi komentēja, bet Nevilcinieties nosūtīt pa e-pastu man vai atstāt komentārus par manu blogu, ja jums ir jautājumi.
<XSL:Veidne: vārds="Režģis" atbilst="Rindu[@Style = "Grid"]" režīms="itemstyle"> <!-- ContentMain.xsl iet CurPos un pēdējā. Mēs izmantot šo iespēju nosacīti izdala atvērt un aizvērt <tabula> Tags. --> <XSL:param vārds="CurPos" /> <XSL:param vārds="Pēdējais" /> <!-- Šie mainīgie ir nepārveidota no standarta ItemStyle.xsl --> <XSL:mainīgais vārds="SafeImageUrl"> <XSL:zvanu veidni vārds="OuterTemplate.GetSafeStaticUrl"> <XSL:ar param vārds="UrlColumnName" atlasiet="'ImageUrl'"/> </XSL:zvanu veidni> </XSL:mainīgais> <XSL:mainīgais vārds="SafeLinkUrl"> <XSL:zvanu veidni vārds="OuterTemplate.GetSafeLink"> <XSL:ar param vārds="UrlColumnName" atlasiet="'LinkUrl'"/> </XSL:zvanu veidni> </XSL:mainīgais> <XSL:mainīgais vārds="DisplayTitle"> <XSL:zvanu veidni vārds="OuterTemplate.GetTitle"> <XSL:ar param vārds="Nosaukums" atlasiet="@Title"/> <XSL:ar param vārds="UrlColumnName" atlasiet="'LinkUrl'"/> </XSL:zvanu veidni> </XSL:mainīgais> <XSL:mainīgais vārds="LinkTarget"> <XSL:Ja tests="@OpenInNewWindow = "True"" >_ blank</XSL:Ja> </XSL:mainīgais> <!-- Šeit mēs definētu mainīgo, "tableStart". Tas satur HTML, ko mēs izmantojam, lai noteiktu sākuma tabulā, kā arī kolonnu etiķetēm. Ņemiet vērā, ka, ja CurPos = 1, tā ietver HTML tagu CDATA. Pretējā gadījumā, tā būs tukša. TableStart vērtība ir emited, katru reizi, kad tiek saukts ItemStyle, izmantojot ContentQueryMain.xsl. --> <XSL:mainīgais vārds="tableStart"> <XSL:Ja tests="$CurPos = 1"> <![CDATA[ <tabulas apmales = 1> <TR bgcolor = "blue"> <TD><fonta krāsa = "white"><b>Projekta nosaukums</b></fontu></TD> <Līdzināt TD = "pa labi"><fonta krāsa = "white"><b>Pabeigtu datumu</b></fontu></TD> <Līdzināt TD = "pa labi"><fonta krāsa = "white"><b>Budžets</b></fontu></TD> <Līdzināt TD = "pa labi"><fonta krāsa = "white"><b>Faktisko izdevumu</b></fontu></TD> <TD><fonta krāsa = "white"><b>Vispārējo statusu</b></fontu></TD> </TR> ]]> </XSL:Ja> </XSL:mainīgais> <!-- Citu mainīgo, tableEnd vienkārši definē noslēguma tabulas tagu. Ar tableStart, tas vienmēr ir emited. Tas ir iemesls, kāpēc tās vērtība tiek piešķirta nosacīti pamatojas uz to, vai mēs esam nodoti pēdējā rindā, ContentQueryMain.xsl. --> <XSL:mainīgais vārds="tableEnd"> <XSL:Ja tests="$CurPos = $Last"> <![CDATA[ </tabula> ]]> </XSL:Ja> </XSL:mainīgais> <!-- Vienmēr izstaro tableStart saturs. Ja tas nav pirmajā rindā mums garām ContentQueryMain.xsl, tad mēs zinām, ka tās vērtība būs tukšs. Atspējot izvades izbēgt, jo, kad tas tableStart nav tukša, tā ietver faktisko HTML, ka mēs vēlamies, lai sniegtie pārlūku. Ja mums nav pateikt XSL parser, lai atspējotu izvades bēg, tas radīs sīkumi, piemēram "<tabula>" nevis par"<tabula>". --> <XSL:vērtību no atlasiet="$tableStart" atspējot izvades bēg="jā"/> <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:vērtību no atlasiet="@Project_x005F_x0020_Name"/> </TD> <TD Līdzināt="tiesības"> <XSL:vērtību no atlasiet="@Project_x005F_x0020_End_x005F_x0020_Date"/> </TD> <TD Līdzināt="tiesības"> <XSL:zvanu veidni vārds="FormatCurrency"> <XSL:ar param vārds="vērtība" |
Tas ir neticami noderīgi. paldies!
Aah… tas bija, jo savādāk nosauca savu saraksta stilu, un didn't saprast, ka ContentQueryMain.xsl tas pārbauda "stils":
<XSL:kad test="@Style='NameOfMyStyle'">
Ar to pārdēvēt tā strādāja. 🙂
Gandrīz tā strādāja par mani: Man izdodas izvades </tabula> pareizi beigu tagu, bet trūkst sākuma tagu. Šķiet, ka testa = "$CurPos = 1" neatgriež patieso. Bet kāpēc?
Great pastu. Paul ir darījuši visu iepriekš. Man ir vaicājums, kā es varu sasniegt "kopējā faktiskā Expences sum" vai divu kolonnu vērtību summu.
Jūs esat darījuši jebkurā darbā ar ContentQueryMain un ItemStyle pielāgotus xsl failu izveide? Iemesla dēļ es lūdzu ir, ka es negribu raizēties par manu pielāgoti stili tiek pārrakstīti un aizstāti ar plāksteriem vai modernizāciju. Vai jums ir piemēri? Esmu mēģinājis padarīt ContentQueryMain.xsl identiska kopija un augšupielādējot jaunu pielāgotu kopiju stilu bibliotēku. Izvietojot norādi uz xsl failu. webpart MainXslLink īpašums, Es varu saņemt 401 nav atļauts. Pielāgotos xsl fails ir publicētā versija, un ikvienam ir lasīšanas piekļuve.
Fantastic pastu thanks! Cīnās ar šo tagad pēdējās dienās.
čau, tas bija patiešām noderīga grāmatošanas. Man tas viss darba, un arī īstenoti Mike Brown mainīt, tāpēc tā sagrupē
rezultātus, neatkarīgi no tabulas iekšpusē, es varu izvēlēties kā grupēt pēc parametru CQWB īpašības.
Man lika virsraksts saiti arī, Tātad tas darbojas labi. Man ir vēl viena problēma, lai gan. Esmu sagrupējot rezultātus, vietas nosaukums. Tabulas iekšpusē, tā sagrupē tos labi, un tas izskatās lieliski, bet tas joprojām ir visas grupas izdrukāšana
nosaukums(manā gadījumā vietu nosaukumus) virs tabulas. Vai kāds zina, kā tikt vaļā no šiem?
paldies,
Greg
Jauks raksts. Man izdevās sniegt mana galda izskatu noklusējuma Sharepoint saraksti, analizējot saraksta avota kods. Šeit ir nepieciešama, lai izvietotu ItemStyle galvenais HTML bloki:
<TABULAS platums = "100 %" Class = "ms-listviewtable" u = 0 cellspacing = 0 cellpadding = 1 dir = "None">
<!–GALVENES–>
<TR class = "ms-viewheadertr" VALIGN = TOP>
<TH nowrap jomu = "col" Class = "ms-vh2"><div style = "width:100%;pozīcija:relatīvās;kreisajā pusē:0;augšā:0;">
<TABULAS stils = "width:100%;" CtxNum = "1" augstums = "100 %" cellspacing = 1 cellpadding = 0 class = "ms-unselectedtitle">
<TR>
<TD width = "100 %" Class = "ms vb" nowrap>
TEXTE du titre SSI
</TD>
<TD style = "pozīciju:absolūtā;">
</TD>
</TR>
</TABULA></DIV>
</TH>
<!–Atkārtojiet šīs darbības visām galvenes šūnām–>
</TR>
<!– Tabulas dati –>
<TR class = "">
<!–Datu kolonnu, Pāvila kodu izmanto pirmais ar hipersaiti –>
<TD Class = "ms-vb2">Datus šeit</TD>
<!–Tukša kolonna–>
<TD Class = "ms-vb2">
<aptver dir = None></laiduma><
/TD>
<!–Datuma kolonna–>
<TD Class = "ms-vb2">
<NOBR>11/12/2008</NOBR>
</TD>
</TR>
<!–***Alternatīvs rindas – Izmantojiet jauno XSL mainīgo, bet to ievietos alternatīvo klases, pamatojoties uz pašreizējo rindu modulo 2–>
<TR class = "ms mijas">
…
</TR>
</TABULA>
Thatz tieši es biju meklē...Jūs rock cilvēks...Lai dzīvo...Mīlu jūs post..
<XSL:lietot veidnes atlasiet = "." Mode = "itemstyle">
<XSL:ar param name = "CurPos" atlasiet "$CurPosition =" />
<XSL:ar param name = "pēdējā" atlasiet "$LastRow =" />
<XSL:ar param name = "StartNewGroup" SELECT="@__begingroup" />
</XSL:kad>
<XSL:kad tests = "$StartNewGroup ="True"">
<TR>
<TD >
<XSL:zvanu veidni name="OuterTemplate.GetGroupName">
<XSL:ar param name = "GroupName" SELECT="@*[vārds()= $Group]"/>
<XSL:ar param name = "GroupType" izvēlieties = "$GroupType" />
</XSL:zvanu veidni>
</TD>
</TR>
</XSL:kad>
<XSL:Pretējā gadījumā>
</XSL:Pretējā gadījumā>
</XSL:izvēlieties>
Hi Paul,
Ja strādājat ar xml/xsl un satura vaicājuma web daļa, jūs esat atraduši jebkuru labu veidu, kā jūsu xslt formātā? Mēģina veikt izmaiņas un testa dizains ir pierādījis tiesības sāpes * * tikai, izmantojot teksta redaktoru…
Visu to labāko
(piem.. https://myweb.com/Marketing/images/icn-order.gif, )
Man vajadzētu izmantot attēlu vai attēlu CommonViewFields lauka tipā? (piem.. InternalColumnName, Attēlu)
Jūsu sūtījums ir tieši tas, ko es biju meklē. Tomēr, Es nevaru saņemt to darbu.
Man ir dokumenti, kas tiek glabāti dažādās doc. bibliotēkās, bet klasificētas, izmantojot pielāgotās kategorijas kolonnu (izvēle: 1 vai 2. Es gribu izmantot CQWP, lai parādītu šos dokumentus, kuru pamatā ir savas klases.
Man bija iespēja pievienot CQWP, eksportēt uz VPD, konfigurēt, itemStyle.xls parādīt pielāgoto fileds saraksta skatā. Tomēr, Es varētu nevar veiksmīgi īstenot, ko jūs raksturotu šeit.
Šie ir kolonnas vēlaties, lai pierādītu, mana CQWP:
Faila tips (Parādīt ikonu)
Faila nosaukums
Pēdējās modificēšanas datums
Kurš modificēja
Paņemts
Pārbaudīt komentāri
Man šobrīd ir rezultāts ir saraksta formātā. Kā es varu mainīt tā talble formātā.
paldies.
Saji
Atvainojamies par missspelling uz mana vārda nav pārliecināts, kur ” nāca no.