2013-02-26 4 views
0

Google에 로그인 한 사용자의 스프레드 시트 기반 데이터를 Ui SplitLayoutPanel에 표시하는 스크립트를 만들고 싶습니다. 나는 지금까지 이런 식으로 뭔가를 썼다 :기록 된 계정별로 스프레드 시트 필터링 Google Apps Script

function doGet() { 
    var app = UiApp.createApplication(); 
    var sPanel = app.createSplitLayoutPanel(); 
    sPanel.addWest(app.createLabel('Hierarchy'), 100); 
    var handler=app.createClientHandler("MyHierarchy"); 
    handler 
    sPanel.addNorth(app.createLabel('List of my Hierarchy'), 200); 
    sPanel.add(app.createLabel('Timesheet')); 
    sPanel.setHeight('100%').setWidth('100%'); 
    app.add(sPanel); 
    return app; 
} 

function MyHierarchy() { 
    var app = UiApp.createApplication(); 
    var ss=SpreadsheetApp.openById("id_of_the_Spreadsheet") 
    var user=Session.getActiveUser().getEmail(); 
    return app; 
} 

를 스프레드 시트에서 나는 (자신의 Google Apps 이메일 계정을 가진) 직원과 그들의 각각의 관리자의 목록을해야합니다. 이 관리자의 이메일을 기반으로 데이터를 필터링하고 싶습니다. 내가 어떻게 계속할 수 있을지에 대한 어떤 생각?

+1

관리자의 이메일을 받고 모든 직원 (그 밑에서 일하는 모든 사람)을 표시하고 싶으십니까? –

+0

바로! 이것이 내가 필요한 것입니다. 하지만이 순간에 앱을 사용하는 사용자와 관련이 있어야합니다. –

답변

0

글쎄, 이건 단순한 조회 일 뿐이므로이 기능을 별도의 기능으로 작성하고 싶을 것이다. 시작하기 위해 실물 크기의 코드를 던질 것입니다.

function getEmployeesUnder(manager) { 
    var employees = []; 
    var sheet = SpreadsheetApp.openById("YOUR SHEET ID").getSheetByName("Your sheet name"); 
    var values = sheet.getDataRange().getValues(); 
    for (var i in values) { 
    if (values[i][1] == manager) { 
     employees.push(values[i][0]); 
    } 
    } 
    return employees; 
} 

여기서는 관리자가 두 번째 열에 있고 직원이 첫 번째 열에 있다고 가정합니다.

이 데이터를 표시하는 방법을 결정하는 것은 전적으로 귀하에게 달려 있습니다.

관련 문제