Riešenia bez kódu: Zobrazenie dní, pretože poslednej zmeny položky zoznamu lokality SharePoint

Riešenia bez kódu: Zobrazenie dní, pretože poslednej zmeny položky zoznamu lokality SharePoint

Poznámka:  Radi by sme vám čo najrýchlejšie poskytovali najaktuálnejší obsah Pomocníka vo vašom vlastnom jazyku. Táto stránka bola preložená automaticky a môže obsahovať gramatické chyby alebo nepresnosti. Naším cieľom je, aby bol tento obsah pre vás užitočný. Dali by ste nám v dolnej časti tejto stránky vedieť, či boli pre vás tieto informácie užitočné? Tu nájdete anglický článok pre jednoduchú referenciu.

9/20/2011 3:01 PM

Justin Joyce, LANtek

Poznámka: Tento článok je súčasťou kolekcie príspevkov zo štyroch rokoch získať bod blogu SharePoint koncových používateľov.

Prehľad: Vlastné splatnosť zostavy s žiadny kód

Jednou z často požadované funkčných kusov lokality SharePoint je výkaz splatnosti pre úlohy alebo položky zoznamu. Inými slovami, koľko dní a mesiacov, má to od poslednej položky v tomto zozname?

V oblasti zdá byť veľmi jednoduché žiadosti. Po všetkých máme dátumov pre položky sú vytvorené a upravené, máme možnosť ukladať vlastné dátumy, kedy určité zmeny položiek sa uskutočňuje prostredníctvom príjemcovia udalostí. Môžeme mať vypočítaných stĺpcoch, kde by sme mohli zahrnúť podobných vzorce na prácu s naše informácie. Takto vyzerá celkom vpred návrh. Vyberte pole dátumu, vytvoriť vypočítaný stĺpec, a potom vzorec niečo urobiť smere [DateField]-[dnes]. Ach, nie tak rýchlo, aj keď! Ako každému, kto sa pokúsil túto úlohu "jednoduché" vie, pokúša použiť niečo ako [dnes] vo vypočítanom stĺpci spôsobuje problémy. Vloženie [dnes] do svojho vypočítavaného stĺpca vzorca vám niečo takéto chybové hlásenie:

Chybové hlásenie

Prečo je to? Dobre, je to robiť s spôsob výpočtu sú vypočítané stĺpce.

Si ako príklad jednoduchého vzorca:

= IF ( [Stĺpec1] < = [Stĺpec2], "OK", "Nie OK")

To, že je, že ak Stĺpec1 je menšia alebo rovná Stĺpec2, potom zobrazte tlačidlo OK, v opačnom prípade zobrazenie nie je to OK. Toto je dosť typické základného vzorca pre vypočítavaný stĺpec, a to robí základné predpoklade o položky zoznamu, ktorá obsahuje tieto stĺpce: hodnoty pre Stĺpec1 a Stĺpec2 nikdy nebude môcť zmeniť bez toho, aby sa udalosť aktualizácie v položke zoznamu.

To je v poriadku, vypočítané stĺpce prepočíta iba pri zozname je aktualizovaný (alebo vytvorený) keďže sa predpokladá, že informácie sú výpočtu sú obsiahnuté priamo do položky. Týmto krokom sa vytvorí problém pri pokúšate sa použiť niečo, čo sa zmení nezávisle od položky polia, ako je dnešný dátum.

Teraz môžem nebol počas schôdze, kde sa rozhodli, že to je tak, že vypočítané stĺpce by však fungovať, ak som sa vytvoriť kvalifikované odhad by sa predpokladá, že fungujú týmto spôsobom výkon. Predstavte si, že ak by ste mali zoznam niekoľko tisíc položiek, z ktorých každá obsahuje vypočítavaný stĺpec, ktorý je potrebné aktualizácie "live". To by to, že nejaký mechanizmus, možno časovača, by sa inštaláciami prostredníctvom každú položku, ktorá obsahuje danú vypočítaného stĺpca každý tak často a aktualizovať jeho hodnotu. To môže veľmi zdanenie z hľadiska výkonu pretože s väčšie nasadenie môže byť táto úloha neustále spustený a zmene vecí. To je len môj odhad, ale to robí trochu zmysel, ak si myslíte, že o tom.

Existuje niekoľko návrhov, podobné riešenia okolo plávajúce tam, ktoré zahŕňajú podvodné SharePointu v prijatím dnes hodnotu najskôr vytvoriť stĺpec s názvom dnes, a potom ho pridáte do vzorca, potom ho odstráni. Toto sú všetko v poriadku, ale pamätajte si, čo sa hovorí o aktualizácii vypočítané stĺpce. Táto hodnota sa zmení iba pri aktualizácia položky, čo znamená, že vaše hodnoty budú čoskoro nesprávne, najmä v prípade deň výpočtu.

Videli ste tiež, inými používateľmi pomocou šikovný JavaScript písať hodnoty na stránku. To bude fungovať aj, ale som skoro kategoricky proti klienta skript, keď sa dá vyhnúť.

Vykonávanie:

Čo sa stane? Vypočítavané stĺpce sú vylúčené pre nazýva "nestále" funkcie, ako je dnešný dátum. Je možné, že sme môže vytvoriť vlastný kód, ktorý postarať o to pre nás ako vypočítaný stĺpec, časovača alebo plánované proces so mnou a aktualizovať každej položky, ktoré potrebuje tohto výpočtu sa. Ktoré nám prináša späť na problém výkonu môžem uvedené v poslednom odseku hoci a navyše je krehký riešenie, ktoré by bolo veľmi špecifické pre lokality alebo zoznamu/stĺpec v. Nad tieto dve obavy, budete musieť tiež prejsť nájsť hlúpy človek, ako je napríklad ja, ktorá vie kód a presvedčiť ho vytvoriť toto riešenie pre vás. Ale jednoduchší spôsob, ako je tu!

Ak máte práva na vytvorenie polí a úprava stránok na lokalite a mať trochu znalosti o XSLT a vytvorenie zobrazení, môžete dať dohromady XSL šablóny, ktoré môžu byť zahrnuté v zobrazení zoznamu a verne vypočíta hodnotu vašej zakaždým, keď sa stránka. Tento scenár sa odstránia naše obavy nad výkon a nevyžaduje vlastného kódu a nasadené pomocou riešení.

Ideálne. Tak, ako je to urobiť?

  1. Vytvorte alebo vyberte pole, ktoré bude slúžiť ako náš zdroj. Musí byť typu dátum.

  2. Vytvoriť naše pole, ktoré bude slúžiť ako zástupný symbol pre hodnota sa vypočíta.

  3. Jedna z týchto polí k obsahu zadajte a pridať daný typ obsahu do zoznamu pridať.

  4. Vytvorenie zobrazenia tohto zoznamu obsahujúcu zdroj a zástupný symbol stĺpce.

  5. Nahratie šablóny XSL do knižnice štýlov.

  6. Nastavte vlastnosť "Prepojenie XSL" pre webovej časti Zobrazenie zoznamu prostredníctvom používateľského rozhrania.

  7. Úspech!

Poďme preskúmať prípad použitia príklad a prejsť implementácie. Našim zákazníkom chceli zobrazenia ich hlavného zoznamu, ktoré povie, ako dlho mal boli konkrétnu položku zoznamu úloh, na jeho stavu. Tento zoznam obsahuje vlastné lokality obsahu typ odvodená z typ položky a pridá do zoznamu. Už teraz príjemca udalosti, na mieste, ktorý zachytáva zakaždým, keď toto pole stavu v položke zoznamu bola zmene a uložení dátum na stĺpec s názvom "Dátum stavu". Toto vedenie nie je potrebné a je možné vykonať pomocou ľubovoľného poľa Dátum (je to tak stane to je naše implementácii, ale nebojte sa experimentovať). Minimum, budete potrebovať je zdroj pole Dátum a pole zástupného symbolu obsahovať výpočtu (viac o tomto v ďalšom odseku) sa pridajú do zoznamu, aj keď som odporúčame používať stĺpcov lokality a typy obsahu lokality v prípade, že chcete znova použiť toto riešenie v iných pl ACE na lokalite.

Takže máme náš zdroj dátum, ktorý je možné použiť v našej výpočtu dnešný dátum. Teraz môžeme vytvoriť vlastnú lokalitu stĺpec, ktorý chcete použiť ako kontajnera na našich vypočítanou hodnotou. V tomto prípade sa rozhodnete použiť vo vypočítanom stĺpci, pretože to nebude možné zmeniť na nový alebo úprava položky formulárov, ale môžu byť vybraté zobrazenie v zobrazeniach, pretože sme nechcete, aby používatelia zadaním ľubovoľné hodnoty v tomto stĺpci. Je možné mätúce o tom, prečo nie je je zobrazená v zobrazení, atď.

Teraz, keď máme naše stĺpec lokality, môžeme pridať našej typov obsahu, ktorý sa bude používať v zozname. Ďalej potrebujeme vytvoriť naše zobrazenie, ktoré bude neskôr prispôsobiť s naše XSLT. Skontrolujte, či ste vytvorili štandardné zobrazenie, ktoré obsahuje zdrojový stĺpec dátumov a váš nový vypočítavaný stĺpec, ktorý bude slúžiť ako zástupný symbol pre vypočítané hodnoty.

Teraz máme všetko na mieste, ktoré budeme požadovať, aby na podporu našich vlastných starnúcich zostavy. Všetko, čo zostáva vytvára naša XSL šablóny, nahrávanie do knižnice lokality štýl a prepojenie na našich zobrazenia zoznamu. Šablóna XSL budeme používať bude obsahovať niektoré bežné SharePoint generované značky na generovanie zobrazenia, ako je napríklad vlastné vlastné značky použité na prepísať niektoré časti tohto a výpočet našich požadovanú hodnotu pre nás.

Čo kreditnej prípade úveru je splatná, šablóny XSL na vykonávanie skutočné výpočtov, ktoré používam pre toto riešenie milostivo poskytli "swirch" na fórach MSDN:
http://social.msdn.microsoft.com/Forums/en-US/ sharepointcustomization/vlákna/aeda905b-9bc6-40c4-bd22-21306c5cb0d2 /

Stiahnutie šablóny so štýlmi XSL (aging.zip) mám dať spolu nájdete tu:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9! 104

Otvorenie to v svoj obľúbený textový editor, zobrazí sa množstvo normálneho značky SharePoint XSL na vykreslenie zobrazenia, ak ste zachovať posúvanie nadol riadok 357 uvidíte Štart vlastné šablóny, ktorý som pridal do značky, prvý z nich je "DateDiff" temp najneskoršie možné nasledujú "výpočet Marián-dňová" a "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status". Toto sú naše tri šablóny, ktoré urobí a zobrazenie našich výpočtov našich zobrazení. Ak budete používať iné pole názvov, ako boli zadané v tomto článku, musíte prejsť tieto šablóny a nahradiť všetky odkazy na iné názvy. Pamätajte, že tento budete chcieť použiť interný názov poľa Zobrazovaný názov.

Keď ste spokojní, šablóny je pripravená na prejdite, prejdite do knižnice štýlov a nahrajte ju v priečinku "XSL šablóny so štýlmi" a potom skopírujte prepojenie na súbor. Dovoľte nám jednoducho v ňom vykonať zmeny neskôr alebo pridať do rôznych častiach lokality, čo sme.

Potom prejdite do zoznamu a vyberte zobrazenie, ktoré ste vytvorili v tomto článku. "Akcie lokality" ponuky kliknite na "Upraviť stránku".

Príkaz Upraviť stránku v ponuke Akcie lokality

Vyhľadajte vašej webovej časti Zobrazenie zoznamu na stránke a otvorte ponuku kliknutím na malú šípku smerujúcu nadol smerom v pravom hornom rohu. V tejto ponuke vyberte položku "Upraviť webovú časť".

Príkaz Upraviť webovú časť v ponuke Webová časť

Otvorí sa ponuka webovej časti na pravej strane okna prehliadača.

Ponuka webovej časti

Kliknite na časť + pre "Rôzne" a vyhľadajte vlastnosť "Prepojenie XSL".

Vlastnosť prepojenia XSL v ponuke Webová časť

Vložiť prepojenie na súbor XSL v knižnici štýly, ktoré ste predtým skopírovali nadol (Toto môže byť relatívne alebo absolútny odkaz).

Prilepené prepojenie na súbor XSL

Kliknite na položku "OK" uložte zmeny a potom kliknite na tlačidlo "Zastaviť úpravy" na "Strana" pás s nástrojmi v hornej časti stránky.

Tlačidlo Zastaviť úpravy na karte Strana

Ak je všetko správne nakonfigurovaný teraz mali vidieť čísla v stĺpci "Dní s daným stavom".

Stĺpec dní s daným stavom zobrazujúci číslo

A napokon, tu je to, čo by to vyzeralo s niektorými testovanie údajov z rôznych dátumov:

Zostava s údajmi o splatnosti obsahujúca testovacie údaje

Súhrn:

Je to: dobre formátovaný, výkonné a lepšie tak, ako vytvoriť zostavu starnúcich v SharePointe. podpis aj s jednoduchú implementáciu bez kódu. To má pomerne niekoľko potenciálne aplikácie okrem toho použiť prípad sme preskúmať na tomto mieste. Iný bežný scenár pre tento typ zostavy sa pripojíte k zoznamu úloh tak, že môžete vidieť, ako dlho to bolo od úlohy bol vytvorený v skratke.

Tešte sa.

--Justin

Justin Joyce, LANtek

Komentáre

Kroky chýba
10/8/2012 3:51 AM
ok môžem vykonali kroky, ale musí byť niečo chýba - ako XSL vedieť dátum používať alebo ktoré polí na pridanie dní, pretože do? rád, keď sú zmeškané krokov.

Bez kódu súhlasil!
8/30/2012 12:12:00
Súhlasím - myslím to naozaj počíta ako "žiadny kód".
Zaujímavé je, že cez niektoré screwup SharePoint, mám pracovné vypočítaného stĺpca s použitím dnes... neviete, ako alebo prečo pretože nemôžem ho znova, ale je stále tam a práci.

Vzorec pre "Dní na stránke stav" vypočítavaný stĺpec?
5/2/2012 7:39 AM
Justin - čo je vzorec, ktorý ste použili pre svoj "Dní s daným stavom" vypočítaný stĺpec lokality (zástupný symbol stĺpec)? To bolo "dnes ="?

SharePoint 2007
12/2/2011 11:29 AM
momentálne môžem nie pokúšali SharePoint 2007, ak chcete použiť toto riešenie však hľadám k nemu. Bohužiaľ neexistuje žiadna vlastnosť XslLink objavili na webovú časť prostredníctvom používateľského rozhrania.

Veľký príspevok
11/30/2011 9:53 AM
Dobrý deň,
veľký príspevok.
používam SharePoint 2007.
nemám rôzne časti, ako je uvedené vyššie.
Máte kroky SP2007 konfigurácie?
Ďakujem.

Opätovné vytvorenie: Riešenia bez kódu: Zobrazenie dní, pretože poslednej položky zoznamu lokality SharePoint zmenil
10/11/2011 8:24 hodín
Hi Chris.
veľké nájsť!
budem na sa pozrieť na to, čo ste zverejnili hopefully neskôr dnes a zistiť, či môžem urobiť toto riešenie trochu výkonnejší.
som rád, že sa vám páči príspevok a som veľmi rád, že sa vám podarilo nájsť riešenie Európska dátum vo formáte. :)
-Justin

Riešenie pre formáty dátumu Európskej
10/11/2011 6:45 AM
Hi znova Justin,
pre informáciu, našiel riešenie problému, ktorý sa už bolo uvedené na tejto stránke.
https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

Európska formáty dátumu
10/7/2011 3:59 AM
Hi Justin,
Toto je naozaj dobré riešenie, vďaka a len také isté môžem strávili posledné dva dni hľadáte! Však mám trochu problém s ním a bol dúfal, že mi môže pomôcť.
som zmenil svoj kód mierne calcultate počet dní, kým sa niečo, čo sa stane, skôr ako vzhľadom na to, prepnutím premenné v poslednom riadku funkcia "DateDiff";

< xsl:value – vyberte = "$JulianToday - $JulianStartDate" >< / xsl:value-z >

však len som ho dostali na caclulate rozdiel správne polovicu času. Napríklad s týmto dátumom (formát dd/MM/rrrr);

30/12/2011

sa vypočíta správne, ale s týmto dátumom (rovnaký formát)

10/12/2011

sa vypočíta ako if, ak 10-Dec-2011 skôr než 12-Október 2011.
sa pokúsili jednoducho prepínanie pozície deň a mesiac hodnoty v premennej "JulianStartDate" také;

< xsl: názov s para = "Mesiac" select="substring(ddwrt:FormatDateTime(string($StartDate), 1033,"RRRRMMDD"); 7; 2)" / >
< xsl: názov s para = "Deň" vyberte = "podreťazec (ddwrt:FormatDateTime (reťazec ($ Počiatočný dátum), 1033 "RRRRMMDD"); 5; 2) "/ >

a opraviť tento problém s dátumom druhý však sa potom nesprávne ako prvý deň!
Aj po vyskúšaní zmenu FormatDateTime hovory na používanie Európskeho LCID a rôzne zmeny na poslednú parametra FormatDateTime (napríklad ddmmrrrr, MMddyyyy) s vhodné úpravy podreťazec pozičný parametre bez úspech.
By som veľmi vážime nejakú radu môžete ponúknuť.
Vďaka,
Chris

Bez kódu
9/21/2011 4:27 AM
myslím, že XSL sa považuje "bez kódu" riešenie, ako princípy jazyka XSL nie je pre každého - však to nezahŕňa programovania. Okrem toho, že: dobrí riešenie, Ďakujeme!

Rozšírte svoje zručnosti práce s balíkom Office
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×