হালনাগাদ:
এই উত্তরে লিখিত হিসাবে ,
Logger.log
হয় আপনার স্ক্রিপ্টগুলিতে ঘটে যাওয়া ত্রুটিগুলির একটি ইমেল (শেষ পর্যন্ত) প্রেরণ করবে বা আপনি যদি জিনিসগুলি চালাচ্ছেন তবে আপনি Script Editor
শেষ রান ফাংশন থেকে লগটি দেখতে পাচ্ছেন View->Logs
(এখনও স্ক্রিপ্ট সম্পাদক হিসাবে)। আবার, এটি আপনাকে কেবল এমন কিছু দেখাতে দেবে যা আপনি ভিতর থেকেScript Editor
দৌড়ে যাওয়া শেষ ফাংশন থেকে লগইন করেছিলেন ।
আমি যে স্ক্রিপ্টটিতে কাজ করার চেষ্টা করছিলাম তার স্প্রেডশিটগুলির সাথে করণীয় ছিল - আমি একটি স্প্রেডশিট টু-চেকলিস্ট টাইপ জিনিস তৈরি করেছিলাম যা আইটেমগুলিকে অগ্রাধিকার অনুসারে বাছাই করে।
সেই স্ক্রিপ্টের জন্য আমি যে ট্রিগারগুলি ইনস্টল করেছি তা হ'ল অন ওপেন এবং অন-এডিট ট্রিগার। অন এডিট ট্রিগারটি ডিবাগ করা সবচেয়ে কঠিন ছিল, কারণ আমি ভাবতে থাকি যে আমি যদি আমার অনেডিট ফাংশনটিতে একটি ব্রেকপয়েন্ট স্থাপন করি, স্প্রেডশিট খুলি, একটি কক্ষ সম্পাদিত করি যে আমার ব্রেকপয়েন্টটি ট্রিগার হবে। এই ক্ষেত্রে না হয়.
একটি সেল সম্পাদিত থাকার ভান করার জন্য, আমি না প্রকৃত স্প্রেডশীট যদিও কোনো কিছু দেবার থাকার শেষ। আমি যা করেছি তা নিশ্চিত করেছিলাম যে আমি যে ঘরটি "সম্পাদিত" হিসাবে বেছে নিতে চেয়েছি তা নির্বাচিত হয়েছে, তারপরে Script Editor
, আমি যাব Run->onEdit
। তাহলে আমার ব্রেকপয়েন্টে আঘাত হানে।
যাইহোক, আমাকে ইভেন্টটি যুক্তিটি ব্যবহার করা বন্ধ করে দিতে হবে যা অনেডিট ফাংশনে চলে যায় - আপনি এটি করে অনুকরণ করতে পারবেন না Run->onEdit
। স্প্রেডশিট থেকে আমার প্রয়োজনীয় কোনও তথ্য যেমন কোনও ঘর নির্বাচন করা হয়েছিল ইত্যাদি, আমাকে নিজেই বের করতে হয়েছিল।
যাইহোক, দীর্ঘ উত্তর, কিন্তু আমি শেষ পর্যন্ত এটি সন্ধান।
সম্পাদনা :
আমার তৈরি টোডো চেকলিস্টটি যদি আপনি দেখতে চান তবে আপনি এটি এখানে পরীক্ষা করে দেখতে পারেন
(হ্যাঁ, আমি জানি যে কেউ এটি সম্পাদনা করতে পারে - এটি এটিকে ভাগ করে নেওয়ার মূল বিষয়!)
আমি আশা করছিলাম এটি আপনাকেও স্ক্রিপ্টটি দেখতে দিন। আপনি যেহেতু এটি দেখতে পাচ্ছেন না, তাই এটি এখানে:
function onOpen() {
setCheckboxes();
};
function setCheckboxes() {
var checklist = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("checklist");
var checklist_data_range = checklist.getDataRange();
var checklist_num_rows = checklist_data_range.getNumRows();
Logger.log("checklist num rows: " + checklist_num_rows);
var coredata = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
var coredata_data_range = coredata.getDataRange();
for(var i = 0 ; i < checklist_num_rows-1; i++) {
var split = checklist_data_range.getCell(i+2, 3).getValue().split(" || ");
var item_id = split[split.length - 1];
if(item_id != "") {
item_id = parseInt(item_id);
Logger.log("setting value at ("+(i+2)+",2) to " + coredata_data_range.getCell(item_id+1, 3).getValue());
checklist_data_range.getCell(i+2,2).setValue(coredata_data_range.getCell(item_id+1, 3).getValue());
}
}
}
function onEdit() {
Logger.log("TESTING TESTING ON EDIT");
var active_sheet = SpreadsheetApp.getActiveSheet();
if(active_sheet.getName() == "checklist") {
var active_range = SpreadsheetApp.getActiveSheet().getActiveRange();
Logger.log("active_range: " + active_range);
Logger.log("active range col: " + active_range.getColumn() + "active range row: " + active_range.getRow());
Logger.log("active_range.value: " + active_range.getCell(1, 1).getValue());
Logger.log("active_range. colidx: " + active_range.getColumnIndex());
if(active_range.getCell(1,1).getValue() == "?" || active_range.getCell(1,1).getValue() == "?") {
Logger.log("made it!");
var next_cell = active_sheet.getRange(active_range.getRow(), active_range.getColumn()+1, 1, 1).getCell(1,1);
var val = next_cell.getValue();
Logger.log("val: " + val);
var splits = val.split(" || ");
var item_id = splits[splits.length-1];
Logger.log("item_id: " + item_id);
var core_data = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("core_data");
var sheet_data_range = core_data.getDataRange();
var num_rows = sheet_data_range.getNumRows();
var sheet_values = sheet_data_range.getValues();
Logger.log("num_rows: " + num_rows);
for(var i = 0; i < num_rows; i++) {
Logger.log("sheet_values[" + (i) + "][" + (8) + "] = " + sheet_values[i][8]);
if(sheet_values[i][8] == item_id) {
Logger.log("found it! tyring to set it...");
sheet_data_range.getCell(i+1, 2+1).setValue(active_range.getCell(1,1).getValue());
}
}
}
}
setCheckboxes();
};