No-Code lahendus: päevade kuvamine alates loendiüksuse viimase muutmisest
Applies To
SharePoint rakenduses Microsoft 365 SharePoint rakenduses Microsoft 365 Small BusinessJustin Joyce, LANtek
Märkus.: See artikkel on osa ametikohtade kogumist, mis koosneb neljast aastast SharePointi lõppkasutajate jaoks mõeldud ajaveebist .
Ülevaade: kohandatud vananemise aruanded ilma koodita
Üks SharePointi saidi jaoks sageli nõutud funktsionaalsetest osadest on kas ülesannete või loendiüksuste jaoks vananemise akt. Teisisõnu, mitu päeva/kuud on see loendiüksuse viimase muutmise järel olnud?
Pinnal tundub olevat väga lihtne taotlus. Lõppude järgi oleme loodud ja muudetud üksuste kuupäevad, meil on võimalus talletada kohandatud kuupäevi, kui teatud muudatused toimuvad sündmuse vastuvõtjate kaudu. Meie teabega töötamiseks on arvutatud veerud, kus saame lisada Exceli-like valemeid. See tundub olevat päris sirgelt ette paigutus. Valime kuupäeva välja, koostame arvutatud veeru ja seejärel valemi midagi [DateField] – [täna]. Ah, mitte nii kiiresti, kuigi! Kui kõik, kes on proovinud seda lihtsat ülesannet, ei tea, kuidas kasutada arvutatud veerust midagi [Today], põhjustab probleeme. Proovi lisada arvutatud veeru valemisse [Today] väljale tõrketeade, mis näeb välja umbes järgmine:
Miks see nii on? See on seotud arvutatud veergude arvutamise viisiga.
Teeme näitena lihtsa valemi:
= IF ( [Veerg1] <= [Veerg2], "OK", "pole OK")
Kõik see ütleb, et kui Veerg1 on väiksem kui Veerg2 või sellega võrdne, kuvatakse OK, vastasel juhul ei kuvata nuppu OK. See on üsna tüüpiline arvutatud veeru põhivalem ja see teeb põhieelduse nende veergude sisaldava loendiüksuse kohta: Veerg1 ja Veerg2 väärtused ei saa kunagi muutuda, kui loendiüksust ei värskendata.
See on õige, arvutatud veerud arvutatakse ümber ainult siis, kui loend on värskendatud (või loodud), kuna need eeldavad, et teie arvutatud teave sisaldub üksuses endas. See tekitab probleemi, kui proovite kasutada midagi, mis ei sõltu üksuse väljadest (nt tänane kuupäev).
Nüüd ma ei olnud koosolekul, kus nad otsustasid, et see on nii, et arvutatud veerud toimiks, aga kui mul oleks pidanud haritud arvan, et nad toimivad sellisel viisil. Kujutage ette, kui teil oleks mitu tuhat üksust sisaldav loend, millest igaüks sisaldas arvutatud veergu, mis vajas "Live ' i" värskendust. See tähendaks, et mõni mehhanism ehk ajastitöö peaks itereerimiseks iga üksuse kohta, mis on arvutatud veerust iga nii sageli, ja selle väärtust värskendama. See võib olla jõudluse osas äärmiselt maksustatav, sest suuremate juurutuste korral võib see töö pidevalt toimida ja asju muuta. See on lihtsalt minu oletus, aga see on päris mõistlik, kui selle peale mõelda.
Siin on mõned näpunäited sarnaste lahenduste leidmiseks, mis on seotud SharePointi meelitamisega, et aktsepteerida tänast väärtust, luues kõigepealt veeru nimega täna, seejärel lisades selle oma valemisse ja seejärel kustutades selle. Need kõik on hästi ja head, kuid pea meeles, mida ma ütlesin, kui arvutatud veerud on värskendatud. See väärtus muutub ainult siis, kui üksust värskendatakse, mis tähendab, et teie väärtused on varsti valed, eriti päeva arvutamise korral.
Ma olen näinud teisi targa JavaScripti abil, et kirjutada väärtused lehele. See toimib ka, kuid ma olen üsna kategooriliselt vastu kliendi skripti, kui seda saab vältida.
Juurutuse
Mida teha? Arvutatud veerud pole praegu enam kui "lenduvad" funktsioonid, nagu tänapäeval. On võimalik, et me saaksime töötada välja mõned kohandatud koodid, et hoolitseda selle eest, nagu arvutatud veerg, ajastitöö või ajastatud protsess, mida soovite teha ja värskendada iga üksust, mis seda arvutust vajab. See toob meid tagasi probleemile, mida mainisin viimases lõigus, kuigi ja Lisaks on see hapraks lahenduseks, mis oleks selle saidi/loendi/veeru jaoks väga spetsiifiline. Peale nende kahe muret oleks sul vaja ka leida nohik, nagu mina ise, et teada saada, kuidas kood ja veenda teda seda lahendust arendama. Kuid on lihtsam viis!
Kui teil on õigus oma saidil lehti luua ja lehti redigeerida ning teil on vähe teadmisi XSLT-ja vaadete loomise kohta, saate koondada XSL-malli, mida saab loendivaate kaasata, ja arvutab teie väärtuse täpselt iga kord, kui lehte taotletakse. See stsenaarium kõrvaldab meie mure jõudluse pärast ja ei nõua kohandatud koodi väljatöötamist ja juurutamist lahenduse kaudu.
Täiuslik. Kuidas me seda teeme?
-
Looge või valige väli, mis on meie allikaks. See peab olema kuupäeva tüüp.
-
Looge meie väli, mis toimib arvutatud väärtuse kohatäitena.
-
Lisage mõlemad väljad sisutüübile ja lisage see sisutüüp loendisse.
-
Saate luua selle loendi vaate, mis sisaldab nii lähte-kui ka kohatäite veerge.
-
XSL-malli üleslaadimine teeki laadid.
-
Seadke Loendivaate veebiosa atribuut "XSL link" KASUTAJALIIDESE kaudu.
-
Edu!
Uurime näite kasutamise juhtumit ja liigume läbi rakendamise. Meie klient soovis vaadata nende peamist loendit, mis ütleks neile, kui pikaks ajaks on teatud loendiüksuse oma olekus istunud. Selles loendis on toodud üksuse tüübist tuletatud kohandatud Saidi sisutüüp ja lisatud loendisse. Seal oli juba sündmuse vastuvõtja, mis jäädvustab iga kord, kui loendiüksuse väli olekuks on muudetud ja salvestanud selle kuupäeva veergu nimega "Date Status Changed". Kõik juhtmed ei ole kohustuslikud ja seda saab teha mis tahes kuupäeva väli (see on nii, et see on meie rakendamine, kuid võid vabalt eksperimenteerida). Miinimum, mida vajate, on teie loendile lisatud teie allika kuupäeva väli ja kohatäide, mis on teie loendisse lisatud, kuigi ma soovitan kasutada saidi veerge ja saidi sisutüüpe juhul, kui soovite seda lahendust kasutada saidil muudes kohtades.
Nii et meil on meie allikas kuupäev, mida saame kasutada meie arvutuses tänase kuupäevaga. Nüüd saame luua kohandatud saidi veeru, mida kasutatakse meie arvutatud väärtuse jaoks konteinerina. Sel juhul otsustasin kasutada arvutatud veergu, kuna seda ei saa uutes või redigeeritud üksustes muuta, kuid seda saab vaates kuvamiseks valida, kuna me ei soovi, et kasutajad selle veeru suvalisi väärtusi sisestaks. See võib segadust tekitada, miks seda vaates ei kuvata jne.
Nüüd, kui meil on meie saidi veerg, saame selle lisada meie loendis kasutatavale sisutüübile. Järgmiseks peame looma meie vaate, mis hiljem meie XSLT-ga kohandatud on. Veenduge, et loote standardse vaate, mis sisaldab teie allika kuupäeva veergu ja teie uut arvutatud veergu, mis toimib arvutatud väärtuse kohatäitena.
Meil on nüüd kõik paigas, mida me vajame, et toetada meie kohandatud vananemise aruandeid. Kõik, mis alles jääb, loob meie XSL-malli, laadib selle saidi laadi teeki üles ja lingib selle meie loendi vaates. Meie kasutatav XSL-Mall sisaldab mõnda tavalist SharePointi loodud märgistust nii vaate loomiseks kui ka meie enda kohandatud märgistust, mida kasutatakse selle teatud osade alistamiseks, ning arvutab meie jaoks soovitud väärtuse.
Kui krediiti antakse krediiti, on XSL-I Mallid, mida kasutatakse selle lahenduse tegelike arvutuste tegemiseks, kui teil on MSDN-i foorumites ette nähtud "swirch": http://Social.MSDN.microsoft.com/forums/en-US/sharepointcustomization/Thread/aeda905b-9bc6-40c4-BD22-21306c5cb0d2/
Laadi alla: https://OneDrive.live.com/?CID=c262e8e2d59a86d9&permissionsChanged = 1&ID = c262e8e2d59a86d9! 104 on alla laadinud XSL-i laadileht (aging.zip).
Kui avate selle oma lemmikute redaktoris, näete te palju tavalisi SharePointi XSL-märgistust vaadete renderdamiseks, kui liigute edasi reale 357, kuvatakse märgistusele lisatud kohandatud mallide algus, esimene on "DateDiff" Mall, millele järgneb "Arvuta-Julian-Day" ja "FieldRef_printTableCell_EcbAllowed. Days_x0020_At_x0020_Status". Need on meie kolm malle, mis muudavad meie vaateid meie arvutusteks. Kui kavatsete kasutada eri väljanimesid, kui selles artiklis varem määratud, peate läbima need Mallid ja asendama kõik viited teistele nimedele. Pidage meeles, et te soovite kasutada välja sisemine nimi, mis pole kuvatav nimi.
Kui olete veendunud, et mall on minekuks valmis, liikuge oma laadi teeki ja laadige see alla kausta "XSL-i laadi lehed" ja seejärel kopeerige link faili. See võimaldab meil hiljem hõlpsalt muudatusi teha või lisada selle saidi eri osadesse, mida me palun.
Järgmiseks Avage loend ja valige selles artiklis varem loodud vaade. Klõpsake menüüs "saidi toimingud" nuppu "Redigeeri lehte".
Otsige lehelt Loendivaate veebiosa üles ja avage veebiosa menüü, klõpsates ülemises parempoolses nurgas olevat väikest allapoole suunatud noolt. Valige sellelt menüüst käsk "Redigeeri veebiosa".
See avab veebiosade menüü brauseriaknas paremal pool.
Klõpsake jaotises "Miscellaneous" nuppu + ja otsige üles atribuut "XSL link" ("XSL link").
Kleepige oma XSL-faili lingile oma laadide teegis, mille te varem kopeerisite (see võib olla suhteline või absoluutne link).
Muudatuste salvestamiseks klõpsake nuppu "OK", seejärel klõpsake lehe ülaosas oleval lindil nuppu "Lõpeta redigeerimine".
Kui kõik on õigesti konfigureeritud, peaksite nüüd nägema veergu "päevad olekus" olevaid numbreid.
Ja lõpuks, siin on, mida ta näeks välja mõned test andmed eri kuupäevadel:
Kokkuvõte.
Seal see on: kenasti vormindatud, jõuline ja paremini toimiv viis SharePointi vananemise aruande loomiseks., koos lihtsa koodi rakendamisega. See on üsna vähesed võimalikud rakendused peale ühe kasutusala, mida me siin uurime. Seda tüüpi aruannete jaoks on veel üks levinud stsenaarium, nii et saate vaadata, kui kaua see on olnud pärast ülesande loomist.
Head kasutamist.
--Justin
Justin Joyce, LANtek
Kommentaarid
Puuduvad
toimingud 10/8/2012 3:51 AM OK Ma järgisin juhiseid, kuid seal peab olema midagi puudu-Kuidas XSL teab, millist kuupäeva kasutada või millisele väljale päevi lisada? vihkan seda, kui toimingud on vastamata.No-Code, kokkulepitud!
8/30/2012 12:12 P.L. Olen nõus-ma ei usu, et see tõesti loeb "No Code". Huvitaval kombel on mul mõne hädavares kaudu töötav arvutatud veerg, kasutades tänast... Ma ei tea, kuidas või miks, sest ma ei saa seda uuesti teha, kuid üks on endiselt seal ja töötab.Valem "päevade oleku" arvutatud veerg?
5/2/2012 7:39 AM Justin – mis on valem, mida kasutasite "päevade oleku" arvutatud saidi veeru (kohatäite veerg) jaoks? Kas see oli "= Today"?SharePoint 2007
12/2/2011 11:29 AM Praegu ei ole ma üritanud seda lahendust SharePoint 2007 rakendada, aga ma vaatan seda. Kahjuks pole veebiosa kaudu KASUTAJALIIDESE kaudu XslLink atribuuti pinnatud.Suur postitus
11/30/2011 9:53 AM Tere, Suur postitus. Kasutan rakendust SharePoint 2007. Mul pole muud jaotist, nagu ülalpool märgitud. Kas teil on SP2007 konfiguratsiooni jaoks juhiseid? Aitäh.Re: No-Code lahendus: päevade kuvamine alates SharePointi loendi üksuse viimase muutmisest
10/11/2011 8:24 AM Tere, Chris. suur leid! Ma kavatsen vaadata, mida sa postitatud loodetavasti hiljem täna ja vaata, kas ma saan teha seda lahendust veidi jõulisem. Mul on hea meel, et sulle meeldib ametikoht ja mul on väga hea meel, et leidsid lahenduse Euroopa kuupäevavorming. :) -JustinEuroopa kuupäeva vormingute https://sharepointbydummies.WordPress.com/2011/07/13/Possible-Work-Around-to-date-Format-Issue-SharePoint-2010/
lahendus 10/11/2011 6:45 AM Tere taas Justin, FYI, leidsin lahenduse sellele küsimusele, mida ma varem mainisin sellel lehel;Euroopa kuupäevade vormingud
10/7/2011 3:59 AM Tere Justin, See on tõesti hea lahendus tänu, ja just selline asi, mida ma olen veetnud viimased kaks päeva otsinud! Kuid mul on sellega probleeme ja lootsin, et saad mind aidata. Ma muutsin teie koodi veidi, et calcultate, kuni midagi juhtub, mitte pärast seda, kui olete aktiveerinud funktsiooni "DateDiff" viimases reas olevad muutujad; <xsl: Value Select = "$JulianToday-$JulianStartDate" ></xsl:> väärtus Kuid ma saan selle hankida vaid caclulate erinevuse õige poole ajast. Näiteks selle kuupäevaga (Format PP/KK/AAAA); 30/12/2011 See arvutab õigesti, kuid selle kuupäevaga (sama vorming) 12/10/2011 See arvutab justkui 10-Dec-2011 asemel 12-Oct-2011. Üritasin lihtsalt vahetada positsioonid päeva ja kuu väärtused "JulianStartDate" muutuja, nagu see; <xsl: with-Param Name = "kuu" Select = "string (ddwrt: FormatDateTime (string ($StartDate), 1033," yyyyMMdd "); 7; 2)"/> <xsl: with-Param Name = "Day" Select = "string (ddwrt: FormatDateTime (string ($StartDate), 1033," yyyyMMdd "); 5; 2)"/> Ja see parandas probleemi teise kuupäevaga, aga see oli siis esimene kuupäev vale! Olen ka proovinud muuta FormatDateTime kõnesid, et kasutada Euroopa LCID ja mitmesuguseid muudatusi viimase parameetrina FormatDateTime (nt PPKKAAAA, MMddyyyy), kus on asjakohased kohandused. Ma hindan väga kõiki nõuandeid, mida saad pakkuda. Tänan, ChrisNo-Code
9/21/2011 4:27 AM Ma ei usu, et XSL kvalifitseerub "No-Code" lahenduseks, kuna XSL-i keel pole kõigi jaoks – kuid see ei hõlma programmeerimist. Peale selle: kena lahendus, aitäh!