2017-12-15 34 views
-1

데이터방법은 다음과 같이 나는 사람 당 하나의 행으로 데이터를 표시 할 방법이

Name Date Span 
Bob  12/11 0700-1530 
Sue  12/11 0700-1530 
Bob  12/12 0700-1530 
Sue  12/12 0700-1530 
Bob  12/13 0700-1530 
Sue  12/13 0700-1530 
Bob  12/14 0700-1530 
Sue  12/14 0700-1530 
Bob  12/15 0700-1530 
Sue  12/15 0700-1530 
Sue  12/16 1200-1830 

을 제시하려면?

 Sun  Mon   Tue   Wed   Thu   Fri  Sat 
    10DEC 11DEC  12DEC  13DEC  14DEC  15DEC  16DEC 
Bob   0700-1530 0700-1530 0700-1530 0700-1530 0700-1530 
Sue   0700-1530 0700-1530 0700-1530 0700-1530 0700-1530 1200-1830 

동일한 사람의 경우 다른 요일에 따라 기간이 달라질 수 있으며 주어진 주 동안 더 많거나 적은 수의 이름이있을 수 있습니다. 기억이 맞으면 Access가 할 수있는 '크로스 탭 쿼리'의 목적이지만 SharePoint에서는 확실하지 않습니다.

+0

, 단순히 질문에서 ... 그 조금 적대하는 것, 그리고 판단력있는 사람, 누구든지 누가 그것을 투표했는지. 고마워. –

+0

당신은 무엇을하려고합니까? 이 앱은 당신이 만들고있는 앱입니까? 그렇다면 웹 파트 또는 추가 기능입니까? 아니면 그냥 일종의 목록보기를 만들려고합니까? –

+0

드롭 다운 목록에서 선택한 사용자가 날짜, 시작 시간 및 종료 시간과 함께 일정 목록에 추가되는 일정 이벤트가 추가 된 목록이 있습니다. –

답변

0

즉석에서 구현할 방법이 없습니다. 클라이언트 측 렌더링을 사용하여보기가 표시되는 방식을 변경하는 것이 좋습니다. 다음은보기의 렌더링을 변경하는 js 파일의 샘플입니다 (찾고있는 것을 달성하지는 않지만 시작입니다). customItem 함수는 각 셀의 모양을 정의하는 곳입니다. 그런 다음 게시물 렌더링에서 결과를 조작 할 수 있습니다. 다행히도 이것은 당신을 올바른 길로 인도 할 수 있습니다. 이 CSR을 시작하기위한 좋은 가이드 : 난 당신이 내가 한 일을 연구의 아이디어를 얻을 수있는 방법을 볼 수 없습니다 https://www.codeproject.com/Articles/620110/SharePoint-Client-Side-Rendering-List-Views

(function() { 
    // Initialize the variable that stores the objects. 
    var overrideCtx = {}; 
    overrideCtx.Templates = {}; 

    // Assign functions or plain html strings to the templateset objects: 
    // header, footer and item. 
    overrideCtx.Templates.Header = "<B><#=ctx.ListTitle#></B>" + 
     "<hr><ul id='unorderedlist'>"; 

    // This template is assigned to the CustomItem function. 
    overrideCtx.Templates.Item = customItem; 
    overrideCtx.Templates.Footer = "</ul>"; 

    // Set the template to the: 
    // Custom list definition ID 
    // Base view ID 
    overrideCtx.BaseViewID = 2; 
    overrideCtx.ListTemplateType = 10057; 

    // Assign a function to handle the 
    // PreRender and PostRender events 
    overrideCtx.OnPreRender = preRenderHandler; 
    overrideCtx.OnPostRender = postRenderHandler; 

    // Register the template overrides. 
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); 
})(); 

// This function builds the output for the item template. 
// It uses the context object to access announcement data. 
function customItem(ctx) { 

    // Build a listitem entry for every announcement in the list. 
    var ret = "<li>" + ctx.CurrentItem.Title + "</li>"; 
    return ret; 
} 

// The preRenderHandler attends the OnPreRender event 
function preRenderHandler(ctx) { 

    // Override the default title with user input. 
    ctx.ListTitle = prompt("Type a title", ctx.ListTitle); 
} 

// The postRenderHandler attends the OnPostRender event 
function postRenderHandler(ctx) { 

    // You can manipulate the DOM in the postRender event 
    var ulObj; 
    var i, j; 

    ulObj = document.getElementById("unorderedlist"); 

    // Reverse order the list. 
    for (i = 1; i < ulObj.children.length; i++) { 
     var x = ulObj.children[i]; 
     for (j = 1; j < ulObj.children.length; j++) { 
      var y = ulObj.children[j]; 
      if(x.innerText<y.innerText){     
       ulObj.insertBefore(y, x); 
      } 
     } 
    } 
} 
+0

CSR이 정말 흥미로 웠습니다! 분명히 2013 년에 출시되었지만 2010 년으로 제한되었습니다. JSON을 사용하여 스텁에서 클라이언트 측 데이터를 검색하고 DOM 요소를 다시 조사 할 것입니다. –

+0

Doh! 내 잘못이야. 정말 멋집니다. 당신은 그것으로 몇 가지 흥미로운 것을 할 수 있습니다. SP2010을 사용 중이므로 웹 파트를 만들거나 dataview 웹 파트를 사용하여 일부 xslt를 조작하여 처리 할 수 ​​있습니다. 나는 개인적으로 webpart 길을 갈 것이다. –