HELP....Spread Sheets.... HELP

Status
Not open for further replies.

sudu4u

Active member
  • Aug 11, 2006
    378
    46
    28
    Onna machan Open Code eka update karapan puluwan widihata


    Code:
    function onOpen() {
      SpreadsheetApp.getUi().createMenu("BookUpdate")
      .addSeparator()
      .addItem("Batch update", 'processResponses')
      .addSeparator()
      .addItem("Single update", 'singleUpdate')
      .addToUi();
      
    }
    //---------------------------------------------------------------------------------------
    
      function processResponses() {
      var file = SpreadsheetApp.getActive();
      var inSheet = file.getSheetByName('Form Responses 1');
      var activitySheet = file.getSheetByName('Sheet1');
      var configSheet = file.getSheetByName('Config');
      
      var lastProcessedRow = configSheet.getRange(2, 1).getValue();
      var rowLeftInProgress = configSheet.getRange(2, 2).getValue();
      
      var inLastRow = inSheet.getLastRow();
      var inLastColumn = inSheet.getLastColumn();
       var newResponses = false;
     
      var inRow = '';
      
      
    
        //check if new responses have been entered
    
     if(inLastRow >lastProcessedRow)
      {
        newResponses = true; 
      }
      
      //start processing the rest of the items in the last row and then move to the rest
      
      if(newResponses)
      {
        inRow = lastProcessedRow+1;
     
        //process new responses
      
              
          var noResponses = inLastRow-lastProcessedRow;
          
          for(var row=inRow;row<=inLastRow;row++)
          {
            processRow(row);
            
            configSheet.getRange(2, 1).setValue(row);
            if(row == inLastRow)
            {
    			inSheet.sort(1, true);
            }
            if(inSheet.getRange(row,1).getValue() ==""){
              row=inLastRow+1;
            }
          }
          
        
      }
    
    }
    //---------------------------------------------------------------------------------------
    function processRow(row)
    {
     var file = SpreadsheetApp.getActive();
     var inSheet = file.getSheetByName('Form Responses 1');
     var activitySheet = file.getSheetByName('Sheet1');
      var configSheet = file.getSheetByName('Config');
      var lastProcessedRow = configSheet.getRange(2, 1).getValue();
      var rowLeftInProgress = configSheet.getRange(2, 2).getValue();
      var inLastRow = inSheet.getLastRow();
      var inLastColumn = inSheet.getLastColumn();
      var outLastColumn = activitySheet.getLastColumn();
      var outLastRow = activitySheet.getLastRow();
       
      var ui = SpreadsheetApp.getUi();
      if(outLastRow==1){
        outLastRow = outLastRow+1;
      }
      
      var array = inSheet.getRange(row, 1, 1, inLastColumn).getValues()[0];
      var approve;
      var timestamp =array[0];
      var bookName = array[1];
      var booktype = array[2];
      var author = array[3];
      var trans = array[4];
      
      var resultRN = ui.prompt('Approval procees','Approve the BOOK',ui.ButtonSet.OK_CANCEL);
      var button1 = resultRN.getSelectedButton();
     //when the OK click 
      if (button1 == ui.Button.OK) {
        approve =  resultRN.getResponseText()
        if(approve.toUpperCase()== "OK" ){
         var outArray =[];
         outArray[0] =timestamp;
         outArray[1] = bookName;
         outArray[2] = booktype;
         outArray[3] = author;
         outArray[4] = trans;
         outArray[5] = approve;
      
         activitySheet.getRange(outLastRow,1,1, outLastColumn).setValues([outArray]);
        }
        
        }else if (response.getSelectedButton() == ui.Button.NO) { 
          //no update
         var a='Update Cancel.';
       } else {
         // no update 
         var a='Update Cancel.';
       }
      
      
    }
    //---------------------------------------------------------------------------------------
    function singleUpdate(){
        var ui = SpreadsheetApp.getUi();
      var resultRN = ui.prompt('Enter Row Number','Please enter Row Number:',ui.ButtonSet.OK_CANCEL);
      var button1 = resultRN.getSelectedButton();
      var rowNumber =parseInt(resultRN.getResponseText());
    //when the OK click 
      if (button1 == ui.Button.OK) {
        
        processRow(rowNumber);
      
         ui.alert(' Chanegs apply.');
        }else if (response.getSelectedButton() == ui.Button.NO) {
          ui.alert('Update Cancel.');
        } else {  
          ui.alert('Update Cancel.');
        }
      
    }
     
    Status
    Not open for further replies.