Saya sedang mengerjakan Formulir Google yang memungkinkan karyawan kami mengirimkan pemeriksaan lapangan terhadap peralatan mereka. Saya memiliki skrip yang mengambil formulir tanggapan dan membuat lembar baru berdasarkan tanggal dan nomor unit spesifik peralatan. Pengguna memeriksa daftar periksa dan memilih "Baik" atau "Perlu Perbaikan" untuk setiap item dalam daftar. Mereka juga dapat menambahkan komentar dan mengunggah gambar mengenai masalah apa pun.
Saya mencoba agar skrip secara otomatis mengirim email jika "Perlu Perbaikan" dipilih untuk pemeriksaan apa pun, serta jika pengguna menambahkan komentar atau gambar. Dengan cara ini kita tidak perlu membuka setiap lembar yang dikirimkan untuk mengetahui apakah ada perbaikan yang diperlukan. Yang saya alami hanyalah tidak mengirim email dan saya tidak tahu alasannya. Bantuan apa pun sangat dihargai!
Ini skrip saya saat ini:
function onFormSubmit() {
// onFormSubmit
// get submitted data and set variables
var ss = SpreadsheetApp.openById("*Spreadsheet Link*");
var sheet = ss.getSheetByName("Submissions");
var row = sheet.getLastRow();
var Col = sheet.getLastColumn();
var headings = sheet.getRange(1,1,1,Col).getValues();
var lastRow = sheet.getRange(row, 1, 1, Col);
var UnitNumber = sheet.getRange(row,3).getValue();
var newSheet = sheet.getRange(row,4,Col).getValue();
var fileExist = false;
var drillSheet = null;
var folder = DriveApp.getFoldersByName("Fraser Drill Inspections").next();
var files = folder.getFilesByName(UnitNumber);
var file = null;
var employee = sheet.getRange(row,2);
var checks = sheet.getRange(row, Col, 1, 20);
// check if Drill has sheet
while (files.hasNext())
{
fileExist = true;
file = files.next();
break;
}
if (fileExist) //If spreadsheet exists, insert new sheet
{
drillSheet = SpreadsheetApp.openById(file.getId());
drillSheet.insertSheet("" + newSheet);
}
else //create new spreadsheet if one doesn't exist
{
drillSheet = SpreadsheetApp.create(UnitNumber);
var ssID = drillSheet.getId();
file = DriveApp.getFileById(ssID);
file = file.makeCopy(UnitNumber, folder);
DriveApp.getFileById(ssID).setTrashed(true);
drillSheet = SpreadsheetApp.openById(file.getId());
drillSheet.renameActiveSheet(newSheet);
}
// copy submitted data to Drill sheet
drillSheet.getSheetByName(newSheet).getRange(1,1,1,Col).setValues(headings);
drillSheet.appendRow(lastRow.getValues()[0]);
drillSheet.appendRow(['=CONCATENATE(B6," ",B5)']);
drillSheet.appendRow(['=TRANSPOSE(B1:2)']);
//Hide top rows with raw data
var hiderange = drillSheet.getRange("A1:A3");
drillSheet.hideRow(hiderange);
//Widen columns
drillSheet.setColumnWidth(1,390);
drillSheet.setColumnWidth(2,700);
//Send email if there are any comments or if anything needs repair
if(lastRow.getValues() == "Needs Repair") {
function SendEmail() {
var ui = SpreadsheetApp.getUi();
MailApp.sendEmail("[email protected]", "Drill Needs Repair", "This drill requires attention according to the most recent inspection report.")
}
}
}