Sharepoint: общая сумма столбцов списка с помощью редактора содержимого - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть разные списки в Sharepoint. Мы стремимся создавать различные сводные таблицы на других страницах. Поэтому я надеюсь заполнить таблицы различными суммами и счетами.

Я новичок в Javascript, поэтому я начинаю с базовой функции c SUM.

Я нашел удобный скрипт (ниже). Тем не менее, кажется, что суммируются только первые 100 предметов. Может ли кто-нибудь помочь?

<p id="SumPrices"></p>

  <script type="text/javascript">
     var listName = 'L&D';
     var xhr = new XMLHttpRequest();
     xhr.open('GET', _spPageContextInfo.webAbsoluteUrl + 
           '/_api/web/lists/GetByTitle(\'' + listName + '\')/items? 
            $select=Cost');
     xhr.setRequestHeader('Accept', 'application/json; odata=verbose');
     xhr.onload = function(){
        if (xhr.status === 200) {
           var results = JSON.parse(xhr.responseText);
           results = results.d.results;

           var sum = 0;
            for (var i = 0; i < results.length; i++){
              sum += results[i].Cost;
             }

            document.getElementById('SumPrices').innerText = sum;
         }
          else {
            alert('Request failed.  Returned status of ' + xhr.status);
          }
         };
       xhr.send();
</script>

1 Ответ

0 голосов
/ 08 апреля 2020

Если списки находятся в одной сети, используйте rest api для доступа к элементам списка.

<script type="text/javascript">
    $(function () {
        ExecuteOrDelayUntilScriptLoaded(GetListsItems, "sp.js");
    });
    function GetListsItems() {
        var listName = 'L&D';

        $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/GetByTitle('" + listName + "')/items?$select=Cost",
            method: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            success: function (result) {
                results = result.d.results;
                var sum = 0;
                for (var i = 0; i < results.length; i++) {
                    sum += results[i].Cost;
                }

                document.getElementById('SumPrices').innerText = sum;
            },
            error: function (error) {
                console.log(JSON.stringify(error));
            }
        });
    }

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...