2016-09-20 97 views
0

我正在爲我的公司重新設計採購訂購系統。我想讓這個過程接近完全自動化,並將它存活在一個地方。除了供應商需要通過輸入報價(價格)來編輯標籤之外,我沒有遇到太多麻煩。隱藏Google表格中的標籤

問題是他們可以看到其他供應商(競爭對手)選項卡,我不希望發生這種情況。

所以,我是一箇中間的應用程序腳本,以便可以尋找周圍的路上,有一個小規模的腳本,在目前的工作,但我擴大規模我擔心我的代碼會出現問題。

下面的腳本根據用戶的電子郵件地址檢查有效用戶並隱藏選項卡。這一切都很好,但是在更大規模的情況下,每個供應商(5分之外)都不能看到其他4個賣家標籤,這會出現問題。

function validUsers() { 
    var adminUsers = ['[email protected]']; 
    var Users = ['[email protected]']; 

    if (adminUsers.indexOf(Session.getEffectiveUser().getEmail()) >= 0) { 
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").showSheet() 
    } 

    if (Users.indexOf(Session.getEffectiveUser().getEmail()) >= 0) { 
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").hideSheet() 
    } 
} 

基本上,是否有比我更直接的方式或更好的方式? 我只想隱藏4個5個賣家標籤,具體取決於哪個賣家正在編輯表單。因此,Seller1只能看到Seller1標籤,其中有5個賣家標籤。

+0

這真的不是電子表格的設計做。考慮創建一個[web應用程序](https://developers.google.com/apps-script/guides/web),其中每個用戶都有自己的前端,如果您想保留當前的基礎架構,您從未直接看過電子表格。 –

+0

因此,我可以建立一個菜單系統,它向每個用戶顯示他們自己的文檔實例。 –

回答

0

而不是將所有賣家都包含在一個電子表格中,您是否考慮過爲他們有權訪問的每個賣家創建一個電子表格文件?然後使用importrange()函數將其導入到中央電子表格中。這最大限度地減少了對代碼的需求,但確實意味着對供應商信息的所有更改都需要在關聯的文件中進行。您仍然可以在中央電子表格中使用具有內部計算公式的附加列。

卡爾

0

謝謝您的建議。我認爲這是供應商填寫的替代方案或形式,但我已經解決了這個問題。

我現在只有一個隱藏在首位的歡迎標籤。一旦文件被打開,出現提示框詢問密碼。根據給定的密碼,將顯示特定的選項卡。這可以讓他們做出更改,我的員工可以訪問所有內容,並防止供應商看到每個人的報價。

問候,

詹姆斯