Επισκόπηση:
(Η ΕΝΗΜΕΡΩΜΈΝΗ ΈΚΔΟΣΗ 12/04/07: Προστεθεί μια άλλη ενδιαφέρουσα πηγή στο τέλος σύνδεση σε ένα άλλο blog που ασχολείται με αυτό μέσω ενός πολύ ενδιαφέρουσα τμήματος web)
Αυτό το ιστολόγιο εισόδου περιγράφει πώς να δημιουργήσετε ένα γράφημα ράβδων στο SharePoint. Αυτό λειτουργεί τόσο WSS, και ΒΡΎΟ περιβάλλον, καθώς εξαρτάται μόνο από το τμήμα web προβολής δεδομένων.
Η συνολική προσέγγιση που έχει ως εξής:
- Δημιουργία μιας λίστας ή βιβλιοθήκης εγγράφων που περιέχει τα δεδομένα που θέλετε να.
- Τοποθετήστε τη βιβλιοθήκη του συσχετιζόμενου εγγράφου / προσαρμοσμένη λίστα επάνω σε μια σελίδα και να το μετατρέψει σε ένα τμήμα web προβολής δεδομένων (DVWP).
- Τροποποιήσετε το DVWP XSL για τη δημιουργία HTML που παρουσιάζει ως ένα γράφημα.
Επιχειρηματικό σενάριο / Εγκατάστασης:
Έχω δημιουργήσει μια προσαρμοσμένη λίστα με πρότυπο στήλη τίτλος και μία πρόσθετη στήλη, "Κατάσταση". Αυτά τα πρότυπα (πολύ απλουστευτικά) "άδεια για δαπάνη" σενάριο όπου ο τίτλος αντιπροσωπεύει το έργο και το καθεστώς μια τιμή από τη λίστα των:
- Προτείνει
- Στη διαδικασία
- Αδιέξοδο
Ο στόχος είναι να παράγει μια διαδραστική οριζόντιο ραβδόγραμμα που δείχνει αυτούς τους κωδικούς κατάστασης.
Εγώ έχουν πληθυσμό τον κατάλογο και να μοιάζει με αυτό:
Δημιουργήσετε το τμήμα Web προβολής δεδομένων:
Δημιουργήστε το DVWP με την προσθήκη την προσαρμοσμένη λίστα σε μια σελίδα (στη δική μου περίπτωση της ιστοσελίδας) και ακολουθήστε τις οδηγίες Εδώ (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).
Εκτός από απλά τη δημιουργία του DVWP, πρέπει επίσης να ορίσετε την ιδιότητα σελιδοποίησης για να δείξει όλες τις διαθέσιμες γραμμές. Για μένα, Αυτό φαίνεται κάτι σαν αυτό:
Σε αυτό το σημείο, Κλείνω πάντα το SPD και το πρόγραμμα περιήγησης. Στη συνέχεια ανοίξτε εκ νέου την σελίδα χρησιμοποιώντας τη μηχανή αναζήτησης. Αυτό αποφεύγει κατά λάθος χαλάει την δικτυακή διάταξη μέρος στη σελίδα.
Τροποποιήσετε XSLT:
Είναι πλέον καιρός να τροποποιήσετε XSLT.
Χρησιμοποιώ πάντα το οπτικό στούντιο για αυτό. (Δείτε Εδώ για μια σημαντική σημείωση για intellisense που θα σας βοηθήσει πολύ).
Μπορώ να δημιουργήσω ένα κενό έργο προσθέσετε τέσσερα νέα αρχεία (αντικαθιστώντας τις λέξεις "πρωτότυπο" και νέα"" ανάλογα με την περίπτωση):
- Original.XSLT
- New.XSLT
- Αρχική Params.xml
- Νέα Params.xml
Στην περίπτωσή μου, μοιάζει με αυτό:
Τροποποιήσει το τμήμα web και να αντιγράψετε το params και XSL στο αρχικό"" έκδοση του Visual Studio.
Ο στόχος εδώ είναι να προκαλέσει το XSL για να μετατρέπει τα αποτελέσματα που έχουμε πάρει πίσω από το ερώτημα DVWP στην HTML που καθιστά ως ένα γράφημα.
Για το σκοπό αυτό, βοηθά να εξετάσουμε πρώτα τι η HTML πρέπει να μοιάσει με προτού εμείς να μπερδευτεί από την παραφροσύνη που είναι γνωστό ως "XSL". (Για να είμαι σαφής, το ακόλουθο είναι απλά ένα παράδειγμα; Μην πληκτρολογείτε ή copy/paste στο οπτικό στούντιο. Παρέχω ένα πλήρες χτύπημα αφετηρία για αυτό αργότερα στο το write-up). Στο ακόλουθο γράφημα δείγμα αποδίδεται σύμφωνα με τον κώδικα HTML, αμέσως μετά:
Αντίστοιχη HTML:
<HTML> <οργανισμός> <κέντρο> <Πίνακας πλάτος = 80%> <TR><TD><κέντρο>Οριζόντιο ραβδόγραμμα</TD></TR> <TR> <TD align = "center"> <τραπέζι σύνορα = "1" πλάτος = 80%> <TR> <πλάτος TD = 10%>Ανοικτή</TD> <TD><Πίνακας cellpadding ="0" cellspacing ="0" σύνορα = 0 πλάτος = 50%><χρώμα φόντου TR = κόκκινο><TD> </TD></TR></Πίνακας></TD> </TR> <TR> <πλάτος TD = 10%>Κλειστό</TD> <TD><Πίνακας cellpadding ="0" cellspacing ="0" σύνορα = 0 πλάτος = 25%><χρώμα φόντου TR = κόκκινο><TD> </TD></TR></Πίνακας></TD> </TR> <TR> <πλάτος TD = 10%>Αδιέξοδο</TD> <TD><Πίνακας cellpadding ="0" cellspacing ="0" σύνορα = 0 πλάτος = 25%><χρώμα φόντου TR = κόκκινο><TD> </TD></TR></Πίνακας></TD> </TR> </Πίνακας> </TD> </TR> </Πίνακας> </οργανισμός> </HTML> |
Χρησιμοποίησα ένα νεκρό απλό προσέγγιση για τη δημιουργία μου μπαρ ορίζοντας το χρώμα του φόντου μιας γραμμής σε "κόκκινο".
Το take-away εδώ είναι αυτό: Στο τέλος, το μόνο που κάνουμε είναι η δημιουργία HTML με γραμμές και στήλες.
Πρότυπο XSLT:
Έχω αντιγράψει XSLT που παράγει ένα οριζόντιο ραβδόγραμμα. Είναι αρκετά καλά σχολίασε έτσι εγώ δεν θα προσθέσει πολύ εδώ εκτός από αυτές τις σημειώσεις:
- Ξεκίνησα με την προεπιλογή XSL που SharePoint Designer μου έδωσε όταν δημιούργησα πρώτα το DVWP.
- Ήμουν σε θέση να περιορίσει αυτό από του SPD 657 γραμμές να 166 γραμμές.
- Δεν χαζεύω με το αρχείο παραμέτρων XML (που είναι ξεχωριστό από το XSL και να γνωρίζετε τι εννοώ όταν θα πάτε να τροποποιήσετε το DVWP ίδια; Υπάρχουν δύο αρχεία που μπορείτε να τροποποιήσετε). Ωστόσο, να την απλοποιήσει, Σχεδόν όλοι τους έκανα το αφαιρέσετε από το XSL. Αυτό σημαίνει ότι αν θέλετε να κάνετε χρήση εκείνων των παραμέτρων, πρέπει ακριβώς να αυξάνω τους ορισμούς της μεταβλητής πίσω το XSL. Που θα είναι εύκολο, δεδομένου ότι θα έχετε το αρχικό ορισμοί μεταβλητών XSL σε σας οπτικός στούντιο προβλημένος.
- Θα έπρεπε να είναι σε θέση να αντιγράψετε και να επικολλήσετε αυτό απευθείας σε σας οπτικός στούντιο προβλημένος. Στη συνέχεια, Αφαιρέστε τις κλήσεις μου και τοποθετήστε το δικό σας ζητεί να "ShowBar".
- Το τρυπάνι κάτω έργων δημιουργώντας ένα <a href> Σαν αυτό: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. Αυτή η τεχνική μπορεί να είναι του τιμή σε άλλα πλαίσια. Κατά την πρώτη, Σκέφτηκα ότι θα πρέπει να είναι σύμφωνες με μια πιο σύνθετη μορφή: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, αλλά στο περιβάλλον μου ότι δεν είναι απαραίτητο. Ο κατάλογος URL είναι πέρασε σε μας από το SharePoint, έτσι αυτό είναι αρκετά εύκολο να γενικεύσουμε.
Εδώ είναι:
<XSL:stylesheet έκδοση="1.0" εξαίρεση-αποτέλεσμα-προθέματα="RS z o s ν dt msxsl" |
Τα αποτελέσματα:
Το XSL από ψηλά δημιουργεί αυτό το γράφημα:
Τρυπάνι κάτω σε το υποκείμενο των δεδομένων, κάνοντας κλικ στο ο κωδικός κατάστασης:
Συμπερασματικές σκέψεις:
Μπορεί αυτό να γενικευθεί?
Μου αρέσει αυτή η γραφική έννοια, αλλά μισώ το γεγονός ότι πρέπει να πάει και να κάνει τόσο πολύ χέρι-κωδικοποίησης. Έχω δώσει μια μικρή σκέψη, κατά πόσον μπορεί να γενικευθεί και να είμαι αισιόδοξος, αλλά, επίσης είμαι λίγο φοβισμένη ότι μπορεί να υπάρξει ένα τοίχο από τούβλα κάπου κατά μήκος της διαδρομής που δεν θα προσφέρουν κάθε έργο-γύρω. Αν κάποιος έχει κάποιες καλές ιδέες σχετικά με αυτό, Παρακαλώ κάνετε ένα σημείωμα στα σχόλια ή email μου.
Κάθετη γραφήματα:
Πρόκειται για ένα οριζόντιο ραβδόγραμμα. Είναι βεβαίως δυνατό να δημιουργήσετε ένα γράφημα κάθετη. Εμείς απλά πρέπει να αλλάξετε τον κώδικα HTML. Θα ήθελα να ξεκινήσω τον ίδιο τρόπο: Δημιουργήστε μια αντιπροσώπευση HTML από ένα κατακόρυφο ραβδόγραμμα και στη συνέχεια να καταλάβω πώς να πάρει ότι μέσω XSL. Εάν κάποιος is ενδιαφερόμενοs σε αυτό, Ίσως πεισθώ να δοκιμάσουν και της εργασίας τις συστροφές. Αν κάποιος έχει κάνει ήδη, please let me know and I’ll gladly link to your blog 🙂
Νομίζω ότι η πρόκληση με μια κάθετη γραφική παράσταση είναι ότι οι ετικέτες για το γράφημα είναι πιο δύσκολο να διαχειριστεί, αλλά σίγουρα δεν είναι αδύνατο.
Του πεδίου όνομα Gotcha:
Υπάρχουν τουλάχιστον δύο πράγματα για να κοιτάξει έξω με σας ονόματα πεδίων.
Πρώτη, ένα όνομα πεδίου με ένα διάστημα πρέπει να φυγεῖν σε το XSL. Αυτό πιθανότατα θα αποτελέσει ένα θέμα εδώ:
<XSL:μεταβλητή Όνομα="totalProposed"
Επιλέξτε="καταμέτρηση(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status) = «Προτείνει»])" />
Αν σας κατάσταση"" στήλη είναι πραγματικά το όνομα "κωδικός κατάστασης" τότε θα πρέπει να αναφέρονται ως "Status_x0020_Code":
<XSL:μεταβλητή Όνομα="totalProposed"
Επιλέξτε="καταμέτρηση(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status_x0020_Code) = «Προτείνει»])" />Δεύτερη, και είμαι λίγο ασαφής σχετικά με αυτό, αλλά πρέπει επίσης να είστε σε επιφυλακή για το πεδίο "Επαληθεύτηκε" όνομα. Εάν εσείς το όνομα σας το πεδίο "κωδικός κατάστασης" και στη συνέχεια, αργότερα, Μετονομάστε το σε "Κατάσταση AFE", το εσωτερικό όνομα"" δεν αλλάζει. Το εσωτερικό όνομα θα εξακολουθεί να είναι "κωδικός κατάστασης" και πρέπει να αναφέρεται ως "Status_x0020_Code". Οι "άλλοι πόροι" Σύνδεσμοι μπορεί να βοηθήσει τη διάγνωση και διόρθωση του προβλήματος.
Σχετικά με αυτό το χρώμα:
Πήρα το "κόκκινο" επειδή είναι ευχάριστο για μένα αυτή τη στιγμή. Δεν θα ήταν μια μεγάλη υπόθεση για να δείξει τα διαφορετικά χρώματα, έτσι ώστε να παρέχουν περισσότερο από ακριβώς μια οπτική περιγραφή ενός αριθμού, αλλά να παρέχουν επίσης μια χρήσιμη KPI. Για παράδειγμα, Εάν το ποσοστό των «αδιέξοδο" Είναι του AFE > 10% στη συνέχεια να δείξει κόκκινο, έδειχνε σε μαύρο χρώμα. Χρήση <XSL:Επιλέξτε> για να επιτευχθεί αυτό.
Άλλων πόρων:
- Καθορίσει το εσωτερικό όνομα (και άλλες καλές πληροφορίες) για τα δεδομένα σε μια λίστα: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!134.entry
- Εμφάνιση όλα τα δεδομένα που παρέχονται από SharePoint (το ακατέργαστο XML): http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!190.entry
- Πάρετε την έκφραση XPATH ειδικής στήλης: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!155.entry
- Μια άλλη προσέγγιση, χρησιμοποιώντας το OWA(?). Έσκαψα δεν σε αυτό, αλλά φαίνεται πολλά υποσχόμενη, ειδικά για τα γραφήματα πίτας: http://www.waka.dk/Blog/PermaLink,guid,e2532e71-d774-4ac9-8f25-883964b830f4.aspx
Ευτυχής μετασχηματισμός!
<Τέλος />