2016-09-20 4 views
0

Ich entwerfe das Bestellsystem für mein Unternehmen neu. Ich möchte den Prozess nahezu vollständig automatisieren und an einem Ort leben lassen. Abgesehen von dem Punkt, an dem meine Lieferanten ihren Tab durch Eingabe von Angeboten (Preisen) bearbeiten müssen, hatte ich keine großen Probleme.Tabs in Google Tabellen ausblenden

Das Problem ist, dass sie andere Anbieter (Konkurrenten) Tabs sehen können und ich möchte nicht, dass dies geschieht.

Also, ich bin ein Zwischenprodukt auf Apps-Skript so kann mich zurechtfinden und haben ein kleines Skript, das im Moment funktioniert, aber als ich die Skala erhöhen, mache ich mir Sorgen, dass mein Code Probleme haben wird.

Das folgende Skript überprüft den effektiven Benutzer und blendet je nach E-Mail-Adresse des Benutzers eine Registerkarte aus. Dies ist alles gut und gut, aber in einem größeren Maßstab, wo jeder Lieferant (von 5) nicht in der Lage sein wird, die anderen 4 Verkäufer Tabs zu sehen, wird dies ein Problem darstellen.

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() 
    } 
} 

Grundsätzlich gibt es einen direkten Weg oder einen besseren Weg als ich tue? Alles, was ich will, ist 4 unserer 5 Verkäufer-Registerkarten zu verstecken, je nachdem, welcher Verkäufer das Blatt bearbeitet. So sieht Seller1 nur die Registerkarte Seller1, wo es tatsächlich 5 Verkäufer-Register gibt.

+0

Dies ist nicht wirklich etwas Tabellen entworfen zu tun. Ziehen Sie in Erwägung, eine [Web-App] (https://developers.google.com/apps-script/guides/web) zu erstellen, in der jeder Benutzer sein eigenes Frontend hat, ohne die Tabelle direkt zu sehen, wenn Sie Ihre aktuelle Infrastruktur beibehalten möchten. –

+0

So könnte ich ein Menüsystem aufbauen, das jedem Benutzer seine eigene Instanz des Dokuments zeigt. –

Antwort

0

Anstatt alle Verkäufer in einer Tabelle zu berücksichtigen, haben Sie sich überlegt, eine Tabellenkalkulationsdatei für jeden Verkäufer zu erstellen, auf den sie Zugriff haben? Verwenden Sie dann die Funktion importrange(), um diese in Ihre zentrale Tabelle zu importieren. Dies minimiert den Bedarf an Code, bedeutet jedoch, dass alle Änderungen an den Informationen des Lieferanten in der zugehörigen Datei erfolgen müssen. Sie können weiterhin zusätzliche Spalten mit Formeln für interne Berechnungen in der zentralen Tabelle verwenden.

Karl

0

Vielen Dank den Vorschlag bekommen. Ich habe dies als eine Alternative oder ein Formular für Lieferanten betrachtet, die ausgefüllt werden müssen, aber ich habe das Problem gelöst.

Ich habe jetzt alle außer einem Willkommens-Tab zunächst versteckt. Sobald das Dokument geöffnet ist, erscheint eine Eingabeaufforderung, in der Sie nach einem Passwort gefragt werden. Abhängig vom angegebenen Passwort wird eine bestimmte Registerkarte angezeigt. Dadurch können sie ihre Änderungen vornehmen, meine Mitarbeiter können auf alles zugreifen und Lieferanten sehen sich gegenseitig keine Angebote.

Grüße,

James

Verwandte Themen