0

가 난 여기에 대한 이벤트의 예약 시스템을 만드는 데 필요한구글 스프레드 시트는

정말 누군가의 도움이 필요 ... 처음부터 내 문제 ....입니다 잘못된 일에 나타납니다 내 사업. 스프레드 시트에 예약을 입력하는 Google 양식을 만든 다음이 데이터를 내 계정의 관련 Google 캘린더에 자동으로 전송하는 코드가 필요했습니다. 이 코드를 만들 사람을 찾았습니다. 코드를 만들 수 있도록 Google 양식/스프레드 시트를 공유했습니다.

내가 양식에 정보를 입력 submitions을하고 그들은 모두 정확한 날짜에 표시하고 당신이 하루 종일 이벤트를 만들 것입니다 코드에 의해 볼 수 있습니다 (있는 경우 : 아래

는 자신이 만든 코드입니다 시작 시간 (startdt)을 기준으로 종일 중 하나에 하루 종일 입력했습니다.

제 문제는 갑자기 내 올바른 항목이 제출 될 때 캘린더에 일찍 나타나기 시작한다는 것입니다. 이것은 오후 11시 이후에 제출 한 모든 항목에 일어난 일이. 문제가 무엇인지 확실하지 않지만 시간대와 관련 있다고 생각합니다. 나는 GMT + 0000 인 영국에 기반을두고 있으며, 나를 위해 스크립트를 만든 사람은 인도에 있습니다. 스크립트의 시간대를 변경하면 트리거가 자동으로 변경되지 않습니다 (원래 시간대로 유지됨).

스프레드 시트의 모든 내용이 올바른데도 일정 시간이 지난 후에 제출하면 갑자기 내 항목이 하루 일찍 나타납니다.

startdt 대신 종료일 (enddt)을 기준으로 하루 종일 이벤트를 생성하는 코드를 편집하여 일시적으로 문제를 해결할 수 있습니다. 그러나 잠시 동안 만 작동합니다. 오전 11 시까 지 가능하면 코드를 다시 변경해야합니다. ?? 그 모든 것은 매우 혼란 스럽다.

시간대 문제 일 수있는 사람이 내 트리거의 시간대를 찾는 방법을 알려주고 그들이 틀린 경우 스크립트에서 제 트리거의 시간대를 편집하는 방법을 알려주십시오. 나는 그들이 잘못된 날짜에 나타나게하는 혼란없이 나의 사업을 위해 예약을하기 위해 이것을 필요로하므로 정말로 붙어 있습니다.

내 캘린더, 스프레드 시트, 양식, 스크립트의 모든

은 그리니치 표준시 + 0000

나는 그것이 다시 변경 될 때까지 문제를 정렬 복사 아래 내 스크립트를 붙여 내가 temporerily에 편집 할 수있는 모든 일 이벤트 섹션을 대담합니다 다시 도움이된다면? 내가 생각하는 바보 당하고

var ss = SpreadsheetApp.getActive(); 
/*function onEdit(e) { 
    var doc = SpreadsheetApp.getActiveSheet(); 
setRowColors(); 
Browser.msgBox("Trigger it"); 
}*/ 

function onEdit(event){ 
    var doc = SpreadsheetApp.getActiveSheet(); 
    var r = event.source.getActiveRange(); 
    var currentCol = r.getColumn(); 
// Browser.msgBox("currentCol:- "+currentCol); 
    if(currentCol!= 10 && currentCol!= 11 && currentCol!= 12) 
    { 
    var currentRow = r.getRow(); 
// Browser.msgBox("currentRow:- "+currentRow); 
    var v = parseInt(currentRow); 
    var dataRange = doc.getRange(v, 10, 1,3); 
    var data = dataRange.getValues(); 
    for (i in data) { 
    var row = data[i]; 
    var tom = row[0].toLowerCase(); 

    // Browser.msgBox(tom); 
    var steven = row[1].toLowerCase(); 
    var lucy = row[2].toLowerCase(); 
    if(tom=="added") 
    doc.getRange(v, 10, 1, 1).setValue("ADD"); 
    if(steven=="added") 
    doc.getRange(v, 11, 1, 1).setValue("ADD"); 
     if(lucy=="added") 
    doc.getRange(v, 12, 1, 1).setValue("ADD"); 

    } 

} 
    // calscript(); 
    //Browser.msgBox("Done:-"); 
} 


function calscript() { 
    //Browser.msgBox("start calscript:-"); 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = 2; // Number of rows to process 
    var dataRange = sheet.getRange(startRow, 1, sheet.getMaxRows(),35); 
    var data = dataRange.getValues(); 

    for (i in data) { 
    var row = data[i]; 
    var title = row[32].toString(); 
    // Browser.msgBox(title);// First column 
    var desc = row[34];  // Second column 
    var tstart = row[2]; 
    // Browser.msgBox(tstart);// First column 
    var tstop = row[3]; 
    // Browser.msgBox(tstop);// First column 
    var loc = row[31]; 
    var tom=row[9].toLowerCase(); 
    var steven=row[10].toLowerCase(); 
    var lucy=row[11].toLowerCase(); 
    var day=row[4].toLowerCase(); 
    if(tom=="add") 
    { 
     AddtoTom(day,title, tstart, tstop, {description:desc,location:loc}); 
     dataRange.getCell(parseInt(i)+1,10).setValue('Added'); 
    } 
    if(steven=="add") 
    { 
     AddtoSteven(day,title, tstart, tstop, {description:desc,location:loc}); 
     dataRange.getCell(parseInt(i)+1,11).setValue('Added'); 
    } 
    if(lucy=="add") 
    { 
     AddtoLucy(day,title, tstart, tstop, {description:desc,location:loc}); 
     dataRange.getCell(parseInt(i)+1,12).setValue('Added'); 
    } 
    //cal.createEvent(title, new Date("March 3, 2010 08:00:00"), new Date("March 3, 2010 09:00:00"), {description:desc,location:loc}); 
    // cal.createEvent(title, tstart, tstop, {description:desc,location:loc}); 
} 
} 
function AddtoTom(day,title,startdt,enddt,desc) 
{ 
    var cal = CalendarApp.openByName("Tom"); 
    if(day=="all day") 
    **cal.createAllDayEvent(title, **startdt,** desc)** 
    else 
    cal.createEvent(title, startdt, enddt, desc); 

} 
function AddtoSteven(day,title,startdt,enddt,desc) 
{ 
    var cal = CalendarApp.openByName("Steven"); 
if(day=="all day") 
    **cal.createAllDayEvent(title, **startdt**, desc)** 
    else 
    cal.createEvent(title, startdt, enddt, desc); 

} 
function AddtoLucy(day,title,startdt,enddt,desc) 
{ 
    var cal = CalendarApp.openByName("Lucy"); 
if(day=="all day") 
    **cal.createAllDayEvent(title, **startdt**, desc)** 
    else 
    cal.createEvent(title, startdt, enddt, desc); 

} 

function onOpen() { 
    // Browser.msgBox('start');// First column 
    var menuEntries = []; 

    menuEntries.push({name: "Add To Calendar", functionName: "calscript"}); 
    ss.addMenu("Main Menu", menuEntries); 
// Browser.msgBox('end');// First column 
} 

function onInstall() { 
    onOpen(); 
} 

function onFormSubmit() 
{ 

} 
function configure() { 
// Browser.msgBox('trigger');// First column 
    ScriptApp.newTrigger("calscript").timeBased().everyMinutes(1).create(); 
    //Browser.msgBox('trigger ends');// First column 
} 

답변

0

확인 ....... 그것은 하루했던 결과 만 일찍 나타난대로 일광 절약 문제였다 정말 스크립트의 문제가 아니었다 밝혀 2013 년 4 월 1 일 이후로 내 캘린더, 양식/스프레드 시트 및 스크립트에 대한 시간대를 GMT + 0000으로 설정했습니다. 간단히 'GMT + 0000 일광 절약 시간제'로 재설정했는데 문제가 해결 된 것 같습니다. 날짜가 뒤로 밀려나거나 시간이 1 시간 뒤로 밀리는 비슷한 날짜 문제가있는 사람에게이 방법을 권합니다.

관련 문제