바는 아직도 꽤 높은 확장 이끼

오늘, 클라이언트 사용 되었고 콘텐츠 쿼리 웹 파트를 수정 하 고 추가 비트의 콘텐츠 형식에서 정보를 표시 하는 방법을 설명 하.

"첫 번째., 데이터 원본에 연결할 CQWP 구성, 다음 워크스테이션에 내보내기, 수정 <CommonViewFields>, 업로드, 원래 제거 하 고 그것은 지금 ' 액’ 다른 열을 표시 하려면. 다음, SharePoint designer를 엽니다, 사이트 모음 루트에 이동 하 고 ItemStyle.xsl를 찾습니다. 유용한 시작 지점으로 템플릿 중 하나를 복사합니다. 다시가 고 있도록 CQWP 수정이 새 서식 파일의 사용. 마지막으로, 새 필드를 렌더링 하 여 템플릿을 수정합니다! (그래서 다른 사용자에 다시 결과 볼 수를 확인 하는 것을 잊지 마세요)."

그것은 모두 당신을 아주 분명 하다 (그리고 대부분의 SharePoint 개발자 유형) 무슨 일인가 하 고 어떻게 그것은 꽤 좋은, 정말, 데이터 검색 측면에서 CQWP의 데이터 프레 젠 테이 션 측면에서 너무 잘 분리는. 하지만, 그것은 그렇게 쉽게 설명, 그것은?

<끝 />

테크노 태그: ,

콘텐츠 쿼리 웹 파트 결과 눈금에 표시 / 테이블

개요 및 목표

상자, 모스’ 콘텐츠 쿼리 웹 파트 (CQWP) 목록 형식으로 결과를 표시 합니다., 검색 결과 유사. 그것은 또한 표 형태로 결과 표시 수 (즉. HTML 테이블 형식). 그리드 포맷은 어떤 경우에 더 나은. 나는이 기사에서 그 효과 달성 하는 방법 설명.

비즈니스 시나리오

엔터프라이즈 모스 롤아웃에는 클라이언트와 일. 우리는 디자인의 분류는 프로젝트 계층 구조에서 첫 번째 클래스 시민 그들의 자신의 최상위 사이트. 프로젝트 관리자 프로젝트 요약 정보의 단일 목록을 유지합니다, 제목과 같은, 예산, 예상된 완료 날짜, 남은 예산 및 다른 요약 형식 필드. "단일에 의해" 사용자 지정 SharePoint 목록을 하나의 항목을 포함 하는 보장을 의미합니다. Simplistically, 그것은 이것 처럼 보인다:

이미지

기술 방식은 거의 같은 설명 여기 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!447.entry). CQWP XSL 변환을 사용 하 여 렌더링 하는 브라우저에 대 한 HTML을 방출.

난 항상 XSL XSL은 악몽 때문에 다이빙 하기 전에 결과를 그리 다. 여기는 내 원하는 결과:

이미지

이 처럼 HTML 생성 결과:

<html>
 <바디>
 <센터>
 <테이블 테두리= 1>

<!-- 라벨->
 <tr bgcolor블루 =>
 <td><글꼴 = 흰색><b>프로젝트 이름</b></글꼴></td>
 <td 정렬오른쪽 =><글꼴 = 흰색><b>완료 날짜</b></글꼴></td>
 <td 정렬오른쪽 =><글꼴 = 흰색><b>예산</b></글꼴></td>
 <td 정렬오른쪽 =><글꼴 = 흰색><b>실제 비용</b></글꼴></td>
 <td><글꼴 = 흰색><b>전반적인 상태</b></글꼴></td>
 </tr>

<tr>
 <td>다시 컴퓨터 룸.</td>
 <td 정렬오른쪽 =>02/01/08</td>
 <td 정렬오른쪽 =>22,500.00</td>
 <td 정렬오른쪽 =>19,000.00</td>
 <td>진행 중</td>
 </tr>

<tr>
 <td>SQL 업그레이드에 대 한 제공 서버</td>
 <td 정렬오른쪽 =>04/01/08</td>
 <td 정렬오른쪽 =>7,500.00</td>
 <td 정렬오른쪽 =>0.00</td>
 <td>계획</td>
 </tr>

</테이블>
 </센터>
 </바디>
</html>

접근

표를 만들려면 다음이 단계를 따르십시오:

  1. 그리드의 구성 요소 식별 (행/열).
  2. 정의 하 고 필요한 사이트 열 만들기.
  3. 프로젝트 및 단일 목록에 대 한 하위 사이트 만들기.
  4. CQWP 웹 페이지에 추가 하 고 귀하의 목록에 대 한 검색 구성.
  5. 추가 열을 수집 하는 CQWP XML 수정.
  6. 테이블을 생성 하는 XSL을 수정.

6 번에 집중 하려고 해요. 숫자 4를 통해 직선-앞으로 이며 뭔가 CQWP 사용자 이미 완료. 숫자 5는 MSDN에서이 완전 한 스크린 샷 라덴된 문서를 포함 하 여 다른 사람에 의해 문서화 되었습니다. 여기 (http://msdn2.microsoft.com/en-us/library/bb897399.aspx) 그리고 헤더 솔로몬의 블로그 여기 (http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx).

볼트와 너트

시작 및 MSDN 설명서와 헤더 솔로몬 제 5-1 단계를 구현.

이 시점에서, 당신의 CQWP 페이지에 추가 하 고 당신은 당신의 <CommonViewFields> 필요에 따라 구성.

다음 일반적인 단계, 이러한 중간 결과 얻을:

1. 콘텐츠 형식 만들기, 해당 콘텐츠 형식 및 두 사이트에 대 한 templatized 사용자 지정 목록. 여기는 콘텐츠 형식:

이미지

여기에 사이트 구조:

이미지

2. 내 프로젝트 하위 사이트와 단일 프로젝트 요약 목록을 만든 후에 CQWP 추가:

이미지

3. 통해 원하는 모든 추가 정보를 추가 합니다 <CommonViewFields>:

        <속성 이름="CommonViewFields" 유형="문자열">Project_x0020_Name;Project_x0020_Expenses;Project_x0020_Status;Project_x0020_Start_x0020_Date;Project_x0020_End_x0020_Date;Project_x0020_Budget</속성>

참고 한 줄에 모든 속성 필드 유지 했다 작동 하지 않을 (CQWP 쿼리 반환 항목이 없습니다 내게 말할 것 이다).

4. 이 시점에서, 우리는 MSDN 문서 넘어 이동할 준비와 헤더 솔로몬의 기사를 통해 플립에. 그녀의 단계 단계 근처 시작 #5 사용자 정의 만들려면 / ItemStyle.xsl의 고스트 되지 않은 버전. 내가 헤더의 조언에 따라, 단계까지 11 이러한 중간 결과 얻을:

4.1: 나 XSL 서식 파일을 다음과 같이 이름을:

<xsl:서식 파일 이름 = "그리드" 경기 = "행[@Style = '그리드']" 모드 = "itemstyle">

나는 또한 약간 제안 그녀 수정 <xsl:각각에 대 한 …> 추가 하 여 한 <br /> 청소기 목록을 제공 하는 태그:

    <xsl:각각에 대 한 선택="@*">
      P:<xsl:값의 선택="이름()" /><br/>
    </xsl:각각에 대 한>

4.2: 웹 파트를 수정, 모양에가 서 하 고 내 "그리드를 선택" 스타일:

이미지

변경 내용을 적용 하 고 여기 결과입니다.:

이미지

우리가 우리가 원하는 필드 위의에서 볼 수 있습니다. (프로젝트 이름, 비용, 상태, 등) 우리가 HTML을 내보낼 때 사용 하는 사용할 수 있습니다.. 뿐만 아니라, 하지만 우리는 우리가 XSL에 해당 열을 참조 해야 합니다 이름을. 예를 들어, 우리는 "Project_x005F_x0020_Name"로 프로젝트 상태를 참조.

이 시점에서, 우리이 거 인의 어깨 및 헤더의 블로그에서 출발, 난 내 자신의 작은 비트를 추가.

ContentQueryMain.xsl

참고: ItemStyle.xsl와 ContentQueryMain.xsl 모두를 변경 하는 경우, 변경의 효과 보고 하기 전에 이러한 파일에 다시 체크 해야.

그리드 만들기 위해, 모스 두 개의 다른 XSL 파일을 사용 하 여 우리는 CQWP에서 참조 하는 결과 생성 하. 출력의 이전 비트를 생성 하, ItemStyle.xsl 수정. MOSS는 실제로 다른 XSL 파일을 사용 하 여, ContentQueryMain.xsl에는 HTML을 생성 하는 ItemStyle.xsl와 함께. 그 이름에서 알 수 있듯이, ContentQueryMain.xsl은 "메인" 번역의 전반적인 흐름을 제어 하는 XSL. 그것은 발견된 된 모든 항목을 반복 하 고 ItemStyle.xsl에 한 명씩 템플릿에 전달. 우리는 오픈을 생성 하는 ItemStyle.xsl를 수정 합니다. <테이블> 데이터 및 폐쇄의 첫 번째 행을 방출 하기 전에 태그 <테이블> 마지막 행을 방출 후 태그. 이렇게 하려면, ContentQueryMain.xsl은 우리의 "모눈에 두 개의 매개 변수를 전달 하도록 수정" ItemStyle.xsl 서식 파일, "마지막 행" 그리고 "현재 행". ItemStyle.xsl 사용 하 여 이러한 조건에 따라 필요한 태그를 방출.

헤더 솔로몬의 기술을 사용 하 여, 우리는 ContentQueryMain.xsl를 찾습니다.. 그것은 ItemStyle.xsl와 같은 장소에 있습니다. 이 스크린 샷을 도움이 될:

이미지

우리는 다음과 같이 변경 해야:

  • Xsl 서식 파일 수정, "CallItemTemplate" 그는 실제로 ItemStyle.xsl에 우리의 격자 서식 파일 호출. 우리을 것입니다 열고 닫는 조건에 따라 생성 하는 데 필요한 데이터 표 서식 파일에 두 개의 매개 변수를 전달 합니다. <테이블> 태그.
  • "CallItemTemplate을 호출 하는 ContentQueryMain.xsl의 또 다른 비트 수정" LastRow"전달" 그 LastRow 우리의 격자 서식 전달 될 수 있도록 하는 매개 변수.

"OuterTemplate.CallItemTemplate 라는 서식 파일을 찾습니다" 문자열에 의해 식별:

  <xsl:서식 파일 이름="OuterTemplate.CallItemTemplate">

모든 서식 파일을 다음과 같이 바꿉니다:

  <xsl:서식 파일 이름="OuterTemplate.CallItemTemplate">
    <xsl:param 이름="CurPosition" />

    <!--
      LastRow"추가" 매개 변수.
      우리만 사용할 때에 항목 스타일 패스 "그리드".
    -->
    <xsl:param 이름="LastRow" />

    <xsl:선택>
      <xsl:때 테스트="@Style = 'NewsRollUpItem'">
        <xsl:적용 템플릿 선택="." 모드="itemstyle">
          <xsl:param으로 이름="EditMode" 선택="$cbq_iseditmode" />
        </xsl:적용 템플릿>
      </xsl:때>
      <xsl:때 테스트="@Style = 'NewsBigItem'">
        <xsl:적용 템플릿 선택="." 모드="itemstyle">
          <xsl:param으로 이름="CurPos" 선택="$CurPosition" />
        </xsl:적용 템플릿>
      </xsl:때>
      <xsl:때 테스트="@Style = 'NewsCategoryItem'">
        <xsl:적용 템플릿 선택="." 모드="itemstyle">
          <xsl:param으로 이름="CurPos" 선택="$CurPosition" />
        </xsl:적용 템플릿>
      </xsl:때>

      <!--
              표 itemstyle.xsl 서식 파일을 현재 위치 및 lastrow 전달.
              ItemStyle.xsl 열기를 방출 하는 사용 하는 것입니다 및 닫기 <테이블> 태그.
      -->
      <xsl:때 테스트="@Style = '그리드'">
        <xsl:적용 템플릿 선택="." 모드="itemstyle">
          <xsl:param으로 이름="CurPos" 선택="$CurPosition" />
          <xsl:param으로 이름="최근" 선택="$LastRow" />
        </xsl:적용 템플릿>
      </xsl:때>

      <xsl:그렇지 않으면>
        <xsl:적용 템플릿 선택="." 모드="itemstyle">
        </xsl:적용 템플릿>
      </xsl:그렇지 않으면>
    </xsl:선택>
  </xsl:서식 파일>

변경의 용도 설명 하는 코멘트.

물론, "OuterTemplate.CallItemTemplate" 다른 서식 파일에서 호출 자체. 이 텍스트 문자열에 대 한 검색 하 여 해당 서식 파일을 찾습니다:

<xsl:서식 파일 이름="OuterTemplate.Body">

OuterTemplate.Body의 지침을 통해 스크롤 및 LastRow 매개 변수를 다음과 같이 삽입 (기울임꼴로 표시 된 주석으로 표시):

<xsl:통화 서식 이름="OuterTemplate.CallItemTemplate">
  <xsl:param으로 이름="CurPosition" 선택="$CurPosition" />
  <!-- LastRow 매개 변수 삽입. -->
  <xsl:param으로 이름="LastRow" 선택="$LastRow"/>
</xsl:통화 서식>

이 모든 후, 우리는 마침내 우리의 ItemStyle.xsl 방출 수 있도록 제대로 설정 하는 것이 <테이블> 바로 이곳에서 태그.

ItemStyle.Xsl

참고: 다시, 이러한 변경의 효과 볼 수 있도록 변경한 후 ItemStyle.xsl에서 확인.

우리는 여기에 두 가지 작업:

  • 전체 격자 서식 파일 바꾸기. 당신이 수 있는 복사/붙여넣기 아래에서.
  • 일부 점보 "formatcurrency 수 있도록 템플릿 정의 외부 추가" 작업 서식 파일. (XSL에 얇은 핸들 것을 알 수 있습니다.).

첫 번째, ItemStyle.xsl의 위쪽, 이 라인을 추가:

  <!-- 미국 표시를 수 있도록 몇 가지 미신 적 점보. 통화. -->
  <xsl:10 진수 형식 이름="직원" 자리="D" />

  <xsl:서식 파일 이름="기본" 경기="*" 모드="itemstyle">

내가 직접 전에 추가 하는 참고는 <xsl:서식 파일 이름을 "기본 =" …> 정의.

다음, 다시 우리의 격자 서식 파일 이동. 아래 코드와 함께 전체 그리드 서식 파일 교체. 그것은 철저 하 게 주석 처리, 하지만 이메일로 또는 질문이 있으시면 제 블로그에 덧 글을 남길 주저 하지 마시고.

  <xsl:서식 파일 이름="그리드" 경기="행[@Style = '그리드']" 모드="itemstyle">

    <!--
      ContentMain.xsl 전달 CurPos 및 마지막.
      이를 사용 하 여 조건부로 열기를 방출 및 닫기 <테이블> 태그.
    -->
    <xsl:param 이름="CurPos" />
    <xsl:param 이름="최근" />

    <!-- 다음 변수는 표준 ItemStyle.xsl에서 수정 -->
    <xsl:변수 이름="SafeImageUrl">
      <xsl:통화 서식 이름="OuterTemplate.GetSafeStaticUrl">
        <xsl:param으로 이름="UrlColumnName" 선택="' ImageUrl'"/>
      </xsl:통화 서식>
    </xsl:변수>
    <xsl:변수 이름="SafeLinkUrl">
      <xsl:통화 서식 이름="OuterTemplate.GetSafeLink">
        <xsl:param으로 이름="UrlColumnName" 선택="' LinkUrl'"/>
      </xsl:통화 서식>
    </xsl:변수>
    <xsl:변수 이름="DisplayTitle">
      <xsl:통화 서식 이름="OuterTemplate.GetTitle">
        <xsl:param으로 이름="제목" 선택="@Title"/>
        <xsl:param으로 이름="UrlColumnName" 선택="' LinkUrl'"/>
      </xsl:통화 서식>
    </xsl:변수>
    <xsl:변수 이름="LinkTarget">
      <xsl:만약 테스트="@OpenInNewWindow = 'true'" >_blank</xsl:만약>
    </xsl:변수>

    <!--
      우리는 변수를 정의 하는 여기, "tableStart".  이 테이블의 열 레이블을 오프닝 정의를 사용 하 여 HTML을 포함.  경우 CurPos = 1, 그것은 CDATA 태그에 HTML을 포함.
      그렇지 않으면, 그것은 비어 있을 것입니다..

      TableStart의 값은 emited ContentQueryMain.xsl 통해 ItemStyle를 호출할 때마다.
    -->
    <xsl:변수 이름="tableStart">
      <xsl:만약 테스트="$CurPos = 1">
        <![CDATA[
        <표 테두리 = 1>
          <tr bgcolor = "블루">
            <td><글꼴 색 = "화이트"><b>프로젝트 이름</b></글꼴></td>
            <td 정렬 "오른쪽" =><글꼴 색 = "화이트"><b>완료 날짜</b></글꼴></td>
            <td 정렬 "오른쪽" =><글꼴 색 = "화이트"><b>예산</b></글꼴></td>
            <td 정렬 "오른쪽" =><글꼴 색 = "화이트"><b>실제 비용</b></글꼴></td>
            <td><글꼴 색 = "화이트"><b>전반적인 상태</b></글꼴></td>
          </tr>
        ]]>
      </xsl:만약>
    </xsl:변수>

    <!--
      또 다른 변수, tableEnd 단순히 정의 닫는 태그 테이블.

      TableStart와 마찬가지로, 그것은 항상 emited.  이 때문에 그 값이 조건부로 여부 우리 ContentQueryMain.xsl에 의해 마지막 행 통과 되었습니다 했습니다 따라 할당.
    -->
    <xsl:변수 이름="tableEnd">
      <xsl:만약 테스트="$CurPos = $Last">
        <![CDATA[ </테이블> ]]>
      </xsl:만약>
    </xsl:변수>

    <!--
      TableStart의 내용을 항상 방출.  이것이 ContentQueryMain.xsl에 의해 우리에 게 전달 된 첫 번째 행, 그럼 우리가 그 값은 비게 됩니다 알고.

      때문에 출력 이스케이프를 비활성화 때 tableStart 하지 비워두고, 우리는 브라우저에서 렌더링 하고자 하는 실제 HTML을 포함 하 고 있습니다..  우리가 말하지 않는 XSL 파서가 사용 하지 않으려면 출력 이스케이프, 그것은 같은 물건을 생성 됩니다 "&lt;테이블&gt는;" 대신 "<테이블>".
    -->
    <xsl:값의 선택="$tableStart" 사용 안 함-출력 이스케이프=""/>


    <tr>
      <!--
      P:Project_x005F_x0020_Name P:Project_x005F_x0020_End_x005F_x0020_Date P:Project_x005F_x0020_Budget P:Project_x005F_x0020_Expenses P:Project_x005F_x0020_Status
      -->
      <td>
        <xsl:값의 선택="@Project_x005F_x0020_Name"/>
      </td>

      <td 정렬="오른쪽">
        <xsl:값의 선택="@Project_x005F_x0020_End_x005F_x0020_Date"/>
      </td>

      <td 정렬="오른쪽">
        <xsl:통화 서식 이름="formatcurrency">
          <xsl:param으로 이름="" 
선택="@Project_x005F_x0020_Budget"></xsl:param으로> </xsl:통화 서식> </td> <td 정렬="오른쪽"> <xsl:통화 서식 이름="formatcurrency"> <xsl:param으로 이름="" 선택="@Project_x005F_x0020_Expenses">
</xsl:param으로> </xsl:통화 서식> </td> <td> <xsl:값의 선택="@Project_x005F_x0020_Status"/> </td> <!-- 다음의 모든 것 들을 명확 하 게 주석으로 처리. 그러나, 그것을 돌려 보내야 하 고 그것으로 물건을 <td> 그것의 효과 볼 수. --> <!-- <div id = "linkitem" 클래스 = "항목"> <xsl:만약 테스트 = "문자열 길이($SafeImageUrl) != 0"> <사업부 클래스 = "이미지 영역 왼쪽"> <a href = "{$SafeLinkUrl}" 대상 = "{$LinkTarget}"> <img 클래스 = "이미지-조정-너비" src = "{$SafeImageUrl}"
alt = "{@ImageUrlAltText}"/> </는> </div> </xsl:만약> <사업부 클래스 = "링크 항목"> <xsl:통화 서식
name="OuterTemplate.CallPresenceStatusIconTemplate"/> <a href = "{$SafeLinkUrl}"
대상 = "{$LinkTarget}" 제목 = "{@LinkToolTip}"> <xsl:값의 선택 = "$DisxslyTitle" /> </는> <사업부 클래스 = "설명"> <xsl:select="@Description 값의" /> </div> </div> </div>
--> </tr> <!-- 방출 닫는 태그 테이블. 우리는 마지막 행에 있지 않은 경우, 이 비어 있을 것입니다.. --> <xsl:값의 선택="$tableEnd" 사용 안 함-출력 이스케이프=""/> </xsl:서식 파일> <xsl:서식 파일 이름="formatcurrency"> <xsl:param 이름="" 선택="0" /> <xsl:값의 선택='형식 번호($값, "$DDD,DDD,DDD입니다.DD ", "직원")' /> </xsl:서식 파일>

계단식 드롭다운 표준 WSS 또는 MOSS 데이터 입력 화면을 지원 하지 않습니다. (또는 다른 내부-통신에서)

업데이트 (04/2008): 이 멋진 블로그 항목 표시이 문제에 대 한 좋은 자바 스크립트 기반의 접근: http://webborg.blogspot.com/2008/04/add-functions-and-events-to-sharepoint.html

2 차 업데이트: (04/2008): 이 블로그 항목 것도 같네요: http://www.cleverworkarounds.com/2008/03/13/free-mosswss-2007-web-part-hide-controls-via-javascript/

일주일에 여러 번, 아니 매일 하는 경우, 포럼 사용자 설명 일반적으로 계단식 드롭다운을 통해 만난 것 요구. 예를 들어, 나는 두 개의 드롭다운 컨트롤:

  • 미국의 목록. 상태
  • 미국의 목록. 도시.

책임 UI 제공으로, 우리가이 같은 운영 고 싶어요:

  • Paul 선택 미국. 드롭-다운에서 상태.
  • 그러면 드롭 다운 선택한 상태에 속하는 도시만을 필터링 할 도시.
  • Paul이 필터링 된 목록에서 도시를 선택.

이 기능에 대 한 아웃-오브-더-박스 지원 되지 않습니다.. 사실, 직접 내부 형식 통신의 어떤 종류에 대 한 OOB 지원 되지 않습니다.. 이 양식에 다른 필드 변경 숨기기/활성화/비활성화 필드 프로그래밍 방식으로 포함.

가능한 솔루션 및이 설명 하기 위해이 문서의 진짜 목적은 옵션은 그들을 알고:

  1. 사용자 지정 열 유형 개발. 사용자 지정 열 개발자로 서, "전세계 완전 통제가" 해당 사용자 지정 열의. 구현할 수는 계단식 드롭다운 그런 식으로.
  2. 워크플로 사용 하 여. 경우에 따라, 자동으로 다른 필드의 값을 기준 필드에 값을 할당.. 이 경우에, 일반적으로 계산 된 열을 사용 하려고, 그러나 일부 시간, 그것은 단지 일을 하지 않습니다.. SharePoint Designer 워크플로 코드 및 visual studio에 아래로 떨어지고 상대적으로 관리 친화적인 대안입니다.. 이 경로 이동 하는 경우, 인식 문제 해결 이 문서 (http://paulgalvin.spaces.live.com/blog/cns!CC1EDB3DAA9B8AA!405.entry).
  3. 이벤트 처리기: 워크플로 처럼, 이것은 후--사실 솔루션. 이벤트 처리기는 닷넷 어셈블리 (C#, VB.NET) 어떤 SharePoint에 제어 전달. 개발 하는 개체 목록의 데이터에 액세스할 수는 (전체 개체 모델) 어떤 필요한 계산을 할 수 있습니다.
  4. SharePoint Designer를 사용 하 여 사용자 지정 입력 폼을 만들. 이 이렇게 직접 경험 없어, 하지만 요즘에는 NewForm.aspx로 좋은 일을 하고 있다고 들었습니다.
  5. ASP.NET 데이터 항목 기능을 자신의 롤 (독립 실행형 웹 페이지 또는 웹 파트) 그리고 사용 하는 대신.

누구 든 지 안다면 다른 또는 더 나은 옵션, 코멘트를 하시기 바랍니다 그리고이 게시물의 본문을 업데이 트 거 야.

<끝 />

테크노 태그:

예/아니요 (체크 박스) 콘텐츠 쿼리 웹 파트에서 필터링

예에 대 한 쿼리에 대 한 필터링/없음 확인란 제목 "PG 이정표", 이 같은 CQWP 구성:

이미지

그 분명 한 번-당신-알고-그것 그러나 hard-to-find-an-answer-to 질문 중 하나입니다.: 예에 필터링 하는 방법/콘텐츠 쿼리 웹 파트를 사용 하 여 없음 확인란.

첫 번째 검색 결과 검색어 "필터 예/아니요 콘텐츠 쿼리 웹 파트를 사용 하 여 찾기" 잘못 평면입니다., 그래서 생각 난 것이 거기 넣고 일반적인 검색 결과에서 잘못 된 결과 바꿀 수 있습니다 경우를 참조합니다.

그것은 아주 쉽게: 값을 true = "1" 그리고 false 값 "1을 동일 하지 않습니다." (예쁜 레트로, 실제로).

위의 예제에서, "예/아니요 유형의 사이트 열을 만든 (확인란)" 명명 된 "PG 이정표". 문서 라이브러리에 추가, 몇 가지 문서를 업로드, 에 대 한 값을 설정 하 고 테스트.

<끝 />

Sharepoint에서 막대 그래프 만들기

개요:

(업데이트 12/04/07: 아주 흥미 있는 웹 파트를 통해 이것을 해결 하는 다른 블로그에 링크 끝에 또 다른 흥미로운 리소스 추가)

이 블로그 항목을 SharePoint에서 막대 그래프를 만드는 방법을 설명 합니다.. 이 데이터 보기 웹 파트에 따라 달라 집니다 WSS 및 MOSS 환경에서 작동.

전반적인 접근은 다음과 같습니다.:

  1. 그래프 데이터를 포함 하는 목록 또는 문서 라이브러리 만들기.
  2. 장소 관련된 문서 라이브러리 / 사용자 지정 페이지에 나열 하 고 데이터 뷰 웹 파트를 변환 (DVWP).
  3. 그래프로 보여주는 HTML을 생성 하기 위해 DVWP의 XSL을 수정.

비즈니스 시나리오 / 설치:

내가 만든 표준 제목 열이 있는 사용자 지정 목록, 추가 열, "상태". 이 모델 (매우 simplistically) 비용에 대 한 "권한 부여" 여기서 제목을 나타냅니다 프로젝트 및 상태 값의 목록에서 시나리오:

  • 제안
  • 과정에서
  • 지연

이 상태 코드를 표시 하는 대화형 수평 막대 그래프를 생성 하는 목표는.

사람이 거주 케 된을 목록 하 고 이런 모습:

이미지

데이터 보기 웹 파트 만들기:

페이지에 사용자 지정 목록을 추가 하 여는 DVWP를 만들 (내 경우에서 사이트 페이지) 지침에 따라 여기 (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

간단 하 게는 DVWP를 만들 뿐만 아니라, 우리는 또한 사용할 수 있는 행을 모두 표시 하려면 페이징 속성을 설정 해야. 나를 위해, 이 같이 보입니다.:

이미지

이 시점에서, 난 항상 SPD 및 브라우저를 닫습니다.. 난 다음 다시 브라우저를 사용 하 여 페이지를 엽니다.. 이 페이지에 웹 파트 레이아웃을 실수로 청소 방지.

XSLT를 수정:

그것은 지금 시간 XSLT를 수정 하려면.

나는 항상이 대 한 visual studio를 사용. (참조 여기 많은 도움이 될 것입니다 intellisense에 대 한 중요 사항에 대 한).

빈 프로젝트를 만들려면 네 개의 새 파일 추가 ("원래 단어를 교체" "new" 적절 한):

  • Original.xslt
  • New.xslt
  • 오리지널 Params.xml
  • 새로운 Params.xml

내 경우에는, 그것은 이것 처럼 보인다:

이미지

웹 파트를 수정 하 고 매개 변수 및 XSL 원본"에 복사" Visual Studio에서 버전.

목표는 여기 우리가 다시 들어가서 DVWP 쿼리에서 그래프를 렌더링 하는 HTML 결과 변환 하는 XSL 원인입니다..

이 위해, 그것은 어떤 HTML 처럼 보여야 우리가 "XSL" 이라고 하는 광 기에 의해 혼란 스 러 워 하기 전에 먼저 고려 하는 데 도움이. (확실 하 게 하려면, 다음은 간단 하 게 예; 하지 그것을 입력 또는 복사/붙여넣기 visual studio에. 전체 타격 나중에 쓰기를 위한 출발점을 제공합니다). 다음 샘플 그래프 당 바로 다음 HTML 렌더링:

막대 그래프 샘플

해당 HTML:

<html>
<바디>
<센터>
<테이블 너비 = 80%>
<tr><td><센터>가로 막대 그래프</td></tr>
<tr>
<td 정렬 = "센터">
<표 테두리 = "1" 너비 = 80%>
<tr>
<td width = 10%>오픈</td>
<td><테이블의 cellpadding ="0" cellspacing ="0" 국경 = 0 너비 = 50%><tr bgcolor = 빨간색><td>&nbsp;</td></tr></테이블></td>
</tr>
<tr>
<td width = 10%>폐쇄</td>
<td><테이블의 cellpadding ="0" cellspacing ="0" 국경 = 0 너비 = 25%><tr bgcolor = 빨간색><td>&nbsp;</td></tr></테이블></td>
</tr>
<tr>
<td width = 10%>지연</td>
<td><테이블의 cellpadding ="0" cellspacing ="0" 국경 = 0 너비 = 25%><tr bgcolor = 빨간색><td>&nbsp;</td></tr></테이블></td>
</tr>
</테이블>
</td>
</tr>
</테이블>
</바디>
</html>

"빨간색" 행의 배경색을 설정 하 여 내 막대를 만드는 죽은 간단한 접근 방식을 사용.

테이크아웃 여기가: 끝에서, 우리가 일을 하는 행과 열으로 HTML을 만들고 있다.

XSLT 템플릿:

수평 막대 그래프를 생성 하는 XSLT를 복사 했습니다.. 그것은 꽤 잘 그래서 난 추가 하지 않습니다 훨씬 여기이 노트를 제외한 주석:

  • 기본 XSL SharePoint Designer 준 처음에 DVWP를 만들 때 시작.
  • SPD의에서이 줄일 수 있었다 657 라인을 166 라인.
  • 매개 변수 XML 파일 럽 하지 않았다 (XSL에서 별도 및 DVWP 자체 수정에 갈 때 무슨 뜻인지 알게 될 거 야; 파일을 수정할 수 있습니다.). 그러나, 그것을 간단 하 게 하기 위해, XSL에서 거의 모든 그들을 제거 했 어. 즉 수 있도록 하려는 경우 이러한 매개 변수 사용, XSL에 다시 그들의 변수 정의 추가 하기만 하면. Visual studio 프로젝트에는 원래 XSL 변수 정의 할 것 이기 때문에 쉽게 될 것입니다..
  • 복사 하 여 visual studio 프로젝트에 직접 붙여넣기이 수 해야. 다음, 내 전화를 제거 하 고 "ShowBar"를 직접 호출을 삽입.
  • 작품을 만들어 내려 드릴은 <a href> 이것처럼: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. 이 기술은 다른 문맥에 있는 값의 수 있습니다.. 처음에, 더 복잡 한 포맷을 준수 필요가 있을 것입니다 생각: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, 하지만 내 환경에는 필요 하지 않습니다.. 목록의 URL 전달 됩니다 우리에 게 sharepoint 일반화 하기 매우 쉽습니다 그래서.

그것은 여기:

<xsl:스타일 시트 버전="1.0" 제외-결과-접두사="rs z o s ddwrt dt msxsl" 
xmlns:msxsl="항아리:스키마-microsoft-com:xslt" xmlns:xsl="http://www.w3.org/ 1999/XSL/변환"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:o="항아리:스키마-microsoft-com:사무실" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:dt="uuid:C2F41010-65B3-11 d 1-A29F-00AA00C14882" xmlns:rs="항아리:스키마-microsoft-com:행 집합" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="항아리:frontpage:내부"
> <xsl:출력 메서드="html" 들여쓰기="아니" /> <xsl:10 진수 형식 NaN="" /> <xsl:param 이름="ListUrlDir"></xsl:param> <!-- 드릴 다운을 지 원하는이 필요. --> <xsl:서식 파일 경기="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
> <xsl:변수 이름="dvt_StyleName">테이블</xsl:변수> <xsl:변수 이름="" 선택="/dsQueryResponse/행/행" /> <xsl:변수 이름="dvt_RowCount" 선택="개수($행)" /> <xsl:변수 이름="IsEmpty" 선택="$dvt_RowCount = 0" /> <xsl:변수 이름="dvt_IsEmpty" 선택="$dvt_RowCount = 0" /> <xsl:선택> <xsl:때 테스트="$dvt_IsEmpty"> 그래프에 데이터가 없는!<br/> </xsl:때> <xsl:그렇지 않으면> <!-- 흥미로운 물건을 여기 시작. 그래프에서 한 쌍의 각 행에 대 한 변수를 정의 해야: 항목 및 총의 %의 총 수. --> <xsl:변수 이름="totalProposed" 선택="개수(/dsQueryResponse/행/행[정상화 공간(@Status) '제안' =])" /> <xsl:변수 이름="percentProposed" 선택="$totalProposed div $dvt_RowCount" /> <xsl:변수 이름="totalInProcess" 선택="개수(/dsQueryResponse/행/행[정상화 공간(@Status) = ' 프로세스'])" /> <xsl:변수 이름="percentInProcess" 선택="$totalInProcess div $dvt_RowCount" /> <xsl:변수 이름="totalStalled" 선택="개수(/dsQueryResponse/행/행[정상화 공간(@Status) '지연' =])" /> <xsl:변수 이름="percentStalled" 선택="$totalStalled div $dvt_RowCount" /> <!-- 우리가 여기 우리의 HTML 테이블 정의. 일관 된 수 있도록 몇 가지 표준 SharePoint 스타일 여기에서 대출 오전. 난 그것 뿐만 아니라 테마 재정의 글로벌 css 파일에 변경 돼 영광 이다. --> <테이블 너비="100%" cellspacing="0" cellpadding="2" 스타일="국경-오른쪽: 1 단단한 #C0C0C0; 국경-하단: 1 단단한 #C0C0C0; 국경 왼쪽 스타일: 단단한; 국경-왼쪽-폭: 1; 국경-가기-스타일: 단단한; 국경-가기-폭: 1;"> <tr> <td 정렬="센터"> <테이블 테두리="1" 너비="100%"> <!-- 그래프를 각 상태에 대 한, 우리 "ShowBar 전화" 서식 파일. 우리는 그것을 통과합니다: 1. 행 레이블. 이 하이퍼링크로 변환. 2. 백분율 (위에서 변수). 3. 기본 목록에서 코드의 실제 필드 이름. 이 표시 라벨에 맞게 필요 하지 않습니다.. 4. 필드 값에 대 한 일치 #3. 5. 이 상태 코드의 전체 항목 (모든 상태 코드 하지 그랜드 총). 그것은 방출 한다는 <tr></tr> 그리고 수평 막대 그래프 선. 우리는 우리가 보려는 각 상태 코드에 대 한이 템플릿을 전화합니다. --> <xsl:통화 서식 이름="ShowBar"> <xsl:param으로 이름="BarDisplayLabel" 선택="' 제안 '"/> <xsl:param으로 이름="BarPercent" 선택="$percentProposed"/> <xsl:param으로 이름="QueryFilterFieldName" 선택="' 상태 '"/> <xsl:param으로 이름="QueryFilterFieldValue" 선택="' 제안 '"/> <xsl:param으로 이름="TotalItems" 선택="$totalProposed"></xsl:param으로> </xsl:통화 서식> <xsl:통화 서식 이름="ShowBar"> <xsl:param으로 이름="BarDisplayLabel" 선택="' 지연 '"/> <xsl:param으로 이름="BarPercent" 선택="$percentStalled"/> <xsl:param으로 이름="QueryFilterFieldName" 선택="' 상태 '"/> <xsl:param으로 이름="QueryFilterFieldValue" 선택="' 지연 '"/> <xsl:param으로 이름="TotalItems" 선택="$totalStalled"></xsl:param으로> </xsl:통화 서식> <xsl:통화 서식 이름="ShowBar"> <xsl:param으로 이름="BarDisplayLabel" 선택="' 과정'에서"/> <xsl:param으로 이름="BarPercent" 선택="$percentInProcess"/> <xsl:param으로 이름="QueryFilterFieldName" 선택="' 상태 '"/> <xsl:param으로 이름="QueryFilterFieldValue" 선택="' 과정'에서"/> <xsl:param으로 이름="TotalItems" 선택="$totalInProcess"></xsl:param으로> </xsl:통화 서식> </테이블> </td> </tr> </테이블> </xsl:그렇지 않으면> </xsl:선택> </xsl:서식 파일> <!-- 이 템플릿은 막대 그래프에서 개별 줄을 표시 하는 작업을 수행. 당신은 아마 당신의 여기 조정의 대부분을 할 거 야. --> <xsl:서식 파일 이름="ShowBar"> <xsl:param 이름="BarDisplayLabel" /> <!-- 레이블 표시 --> <xsl:param 이름="BarPercent"/> <!-- 합계의 %. --> <xsl:param 이름="QueryFilterFieldName"/> <!-- 쿼리를 이동 하는 데 사용 & 필터 --> <xsl:param 이름="QueryFilterFieldValue"/> <!-- 쿼리를 이동 하는 데 사용 & 필터 --> <xsl:param 이름="TotalItems" /> <!-- 이 barlabel의 총 수 --> <tr> <!-- 막대 자체 레이블. --> <td 클래스="ms-formbody" 너비="30%"> <!-- 이 다음 문 집합 빌드 쿼리 문자열을 기본 데이터의 필터링 된 보기 내려 드릴 수 있습니다.. 우리가 여기에 몇 가지 사용: 1. 우리 열에서 필터링 할 목록에 FilterField1 및 FilterValue1를 전달할 수 있습니다.. 2. SharePoint는 우리에 게 키 매개 변수를 전달, 기본 목록에이 DVWP "실행"을 가리키는 ListUrlDir. XSL 재미? --> <xsl:텍스트 사용 안 함-출력 이스케이프=""> <![CDATA[<a href ="]]></xsl:텍스트> <xsl:값의 선택="$ListUrlDir"/> <xsl:텍스트 사용 안 함-출력 이스케이프=""><![CDATA[?FilterField1 =]]></xsl:텍스트> <xsl:값의 선택="$QueryFilterFieldName"/> <xsl:텍스트 사용 안 함-출력 이스케이프=""><![CDATA[&FilterValue1 =]]></xsl:텍스트> <xsl:값의 선택="$QueryFilterFieldValue"/> <xsl:텍스트 사용 안 함-출력 이스케이프=""><![CDATA[">]]></xsl:텍스트> <xsl:값의 선택="$BarDisplayLabel"/> <xsl:텍스트 사용 안 함-출력 이스케이프=""><![CDATA[</는>]]></xsl:텍스트> <!-- 다음 비트는 형식에 몇 가지 숫자를 보여줍니다.: "(총 / % 총의)" --> (<xsl:값의 선택="$TotalItems"/> / <!-- 이 우리를 위해 좋은 백분율 레이블을 만듭니다.. 감사, 마이크로 소프트! --> <xsl:통화 서식 이름="percentformat"> <xsl:param으로 이름="%" 선택="$BarPercent"/> </xsl:통화 서식>) </td> <!-- 마지막으로, 방출 한 <td> 바에 대 한 태그 자체.--> <td> <테이블 cellpadding="0" cellspacing="0" 테두리="0" 너비="{라운드($BarPercent * 100)+1}%"> <tr bgcolor="레드"> <xsl:텍스트 사용 안 함-출력 이스케이프=""><![CDATA[&nbsp;]]></xsl:텍스트> </tr> </테이블> </td> </tr> </xsl:서식 파일> <!-- 이 MS 서식 파일에서 발견 일부 XSL에서 직접 가져온 것입니다.. --> <xsl:서식 파일 이름="percentformat"> <xsl:param 이름="%"/> <xsl:선택> <xsl:때 테스트="형식 번호($%, '#,##0%;-#,##0%')= '앤'">0%</xsl:때> <xsl:그렇지 않으면> <xsl:값의 선택="형식 번호($%, '#,##0%;-#,##0%')" /> </xsl:그렇지 않으면> </xsl:선택> </xsl:서식 파일> </xsl:스타일 시트>

결과:

위의 XSL이이 그래프 생성:

이미지

상태 코드를 클릭 하 여 기본 데이터 드릴:

이미지

결론 의견:

이 일반화 될 수 있다?

이 그래프 개념을 사랑, 하지만 난에 너무 많은 손 코딩 할 필요가 사실 싫어. 일반화 될 수 있는지 여부를 조금 생각을 부여 했습니다 그리고 나는 낙관적, 그러나 나는 또한 약간 벽돌 벽 어딘가에 경로의 어떤 해결 제공 하지 않습니다 있을 수 있습니다 두려워. 누구 든 지이 대 한 몇 가지 좋은 아이디어를 가진다면, 코멘트에 메모를 확인 하십시오 또는 이메일 날.

수직 그래프:

이것은 가로 막대 그래프. 그것은 확실히 수직 그래프를 만들 수. 우리는 단지 HTML을 바꿀 필요가. 같은 방법으로 시작: 수직 막대 그래프의 HTML 표현을 생성 하 고 XSL을 통해 얻을 하는 방법. 아무도에 관심이 있다면, 내가 그것을 밖으로 시도 하 고 단점을 보완 하기 밖으로 작동 하도록 설득할 수 있습니다.. 누군가가 이미 하는 경우, 알려주세요 그리고 난 당신의 블로그에 링크 기꺼이 드리겠습니다 🙂

나는 생각 한다 도전 수직 그래프와 그래프의 레이블을 관리 하기가 더 어렵습니다., 하지만 확실히 불가능.

필드 이름 잡았다:

적어도 두 가지 필드 이름에 대 한 밖을 봐합니다.

첫 번째, 공간 필드 이름에 XSL에 이스케이프. 이 문제가 여기 있을 것입니다.:

        <xsl:변수 이름="totalProposed" 
선택="개수(/dsQueryResponse/행/행[정상화 공간(@Status) '제안' =])" />

경우 "상태" 열 상태 코드 "라는 사실" 그런 다음 "Status_x0020_Code"로 참조 해야:

   <xsl:변수 이름="totalProposed" 
선택="개수(/dsQueryResponse/행/행[정상화 공간(@Status_x0020_Code) '제안' =])" />

두 번째, 나는 이것에 약간 퍼지, 필드 이름 변경에 대 한 경계 해야 하지만. 당신이 당신의 분야 "상태 코드의 이름을 하는 경우" 그리고 나중에, 이름을 "AFE 상태"로, "내부 이름" 변경 되지 않습니다.. 내부 이름 "상태 코드를 있을 것입니다." "Status_x0020_Code"으로 참조 되어야 합니다. "다른 리소스" 링크 진단 하 고 이런이 종류의 문제를 해결 도움이 될 수 있습니다..

그 색상에 대 한:

"레드 골 랐 어 요" 그것은 순간에 나를 기쁘게 하기 때문에. 그것은 단순한 숫자의 시각적 설명을 제공 하기 위해 서로 다른 색을 큰 문제가 되지 않을 것 이다, 하지만 유용한 KPI 제공 하. 예를 들어, 비율 "지연 하는 경우" AFE의은 > 10% 그런 다음 빨간색 표시, 그렇지 않으면 검은 표시. 사용 <xsl:선택> 이렇게 하려면.

기타 리소스:

행복 한 변화!

<끝 />

내 블로그를 구독!

Sharepoint를 제공 하지 않습니다. “액세스 권한이 있는 사용자” 보고서

업데이트 01/28/08: 이 문제를 해결 하는이 codeplex 프로젝트: http://www.codeplex.com/AccessChecker. 나는 그것을 사용 하지 않은, 그러나이 경우 사용자 환경에서 해결 해야 하는 문제 같네요.

업데이트 11/13/08: Joel Oleson 큰 보안 관리 문제를 여기에 아주 좋은 포스트를 썼다: http://www.sharepointjoel.com/Lists/Posts/Post.aspx?목록 0cd1a63d% 2d183c% 2D4fc2 %2 D 8320 -ba5369008acb =&ID = 113. 그것은 다양 한 다른 유용한 자료 링크.

자주 질문 하는이 라인을 따라 질문 포럼 사용자와 클라이언트: "어떻게 할 내가 생성 한 사이트에 액세스할 수 있는 모든 사용자의 목록을" 또는 "어떻게 내가 자동으로 알릴 수 있습니다 목록에 대 한 변경에 대 한 목록에 액세스할 수 있는 모든 사용자?"

이 박스 솔루션의 밖 으로가 있다. 만약 당신이 잠시 동안 그것에 대해 생각, 그것은 왜 이해 하기 어려운.

SharePoint 보안은 매우 유연. 사용자의 적어도 4 개 주요 종류가 있다:

  • 익명 사용자.
  • SharePoint 사용자 및 그룹.
  • Active Directory 사용자.
  • 폼 기반 인증 (FBA) 사용자.

보안 관점에서 의미 있는 유연성, 지정된 된 SharePoint 사이트에서 다른 극적으로 다를 것 이다. 액세스 목록 보고서를 생성., 한 사이트의 보안을 확인할 필요가, 여러 개의 서로 다른 사용자 프로필 저장소를 쿼리 및 유용한 패션 선물. 그건 일반적으로 해결 하기 어려운 문제.

어떻게이 취급 하는 단체? 의견에 당신에 게 서 듣고 싶지만 또는 메일 주소.

</끝>

테크노 태그: ,

MOSS 알려줍니다 내게 내 열 이름은 소유 또는 사용 … 하지만 아니에요

업데이트 12/04/07: 참조 이 Microsoft KB (http://support.microsoft.com/kb/923589) 관련된 정보에 대 한.

실제로, 그것은 그것을 끈다는, 하지만 tricksy 모스 어렵게 했다.

내 고객은 주말 동안 그의 이끼 사이트에 일부 개발 작업. 그것은 그가 실제로 무슨에 관해서는 혼란의 비트, 하지만 최종 결과이:

  • 그는 "수량 이라는 사이트 열을 추가 하려고" 모스 회신: "열 입력 한 이름이 이미 사용에서 또는 예약. 다른 이름을 선택 하십시오."
  • 그는 다른 환경과 그 작품에 그것을 추가 하려고. 따라서, "수량" 예약 된 이름이 아니다..
  • 그는 "수량 이라는 기존 사이트 열을 찾으려고" 해당 사이트 모음에서. 그는 그것을 찾을 수 없습니다..

내가 일부 연구, 심지어 일부 코딩, 철학적 왁 스 그리고 마지막으로 양 이라는 열 한 발견, 사실, 존재. 그것은 "_Hidden에" 그룹. 따라서, 우리는 SharePoint 사용자 인터페이스를 통해 그것을 찾을 수 없습니다..

어떻게 거기 도착 했어요? 몰라요, 하지만 난 이론 (또는 나의 아내 그것은 부를 것 이다, "ㅋ"). 어딘가에 라인을 따라, 는 멋진 40 템플릿 추가 되었고 아마 사이트는 사이트 모음에서에서 활성화. 그것은 다음 비활성화 (또는 사이트 제거). 사이트 열, 그러나, 시내는 "_Hidden만 남아" 그룹. 누군가가 더 잘 알고 있는 경우, 통해 내게 알려 주십시오 메일 주소 또는 의견 게시.

SharePoint는 진실을 말하고. 그것은 거의 그 메시지는 도움이 될 수 지적 가치. 그것은 미래에 두 개의 서로 다른 메시지에 메시지 fork를 보고 좋은 것: 1) 열 이름은 예약 되어 또는 아니다. 2) 하지 소유 하는 경우, 사이트 보기, 또는 적어도 그룹, 열 이름이 이미 사용.

</끝>

사용자 지정 목록을 통해 옴 데이터 표시 (또는, 아직 다른 OM 데이터 Displayor [YACC와 같은, 하지만 다른])

오늘, 소수의 "입력 한 열 이름이 이미 사용 중이거나 예약 메시지 뒤에 근본 원인을 아래로 추적 하는 시간을 보냈다. 다른 이름을 선택 하십시오."

질문에 열을 만들 수 있습니다., 삭제 하 고 다시 또 다른 환경에서 만든, 그래서 난 그것을 알고 아니 예약 된 이름. 그러나, 간단 하 게 찾을 수 없습니다 어디서 나 열 사이트에서 표준 SharePoint 사용자 인터페이스를 통해 사이트 모음에서.

에 게시 됨 MSDN 포럼 여기 그리고는 불굴의 앤드류 우드 워드 기본 개체 모델 데이터의 방향으로 나를 지적 했다.

으로 떠나 갔다 codeplex 기본 OM 데이터에 피어 날 도와 문제를 찾아 도움이 될 몇 가지 도구를 찾을 수.

여러 가지 도구를 시도 하 고 그들이 매우 쿨 및 흥미로운 하지만 결국, UI 내 목적을 위해 충분히 좋지 않았다. 어떤 방법으로 그들을 비판 하지 오전, 하지만 명확 하 게 도구 제조 업체 없 내 문제가 마음에 그들은 그들의 UI를 만들 때 :). 대부분의 사람들이 상당한 양의 워크스테이션을 만들기에 시간과 노력 투자 될 것 / 트리 보기를 제공 하는 클라이언트 응용 프로그램, 등등 상황에 맞는 메뉴를 마우스 오른쪽 단추로 클릭. 이들은 좋은 모두, 하지만 그것은 또한 매우 유연 최고의 라인 사용자 환경을 만들기 위한 작업을 많이.

정말이 문제에 대 한 답변을 필요로. 그것은 나에 게 발생 하는 사용자 지정 목록에는 사이트 모음의 모든 사이트 열을 얻을 수 있다면, 필터링 할 수 있습니다., 정렬 그리고 두 일 걸 요 기존 열을 찾을 수 있도록 것 이라고 하는 보기를 만들 (그것이, BTW). 내가 서 서 고는 1 시간 또는 2 나중에, 내 모든 사이트 열 그룹화를 사용자 지정 목록으로 적재 했다, 정렬 및 등등. 5 분 후 내 대답을 발견.

나는 성공적으로 세계를 정복 하면, 나는 모든 SharePoint 도구 공급자 심각 하 게 고려해 야 합니다 사용자 지정 목록에서 개체 모델 데이터 서피싱 법령 것 같아요. 그런 식으로, 힘을가지고 어떤 검색 방법을 내가 원합니다 (제한 된, 물론, 표준 sharepoint 기능).

SharePoint Designer 워크플로 사용자 지정 작업 — 에 대 한 관찰 <FieldBind 디자이너 유형 =”StringBuilder” … />

이 두 정의 사이의 매우 중요 한 차이점은 그냥 빠른 관찰:

<FieldBind 필드 "InParam1 =" DesignerType = "StringBuilder" Id = "2" 텍스트 = "입력 매개 변수가 #1" />

대:

<FieldBind 필드 "InParam1 =" Id = "2" 텍스트 = "입력 매개 변수가 #1" />

SPD에 이런 표시:

이미지

이런 후자의 쇼 하면서:

이미지

I’m not sure how helpful these screen shots are but I put in the effort to make them so you have to view them 🙂

관찰이: StringBuilder는 문자열을 만들 수 있습니다. (분명히) 문자열 리터럴 및 워크플로 데이터를 함께 혼합 하 여 ("추가 조회를 통해" 왼쪽 아래 모서리에 있는 단추). 추가 조회 단추를 사용 하는 경우, 그것은 삽입 형식에서 토큰 "[%토큰 %]". SharePoint은 사용자 지정 작업을 호출 하는 경우, (나의 경우에서 C# 코드), SharePoint 자체 토큰 전달, 토큰의 값이 아닌. 기본 디자이너 형식을 사용 하는 경우 (두 번째 유형), SharePoint는 토큰을 확장 하 고 귀하의 작업을 토큰의 실제 값을 전달.

StringBuilder = 나쁜, 기본 디자이너 형식 = 좋은.

물론, 그건 무슨 내가 정말 아니다.. 그냥 시도 하지 않습니다 하 고 디자이너를 입력할 때 사용자 지정 작업에는 매개 변수를 전달 StringBuilder를 =. 워크플로에서 복잡 한 문자열을 빌드 하려는 경우 앞 기본 디자이너 형식과 체인을 StringBuilder 사용 (덧붙여는 정확 하 게 하나의 이메일 작업을 위한 동적 제목을 만드는, 하지만 그건 또 다른 블로그 항목에 대 한 주제, 싹 싹).

<끝 />

조 워크플로 활성화 — 비 의료 솔루션

업데이트: 이 MSDN 내용 참조, 특히 마지막 항목: http://forums.microsoft.com/MSDN/showpost.aspx?postid=2631057&siteid=1. 그것은이 모든 것을 누전 수 조건을 설명 합니다.. 요컨대, 필수 필드 중 적어도 하나를 만들기로 간단 있을 수 있습니다..

나는 8 개의 콘텐츠 형식을 지 원하는 문서 라이브러리.

저는 SharePoint Designer 워크플로 계산 하 고 미리 알림 날짜 "를 할당 하 고 싶어" 간단 하 게 빼서 30 다른 열에서 일, "기한". 이 콘텐츠 유형 중 하나에 대 한 발생 한다, "보험". 비즈니스 목표는 보험 문서의 두 가지 범주를 표시 하는 KPI를 생산 하는: "만료 되려고" 그리고 "만료 되었습니다." (KPI의이 종류에 대 한 점점 더 많은 실질적인 드릴 다운을 읽을 수 있습니다. 여기).

나 화재 새 항목이 만들어질 때 항목이 수정 될 때 워크플로 구성. 아이디어는 그 때 보험 문서 업로드, 우리는 "경고 날짜 계산" 만료 날짜에 따라. 보기의 한 일 사용자가 그들의 홈 페이지를 쳤을 때 이러한 조건을 강조 하는 KPI 목록 연결.

이 전략 문서를 업로드할 경우 작동 하지 않습니다..

나는 문서를 업로드 하 고 메타 데이터 입력 화면으로 제시. 이 시점에서, 난 이미 곤경에. SharePoint는 이미, 내 관점에서 성급 하 게, 워크플로 해 고. 올바른 콘텐츠 형식을 선택 하거나 기한 할당 기회가 없 었 어 난. 동시에, 내가이 시간에 전송 버튼을 쳤을 때 워크플로에서 발생 하지 않습니다.. "믿는 몇 가지 기본 제공 논리가 있다" 그 처음의 일부인 제출 합니다 "만들기" 이벤트. 그래서 … 내 워크플로우는 해 고 하 고 그것을 실행 하는 때, 그것은 기본 메타 데이터 값을 전달 된.

최고의 해결의 알까지 "일시 중지를 삽입 하는 것입니다." 워크플로의 작업. 나는 대 한 워크플로 일시 중지 1 분. 그것은 일시 중지 하는 동안, 올바른 콘텐츠 형식 선택, 메타 데이터를 입력. 일시 정지가 완료 되 고 워크플로가 진행 필요. (내 환경에서 note를, SPD에서 타이머 워크플로 활동 상자 밖으로 작동 하지 않습니다.. 같은 문제가 있을 수 있습니다.. 참조 여기 대 한 자세한 내용은).

"마법의 지연 싫어해요." 해결 방법. 일시 중지 outlasts 사용자 업로드 문서와 휴대 전화 고리와 이어지는 대화 하면 어떻게 됩니까? 난 더 이상 일시 중지를 만들 수 있습니다., 하지만 난 여전히 그것을 좋아하지 않아.

MSDN 포럼 여기에 이것에 대해 쓴: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2430725&SiteID=1