2017-04-20 16 views
-1

現在のところ、このスクリプトは顧客契約のテンプレートを使用し、「キー」をアクティブ行の値に置き換え、pdfを作成して電子メールで送信します。私は使いたい3種類のテンプレートを持っています。このコードを変更して複数のテンプレートを含めるにはどうすればよいですか?

私のスプレッドシートの列b(列aはタイムスタンプ)では、テンプレート1,2または3の中から選択したいと思います。スクリプトを実行すると、列bに基づいてテンプレートが取得されます。テキストを置き換え、今のようにpdfと電子メールを作成します。

テンプレートの唯一の違いは、スタイルとロゴです。すべての「キー」と変数は同じです。私は、スクリプトがアクティブな行のカラムbの値に基づいて3つのテンプレートの間で決定し、今度はそれと同じように進めたいと思っています。おかげ

var docConTemplate = "1uQnP_Z7TqPgMrk9SFzc"; 
var docConName = "Customer Contract"; 

function sendContract() { 
//Get information from form and set as variables 

var ActiveSheet = SpreadsheetApp.getActiveSheet(); 
var ActiveRow = ActiveSheet.getActiveRange().getRow(); 
var cus_nam = ActiveSheet.getRange("B"+ActiveRow).getValue(); 
var cus_add = ActiveSheet.getRange("E"+ActiveRow).getValue(); 
var tod_dat = Utilities.formatDate(new Date(), "GMT-4", "EEEE MMMM dd, 
yyyy"); 
var cus_pho = ActiveSheet.getRange("D"+ActiveRow).getValue(); 
var cus_ema = ActiveSheet.getRange("C"+ActiveRow).getValue(); 
var num_bus = ActiveSheet.getRange("J"+ActiveRow).getValue(); 
var date_bb = ActiveSheet.getRange("F"+ActiveRow).getValue(); 
var dep_dat = Utilities.formatDate(date_bb, "GMT-4", "EEEE MMMM dd, 
yyyy 'at' hh:mm a"); 
var dep_add = ActiveSheet.getRange("G"+ActiveRow).getValue(); 
var des_des = ActiveSheet.getRange("H"+ActiveRow).getValue(); 
var date_cc = ActiveSheet.getRange("I"+ActiveRow).getValue(); 
var ret_dat = Utilities.formatDate(date_cc, "GMT-4", "EEEE MMMM dd, 
yyyy 'at' hh:mm a"); 
var cus_not = ActiveSheet.getRange("L"+ActiveRow).getValue(); 
var price = ActiveSheet.getRange("K"+ActiveRow).getValue(); 

// Get document template, copy it as a new temp doc, and save the 
Doc’s id 
var copyId = DriveApp.getFileById(docConTemplate) 
.makeCopy(docConName+' for '+dep_dat) 
.getId(); 
// Open the temporary document 
var copyDoc = DocumentApp.openById(copyId); 
// Get the document’s body section 
var copyBody = copyDoc.getActiveSection(); 

// Replace place holder keys,in our google doc template 
copyBody.replaceText('keyCusNam', cus_nam); 
copyBody.replaceText('keyCusAdd', cus_add); 
copyBody.replaceText('keyDat', tod_dat); 
copyBody.replaceText('keyPho', cus_pho); 
copyBody.replaceText('keyEma', cus_ema); 
copyBody.replaceText('keyDepDat', dep_dat); 
copyBody.replaceText('keyDepAdd', dep_add); 
copyBody.replaceText('keyDesAdd', des_des); 
copyBody.replaceText('keyRetDat', ret_dat); 
copyBody.replaceText('keyCusNot', cus_not); 
copyBody.replaceText('keyPri', price); 
copyBody.replaceText('keyNumBus', num_bus); 

// Save and close the temporary document 
copyDoc.saveAndClose(); 

// Convert temporary document to PDF 
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf"); 

// Attach PDF and send the email 
var subject = "Contract"; 
var body = "Thank you for your business! Here is the contract for " + 
dep_dat + "."; 
    MailApp.sendEmail(cus_ema, subject, body, {htmlBody: body, 
    attachments: pdf}); 

// Delete temp file 
DriveApp.getFileById(copyId).setTrashed(true); 
} 
+0

このサイトはプログラミングに関する質問に答えるためのものだと思っていました。代わりに私は文法レッスンを受けました。質問はまだ答えられていない。よくやった!私はこれをどこか別のものに見せてくれると思う。 –

答えて

0

私はこの置き換え:私はこのコードに基づいて、答え自分自身を発見した

var docInvTemplate; 
var sheet = SpreadsheetApp.getActiveSheet(); 
var row = sheet.getActiveRange().getRowIndex(); 
var company = sheet.getRange("B"+row).getValue(); 
if (company == "company1") {docInvTemplate = 
"1eRABNlFxW0KafpX6x1qOXwxHzYZ1ernQVm9kg79E";} 
else if (company == "ompany2") {docInvTemplate = 
"1uKXirM26fHkp7qc9YB4WTBHjzZqurAADEE8NAY";} 
else if (company == "company3") {docInvTemplate = 
"1CMNxBbo6qt3CsuGwTofAxMdWPH_2oE3ADHYc";} 
var docInvName = "Customer Invoice"; 

:これで

var docConTemplate = "1uQnXrMLUP_Tq9SFzc"; 
var docConName = "Customer Contract"; 

var initialcontact; 
var row = sheet.getActiveRange().getRowIndex(); 
var urgency = sheet.getRange(row, 
getColIndexByName("Urgency")).getValue(); 
if (urgency = "Critical") {initialcontact = "1 hour";} 
else if (urgency = "High") {initialcontact = "4 hours";} 
else if (urgency = "Medium") {initialcontact = "1 day";} 
else if (urgency = "Low") {initialcontact = "3 days";} 

私が見つけましたあなたのサイトのここに:

http://stackoverflow.com/questions/20404002/google-apps-script-conditional-if-else-if-statement 

私の文法を修正してください。

関連する問題