Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
201 views
in Technique[技术] by (71.8m points)

webapp2 - I need help in mapping the web app to google spreadsheet

I need to create a web app which will read my google spreadsheet column and also record if the action is taken referencing to that cell.

I have six columns: Sr. No. | Emp ID| Phone Number | Card Issued | Date of Issuance | Issued By.

I want a search field in the app where user can enter employee id and if it is mentioned in the list then app should proceed, else error "can't find".

If it is mentioned in the list, user will click on a button such as "Submit", and the details such as YES in Card issued, Date of issuance and in Issued By - email id should be automatically updated. This link should have access to all the users of specific domain and not public.

I have tried many codes available on many websites but I'm unable to get through it. I'm badly in need to complete this. Any help will be appreciated.

Here's my sheet: https://docs.google.com/spreadsheets/d/17ctc5KUeg8qzWN3CD442cSVYpT1gjG4L_6AsBffnhes/edit?usp=sharing

I need something like the attached picture.

enter image description here

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This will give you a start. With a little effort on your part you should be able to complete the rest on your own.

To run this you will need to:

Copy code to script editor using the given files names. Save them. Run the showEmployeeSearchDialog() function and that will launch the html. As you progress you should be able to add a doGet function and deploy as a webapp.

Code.gs:

function goFind(id) 
{
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('Master');
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  var found=false;
  var dA=[];
  for(var i=1;i<vA.length;i++)
  {
    if(vA[i][1]==id)
    {
      dA.push(vA[i][0],vA[i][1],vA[i][2],vA[i][3],vA[i][4],vA[i][5]);
    }
  }
  return dA;
}

function showEmployeeSearchDialog()
{
  var ui=HtmlService.createHtmlOutputFromFile('empsearchform');
  SpreadsheetApp.getUi().showModelessDialog(ui, 'Employee Search Form')
}

empsearchform.html

<!DOCTYPE html>
<html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
    $(function() {

      });
    function goFind()
    {
      var id=$('#txt1').val();
      $('#notfound').css('display','none');
      google.script.run
        .withSuccessHandler(found)
        .goFind(id);
    }
    function found(dA)
    {
      if(dA.length>0)
      {
        $('#hdn1').val(dA[0]);
        $('#txt2').val(dA[2]);
        $('#txt3').val(dA[3]);
        $('#txt4').val(dA[4]);
        $('#txt5').val(dA[5]);
        $('#found').css('display','inline');
      }
      else
      {
        $('#notfound').css('display','inline');
      }
    }
    function goUpdate()
    {

    }
    console.log('MyCode');
    </script>
  </head>
  <body>
  <br /><input type="text" placeholder="Enter Employee ID" id="txt1" size="15" />
  <br /><input type="button" value="Find" onClick="goFind()" />  
  <div id="found" style="display:none;">
  <br />Mobile Number:<input type="text" value="" size="" id="txt2" />
  <br />Card Issued:<input type="text" value="" size="" id="txt3" />
  <br />Date:<input type="text" value="" size="" id="txt4" />
  <br />Issued By:<input type="text" value="" size="" id="txt5" />
  <br /><input type="hidden" value="" id="hdn1" />
  <br /><input type="button" value="Submit" onClick="goUpdate()" />
  </div>
  <div id='notfound' style="display:none;"><br /><br />Employee ID not found.  Reenter Employee ID and push Find to try again.</div>
  </body>
</html>

Here's what the dialog looks like at the present:

enter image description here


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...