2009-07-07 2 views
4

나는 다음과 같은 식으로, 사용자 정의 셰어 2007 목록에서 계산 된 열이 있습니다 항목을 목록에 작성하는 경우SharePoint : 목록 항목을 편집 할 때 계산 된 열 값이 사라집니다. 어떤 아이디어?

=CONCATENATE("IR-",[ID],"-",LEFT(UPPER([Title]),25)) 

, 모든 항목이 [ID]를 업데이트 할 때,하지만, 괜찮습니다 항목이 더 이상 계산 항목에 없습니다.

그래서, 작성시 : "IR-40-TheTitleIsHere"이지만 편집 후 "IR-TheTitleIsHere"입니다.

왜 이런 일이 일어날 지에 대한 통찰력이 있습니까?

+3

있습니까? 많은 기사가 Add 연산 중에는 ID를 사용할 수 없다고 말하기 때문에 아직 생성되지 않았기 때문입니다. 따라서 ID를 기반으로 계산 된 열의 값을 얻으려면 값을 반영 할 수 있도록 항목을 편집해야합니다. – Kusek

+0

그래, 이제 네가 그걸 언급 했으니 네가 옳다고 생각해. 계산 된 열 (아무 것도 편집하지 않아도 됨)을 입력 한 다음 "확인"을 클릭하면 모든 ID가 생성/계산되고 모든 것이 누락 된 것 같습니다. 그러나 그 후에 레코드를 편집하면 해당 레코드에 대해 [ID] 값이 다시 사라집니다. * 한숨 * 계산의 ID 부분을 갖는 방법에 대한 의견이 있고 레코드 편집을 고수해야합니까? – program247365

답변

4

나는 위에서 언급 한 행동을 확인합니다. 모든 추가/편집은 [ID] 부분을 지 웁니다. 목록에서 열을 편집하고 수식을 업데이트하면 모든 목록 항목이 올바른 것으로 업데이트됩니다 (항목을 편집 할 때까지).

발견 번호 this post that mentions the same problem.

유일한 해결 방법은 목록의 텍스트 필드를 업데이트하는 SharePoint Designer를 사용하여 간단한 워크 플로를 만드는 것입니다.

+0

예. SharePoint 워크 플로가 유일한 솔루션처럼 들립니다. 감사. – program247365

1

나는 비슷한 문제를 가지고있다. 다른 블로그와 전문가를 통해 [ID] 열이 계산 된 열에서 사용되어서는 안되며, 그 이유는 혼란을 가져오고 많은 오류가 발생하기 때문입니다. 죄송합니다 - ID 열을 제거하십시오.

1

이 질문은 다소 오래되었지만 동일한 문제가있어 해결책을 찾았습니다. 꽤 구체적인 수정 사항이며 모든 사람들을 돕지는 않습니다 - 콘텐츠 편집기 웹 파트에서 자바 스크립트를 사용하여 계산 된 필드를 업데이트해야합니다.

이 사이트 - http://blog.pathtosharepoint.com/2008/09/01/using-calculated-columns-to-write-html/ - 내가 사용한 것과 같은 방식으로 자바 스크립트를 사용하는 방법에 대한 예제를 제공합니다. 중요한 코드 블록은 첫 번째 while 루프입니다. 요점은 목록에서 상자 밖의 ID 열을 잡고 ID가 필요한 계산 된 필드를 업데이트하는 것입니다.

제 경우에는 매개 변수로 ID가 필요한 계산 된 필드에 URL이 있습니다. 물론 계산 된 필드에 ID를 넣을 수 없기 때문에 정상적으로 작동하지 않습니다. 내가 한 것은 "계산 된 필드의 URL의 ID 매개 변수에"? ID = null "을 넣은 다음 자바 스크립트를 사용하여 검색 한 ID로 대체했습니다. 따라서 페이지가로드 될 때마다 js가 모두 실행되고 모두 업데이트됩니다. URL 중 올바른 ID를 보유하고 있어야합니다.

+1

정보를 제공해 주셔서 감사합니다! – program247365

+0

SharePoint 2010에서 해결 방법이 있습니까? SharePoint 2010에 대한 JavaScript 코드를 시도했지만 작동하지 않았습니다. – hemalshah

0

나는 이것이 아주 오래되었다는 것을 알고 있지만 다른 곳에서는 새로운 버전의 질문을 찾을 수 없었고 ferr에서 위의 답은 나를 위해 문제를 해결했지만 매우 명확하지 않아서 업데이트 할 것이라고 생각했다.

이것은 출력 HTML에서 ID를 사용한다고 가정합니다 (예 : 링크 내에서). 이것은 매우 일반적이라고 생각합니다. 내가 가진 ID를 얻기 위해 다음에서 추가 pathtosharepoint 링크에서 자바 스크립트를 사용

경우 안전을 위해 문 :

if (HTMLregexp.test(CellContent)) { //original pathtosharepoint line 
    if (NodeSet[i].parentNode.getAttribute("iid")){ 
     var SPID = NodeSet[i].parentNode.getAttribute("iid").split(",")[1]; 
     CellContent = CellContent.replace("SPIDReplace", SPID) 
    } 
NodeSet[i].innerHTML = CellContent; //original pathtosharepoint line 

이이 글을 쓰는 시점에서 최신 pathtosharepoint 수정의 while 루프에 넣어 . 이 작업은 SharePoint 2010에서 가능합니다. 참고 : 계산 된 열에 "SPIDReplace"라는 문자열을 포함시켜 항목 ID로 바꾸십시오.

pathtosharepoint 페이지 : http://blog.pathtosharepoint.com/category/calculated-columns/ pathtosharepoint 코드 : 당신은 편집이 휴식해야 http://pathtosharepoint.com/Downloads

+0

실제로 새로운 대안을 사용한 오래된 정보 (일부 유스 케이스의 경우)는 http://stackoverflow.com/questions/28986458/columns-dereferencing-in-sharepoints-calculated-column을 참조하십시오. –