無程式碼解決方案: 自上次變更的 SharePoint 清單項目顯示的天數

無程式碼解決方案: 自上次變更的 SharePoint 清單項目顯示的天數

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

2011/9/20 3:01 PM。

以 Justin Joyce,LANtek

附註: 本文是集合的從四年 SharePoint 使用者取得點部落格文章。

概觀: 自訂過時報表有無程式碼

通常要求的功能設備組件的 SharePoint 網站的內容之一是以過時的報表的 [工作] 或 [清單項目。 幾天/月也就是說,有其已自上次修改這個清單項目?

介面上可能是非常簡單的要求。所有,我們的項目所建立和修改的日期,還可以將儲存自訂的日期時特定項目發生變更透過事件接收器。 我們有導出資料行我們可以在其中包含類似 Excel 公式使用我們的資訊。 這看起來像是很直接轉寄論點。 我們挑選日期欄位,建立計算結果的欄,然後執行公式內容的 [DateField] – [今天]。 喔,不是這樣快速透過 ! 為嘗試此 「 簡單的 「 工作的人知道,想要使用的是 [今天] 中的計算結果的欄的原因問題。 請嘗試將 [今天] 插入您導出資料行的 [公式] 方塊可讓您的錯誤訊息,就像這樣:

錯誤訊息

此為何? 有處理方式導出資料行的計算方式。

讓我們來看簡單的公式,例如:

= IF ( [Column1] < = [Column2],"[確定],「 不確定 」)

所有這表示: 正在如果 1 小於或等於 Column2,然後顯示 [確定],否則顯示不 [確定]。 這是相當一般基本的公式的計算結果欄,它會包含這些資料欄的清單項目基本假設: 1] 及 [欄 2 值永遠無法變更而更新事件清單項目上。

Right、 計算結果的欄會只時重新計算清單更新 (或建立),這是因為其假設計算的資訊包含在項目本身。 當您嘗試使用變更獨立的項目] 欄位,例如今天日期的項目時,這會建立問題。

現在我不是他們決定這是導出資料行想函數,不過,如果必須進行我會假設其函數的效能這種方式來猜測的方式加入會議。 假設是否您有多個千分位的項目清單,每個包含計算結果的欄的所需的 「 即時 」 的更新。 這表示的一些機制,可能是計時器工作,就必須逐一查看每個項目,每一個包含該計算結果的欄,並更新其值。 這可能非常而言都不容易龐大的效能因為較大的部署使用這項工作可能不斷地執行並變更項目。 只要我 guess,但其可讓您一段意義,如果您認為您的意見。

有類似的解決方案浮動有涉及第一次建立名為 [今天]、 資料行,然後將其新增至您的公式,然後刪除接受今天值欺騙 SharePoint 中的一些建議。 這些是不錯,,但請記得什麼所提到的相關更新計算結果的欄的時機。 更新這表示您的值很快就不正確,尤其是天計算項目時,只會變更這個值。

我已經看到其他人使用聰明 JavaScript 寫入網頁中的值。 此外,運作,但是我幾乎類別組合管理針對用戶端指令碼時可避免。

實作:

因此,如何? 導出資料行不稱為 「 動態 」 的函數,例如今天的問題。 我們無法開發來處理此我們計算資料行,計時器工作,例如某些自訂程式碼或排程的程序來走及更新需要進行此計算的每一個項目可能是。 接著回到的我中所提及的最後一個段落,效能問題,此外脆弱解決方案,就會相當特定網站/清單/資料行的問題。 上方的兩個問題,您也必須來尋找知道如何程式碼,並利用您開發此方案引誘 nerdy guy,例如。 但還有更簡單的方法 !

如果您已建立欄位和編輯您的網站上的頁面的權限,並擁有的 XSLT 和建立檢視的相關知識,您可以將一起 XSL 範本,可以包含在清單檢視,並會準確地計算您要的值要求網頁每次。 這種情況下移除我們顧慮於效能,而且您不需要開發和透過解決方案部署自訂程式碼。

完美。 我們該如何進行?

  1. 建立或選取的欄位,做為我們的來源。 它必須是日期類型。

  2. 建立我們欄位,做為計算值的版面配置區。

  3. 兩個欄位新增至內容類型,然後將該內容類型新增至清單。

  4. 建立包含來源與版面配置區的資料行的清單檢視。

  5. XSL 範本上傳至樣式庫。

  6. 設定清單檢視網頁組件,透過 UI 「 XSL 連結 」 屬性。

  7. 成功!

現在就讓我們探索範例使用大小寫,並逐一進行實作。 我們的客戶想要多久特定清單項目必須位於其狀態會告訴他們其主要清單檢視。 此清單包含自訂網站內容類型的項目類型,新增至清單。 已有擷取每次清單項目上的 [狀態] 欄位的地方事件接收器已變更,稱為 「 狀態變更日期] 資料行中儲存該日期。 所有此路並不是必要,可以利用任何日期] 欄位 (只是這這是我們實作但風格免費試用)。您需要的最低是您的來源日期] 欄位和版面配置區] 欄位,按住計算 (在下一個段落的更多) 新增至您的清單,但建議使用網站欄和網站內容類型中,以防您想要重複使用此方案的網站上的其他位置。

因此我們具備我們來源的日期,我們可用於我們計算針對今天的日期。現在我們可以建立自訂網站欄以作為容器的我們計算的值。 在此情況下,我選擇使用計算結果的欄,因為它不會在新的變更,或編輯項目表單,但是可以選取顯示在檢視中,因為我們不想要使用者輸入此欄中的任意值。 可能是混亂存為什麼它不會被顯示檢視等。

現在,我們已我們的網站欄,我們可以將其新增至我們將使用的內容類型在清單中。接下來,我們要使用我們 XSLT 建立我們稍後可自訂的檢視。 請確定您建立包含您的來源日期資料行和您的新導出的欄位,做為計算值的版面配置區的標準檢視。

我們現在有所有項目中支援我們自訂過時的報表,我們會要求的位置。 所有仍會建立我們的 XSL 範本上, 傳至網站的樣式庫,並將其連結至我們的清單檢視。 我們會使用的 XSL 範本會包含產生的檢視,以及用來覆寫特定的部分,並計算我們想要的值,讓我們自己自訂標記一些標準 SharePoint 產生標記。

提供信用卡信用卡哪裡到期,執行的實際的計算,我使用的此方案的 XSL 範本 graciously 以 「 swirch 」 在 MSDN 論壇提供:
http://social.msdn.microsoft.com/Forums/en-US/sharepointcustomization/thread/aeda905b-9bc6-40c4-bd22-21306c5cb0d2/

下載 XSL 樣式表 (aging.zip) 我必須放在一起位於以下:
https://OneDrive.live.com/?cid=c262e8e2d59a86d9&permissionsChanged=1&id=C262E8E2D59A86D9 ! 104

開啟此您會看到的標準的 SharePoint XSL 標記,以呈現檢視中,如果您捲動到線條 357 您會看到我新增到標記的自訂範本開始您最愛的文字編輯器中,在 「 DateDiff 」 範本的第一個後面再加上 「 計算-凱撒-日 」 和 「 FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status 」。 以下是我們的三個範本,會讓我們] 檢視中顯示我們計算。 如果您要使用比本文稍早所指定的不同的欄位名稱,您必須瀏覽這些範本及取代任何其他名稱的參照。 請記住,您會想要使用 [不顯示名稱] 欄位的內部名稱的。

一旦您滿意範本已準備好移、 瀏覽至您的樣式庫 」 XSL 樣式表 」 資料夾中的 [上傳然後複製檔案連結。 這會讓我們輕鬆進行變更之後,或將其新增至網站的不同部分,因為我們請。

接下來,請移至您的清單,然後選取您之前在本文中所建立的檢視。 從 [網站動作] 功能表按一下 [編輯頁面]。

[網站動作] 功能表上的 [編輯頁面] 命令

尋找您的清單檢視網頁組件頁面上,然後開啟,請按一下小型向下箭號在右上角的 [網頁組件] 功能表。 從功能表選取 [編輯網頁組件]。

在 [網頁組件] 功能表上編輯 [網頁組件] 命令

這會開啟在瀏覽器視窗右側的網頁組件的功能表。

[網頁組件] 功能表

按一下 + 的 「 其他 」 區段,然後找出 [XSL 連結] 屬性。

[網頁組件] 功能表上的 XSL 連結屬性

在連結至您的 XSL 檔案較舊版本往下複製文件樣式庫中的貼上 (可以留相對或絕對連結)。

貼入的 XSL 檔案連結

按一下 [確定] 以儲存變更,然後按一下頁面上方的 [頁面] 功能區上的 「 停止編輯] 按鈕。

[頁面] 索引標籤上的 [停止編輯] 按鈕

如果所有項目已正確地設定您現在應該在您的 「 狀態天數] 欄會看到數字。

顯示數量的 [狀態天數] 欄

而最後,這是什麼看起來像部分測試資料的各種日期:

顯示測試資料的年限報表

摘要:

就是: 簡單的無程式碼實作完成過時報表中建立 SharePoint 的精美的格式、 穩固與佳的方式。 此相當幾個可能的應用程式保留項目使用此處我們探索的大小寫。 其他常見的情況,這種類型的報表將其附加至工作清單,使您可以看到多久之後概覽建立任務。

享受 !

-Justin

Justin Joyce LANtek

註解

步驟遺失
2012/10/8 3:51 AM
[確定我遵守步驟,但必須要有內容遺失-XSL 要如何判斷哪一個日期,若要使用,或其欄位新增到自工作日嗎?不喜歡其時的未接的步驟。

無程式碼,同意 !
2012/8/30 PM 12:12
我同意-我不想真的會計算為 「 無程式碼]。
有趣的是,透過 SharePoint 的一些 screwup,我必須使用計算結果的欄...使用 Today 不確定如何或為何因為無法取得一次,而是仍有顯示及運作正常。

公式的 「 狀態天數 「 導出資料行?
5/2/2012年 7:39 AM
Justin-您使用 [狀態天數 「 計算的網站欄 (版面配置區欄) 的公式是什麼? 是,「 今天 = 」?

SharePoint 2007
2011/12/2 上午 11:29
目前我不嘗試將套用此方案 SharePoint 2007,但我想要其。很抱歉沒有 XslLink 屬性運用在網頁組件透過 UI 上。

好文章
2011/11/30 AM 9:53
Hello,
很棒的文章。
我使用的 SharePoint 2007。
沒有如上所述的其他區段。
您有 SP2007 設定的步驟嗎?
感謝您。

回覆: 無程式碼解決方案: 顯示天,從 SharePoint 清單項目,最近變更
2011/10/11 AM 8:24
Hi Chris。
好尋找 !
i 前往看看什麼張貼 hopefully 稍後今天,請參閱是否我可以進行此方案更強大。
我正在樂意您最喜歡的文章,然後我正在很樂意地找到解決方案歐洲日期格式。 :)
-Justin

歐洲日期格式的解決方案
2011/10/11 AM 6:45
Hi 再次 Justin
參考,我找到解決方案提先前在此頁面中; 問題
https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/

歐洲日期格式
2011/10/7 3:59 AM
Hi Justin
這是很好的解決方案感謝您和的項目排序我已經花費尋找的最後兩天 !不過我會遇到的問題,我希望您可以協助我。
我已變更稍微 calcultate 的天數,直到發生,而不是後,程式碼中的 「 DateDiff 」 函數; 最後一行切換變數

< xsl:value-選取的 = 」 $JulianToday-$JulianStartDate 」 >< / xsl:value-的 >

不過我只可以將它放到 caclulate 正確的下半部時間的差異。因此,例如使用這個日期 (格式 MM/dd);

2011/30/12

計算正確,但是這個日期 (相同格式)

2011/12/10

它會計算如果 10 Dec 2011 而不是 12 位 Oct-2011年。
嘗試只要切換星期和月份的值的位置,在 「 JulianStartDate 」 變數中,像這樣。

< xsl: 使用參數名稱 ="月份"select="substring(ddwrt:FormatDateTime(string($StartDate),1033、 'yyyyMMdd 」)、 7、 2) 「 / >
< xsl: 使用參數名稱 = 「 日期 」 select="substring(ddwrt:FormatDateTime(string($StartDate),1033、 'yyyyMMdd 」)、 5、 2) 「 / >

,此修正問題的第二個日期,不過它是然後不正確的第一個日期 !
也已嘗試變更 FormatDateTime 的來電至] 歐洲 Lcid 和 FormatDateTime (例如 ddMMyyyy,MMddyyyy) 的最後一個參數的各種替換使用不成功的子字串位置參數至適當的調整。
大幅感謝您可以提供任何建議。
謝謝,
Chris

無程式碼
2011/9/21 上午 4:27
我不想 XSL 限定為 「 無程式碼 」 解決方案,以了解 XSL 語言不是針對每一個人-不過它不會包含程式設計。除了的: 部份的方案、 感謝您 !

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×