Решения без код: Показване на дни, тъй като последно е променена на елемент от списък на SharePoint

Решения без код: Показване на дни, тъй като последно е променена на елемент от списък на SharePoint

Забележка:  Бихме искали да ви осигурим най-новото помощно съдържание възможно най-бързо на вашия собствен език. Тази страница е преведена чрез автоматизация и може да съдържа граматически грешки и несъответствия. Нашата цел е това съдържание да ви бъде полезно. Можете ли да ни кажете дали информацията е била полезна за вас, в дъното на тази страница? Ето статията на английски за бърза справка.

9/20/2011 3:01 Ч.

като Ивайло Ивайло, LANtek

Забележка: В тази статия е част от колекция от публикации от четири години от получите точка блог за крайните потребители на SharePoint.

Общ преглед: По избор стареене отчети без код

Един от често исканата функционална части от сайт на SharePoint е на отчет за стареене за или задачи, или елементи от списък. С други думи, колко дни/месеци го е бил, тъй като този елемент от списък е бил последно променен?

В областта за това изглежда много проста заявка. В крайна сметка имаме дати за елементи се създават и променени, имаме възможност да съхранявате потребителски дати, когато някои промени в елементи се извършва чрез получателите на събития. Ние са изчисляеми колони, където можем да включите формули на Excel, като за работа с нашата информация. Това изглежда като доста недвусмислени предложение. Изберете поле за дата, създаване на изчисляема колона и след това направете формула нещо подобно на [DateField]-[днес]. О не толкова бързо все пак! Като всеки, който се е опитвал тази задача от "прост" знае, се опитва да използва нещо като [Today] в изчисляема колона причинява проблеми. Опитайте да вмъкнете [Today] във вашия изчисляемо поле на колона с формули ще ви даде съобщение за грешка нещо като това:

Съобщение за грешка

Защо е това? Добре, той е свързан с начина, по който изчислени колони се изчисляват.

Нека да проста формула, като например:

= IF ( [Колона1] < = [Колона2], "ОК", "Не е ОК")

Всичко това казва, че е, че ако Колона1 е по-малка или равна на Колона2, след това покажете OK, в противен случай дисплей не е ОК. Това е доста типично основна формула за изчисляема колона и го прави основни предположение за елемент от списък, който съдържа следните колони: стойностите за Колона1 и Колона2 никога няма да бъде могат да променят без актуализация събитие в елемента от списъка.

Това е така, изчисляеми колони ще преизчислява само когато списъка се актуализира (или създадена) тъй като те приемат информацията, която сте изчисляване се съдържа в самия елемент. Това създава проблем, когато се опитвате да използвате нещо, което се променя независимо от полета на елемента, като днешната дата.

Сега мога да не е в събранието, където те решили, че това е начинът, по който изчислени колони ще функционира, въпреки това, ако трябва да направи предположения ще се предполага, че те работят по този начин за изпълнение. Представете си, ако сте имали списък с няколко хиляди елементи, всеки от които се съдържат изчисляема колона, която е необходимо "живи" актуализация. Това ще означава, че някои механизъм, може би на задание за таймер, би трябвало да обхождане на всеки елемент, които съдържат тази изчисляема колона всеки толкова често и актуализирате стойността му. Това може да бъде изключително облага по отношение на изпълнение, защото с по-големи разполагания това задание постоянно може да се изпълнява и променя нещата. Това е просто моето предположение, но тя прави малко смисъл, ако мислите за него.

Има някои предложения за подобни решения плаващ там, които включват разиграва SharePoint в да приема днес стойност от първо създаването на колона, наречена днес, и след това го добавите към вашата формула, а след това да го изтриете. Това са добре, но не забравяйте, това, което казва за актуализирането на изчисляеми колони. Тази стойност ще се промени само когато елементът се актуализира, което означава, че вашите стойности скоро ще бъде неправилно, особено в случай на ден изчисление.

Да сте виждали други хора чрез умно JavaScript за писане на стойностите на страницата. Това ще работи също, но аз съм почти категорично срещу клиентски скрипт, когато може да се избегне.

Реализация:

Какво да направя? Изчисляеми колони са изключено за така наречената "непостоянни" функции като днес. Е възможно, които може да се развиват някои потребителски код, за да се грижат за това за нас като изчислена колона, задача на таймера, или планирал процес, за да се появи и актуализиране на всеки един елемент, който се нуждае от това изчисление, направени. Това ни води обратно към проблема с производителността, аз, посочени в последния параграф все пак и освен това е чуплива решение, което ще бъде изключително специфичен за колоната на сайт/списък/въпросните. Колоните на тези две съображения вие трябва също така да се намери изперкал човек, като например себе си, че знае как да код и да го убеди да развиете това решение вместо вас. Но има по-лесен начин!

Ако имате права за създаване на полета и редактиране на страници във вашия сайт и имат малко познания за XSLT и създаването на изгледи, можете да поставите заедно XSL шаблон, който може да бъде включен в изглед на списък и точно ще изчисли стойността си всеки път, когато страницата се иска. Този сценарий премахва ни проблем над производителността и не изисква потребителски код, за да се развиват и разположени чрез решение.

Добра. И така, как да правим?

  1. Създайте или изберете полето, което ще служи като нашият източник. Трябва да е тип "дата".

  2. Създайте нашето поле, което ще служи като контейнер за стойността се изчислява.

  3. Добавяне и двете от тези полета към съдържание въведете и добавяне на този тип съдържание към списък.

  4. Създаване на изглед на този списък, съдържащ таблицата източник и контейнер колони.

  5. Качване на шаблон за XSL към библиотеката със стилове.

  6. Задайте свойството "XSL връзка" за уеб частта за списъчен изглед чрез потребителския интерфейс.

  7. Успех!

Да изследват пример случай на употреба и преминете през изпълнението. Нашият клиент иска изглед на техните основния списък, който ще им кажа колко време, елемент от списъка са били седящ пред състоянието му. Този списък съдържа персонализиран сайт съдържание тип, получени от типа на елемента и да се добавят в списъка. Вече е получател на събитие в място, което включва в себе си всеки път, когато това състояние поле в елемента от списъка е променено и записани тази дата в колона, наречена "Дата на състоянието промени". Тази инсталация не се изисква и може да бъде направено с всяко поле за дата (просто случайно това е нашата реализация, но не се колебайте да експериментирате). Минимум, ще ви е вашият източник "дата" и поле на контейнер за да задържите изчислението (повече за това в следващия абзац) се добавят във вашия списък, въпреки че аз препоръчваме да използвате колони на сайта и типовете съдържание на сайта, в случай че искате да използвате повторно това решение в други Полша аса във вашия сайт.

Имаме нашата източник на дата, които можем да използваме в нашата изчисление срещу днешната дата. Сега можем да създадем сайт по избор колона да се използва като контейнер за нашите изчислена стойност. В този случай мога да изберете да използвате изчисляема колона, тъй като тя няма да могат да бъдат променени в новата или редактиране на елемент от формуляри, но може да бъде избран за показване в полето изгледи, тъй като не искаме потребители, въвеждащи произволни стойности в тази колона. Тя може да бъде объркващо относно защо тя не се показват в изгледи и др.

Сега, когато имаме нашите колона на сайт, можем да го добавите към нашия типове съдържание, които ще бъдат използвани в списъка ни. След това трябва да създадем нашите изглед, които по-късно ще бъдат персонализирани с нашите XSLT. Уверете се, че можете да създадете стандартен изглед, който съдържа колоната дата на източника и вашия нов изчисляема колона, която ще служи като контейнер за изчислена стойност.

Сега имаме всичко в място, което ще се изисква да поддържа нашите потребителски стареене отчет. Всичко, което остава е създаването на нашата XSL шаблон, го качите в библиотеката на сайта стилове и свързването му към нашия списъчен изглед. XSL шаблона ще използваме ще съдържат някои нормален генерирани от SharePoint коректура за генериране на изгледа, както и нашите собствени коректура по избор, използвани за игнориране на определени части от това и изчисляване на нашите желаната стойност за нас.

Като кредит, когато кредита се дължи, XSL шаблони за извършване на действителния изчисления, да използвам за това решение благосклонно са предоставени от "swirch" във форумите MSDN:
http://social.msdn.microsoft.com/Forums/en-US/ sharepointcustomization/нишка/aeda905b-9bc6-40c4-bd22-21306c5cb0d2 /

Изтегляне на XSL лист със стилове (aging.zip) са поставени заедно намира тук:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9! 104

Отварянето това в текстов редактор ще видите много нормален SharePoint XSL коректура за предоставяне на изгледи, ако водят превъртите надолу, за да линия 357, ще виждате в началото на шаблони по избор, които се добавят към коректурата, първият е "DateDiff" temp закъснели последвана от "Изчисляване-Теодор ден" и "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status". Това са нашите три шаблони, които ще направят и показване на нашите изчисления в нашата изгледи. Ако ще използвате имена на различни полета, отколкото са посочени по-горе в тази статия, трябва да преминете през тези шаблони и заместване на препратки към други имена. Не забравяйте, че за това ще искате да използвате вътрешен името на полето не показваното име.

След като сте доволни дали шаблонът е готова за отидете, отидете в библиотеката на стил и да го качите под папката "Листа на XSL стил" и след това копирайте връзката към файла. Това ще ни позволи да лесно да правите промени в него по-късно или да го добавите към различни части на сайта, както ние моля.

След това отидете в списъка и изберете изгледа, който сте създали по-рано в тази статия. Менюто "Действия за сайта" щракнете върху "Редактиране на страница".

Команда "Редактиране на страница" в менюто "Действия за сайта"

Намиране на вашия уеб частта за списъчен изглед на страницата и отворете менюто уеб част, като щракнете върху малката стрелка надолу пред в горния десен ъгъл. От менюто изберете "Редактиране на уеб част".

Командата за редактиране на уеб част в менюто "Уеб част"

Това ще се отвори меню на уеб частта от дясната страна на прозореца на браузъра.

Меню на уеб компонент

Щракнете върху + за "Разни" секция и намерете свойството "XSL връзка".

Свойството "XSL връзка" в менюто "Уеб част"

Поставяне в полето връзка към XSL файла в библиотеката на стилове, който сте копирали надолу по-рано (това може да бъде относителни или абсолютни връзка).

Поставена връзка към XSL файл

Щракнете върху "OK", за да запишете промените и след това щракнете върху бутона "Спри редактирането" на лентата "Страница" в горната част на страницата.

Бутон за спиране на редактирането на раздела "Страница"

Ако всичко е конфигуриран правилно сега трябва да видите числата в колона "Дни в състоянието".

Колона "Дни в състоянието", показваща число

И накрая, Ето какво тя ще изглежда като с някои тестване на данни от различни дати:

Отчет за стареене, който показва тестови данни

Обобщение:

Ето го: добре форматирани, стабилни и по-добро изпълнение начин да създадете отчет за стареене в SharePoint, попълнен с прост без код изпълнение. Това е доста няколко потенциални приложения, освен това използва случай ние разгледани тук. Друг често срещан сценарий за този тип на отчет е свързването му към списък със задачи, така че да можете да видите колко време е бил, тъй като задачата е създадена с един поглед.

Насладете се!

--Ивайло

Ивайло Ивайло, LANtek

Коментари

Стъпки липсващи
10/8/2012 3:51 ч
добре да следват стъпките, но трябва да има нещо липсва - как ще XSL разберете коя дата да използвате или кои полета да добавите дни, тъй като в? Искам го, когато са пропуснати стъпки.

Без код, приели!
8/30/2012 12:12 ч
съм съгласен - не смятате, че това наистина се брои "без код".
Интересно, през някои screwup на SharePoint, имам работни изчисляема колона, като се използва днес... не сте сигурни как и защо защото аз не мога да го да го направя отново, но това е все още там и работи.

Формулата за "Дни в състоянието" изчислена колона?
5/2/2012 7:39 ч
Ивайло - какво е формула, който сте използвали за вашата "Дни в състоянието" изчисляемата колона на сайта (контейнер колона)? Това е "= днес"?

SharePoint 2007
12/2/2011 11:29 ч
в момента аз не са се опитали да приложите това решение за SharePoint 2007, въпреки че търся в към него. За съжаление няма XslLink свойство повърхност на уеб част чрез потребителския интерфейс.

Голям стълб
11/30/2011 9:53 ч
Здравейте
голям стълб.
използвам SharePoint 2007.
нямам Разни секция, както е посочено по-горе.
Имате ли стъпките за конфигурация на SP2007?
Благодарим ви.

Ре: Без код решение: показване дните, тъй като елемент на списък на SharePoint е бил последно променен
10/11/2011 8:24 ч
Здравей Крис.
голям намирам!
ще погледнете в това, което сте публикували hopefully по-късно днес и вижте дали мога да направя това решение малко по-силен.
съм сте харесали публикация, и много съм доволна сте в състояние да намерим решение европейски във формат на дата. :)
-Ивайло

Решение за европейското дата формати
10/11/2011 6:45 ч
Здравей отново Ивайло
ваша информация, намерили решение за проблем, се спомена по-рано на тази страница;
https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

Европейски дата формати
10/7/2011 3:59 ч
Здравей Ивайло,
това е наистина добро решение, благодаря, и само на вид нещо, което сте изразходвано последните два дни, търсят! Обаче имам малко проблем с него и надявах, може да ми помогне.
аз съм променя своя код леко да calcultate броя на дните, докато не се случи нещо, вместо да след това, ако превключите на променливи в последния ред на функцията "DateDiff";

< xsl:value-на изберете = "$JulianToday - $JulianStartDate" >< / xsl:value-на >

обаче само съм можете да го получите caclulate разликата правилно половината от време. Например с тази дата (формат дд/мм/гггг);

30/12/2011

изчислява правилно, но с тази дата (същия формат)

12/10/2011

тя изчислява като ако, ако 10-дек-2011 вместо 12-Oct-2011.
опитах просто превключване на позициите на деня и месеца стойностите в променлива от тип "JulianStartDate", като това;

< xsl: с параметри името = "Месец" select="substring(ddwrt:FormatDateTime(string($StartDate), 1033,"ГГГГММДД"), 7, 2)" / >
< xsl: с параметри името = "Day" изберете = "подниз (ddwrt:FormatDateTime (низ ($ StartDate), 1033, "ГГГГММДД"), 5, 2) "/ >

и това коригира проблем с втората дата, но след това е неправилен за първата дата!
Също опитах, промяна, FormatDateTime разговори за използване европейски идентификатора за езикови променливи и различни промени на последната параметър на FormatDateTime (например ддммгггг, MMddyyyy) със съответните корекции на подниз позиционни параметри, без да го успех.
Бихме оценили всякакви съвети, които може да предложи.
Благодаря,
Крис

Без код
9/21/2011 4:27 ч
не мисля, че XSL отговаря на изискванията за "без код" решение, като разбиране XSL език не е за всеки -, но той не включва програмиране. Освен това: хубава решение, Благодарим ви!

Разширете уменията си в Office
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×