Skip to content

Instantly share code, notes, and snippets.

@kir-sf
Created December 25, 2016 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kir-sf/5f8bfd659a528f1149779a9bd07a5b1f to your computer and use it in GitHub Desktop.
Save kir-sf/5f8bfd659a528f1149779a9bd07a5b1f to your computer and use it in GitHub Desktop.
Panning
function onOpen() {
var curSheetUi=SpreadsheetApp.getUi();
curSheetUi.createMenu('Планирование')
.addItem('Очистить график', 'clearPlan')
.addItem('Сформировать график', 'makePlan')
.addToUi();
}
function clearPlan() {
var sh=SpreadsheetApp.getActive().getSheetByName("График");
var plans=sh.getDataRange().getValues();
var index=plans[0].indexOf("Неделя", index);
while (index!=-1) {
sh.getRange(2, ++index, plans.length, 1).clearContent();
index=plans[0].indexOf("Неделя", index);
}
}
function makePlan() {
clearPlan();
var sh=SpreadsheetApp.getActive().getSheetByName("График");
var plans=sh.getDataRange().getValues();
var ss=SpreadsheetApp.getActive().getSheetByName("Реестр");
var vals=ss.getDataRange().getValues();
var indexOfClient=vals[0].indexOf("Клиент");
var indexOfIngeneer=vals[0].indexOf("Сотрудник");
var indexOfWeekNum=vals[0].indexOf("Неделя");
for (var i=1; i<vals.length; i++) {
var client=vals[i][indexOfClient];
var ingeneer=vals[i][indexOfIngeneer];
if (ingeneer=="") ingeneer="Не задан сотрудник";
var weekNum=vals[i][indexOfWeekNum];
var indexOfCurWeek=plans[0].indexOf(weekNum);
for (var j=1; j<plans.length; j++)
if (ingeneer==plans[j][0]) {
var str=sh.getRange(j+1, indexOfCurWeek).getValue();
str=str+" "+client+";";
sh.getRange(j+1, indexOfCurWeek).setValue(str);
sh.getRange(1, 1).copyFormatToRange(sh, indexOfCurWeek, indexOfCurWeek, j+1, j+1)
break;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment