SharePointCommunity
Die deutschsprachige Community für SharePoint, Office 365 und mit Azure

[SP2010] Fragen zum Drucken von aufwendigen Seiten, Lookups und dynamisch erweiterbaren Feldern mit Javascript

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 3 Antworten | 1 Follower

Top-50-Beitragsschreiber
263 Beiträge
MStel erstellt in 21 Mrz 2018 13:47

Hallo,

ich habe einen neuen Anforderungskatalog erhalten und soll nun mittels SharePoint Server 2010 Dinge realisieren, von denen ich bisher nicht einmal sicher bin, ob diese überhaupt realisierbar sind.

Daher wollte ich mir zunächst Inspiration holen & hier fragen wie eure Herangehensweise an folgende Problematiken wäre, da ich seit einigen Tagen keine Ergebnisse erziele.

1.) Ich habe es mit Javascript & Jquery (orgchart.js) in einem ContentEditorWebpart geschafft, ein Organigramm aus einer externen Liste darzustellen.

Das Ganze funktioniert so weit wie geplant, jedoch soll ich dieses Organigramm nun ausdrucken, und nicht nur ich, sondern auch die Nutzer sollen in der Lage dazu sein. Ich habe mit Javascript einen Button hinzugefügt, der window.print() aufruft, das Ganze klappt jedoch nicht, da das Organigramm so massiv groß ist, dass man bereits ewig scrollen muss und extrem viele Seiten aneinander drucken müsste oder einen Plotter benötigen würde, um diese zu drucken. Darüber hinaus gibt mir das Fenster, welches mit window.print geöffnet wird maximal eine Seite aus, auf diese das Organigramm nicht ansatzweise passen würde.

Das Ganze in ein PDF zu übertragen und im Acrobat Reader zu drucken wäre auch ein Denkansatz, habe dazu aber ebenfalls nichts Freies gefunden.

Selbst ein Bild (bitmap) daraus zu machen würde genügen, (quasi snipping tool, mit scrollaufnahme) mir ist aber nichts dergleichen bekannt.

Habt ihr eine Idee?

2.) Den einzelnen Teilen im Organigramm werden per Lookup Feld Personen zugewiesen. So steht bei Dienststelle ABC beispielsweise Person X.

Ist es im Umkehrschluss auch möglich bei der Person X anzuzeigen, dass diese bei Dienststelle ABC zugewiesen ist? Wenn ja, wie verhält sich das, wenn mehrere Personen zugewiesen werden könnten? Habe aktuell EnforceUnqiueValues auf True, somit ist es quasi eine 1:1 Beziehung, dies wird sich jedoch sehr wahrscheinlich noch ändern.

3.) Es ist eine Art Custom Field gewünscht, in der quasi der Lebenslauf der Person erfasst wird.

Dafür sollen 3 Felder nebeneinander erscheinen, 2 Datum Felder für Von & Bis, und die Stelle auf der die Person vorher beschäftigt war als Textfeld.

Falls das Textfeld ausgefüllt ist, soll genau dasselbe (die 3 genannten Felder) bis zu 10x untendrunter erneut erscheinen, um eine weitere Stelle einzutragen.

Ist es überhaupt möglich Felder in der new- & editform nebeneinander anzeigen zu lassen?

Das ausblenden würde ich jetzt pauschal über javascript machen, aber dennoch ändert es nichts an der Tatsache dass ich bei einem Maximum von 10 einzutragenden Stellen 30 Spalten händig/programmatisch anlegen müsste, um die Anforderung abzudecken.

Das erscheint mir nicht nur aufwendig, sondern auch unsauber.

Könnte man die benötigte Funktion auch anders abdecken?

Wie gesagt, ich möchte hier nicht nach fertigen Codebeispielen betteln, ich suche lediglich Inspiration und würde gerne mal eine andere Herangehensweise/Perspektive als meine eigene sehen, daher bin ich sehr dankbar für sämtliche Hinweise.

Ebenfalls erwähnenswert: Käufliche Lösungen oder ein Upgrade auf SharePoint Server 2016 stehen aktuell nicht zur Option, da wir die neue Version erst gegen ende des Jahres bekommen, dieses Projekt samt Anforderungen jedoch bis Mitte des Jahres angesetzt ist.

Danke im Voraus

MFG

Alle Antworten

Top-10-Beitragsschreiber
Männlich
18.565 Beiträge

Boah, was ein langer Post. Ich versuche es mal in aller Kürze.

MStel:
wir die neue Version erst gegen ende des Jahres bekommen

Das heißt aber, daß eine Migration immerhin angedacht ist und dann würde ich auch nur versuchen das alles per JavaScript umzusetzen. Das ist das, was sich noch am ehesten migrieren läßt. Aber auch da hat man seit 2013 deutlich andere Möglichkeiten...

1. Organigramm drucken. vergiß alles, was mit Umwandlung in andere Formate zu tun hat. Das geht alles mit JS nicht. Das Drucken ist eine reine Angelegenheit von CSS. Es ist definitiv irgendwie möglich, dafür zu sorgen, daß es auch beim Drucken eine vernünftige Größe hat. Leider kann ich da aber aus der Ferne nicht mehr dazu sagen.

2. Du kannst die Organigramm-Liste abfragen und dabei auf die gesuchte Person filtern. Das geht auch per JS. Stichwort dafür ist CAML-Query. Grundsätzliches zur Syntax habe ich hier zusammengeschrieben, Du mußt nur die Abfrage selbst per JS machen: https://andifandrich.wordpress.com/2010/12/03/caml-abfragen-in-sharepoint/

3. Ich würde alles zusammen in einem definierten Format wie z.B. JSON in ein Langtextfeld schreiben. JS im Formular macht dann Folgendes: das Original-Feld von SharePoint ausblenden und stattdessen eigene Eingabefelder erzeugen. Änderungen in den eigenen Feldern werden per JS immer in das Original geschrieben. Beim Speichern werden dann also die Daten automatisch von SharePoint gespeichert.

Viele Grüße
Andi
af @ evocom de
Blog
Top-50-Beitragsschreiber
263 Beiträge

Hi,

sorry für den langen Post, ich wollte nur nicht dass ich so viele Themen anschneide, aber nicht tief genug aushole, dass sich jemand etwas darunter vorstellen kann.

1. Gut in die Richtung das über CSS zu lösen habe ich noch nicht gedacht. Das schaue ich mir dann definitiv an. Dass es anders nicht möglich ist dachte ich mir schon irgendwie..

2. Hier habe ich wohl nicht detailliert genug beschrieben was ich benötige. Und zwar Habe ich eine Liste mit Personen und eine Liste mit "Organigramm-Elementen", die eine Lookup Spalte auf die Liste Personen und deren Name haben.
Ich möchte jetzt bei Personen in der Dispform.aspx eine Spalte angezeigt bekommen, in der steht wo diese zugeordnet ist. (zum Beispiel "beschäftigt bei:")Muss diese Spalte dafür in der Liste Personen angelegt sein? KWenn ja, kann ich diese auch als berechneter wert anlegen und dort als Formel eine CAML Query hinterlegen die dann automatisch für alle Personen den wert aktualisiert, falls die Zuordnung im Organigramm geändert wird?

CAML ist mir eigentlich bekannt, aber damit schränke ich bisher nur bei Listenansichten ein, welche Elemente angezeigt werden.

3. Verständlich, sehr gute Idee, begebe mich dran!

Tausend Dank auf jeden fall schon einmal für deine Mühe und Vorschläge.

MFG

Top-10-Beitragsschreiber
Männlich
18.565 Beiträge

1. bedenke auch, daß es spezielle CSS-Regeln geben kann, die nur beim Drucken gelten (media-type). Ich weiß ja nicht, was da bei Euch an angepaßtem Design rumschwirrt...

2. Man kann CAML auch zum direkten Abfragen von Listen verwenden (die Ansichten machen im Hintergrund ja genau das). Du brauchst überhaupt nichts zusätzliches, sondern "nur" JavaScript im Formular. Das JS holt per CAML die zugehörigen Elemente (es können im Prinzip mehrere sein) und stellt sie dar.

Viele Grüße
Andi
af @ evocom de
Blog
Seite 1 von 1 (4 Elemente) | RSS