Принудительное применение уникальных значений на основе нескольких столбцов

#sharepoint

#sharepoint

Вопрос:

Я пытаюсь принудительно применить уникальные значения на основе 3 столбцов. я пытаюсь использовать SharePoint online.

  1. Столбец поиска
  2. Выбор
  3. Календарь (только дата)

Я попытался с помощью приведенного ниже кода извлечь существующие значения из списка, но не удается выбрать календарную дату. не удалось выяснить, что можно сделать. кто-нибудь может помочь в этом,

 <script type="text/javascript" src="/sites/Mysite/SiteAssets/jquery.min.js"></script><script type="text/javascript">
    
    //variable to hold Ajax result
    var dataResults;
     var call = $.ajax({
            url: _spPageContextInfo.webAbsoluteUrl   "/_api/Web/Lists/GetByTitle('Mylist')/Items?"   "$select=Title,Engagement,Period",     
//Title is a lookup column          
            type: "GET",
            dataType: "json",
            async:false,
            headers: {
            Accept: "application/json;odata=verbose"
            },
            success: function(data) {
            dataResults = data.d;
             
                     
            }    
       
        });
        
        
        function PeriodValue(fullDate){
        
        var orderDateString = "2016-10-19T22:00.00Z"; //UTC datetime value from REST response 
        var orderDate = new Date(orderDateString);
        var value= TimeZoneUtilities.utcToLocalTime(_spPageContextInfo.webAbsoluteUrl,orderDate);
      alert(value);
        var dateValue=null,twoDigitDate=null,twoDigitMonth=null,twoDigitYear,currentDate=null;
          dateValue = fullDate.split("T")[0];
          twoDigitDate = dateValue.split("-")[2];
          twoDigitMonth = dateValue.split("-")[1];
          twoDigitYear = dateValue.split("-")[0];
          currentDate = twoDigitDate   "/"   twoDigitMonth   "/"   twoDigitYear;
        return currentDate;
        }   
                
    //function to compare user input and existing data
    function PreSaveAction(){
        var ClientName = document.querySelector('[title="Client Name Required Field"]');
        var engagement = document.querySelector('[title="Engagement Required Field"]');
        var period = document.querySelector('[title="Period Required Field"]');
        ClientName=ClientName.options[ClientName.selectedIndex].text;
        engagement=engagement.options[engagement.selectedIndex].text;
        period=period.value;
        var c = null;
        
                
        $.each(dataResults, function(i, item){
        
            c = true;
            $.each(item, function(i, dt){
                        
                 console.log(dt.Engagement   '  '   dt.Period   ' '  dt.Title);
                if (dt.Engagement == engagement  amp;amp; dt.Period == period amp;amp; dt.Title==ClientName){
                    c = false;
                    alert("Already exist");
                    return c;
                }
            });
        });           
        return c;  
    }
    
</script>​​
  

Комментарии:

1. Как используется функция PeriodValue()? Вам лучше поделиться дополнительной информацией о списке.

2. Я использую PeriodValue () для столбца календаря (только дата), чтобы извлечь значение даты из элементов списка и сравнить столбец даты со значением нового элемента. При получении значения даты оно находится в таком формате «2016-10-19T22:00.00Z» с датой -1.

3. Но это не было вызвано в скрипте.

4. пожалуйста, дайте мне знать о любых исправлениях в коде.

5. Вам лучше поделиться подробной информацией о списке, чтобы я мог протестировать напрямую с вами, проблем с логикой кода возникнуть не должно. Или вы могли бы попытаться отладить код, чтобы найти причину.