Rozwiązania bez użycia kodu: wyświetlanie dni od czasu ostatniej zmiany elementu listy programu SharePoint

Rozwiązania bez użycia kodu: wyświetlanie dni od czasu ostatniej zmiany elementu listy programu SharePoint

Uwaga:  Staramy się udostępniać najnowszą zawartość Pomocy w Twoim języku tak szybko, jak to możliwe. Ta strona została przetłumaczona automatycznie i może zawierać błędy gramatyczne lub nieścisłości. Chcemy, aby ta zawartość była dla Ciebie przydatna. Prosimy o powiadomienie nas, czy te informacje były pomocne, u dołu tej strony. Oto angielskojęzyczny artykuł do wglądu.

2011-9-20 3:01 PM

przez Marcin Joyce, LANtek

Uwaga: Ten artykuł jest częścią zbiór wpisy z czterech latach blogu uzyskać punktu dla użytkowników końcowych w programie SharePoint.

Omówienie: Niestandardowe wiekowania raportów przy użyciu żadnego kodu

Jedna z często wymagane funkcjonalności witryny programu SharePoint jest raport wiekowania dla zadań lub elementów listy. Innymi słowy, ile dni/miesięcy jest on od czasu ostatniej modyfikacji ten element listy?

Na powierzchni prawdopodobnie jest to żądanie bardzo proste. Po zakończeniu mamy daty dla elementów są tworzone i modyfikowane, mamy możliwości przechowywania niestandardowe daty, kiedy pewne zmiany do elementów prowadzona przez odbiorcy zdarzeń. Firma Microsoft obliczonych kolumn, gdzie mogą zawierać formuł programu Excel podobnych do pracy z naszych informacji. Wydaje się to takie jak bardzo proste przesyłanie propozycji. Firma Microsoft wybierz pole daty, utworzyć kolumnę obliczeniową, a następnie wykonaj formuły coś wzdłuż linii [DateField]-[Dzisiaj]. Tak jak nie tak szybko, ale! Jako każdy, kto próbował to zadanie "proste" wie, próbuje użyć podobną [Dzisiaj] problemy przyczyny kolumny obliczeniowej. Spróbuj wstawić [Dzisiaj] do usługi obliczeniowe polu Formuła kolumny spowoduje wyświetlenie coś następujący komunikat o błędzie:

Komunikat o błędzie

Dlaczego jest to? Dobrze, ma zrobić z sposobu obliczania kolumn są obliczane.

Jako przykład Przyjrzyjmy się prostej formuły:

= Jeżeli ( [Kolumna 1] < = [kolumnaobliczeniowa2], "OK", "Nie OK")

To wszystko o tym, że jeśli kolumna 1 jest mniejsza niż lub równa argumentowi kolumnaobliczeniowa2 następnie wyświetlający OK, w przeciwnym razie wyświetlanych nie OK. Jest to dość typowe podstawową formułę dla kolumny obliczeniowej, a także udostępnia podstawowe założenia dotyczące elementu listy, który zawiera następujące kolumny: wartości kolumna 1 i kolumnaobliczeniowa2 nigdy nie będą mogły być zmieniane bez zdarzenia Aktualizuj element listy.

Jest to prawo, w kolumnach obliczeniowych ponownych tylko listy aktualizacji (lub utworzyć) od przyjmują informacje obliczeń są zawarte w samym elemencie. Spowoduje to utworzenie problem, gdy próbujesz użyj frazy, które zmienia się niezależnie od pola elementu, na przykład dzisiejszą datę.

Teraz nie mogę spotkania, gdzie one danego się sposób, w jaki obliczeniowe kolumn będzie działać, jednak gdyby należy przyjąć przypuszczenie, który można założono, że działają w ten sposób wydajność. Załóżmy, jeśli użytkownik ma listę kilku tysięcy elementów, z których każdy będzie zawarte kolumnę obliczeniową, wymagana aktualizacja "online". Oznacza to, że niektóre mechanizmu, być może zadania czasomierza, będą musiały iterację każdy element, który every często zawarte tej kolumny obliczeniowej i aktualizowanie jej wartość. To może być bardzo opodatkowania pod względem wydajności ponieważ z dużych wdrożeń to zadanie może być stale można uruchomić i zmienić rzeczy. Jest to po prostu Moje przypuszczenia, ale ułatwia dość nieco właściwe rozwiązanie, jeśli wziąć pod uwagę go.

Istnieje kilka wskazówek, podobne przestawny tam rozwiązania, które wymagają oszukanie programu SharePoint w celu akceptowania wartość dzisiaj, najpierw utworzyć kolumnę o nazwie dzisiaj, a następnie dodanie go do formuły, a następnie zostanie usunięta. Te są bardzo atrakcyjne, ale pamiętaj, co mówię o po zaktualizowaniu kolumn obliczeniowych. Ta wartość zmieni się tylko po zaktualizowaniu element, co oznacza, że wartości wkrótce będzie niepoprawny, zwłaszcza w przypadku obliczeń dnia.

Inne przejrzane zapisywać wartości na stronie za pomocą inteligentne języka JavaScript. To będzie również działać, ale mam bardzo duże categorically przed skrypt klienta, gdy można uniknąć.

Implementacja:

To co należy zrobić? Kolumny obliczeniowe są poza pytanie do tak zwany "nietrwałe" funkcji, takich jak dzisiaj. Istnieje możliwość, firma Microsoft może utworzyć kodu niestandardowego w celu zajmować się to abyśmy takich jak obliczane kolumny, zadania czasomierza lub zaplanowane proces pochodzić i zaktualizować każdej pojedynczego elementu, który musi ten obliczeniu. Które nam powoduje powrót do problemu wydajności, wymienione w akapicie ostatnim jednak, a ponadto jest łamliwa rozwiązanie, które będzie specjalistyczne do witryny i listy i kolumny w danym. U góry tych dwóch dotyczy również wymaga go znaleźć nerdy specjalisty z zakresu, takich jak samodzielnie, który wie, jak kod i przekonać go do opracować to rozwiązanie dla Ciebie. Ale jest łatwiejszy sposób!

Jeśli masz praw do tworzenia pól i edytowanie stron w witrynie, a mieć nieco wiedzy o XSLT i tworzenie widoków, można utworzyć szablonu XSL, które zostaną uwzględnione w widoku listy, a poważaniem oblicza wartość zawsze, gdy strona jest pobierana. W tym scenariuszu usuwa mamy problemów na wydajność i nie wymaga kodu niestandardowego w celu opracowane i wdrażane za pomocą rozwiązanie.

Doskonałe. W jaki sposób możemy go zrobić?

  1. Utwórz lub wybierz pole, które będą działać jako naszych źródła. Musi to być typem daty.

  2. Tworzenie naszych pola, które będą działać jako symbol zastępczy wartość jest obliczana.

  3. Dodaj oba te pola do typu zawartości i dodać tego typu zawartości do listy.

  4. Tworzenie widoku tę listę zawierającą kolumny źródłowej i symbol zastępczy.

  5. Przekazywanie szablonu XSL do biblioteki stylów.

  6. Ustaw właściwość "Łącze XSL" składnika Web Part widoku listy za pośrednictwem interfejsu użytkownika.

  7. Sukces!

Załóżmy Eksplorowanie przykład przypadków użycia i szczegółową wykonania. Nasz klient przetransponowane widoku ich głównej listy, który chcesz udzielić im czasu konkretnego elementu listy była już dostępne na jego stan. Ta lista zawiera witryny niestandardowej zawartości, typ pochodny od typu elementu i dodane do listy. Wystąpił już odbiorca zdarzenia w miejscu, w którym zawsze tego pola Stan dla elementu listy został zmieniony i zapisany datę do kolumny o nazwie "Daty stan zmienił się po". Ten instalacji elektrycznej nie jest wymagane i może wykonać za pomocą wszystkie pola Data (tylko tak się składa, to jest nasz implementacji, ale bezpłatne wypróbować działanie). Podstawowe czynności, które trzeba będzie jest do pola daty źródła i symbol zastępczy pola do przechowywania obliczeniu (więcej informacji na temat to kolejnego akapitu) dodane do listy, mimo że można sugerują, że korzystasz z kolumn witryny i typami zawartości witryny w przypadku, gdy chcesz ponownie użyć tego rozwiązania w innych pl ACE w witrynie.

Więc z naszych zastosowanie w naszym obliczeń przed datą dzisiejszą datę źródła. Teraz możemy utworzyć kolumny niestandardowej do witryny do użycia jako kontenera dla naszych obliczoną wartość. W tym przypadku wybrano za pomocą kolumny obliczeniowe, ponieważ nie będzie można zmienić na nową lub edytowanie elementu formularzy, ale można wybrać do wyświetlania w widokach, ponieważ nie powinni użytkownikom wprowadzanie wartości dowolnego do tej kolumny. Może być kłopotliwe, dlaczego nie jest jest wyświetlany w widokach itd.

Teraz gdy mamy już naszych kolumny witryny, można dodać go do naszych typów zawartości, które będą używane na liście. Następnie trzeba utworzyć naszych widok, który później będzie można dostosować z naszych XSLT. Upewnij się, że tworzenie widok standardowy, zawierającym kolumny Data źródła i do nowej kolumny obliczeniowej, która będzie działać jako symbol zastępczy obliczoną wartość.

Teraz mamy wszystko w miejsce, w którym firma Microsoft wymaga do obsługi naszych raport wiekowania niestandardowe. Czy nadal tworzy naszych szablon XSL przekazania go do biblioteki stylów witryny i łączenie go z naszych widoku listy. Wybrany szablon XSL użyjemy ma zawierać niektóre normalny adiustacji wygenerowane programu SharePoint do generowania widoku, a także własne niestandardowe znaczniki umożliwia zastępowanie niektórych części i obliczanie naszych żądaną wartość dla nas.

Udzielanie kredytowej w miejsce, w którym przypada kredytowej, szablony XSL używane do wykonywania rzeczywistych obliczeń dla tego rozwiązania korzystam z graciously dostarczonych przez "swirch" na forach MSDN:
http://social.msdn.microsoft.com/Forums/en-US/ sharepointcustomization wątku-aeda905b-9bc6-40c4-bd22-21306c5cb0d2-

Pobierz arkusz stylów XSL (aging.zip) I wprowadziły razem znajduje się tutaj:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9! 104

Otwarcie następująco w edytorze tekstu Ulubione jeśli zostanie wyświetlony dużo normalny adiustacji SharePoint XSL renderowanego widoki, Zachowaj przewijania w dół do wiersza 357 pojawi się na początek szablony niestandardowe, dodane do adiustację, temp pierwszą z nich jest "DateDiff" opóźnione następuje "Obliczanie--dzień juliański" i "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status". Są to naszych trzy szablony, które będą nawiązywanie i wyświetlania naszych naszych obliczeń. Jeśli zamierzasz korzystać z nazw pól inny niż określono wcześniej w tym artykule, należy przejść do tych szablonów i zamienić wszystkie odniesienia do pozostałych nazwisk. Pamiętaj, że to będzie chcesz użyć wewnętrzna nazwa pola nie nazwę wyświetlaną.

Po zakończeniu szablon jest gotowa do Przejdź, przejdź do biblioteki stylów i przekaż go w folderze "Arkusze stylów XSL", a następnie skopiować w dół łącze do pliku. To będzie zezwalają na łatwe go zmienić później lub Dodaj go do różnych części witryny, jak firma Microsoft, zapoznaj się z.

Następnie przejdź do listy i wybierz widok, który został utworzony we wcześniejszej części tego artykułu. "Akcje witryny" menu na kliknij "Edytuj stronę".

Polecenie Edytuj stronę wyświetlane w menu Akcje witryny

Znajdowanie składnika Web Part widoku listy na stronie i otwórz menu składnika Web Part, klikając pozycję small strzałkę w dół znajdującą w prawym górnym rogu. Z tego menu wybierz "Edytuj składnik Web Part".

Polecenie Edytuj składnik Web Part w menu składnika Web Part

Spowoduje to otwarcie menu składnika Web Part po prawej stronie okna przeglądarki.

Menu składnika Web Part

Kliknij sekcję + dla "Różne" i odszukaj właściwość "Łącze XSL".

Właściwość Łącze XSL w menu składnika Web Part

Wklej łącze do pliku XSL w bibliotece stylów, który został skopiowany w dół wcześniej (może to być łącze względne i bezwzględne).

Wklejone łącze do pliku XSL

Kliknij przycisk OK, aby zapisać zmiany, a następnie kliknij przycisk "Zakończ edycję" na wstążce "Strona" w górnej części strony.

Przycisk Zakończ edycję na karcie Strona

Jeśli wszystko zostało skonfigurowane poprawnie powinien zostać wyświetlony liczb w kolumnie usługi "Dni ze stanem".

Kolumna dni ze stanem wyświetlająca liczbę

I na koniec, co będzie wyglądał tak, jak z niektórymi testowanie danych różnych dat:

Raport wiekowania z testowymi danymi

Podsumowanie:

Jest: właściwego sformatowany, niezawodne i lepiej wykonywanie umożliwia utworzenie raport wiekowania w programie SharePoint wypełniony prosty implementacji bez użycia kodu. Ma to bardzo kilka potencjalnych aplikacji od tego, które zostało przypadku, gdy mamy zbadane za pomocą tutaj. Inny typowy scenariusz dla tego typu raportu jest dołączanie go do listy zadań, tak, aby było widać, jak długo upłynęły od momentu utworzenia zadania rzut oka.

Ciesz się!

— Marcin

Marcin Joyce, LANtek

Komentarze

Procedura Brak
2012-10-8 3:51 AM
ok I obserwowane kroki, ale musi istnieć coś Brak - jak XSL wiedzieli, datę używaną lub którego pól, aby dodać dni od czasu do? wypowiedzi szerzące go, gdy zostaną pominięte kroki.

Bez użycia kodu, uzgodnione!
2012-8-30 12:12 PM
I zgoda — nie wydaje się, że to naprawdę liczy jako "Brak kodu".
Interestingly, za pomocą niektórych screwup programu SharePoint jest kolumnę obliczeniową pracy przy użyciu dzisiaj... nie masz pewności, jak lub dlaczego ponieważ nie mogę jej ponownie to zrobić, ale jest nadal dostępne i pracy.

Formuła obliczająca "Dni w stan" kolumnę obliczeniową?
2012-5-2 7:39:00
Marcin - co to jest formułę użytą kolumny obliczeniowej witryny "Dni ze stanem" (kolumna symbol zastępczy)? Była "= dzisiaj"?

SharePoint 2007
2011-12-2 11:29:00
obecnie I nie próbowano dotyczą tego rozwiązania programu SharePoint 2007, jednak wyświetlane do niego. Niestety nie istnieje żadna właściwość XslLink nie jest wyświetlana w składniku web part za pośrednictwem interfejsu użytkownika.

Doskonałe wpis
2011-11-30 9:53 AM
Witaj,
doskonałe wpisu.
Korzystam z programu SharePoint 2007.
Nie mam sekcji różne, które zostały wymienione powyżej.
Masz instrukcje dotyczące konfiguracji SP2007?
z podziękowaniami.

Odp: Rozwiązania bez użycia kodu: wyświetlanie dni od ostatniego elementu listy programu SharePoint zmienione
2011-10-11 8:24 AM
Hi Chris.
znajdowanie doskonałe!
i zamiar zapoznaj się co możesz opublikowany hopefully później już dziś i zobacz, jeśli mogą pojawiać się to rozwiązanie nieco bardziej rozbudowany.
i jestem okazuje się polubiony wpis, a i jest bardzo okazuje się, udało Ci się znaleźć rozwiązanie do formatu daty Europejski. :)
-Marcin

Rozwiązanie dotyczące formatów daty Europejska
2011-10-11 6:45:00
Hi ponownie Marcin
DW, udało się znaleźć rozwiązanie problemu można już wspomniano wcześniej na tej stronie;
https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

Europejska formaty daty
2011-10-7 3:59 AM
Marcin Hi
to Dziękuję dobrze rozwiązanie, a tylko sortowanie element I po długiej ostatnich dwóch dni szukasz! Jednak mam nieco problemu z nim i można było nadzieję, że może pomóc.
I została zmieniona kodzie nieco do calcultate liczby dni nieodwracalnej, zamiast ponieważ, przełączając zmiennych w ostatnim wierszu funkcji "DateDiff";

< xsl:value — wybierz = "$JulianToday - $JulianStartDate" ><-xsl:value-z >

jednak mogę tylko wykonywanie do caclulate różnica poprawnie połowę czasu. Aby na przykład dla tej daty (format dd/MM/RRRR);

2011-12-30

jest obliczana poprawnie, ale przy użyciu tej daty (takim samym formatem)

2011-12-10

jest obliczana jako Jeśli 2011-10-gru zamiast 2011-12-paź.
próbuję, po prostu przełączanie pozycji wartości dzień i miesiąc w zmiennej "JulianStartDate", tak jak poniżej;

< xsl: nazwy z parametrów = "Miesiąc" select="substring(ddwrt:FormatDateTime(string($StartDate) 1033,"RRRRMMDD") 7, 2)"->
< xsl: nazwy z parametrów = zaznacz "Day" = "substring (ddwrt:FormatDateTime (ciąg ($ DataRozpoczęcia), 1033, "RRRRMMDD"), 5, 2) "i >

i rozwiązać problem z drugiej daty, ale został on niepoprawne dla pierwszej daty!
można również wypróbowania zmiany FormatDateTime połączeń między komputerami Europejski LCID i różnych zmian do ostatniego parametru FormatDateTime (np. ddMMyyyy, MMddyyyy) z właściwych dostosowań do podciąg pozycyjne parametrów bez zakończyło się pomyślnie.
Znacznie proszę poradami mogą oferować.
Dziękuję,
Tomasza

Bez użycia kodu
2011-9-21 4:27:00
nie myślę, że XSL kwalifikuje się jako rozwiązanie "bez użycia kodu" jako opis języka XSL jest nie dla wszystkich osób — jednak nie wymaga programowania. Oprócz który: I rozwiązanie, Dziękujemy!

Rozwijaj umiejętności związane z pakietem Office
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów pakietu Office

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×