Browserintegration
stift
- browser
Hi Leute,
hab folgendes nervenaufreibendes Problem:
Situation: In einer Intranetlösung soll eine editierbare Tabelle wiedergegeben werden, auf die jeder User via Intranet Änderungen machen kann.
Derzeit löse ich das über Excel. Das ist aber Käse, der eine Browser machts in der Applikation auf, der andere im Browserfenster, fragt beim schliessen ob man es abspeichern will, drückt man "ja" kommt der "Speichern unter" Dialog, was natürlich idiotisch ist, da der User zwar Rechte auf die Datei hat, das Laufwerk aber nicht gemappt hat.
Kann mir da jmd helfen, bzw eine Alternative zeigen?
Gruss Stift
Hallo,
Situation: In einer Intranetlösung soll eine editierbare Tabelle wiedergegeben werden, auf die jeder User via Intranet Änderungen machen kann.
Derzeit löse ich das über Excel. Das ist aber Käse, der eine Browser machts in der Applikation auf, der andere im Browserfenster, fragt beim schliessen ob man es abspeichern will, drückt man "ja" kommt der "Speichern unter" Dialog, was natürlich idiotisch ist, da der User zwar Rechte auf die Datei hat, das Laufwerk aber nicht gemappt hat.
Das, was Du da als "Probleme" beschreibst, sind marginale Probleme Deiner Anforderung.
Die Einfachste Möglichkeit eine Datei (z.B.: Excel-Tabelle) im Intranet zur Verfügung zu stellen wäre, diese in eine Netzwerkfreigabe zu legen, auf die alle berechtigten Nutzer Zugriff haben. Wenn allerdings mehrere Nutzer dort ändern dürfen, ergeben sich folgende Probleme:
Nutzer A öffnet die Datei und beginnt zu ändern.
Nutzer B öffnet die Datei noch im Zustand vor den Änderungen von A (dieser hat ja noch nicht gespeichert) und beginnt auch zu ändern.
Da beide Nutzer die Datei nur als Ganzes speichern können, gehen in jedem Fall die Änderungen des Nutzers der zuerst speichert verloren. Es gewinnt der, welcher zuletzt speichert. Einer Datei sieht man aber nur an, wann (und eventuell von wem) sie als Ganzes zuletzt gespeichert wurde. Welche Inhalte dabei geändert wurden, kann man nicht so einfach feststellen. Das ist das Hauptproblem Deiner Anforderung.
Es gibt mehrere Ansätze dieses Problem zu umgehen.
Einer ist, die Datei für den Schreib/Lese-Zugriff zu sperren, sobald ein Nutzer sie mit Änderungsberechtigungen geöffnet hat. Andere Nutzer können die Datei dann zwar noch öffnen, aber nur schreibgeschützt. Dieses Verhalten zeigt MS-Office von Haus aus. Man bekommt dann die Mitteilung, dass die Datei von [Nutzer] bearbeitet wird und wird gefragt, ob man sie schreibgeschützt öffnen möchte. Prinzipiell löst das zwar das beschriebene Problem, hat aber gravierende Nachteile:
Was folgt daraus? Diese "Lösung" ist bei großen Nutzergruppen, wo man nicht mal schnell über den Schreibtisch hinwegrufen kann: "Hallo, ich müsste auch mal an die Datei!" nicht praktikabel.
MS-Excel bietet hierfür zwar mit "Extras-Arbeitsmappe freigeben" teilweise Lösungsmöglichkeiten, wie Änderungsnachverfolgung und Konfliktbehandlung, praktikabel ist das aber für mehr als drei Nutzer oft auch nicht.
Wie also lösen? Nun, man liefert dem Nutzer nicht die gesamte Datei zur Bearbeitung aus, sondern nur einen Teil, z.B. einen Datensatz. Dann muss man nur diesen Datensatz für andere Nutzer sperren, andere Datensätze können diese aber weiter bearbeiten. Man kann es, je nach Anwendungsfall, sogar so lösen, dass man allen Nutzern das Öffnen und Ändern aller einzelnen Datensätze gestattet. Sollten zwei Nutzer zeitgleich den selben Datensatz öffnen, gewinnt wieder der, der ihn zuletzt speichert. Da das aber nur _einen_ Datensatz betrifft und nicht den gesamten Datenbestand und man zusätzlich mitprotokollieren kann, wer der Datensatz zuletzt gespeichert hat, ist das immer noch praktikabler als die Dateifreigabe des gesamten Datenbestandes.
Diese Lösung arbeitet mit einer Datenbank. Um sie umzusetzen brauchst Du also serverseitig eine Datenbank[1] und eine serverseitige Programmlogik, die diese Datenbank abfragen und aktualisieren und das Nutzermanagement abbilden kann. Diese Programmlogik erzeugt dann (X)HTML-Formulare, die im Client-Browser den entsprechenden Datensatz zur Bearbeitung anbieten oder eben (X)HTML-Tabellen, die den Datenbestand zeigen.
Auch hier bietet Office in Zusammenarbeit mit dem IIS und ASP bzw. .NET spezielle Möglichkeiten.
[1]Wobei eine Datenbank nicht immer ein Relationales Datenbanksystem, wie Oracle, MS-SQL-Server, MySQL usw. sein muss.
viele Grüße
Axel