코드 없는 솔루션: 목록 항목이 마지막으로 변경된 이후 일 표시
Applies To
Microsoft 365의 SharePoint Microsoft 365 Small Business의 SharePointBy Justin Joyce, LANtek
참고: 이 문서는 SharePoint 최종 사용자용 포인트 블로그 가져오기 블로그 4년이 게시된 게시물의 일부입니다.
개요: 코드 없이 사용자 지정 의사
SharePoint 사이트에서 요청된 기능 부분 중 하나는 작업 또는 목록 항목에 대한 의미 있는 보고서입니다. 즉, 이 목록 항목이 마지막으로 수정된 이후 수/개월 수를 확인할 수 있나요?
이렇게 하는 표면은 매우 간단한 요청일 것 같습니다. 모든 항목을 만들고 수정한 후 일정 항목에 대한 날짜가 있을 경우 특정 변경 내용이 이벤트 받은 사람이 수행할 때 사용자 지정 날짜를 저장할 수 있습니다. Microsoft Excel 같은 수식을 포함할 수 있는 열이 계산되었습니다. 이는 매우 정교한 전달 제안과 유사한 것 같습니다. 날짜 필드를 선택하고 계산된 열을 만든 다음 [DateField] - [오늘]의 줄에 수식을 수행해 보세요. 아직는 안 됩니다! 이 "간단한" 작업을 시도한 사용자가 배지했으므로 계산된 열에 [오늘]과 같은 형식을 사용하려고 할 때 문제가 발생합니다. [오늘]을 계산된 열의 수식 상자에 삽입해 보도록 해보면 다음과 같은 오류 메시지가 표시됩니다.
왜 여기에 해당하는가? 계산된 열 계산 방법을 사용해야 합니다.
간단한 수식을 사용해 보려면 다음과 같은 간단한 수식을 사용합니다.
= IF( [Column1]<=[Column2], "OK", "Not 좋지 않음")
이것때 문의하여 Column1이 열2보다 작거나 같은 다음 값을 표시하고 그렇지 않을 경우 확인을 표시하지 않는것입니다. 이는 계산된 열에 대한 일반적인 기본 수식이며, 이를 사용하면 이러한 열이 포함된 목록 항목에 대한 기본적인 가정을 만듭니다. Column1 및 Column2의 값은 업데이트 이벤트 없이는 변경할 수 없게 됩니다.
이 제대로 계산된 열에서는 목록이 업데이트되면(또는 생성됨)이 항목 자체에 포함되어도 목록이 업데이트되면 다시 계산됩니다. 이 기능은 오늘 날짜와 같이 변경되는 항목에 무관한 날짜 등이 변경된 항목에 문제가 발생합니다.
이번에는 계산된 열이 작동한다는 사실을 알리지만, 예상 해도 예시를 들면 저는 성능을 위한 이 방법으로 대비해 나와 치열한다고 가정하게 알고 있겠습니다. 사용자가 여러 개의 항목 목록이 있는 경우 "실시간" 업데이트가 필요한 계산된 열이 포함된 여러 항목 목록이 있다고 가정해 보세요. 따라서 타이머 작업으로 인해 시간이 자주 계산된 열이 포함된 각 항목을 반복하여 값을 업데이트해야 합니다. 이 작업이 더 큰 배포에서는 이 작업을 계속 실행하고 변경할 수 있으므로, 성능 측면에서는 매우 크게 세워집니다. 이게 여기 있는 것은 알고 있지만 생각이 어때문에는 가리는 형식이 면어입니다.
SharePoint를 오늘라는 열을 먼저 만든 다음 수식에 추가하여 SharePoint를 아주 수락하려고 하는 과정을 비사하고 그과 유사한 해결 방법이 있습니다. 지금은 모두 유용하지만 계산된 열이 업데이트되는 시기를 기억해야 합니다. 이 값은 항목이 업데이트되면(일) 해당 값은 하루 중 일치가 올바르지 않게 되는 경우에만 변경됩니다.
Clever JavaScript를 사용하여 다른 사람들이 페이지에 값을 기록해 보고 있습니다. 또한 이렇게 개발 팀은 또한 대중교통적으로 축소할 수 있는 경우에도 클라이언트 스크립트에 대해 일주한 것입니다.
구현:
그렇다면 어떻게 해야 할까요? 계산된 열이 오늘처럼 "볼륨" 함수가 나오지 않습니다. 계산된 열, 타이머 작업 또는 예약된 프로세스와 같이 이를 처리하기 위해 일부 사용자 지정 코드를 개발하여 이 계산이 필요한 모든 단일 항목을 업데이트할 수 있습니다. 그러나 마지막 단락에서 멘션한 성능 문제로 인해 알려주고, 또한 해당 점을 추가적으로 문제의 사이트/목록/열과 관련된 사이트/목록에 고유한 사용을 위한 비트 솔루션입니다. 이 경우 이러한 두 결정자 상단에서 자신의 눈을 찾으며, 이 솔루션을 개발하는 방법을 알고 있습니다. 하지만 더 쉬운 방법이 있습니다.
사이트에 필드를 만들고 페이지를 편집할 수 있는 권한이 있고 XSLT에 대한 정보와 보기를 만들기 위한 몇 가지 자료가 있으면 목록 보기에 포함할 수 있는 XSL 서식 파일을 준비하여 페이지가 요청될 때마다 값을 정리하는 데 에우면 됩니다. 이 시나리오는 성능이 우수하며, 솔루션을 사용하여 사용자 지정 코드를 개발하고 배포할 필요가 없습니다.
아는 생각입니다. 어떻게 해야 하나요?
-
원본으로 활성화할 필드를 만들거나 선택합니다. 날짜 유형이어야 합니다.
-
계산되는 값에 대한 자리 표시자로 사용할 필드를 만든 경우
-
이러한 필드는 모두 콘텐츠 형식에 추가하고 목록에 해당 콘텐츠 형식을 추가합니다.
-
원본 및 개체 틀 열을 모두 포함하는 목록 보기를 만듭니다.
-
XSL 템플릿을 스타일 라이브러리에 업로드합니다.
-
UI를 통해 목록 보기 웹 파트의 "XSL 링크" 속성을 설정합니다.
-
성공!
예제 사용 사례를 살펴보고 구현을 살펴보시기 바다. 고객은 특정 목록 항목이 상태에 적은 기간을 알려주는 기본 목록을 보고자 했습니다. 이 목록에는 항목 형식에서 가져와 목록에 추가된 사용자 지정 사이트 콘텐츠 형식이 포함됩니다. 목록 항목의 상태 필드가 변경되어 "날짜 상태 변경"이라는 열에 저장될 때마다 이 날짜가 수락되는 이벤트 리더가 이미 있어 발생했습니다. 이 우선 위반은 필수는 없으며 모든 날짜 필드를 사용하여 수행할 수 있습니다(구현은 구현이지만 시도할 수 있는 이유자 무료 내일) 가장 적은 사실은 원본 날짜 필드와 계산(다음 단락에 추가된 추가 정보)을 목록에 추가하는 자리 표시자 필드이지만, 사이트의 다른 위치에서 이 솔루션을 다시 사용하려면 사이트 열과 사이트 콘텐츠 형식을 사용하는 것을 제안합니다.
따라서 오늘 날짜에 따라 계산에 사용할 수 있는 원본 날짜가 있습니다. 이제 계산된 값에 대한 컨테이너로 사용할 사용자 지정 사이트 열을 만들 수 있습니다. 이 경우 계산된 열을 새 항목이나 편집할 수 없으니 이 경우에는 편집할 수 없지만 이 열에 사용자가 예상 값을 입력하지 않도록 하려면 보기에서 표시되도록 선택할 수 있습니다. 보기에 표시되지 않는 이유가 무시하는 것은 번들습니다.
이제 사이트 열이 준비되어 준비한 콘텐츠 형식에 추가할 수 있습니다. 다음으로, 나중에 XSLT로 사용자 지정할 보기를 만들어야 합니다. 원본 날짜 열과 계산된 값에 대한 개체 틀로 사용할 새 계산된 열이 포함된 표준 보기를 만들어야 합니다.
이제 사용자 지정 해구성 보고서를 지원하는 데 필요한 모든 것을 배치했습니다. 그래남 남아 있는 XSL 서식 파일을 만들고 사이트의 스타일 라이브러리에 업로드한 후 Microsoft 목록 보기에 연결하고 있습니다. 사용할 XSL 서식 파일은 보기를 생성하기 위한 일부 일반 SharePoint 생성 태그와, 이 항목의 특정 부분을 재정의하고 Microsoft에서 필요한 값을 계산하기 위해 사용되는 고유한 사용자 지정 태그를 포함시키기 위해 다르게 사용할 것입니다.
크레딧이 오인 경우 크레딧을 제공하고, 이 솔루션에 사용하는 실제 계산을 위한 XSL 템플릿은 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" 서식 파일과 "julian-day" 서식 파일과 "FieldRef_printTableCell_EcbAllowed.Days_x0020_At_x0020_Status"가 차례로 표시됩니다. 이서식 파일을 사용하여 보기에서 계산을 표시해 주는 3가지 서식 파일입니다. 이 문서의 이전에 설명한 것과 다른 필드 이름을 사용하려는 경우에는 이러한 서식 파일을 검토한 후 다른 이름에 대한 참조를 바꾸어야 합니다. 이 때문에 필드의 내부 이름은 표시 이름이 아닌 필드의 내부 이름을 사용하게 됩니다.
서식 파일이 준비된 후에는 스타일 라이브러리로 이동하여 "XSL 스타일시트" 폴더 아래에 업로드한 다음 파일에 대한 링크를 복사합니다. 손쉽게 변경하거나 사이트의 다른 부분에 추가할 수 있습니다.
다음으로, 목록으로 이동하여 이 문서의 이전에 만든 보기를 선택합니다. "사이트 작업" 메뉴에서 "페이지 편집"을 클릭합니다.
페이지에서 목록 보기 웹 파트를 찾고 오른쪽 위 모서리에 있는 작은 아래쪽 화살표를 클릭하여 웹 파트 메뉴를 엽니다. 이 메뉴에서 "웹 파트 편집"을 선택합니다.
이렇게 하면 브라우저 창 오른쪽에 웹 파트의 메뉴가 열립니다.
"대서" 섹션의 +를 클릭하고 "XSL 링크" 속성을 찾습니다.
이전에 복사한 스타일 라이브러리에 있는 XSL 파일에 대한 링크를 붙여넣습니다(상대 또는 절대 링크일 수 있음).
"확인"을 클릭하여 변경 내용을 저장한 다음 페이지 상단에 있는 "페이지" 리본의 "편집 중지" 단추를 클릭합니다.
모든 항목이 올바르게 구성된 경우 "상태의 일 수" 열에 숫자가 표시됩니다.
마지막으로, 다음은 다양한 날짜를 테스트할 때 다음과 같은 모양입니다.
요약:
이기능은 매우 서식이 지정된 포형이고 유해하며 SharePoint에서 분석 보고서를 만드는 향상적인 방법을 제공하며 코드 없는 구현이 제공됩니다. 그러면 사용 사례에서 고려된 몇 가지 잠재적 응용 프로그램이 있습니다. 이러한 유형의 보고서에 대한 또 다른 시나리오는 작업을 한눈에 확인할 수 있도록 작업 목록에 첨부하는 것입니다.
즐겁게 사용해 보세요!
--Justin
Justin Joyce, LANtek
메모
단계 별약
2012-10-08 오전 3:51 단계를 수행했는데 누군가가 무엇을 사용해야 하는지, XSL에서 사용할 날짜를 알아야 하는지, 그 이후 일 수치를 추가할 필드가 무엇인가요? 단계를 모두 따르면 간단합니다.아니요 코드를 입력하지 않습니다!
2012-08-30 12:12 동의합니다. 저는 이 메시지가 실제로 "코드 없음"으로 간주됩니다. SharePoint의 몇 가지 스크로 이루어진 이기까지 이프로젝트에는 현재 사용 계산 열이 있습니다. 다시 구할 수 없지만 아직 과정인지 잘 작동하지 않아도 되는지 모르세요."상태일" 계산된 열의 수식
2012-05-02 7:39 AM Justin - "상태"를 사용한 수식이 사이트 열(개체 틀 열)의 계산된 경우 "오늘은"여기 있나요?SharePoint 2007
2011-12-02 11:29 AM 현재 이 솔루션을 SharePoint 2007에 적용하지 않았지만 찾고 있는 중입니다. UI를 통해 웹 파트에는 표시된 XSLLink 속성이 없습니다.우수한 게시물
2011-11-30 9:53 안녕하세요. 우수한 게시물입니다. SharePoint 2007을 사용 중입니다. 위에서 표시한 대로 누구의 섹션이 없습니다. SP2007 구성에 대한 단계가 있나요? 감사합니다.Re: 코드 없는 솔루션: SharePoint 목록 항목이 마지막으로 변경된 이후 일 표시
2011-10-11 8:24 AM 안전이 있습니다. 원하는 항목을 찾으세요! 지금 나중에 게시한 내용을 살펴보고 이 솔루션을 약간 더 보기 좋게 만들 수 있는지 확인하겠습니다. 저는 올라고 물어보고 유로화된 표준 시기를 바꾸로 클릭해 보겠습니다. :) -Justin유유자 날짜 서식용 해결 방법 https://sharepointbydummies.wordpress.com/2011/07/13/possible-work-around-to-date-format-issue-sharepoint-2010/
2011-10-11 오전 6:45 AM 한번 안에서 FYI, I은 이전에 이 페이지에서 나서 설명한 문제의 해결 방법을 찾니다.유유 날짜 서식
2011-10-07 3:59 AM 안내를 이는 우연히 우리가 저희에게 도달하는 문제를 해결하고 최종 2일을 찾은 항목만큼 찾은 값으로 구성되었습니다! 하지만 문제가 발생하여 도움이 필요하다고 생각하면 지원을 수월했습니다. "DateDiff" 함수의 마지막 줄에서 변수를 전환하여 이후로 발생할 때까지 코드가 어겨지는 기간(일수)을 조금 평가하도록 조금 개선했습니다. <xsl:value-of select="$JulianToday - $JulianStartDate"></xsl:value-of> 그러나 시간의 차이를 정확하게 배치할 수는 있습니다. 따라서 이 날짜(dd/MM/yyyy 형식); 2011-30-12 계산된 계산 값은 제대로 계산되지만 이 날짜를 사용(동일한) 2011-12-10 필드는 2011년 10월 12일이 아는 10-12-12가 아는 그 경우에 계산됩니다. 이와 같이 "JulianStartDate" 변수에서 요일과 월 값의 위치를 전환하는 방법을 시도했습니다. <xsl:with-param name="Month" select="substring(ddwrt:FormatDateTime(string($StartDate), 1033, 'yyyyMmdd'),7,2)"/> <xsl:with-param name="Day" select="substring(ddwrt:FormatDateTime(string($StartDate), 1033, 'yyyyMmdd'),5,2)"/> 하지만 두 번째 날짜의 문제가 해결되었는데 첫 번째 날짜에 문제가 수정되었습니다. 성공하지 않은 후속 문자열 매개 변수에 적절한 조정이 포함된 EURopean LCID 및 다양한 대체 변수를 FormatDateTime(예: DDMMyyyy, MMddyyy)에 사용할 수 있는 형식변경을 변경하려고 했습니다. 이 행사를 제공할 수 있는 모든 행위임을 표게 됩니다. 감사합니다. Chris코드 없음
2011-09-21 오전 4:27 XSL 자격을 "코드 없는" 솔루션이 아닌 것으로 생각하지만 프로그래머가 프로그래머가 아닌 것은 아닌 것으로 생각하지 않습니다. 이외에도 부유한 해결 방법, 감사합니다.