2015-01-20 4 views
0

의도 한대로 작동하는 양식의 드롭 다운 선택기 결과에 따라 이메일 주소를 선택하는 스크립트가 있습니다.Google Apps 스크립트의 이메일 주소 선택자

하지만 "08-Maintenance"를 선택하면 전자 메일 선택기를 무시하고 싶습니다. 이 비트는 작동하지 않습니다. 어떤 도움이라도 대단히 감사합니다.

//select THIS spreadsheet 
var LogSheet = SpreadsheetApp.getActiveSpreadsheet(); 

//select correct worksheet 
var sheet = LogSheet.getSheetByName("LOG"); 

//declare the row to look at (the last row) 
var lastRowNumber = sheet.getDataRange().getNumRows(); 

//declare and obtain the variable for the Source Code in column 3 
var SourceValue = sheet.getRange(lastRowNumber, 3).getValue(); 

//declare and obtain the variable for the Location Code in column 4 
var LocationValue = sheet.getRange(lastRowNumber,4).getValue(); 

//declare and obtain the variable for the Hazard being reported in column 6 
var HazardValue = sheet.getRange(lastRowNumber,6).getValue(); 

//declare the correct email addresses to use 
    var email01 = LogSheet.getSheetByName("LocationCodes").getRange(3, 5).getValue(); 
    var email02 = LogSheet.getSheetByName("LocationCodes").getRange(4, 5).getValue(); 
    var email03 = LogSheet.getSheetByName("LocationCodes").getRange(5, 5).getValue(); 
    var email04 = LogSheet.getSheetByName("LocationCodes").getRange(6, 5).getValue(); 
    var email05 = LogSheet.getSheetByName("LocationCodes").getRange(7, 5).getValue(); 
    var email06 = LogSheet.getSheetByName("LocationCodes").getRange(8, 5).getValue(); 
    var email07 = LogSheet.getSheetByName("LocationCodes").getRange(9, 5).getValue(); 
    var email08 = LogSheet.getSheetByName("LocationCodes").getRange(10, 5).getValue(); 
    var email09 = LogSheet.getSheetByName("LocationCodes").getRange(11, 5).getValue(); 
    var email10 = LogSheet.getSheetByName("LocationCodes").getRange(12, 5).getValue(); 
    var email11 = LogSheet.getSheetByName("LocationCodes").getRange(13, 5).getValue(); 
    var email12 = LogSheet.getSheetByName("LocationCodes").getRange(14, 5).getValue(); 
    var email13 = LogSheet.getSheetByName("LocationCodes").getRange(15, 5).getValue(); 
    var email14 = LogSheet.getSheetByName("LocationCodes").getRange(16, 5).getValue(); 
    var email15 = LogSheet.getSheetByName("LocationCodes").getRange(17, 5).getValue(); 
    var email16 = LogSheet.getSheetByName("LocationCodes").getRange(18, 5).getValue(); 
    var email17 = LogSheet.getSheetByName("LocationCodes").getRange(19, 5).getValue(); 
    var email18 = LogSheet.getSheetByName("LocationCodes").getRange(20, 5).getValue(); 
    var email19 = LogSheet.getSheetByName("LocationCodes").getRange(21, 5).getValue(); 
    var email20 = LogSheet.getSheetByName("LocationCodes").getRange(22, 5).getValue(); 

//declare the correct LocationCodes to check 
    var depot01 = LogSheet.getSheetByName("LocationCodes").getRange(3, 4).getValue(); 
    var depot02 = LogSheet.getSheetByName("LocationCodes").getRange(4, 4).getValue(); 
    var depot03 = LogSheet.getSheetByName("LocationCodes").getRange(5, 4).getValue(); 
    var depot04 = LogSheet.getSheetByName("LocationCodes").getRange(6, 4).getValue(); 
    var depot05 = LogSheet.getSheetByName("LocationCodes").getRange(7, 4).getValue(); 
    var depot06 = LogSheet.getSheetByName("LocationCodes").getRange(8, 4).getValue(); 
    var depot07 = LogSheet.getSheetByName("LocationCodes").getRange(9, 4).getValue(); 
    var depot08 = LogSheet.getSheetByName("LocationCodes").getRange(10, 4).getValue(); 
    var depot09 = LogSheet.getSheetByName("LocationCodes").getRange(11, 4).getValue(); 
    var depot10 = LogSheet.getSheetByName("LocationCodes").getRange(12, 4).getValue(); 
    var depot11 = LogSheet.getSheetByName("LocationCodes").getRange(13, 4).getValue(); 
    var depot12 = LogSheet.getSheetByName("LocationCodes").getRange(14, 4).getValue(); 
    var depot13 = LogSheet.getSheetByName("LocationCodes").getRange(15, 4).getValue(); 
    var depot14 = LogSheet.getSheetByName("LocationCodes").getRange(16, 4).getValue(); 
    var depot15 = LogSheet.getSheetByName("LocationCodes").getRange(17, 4).getValue(); 
    var depot16 = LogSheet.getSheetByName("LocationCodes").getRange(18, 4).getValue(); 
    var depot17 = LogSheet.getSheetByName("LocationCodes").getRange(19, 4).getValue(); 
    var depot18 = LogSheet.getSheetByName("LocationCodes").getRange(20, 4).getValue(); 
    var depot19 = LogSheet.getSheetByName("LocationCodes").getRange(21, 4).getValue(); 
    var depot20 = LogSheet.getSheetByName("LocationCodes").getRange(22, 4).getValue(); 


//send the email to the 'recipient' 
//if SourceValue is recorded as 08 - Mantenance Request System, the recipient is [email protected] 
//otherwise check location code and send to corresponding H&S Co-ordinator's email address 

if (SourceValue == "08 - Mantenance Request System") { 
    var recipient = "[email protected]"; 

//Start with first depot in list 

    } else if (LocationValue == depot01) { 
    var recipient = email01; 

    } else if (LocationValue == depot02) { 
    var recipient = email02; 

    } else if (LocationValue == depot03) { 
    var recipient = email03; 

    } else if (LocationValue == depot04) { 
    var recipient = email04; 

    } else if (LocationValue == depot05) { 
    var recipient = email05; 

    } else if (LocationValue == depot06) { 
    var recipient = email06; 

    } else if (LocationValue == depot07) { 
    var recipient = email07; 

    } else if (LocationValue == depot08) { 
    var recipient = email08; 

    } else if (LocationValue == depot09) { 
    var recipient = email09; 

    } else if (LocationValue == depot10) { 
    var recipient = email10; 

    } else if (LocationValue == depot11) { 
    var recipient = email11; 

    } else if (LocationValue == depot12) { 
    var recipient = email12; 

    } else if (LocationValue == depot13) { 
    var recipient = email13; 

    } else if (LocationValue == depot14) { 
    var recipient = email14; 

    } else if (LocationValue == depot15) { 
    var recipient = email15; 

    } else if (LocationValue == depot16) { 
    var recipient = email16; 

    } else if (LocationValue == depot17) { 
    var recipient = email17; 

    } else if (LocationValue == depot18) { 
    var recipient = email18; 

    } else if (LocationValue == depot19) { 
    var recipient = email19; 

    } else if (LocationValue == depot20) { 
    var recipient = email20; 

} else { 

//and send to Engineering Support if there is no code as a catch all. 
    var recipient = "[email protected]"; //CHANGE TO ENG SUPP 
} 

//with the 'LocationCode' & 'SourceCode' as the subject 
var subject = SourceValue ; 

//then write the'body' of the email including the link to see the changes 
var body = 'A new [' + SourceValue + '] log entry has been recorded at [' + LocationValue + '], listed as [' + HazardValue + '], please click the link > > http://goo.gl/shortcode < < to view details.'; 

{ 
//then send the email 
MailApp.sendEmail(recipient,subject,body); 
} 

나는 명백한 이유로 웹 사이트 주소와 goo.gl 단축 코드를 변경했습니다!

+0

'Mantenance'의 철자가 잘못되었습니다. 그게 문제 야? 비교를 위해 삼중 등호를 쓰겠습니다. –

+0

감사합니다 샌디 - 그걸 못 박는 것처럼 보입니다. 트리플이 동등한 곳으로 확대 할 수 있습니까? 당신은 두 배 대신에 의미합니까? 그리고 왜...? – witham

+0

내 대답보기. –

답변

1

그것은 당신의 비교 값이 철자가 다음과 같습니다

if (SourceValue == "08 - Mantenance Request System") { 
    var recipient = "[email protected]"; 

//Start with first depot in list 

    } else if (LocationValue == depot01) { 
    var recipient = email01; 

그리고 비교를 위해 삼중 등호를 사용하십시오 :

가 대신 Mantenance 유지 보수이어야한다

if (SourceValue === "08 - Maintenance Request System") { 

차이와 관련하여 다음과 같은 소식을 검색 할 수 있습니다.

Stack Overflow Link

+0

다시 한번 감사드립니다. 맞춤법 오류 였고 분류되었습니다. 두 개 대신에 세 개를 사용하는 이유를 설명 할 수 있습니까? 둘 다 작동하는 것 같습니다. – witham

+0

세 개의 등호는 "엄격한"비교이며 값과 유형이 동일해야합니다. 트리플 등호는보다 직관적 인 결과를 만들어냅니다. 그들은 당신이 기대하는 것을 당신에게줍니다. 때로는 이중 등호는 사람들이 실제로하고있는 것을 이해하지 못하기 때문에 예기치 않은 결과를줍니다. [비교 연산자 - Mozilla 문서] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) –

+0

감사합니다. Sandy, 정말 유익한 정보입니다. – witham

관련 문제