Δημιουργία ραβδογράμματα στο SharePoint

Επισκόπηση:

(Η ΕΝΗΜΕΡΩΜΈΝΗ ΈΚΔΟΣΗ 12/04/07: Προστεθεί μια άλλη ενδιαφέρουσα πηγή στο τέλος σύνδεση σε ένα άλλο blog που ασχολείται με αυτό μέσω ενός πολύ ενδιαφέρουσα τμήματος web)

Αυτό το ιστολόγιο εισόδου περιγράφει πώς να δημιουργήσετε ένα γράφημα ράβδων στο SharePoint. Αυτό λειτουργεί τόσο WSS, και ΒΡΎΟ περιβάλλον, καθώς εξαρτάται μόνο από το τμήμα web προβολής δεδομένων.

Η συνολική προσέγγιση που έχει ως εξής:

  1. Δημιουργία μιας λίστας ή βιβλιοθήκης εγγράφων που περιέχει τα δεδομένα που θέλετε να.
  2. Τοποθετήστε τη βιβλιοθήκη του συσχετιζόμενου εγγράφου / προσαρμοσμένη λίστα επάνω σε μια σελίδα και να το μετατρέψει σε ένα τμήμα web προβολής δεδομένων (DVWP).
  3. Τροποποιήσετε το 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, αμέσως μετά:

Sample Bar Graph

Αντίστοιχη 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>&nbsp;</TD></TR></Πίνακας></TD>
</TR>
<TR>
<πλάτος TD = 10%>Κλειστό</TD>
<TD><Πίνακας cellpadding ="0" cellspacing ="0" σύνορα = 0 πλάτος = 25%><χρώμα φόντου TR = κόκκινο><TD>&nbsp;</TD></TR></Πίνακας></TD>
</TR>
<TR>
<πλάτος TD = 10%>Αδιέξοδο</TD>
<TD><Πίνακας cellpadding ="0" cellspacing ="0" σύνορα = 0 πλάτος = 25%><χρώμα φόντου TR = κόκκινο><TD>&nbsp;</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" 
xmlns:msxsl="δοχείο:schemas-microsoft-com:XSLT" xmlns:XSL="http://www.w3.org/ 1999 / / μετασχηματισμό XSL"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:ASP="http://schemas.microsoft.com/ASPNET/20" xmlns:ν="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:o="δοχείο:schemas-microsoft-com:γραφείο" xmlns:s="UUID:BDC6E3F0-6DA3-11D1-A2A3-00AA00C14882"
xmlns:DT="UUID:C2F41010-65B3 - 11d 1-A29F-00AA00C14882" xmlns:RS="δοχείο:schemas-microsoft-com:σύνολο γραμμών" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="δοχείο:FrontPage:εσωτερική"
> <XSL:εξόδου μέθοδος="HTML" περίπτωση="Όχι" /> <XSL:δεκαδικό-format NaN="" /> <XSL:Παράμ Όνομα="ListUrlDir"></XSL:Παράμ> <!-- Χρειάζομαι αυτό για να στηρίξει ένα τρυπάνι-κάτω. --> <XSL:πρότυπο αγώνα="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:ASP="http://schemas.microsoft.com/ASPNET/20"
> <XSL:μεταβλητή Όνομα="dvt_StyleName">Πίνακας</XSL:μεταβλητή> <XSL:μεταβλητή Όνομα="Σειρές" Επιλέξτε="/dsQueryResponse/γραμμών/εγγραφών" /> <XSL:μεταβλητή Όνομα="dvt_RowCount" Επιλέξτε="καταμέτρηση($Σειρές)" /> <XSL:μεταβλητή Όνομα="IsEmpty" Επιλέξτε="$dvt_RowCount = 0" /> <XSL:μεταβλητή Όνομα="dvt_IsEmpty" Επιλέξτε="$dvt_RowCount = 0" /> <XSL:Επιλέξτε> <XSL:Όταν δοκιμή="$dvt_IsEmpty"> Υπάρχει καθόλου δεδομένα σε γράφημα!<br/> </XSL:Όταν> <XSL:διαφορετικά> <!-- Τα ενδιαφέροντα πράγματα αρχίζει από εδώ. Πρέπει να ορίσουμε ένα ζευγάρι των μεταβλητών για κάθε γραμμή στο γράφημα: συνολικό αριθμό των στοιχείων και τοις εκατό του συνολικού. --> <XSL:μεταβλητή Όνομα="totalProposed" Επιλέξτε="καταμέτρηση(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status) = «Προτείνει»])" /> <XSL:μεταβλητή Όνομα="percentProposed" Επιλέξτε="$totalProposed div $dvt_RowCount" /> <XSL:μεταβλητή Όνομα="totalInProcess" Επιλέξτε="καταμέτρηση(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status) = «Στη διαδικασία»])" /> <XSL:μεταβλητή Όνομα="percentInProcess" Επιλέξτε="$totalInProcess div $dvt_RowCount" /> <XSL:μεταβλητή Όνομα="totalStalled" Επιλέξτε="καταμέτρηση(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status) = «Αδιέξοδο»])" /> <XSL:μεταβλητή Όνομα="percentStalled" Επιλέξτε="$totalStalled div $dvt_RowCount" /> <!-- Ορίζουμε εδώ μας πίνακα HTML. Δανείζομαι από κάποιο πρότυπο SharePoint στυλ εδώ ώστε να είναι συνεπείς. Νομίζω ότι αυτό θα τιμήσει τις αλλαγές στο αρχείο css παγκόσμια καθώς και αντικαθιστά το θέμα. --> <Πίνακας πλάτος="100%" cellspacing="0" CellPadding="2" στυλ="συνόρων τα δεξιά: 1 στερεά #C0C0C0; σύνορα-κάτω: 1 στερεά #C0C0C0; αριστερά-στυλ περιγράμματος: στερεά; πλάτος περιγράμματος-αριστερά: 1; κορυφή-στυλ περιγράμματος: στερεά; πλάτος περιγράμματος-κορυφή: 1;"> <TR> <TD Στοίχιση="κέντρο"> <Πίνακας σύνορα="1" πλάτος="100%"> <!-- Για κάθε κατάσταση που θέλουμε να γραφήματος, Καλούμε την ShowBar"" πρότυπο. Περνάμε αυτό: 1. Μια ετικέτα για την γραμμή. Αυτό έχει μετατραπεί σε μια υπερ-σύνδεση. 2. Το ποσοστό (μεταβλητή από ψηλά). 3. Το όνομα του πραγματικού πεδίου του κώδικα από την υποκείμενη λίστα. Αυτό δεν χρειάζεται να ταιριάζει με την ετικέτα εμφάνισης. 4. Τιμή πεδίου συμφωνημένα για #3. 5. Σύνολο στοιχείων του αυτός ο κωδικός κατάστασης (δεν το γενικό σύνολο του όλους τους κωδικούς κατάστασης). Εκπέμπει ένα <TR></TR> και η γραμμή οριζόντιο γράφημα ράβδων. Καλούμε αυτό το πρότυπο για κάθε κωδικό κατάστασης που θέλουμε να προβάλετε. --> <XSL:κλήση-πρότυπο Όνομα="ShowBar"> <XSL:με Παράμ Όνομα="BarDisplayLabel" Επιλέξτε="«Προτείνει»"/> <XSL:με Παράμ Όνομα="BarPercent" Επιλέξτε="$percentProposed"/> <XSL:με Παράμ Όνομα="QueryFilterFieldName" Επιλέξτε="«Καθεστώς»"/> <XSL:με Παράμ Όνομα="QueryFilterFieldValue" Επιλέξτε="«Προτείνει»"/> <XSL:με Παράμ Όνομα="TotalItems" Επιλέξτε="$totalProposed"></XSL:με Παράμ> </XSL:κλήση-πρότυπο> <XSL:κλήση-πρότυπο Όνομα="ShowBar"> <XSL:με Παράμ Όνομα="BarDisplayLabel" Επιλέξτε="«Αδιέξοδο»"/> <XSL:με Παράμ Όνομα="BarPercent" Επιλέξτε="$percentStalled"/> <XSL:με Παράμ Όνομα="QueryFilterFieldName" Επιλέξτε="«Καθεστώς»"/> <XSL:με Παράμ Όνομα="QueryFilterFieldValue" Επιλέξτε="«Αδιέξοδο»"/> <XSL:με Παράμ Όνομα="TotalItems" Επιλέξτε="$totalStalled"></XSL:με Παράμ> </XSL:κλήση-πρότυπο> <XSL:κλήση-πρότυπο Όνομα="ShowBar"> <XSL:με Παράμ Όνομα="BarDisplayLabel" Επιλέξτε="«Στη διαδικασία»"/> <XSL:με Παράμ Όνομα="BarPercent" Επιλέξτε="$percentInProcess"/> <XSL:με Παράμ Όνομα="QueryFilterFieldName" Επιλέξτε="«Καθεστώς»"/> <XSL:με Παράμ Όνομα="QueryFilterFieldValue" Επιλέξτε="«Στη διαδικασία»"/> <XSL:με Παράμ Όνομα="TotalItems" Επιλέξτε="$totalInProcess"></XSL:με Παράμ> </XSL:κλήση-πρότυπο> </Πίνακας> </TD> </TR> </Πίνακας> </XSL:διαφορετικά> </XSL:Επιλέξτε> </XSL:πρότυπο> <!-- Αυτό το πρότυπο does the δουλειά εμφανίζει μεμονωμένες γραμμές στο γράφημα ράβδων. Θα κάνετε πιθανώς οι περισσότεροι από σας μικροαλλαγές εδώ. --> <XSL:πρότυπο Όνομα="ShowBar"> <XSL:Παράμ Όνομα="BarDisplayLabel" /> <!-- ετικέτα για να δείξει --> <XSL:Παράμ Όνομα="BarPercent"/> <!-- Τοις εκατό του συνολικού. --> <XSL:Παράμ Όνομα="QueryFilterFieldName"/> <!-- Για να μεταβείτε στο ερώτημα & φίλτρο --> <XSL:Παράμ Όνομα="QueryFilterFieldValue"/> <!-- Για να μεταβείτε στο ερώτημα & φίλτρο --> <XSL:Παράμ Όνομα="TotalItems" /> <!-- συνολική απαρίθμηση των αυτή barlabel --> <TR> <!-- Η γραμμή ετικέτα ίδια. --> <TD Κατηγορία="MS-formbody" πλάτος="30%"> <!-- Αυτό το επόμενο σύνολο των καταστάσεων δημιουργεί μια συμβολοσειρά ερωτήματος που μας επιτρέπει να τρυπάνι κάτω σε μια φιλτραρισμένη προβολή από τα υποκείμενα δεδομένα. Κάνουμε χρήση των μερικά πράγματα εδώ: 1. Μπορεί να περνάμε FilterField1 και FilterValue1 σε μια λίστα για το φιλτράρισμα σε μια στήλη. 2. SharePoint περνά μια βασική παράμετρος μας, ListUrlDir που αφορά την υποκείμενη λίστα κατά του οποίου αυτή DVWP είναι "τρέχει". Δεν είναι διασκέδαση XSL? --> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"> <![CDATA[<ένα href ="]]></XSL:κείμενο> <XSL:αξία των Επιλέξτε="$ListUrlDir"/> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"><![CDATA[?FilterField1 =]]></XSL:κείμενο> <XSL:αξία των Επιλέξτε="$QueryFilterFieldName"/> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"><![CDATA[&FilterValue1 =]]></XSL:κείμενο> <XSL:αξία των Επιλέξτε="$QueryFilterFieldValue"/> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"><![CDATA[">]]></XSL:κείμενο> <XSL:αξία των Επιλέξτε="$BarDisplayLabel"/> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"><![CDATA[</ένα>]]></XSL:κείμενο> <!-- Το επόμενο κομμάτι δείχνει κάποιους αριθμούς με τη μορφή: "(συνολικά / % του συνολικού)" --> (<XSL:αξία των Επιλέξτε="$TotalItems"/> / <!-- Αυτό δημιουργεί μια ωραία τοις εκατό ετικέτα για μας. Ευχαριστώ, Microsoft! --> <XSL:κλήση-πρότυπο Όνομα="μορφή ποσοστού"> <XSL:με Παράμ Όνομα="τοις εκατό" Επιλέξτε="$BarPercent"/> </XSL:κλήση-πρότυπο>) </TD> <!-- Τέλος, εκπέμπουν μια <TD> ετικέτα για το μπαρ ίδια.--> <TD> <Πίνακας CellPadding="0" cellspacing="0" σύνορα="0" πλάτος="{γύρο($BarPercent * 100)+1}%"> <TR χρώμα φόντου="κόκκινο"> <XSL:κείμενο Απενεργοποίηση-εξόδου-διαφυγή="Ναι"><![CDATA[&nbsp;]]></XSL:κείμενο> </TR> </Πίνακας> </TD> </TR> </XSL:πρότυπο> <!-- Αυτό έχει ληφθεί άμεσα από κάποια XSL που βρήκα σε ένα πρότυπο MS. --> <XSL:πρότυπο Όνομα="μορφή ποσοστού"> <XSL:Παράμ Όνομα="τοις εκατό"/> <XSL:Επιλέξτε> <XSL:Όταν δοκιμή="μορφή-αριθμός($τοις εκατό, '#,##0%;-#,##0%')= «NaN»">0%</XSL:Όταν> <XSL:διαφορετικά> <XSL:αξία των Επιλέξτε="μορφή-αριθμός($τοις εκατό, '#,##0%;-#,##0%')" /> </XSL:διαφορετικά> </XSL:Επιλέξτε> </XSL:πρότυπο> </XSL:stylesheet>

Τα αποτελέσματα:

Το 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:Επιλέξτε> για να επιτευχθεί αυτό.

Άλλων πόρων:

Ευτυχής μετασχηματισμός!

<Τέλος />

Εγγραφείτε στο blog μου!

17 thoughts on «Δημιουργία ραβδογράμματα στο SharePoint

  1. Chris B

    Αυτή η σελίδα σχεδόν ολοκληρωθεί το έργο που έψαχνα.

    Έχω μια ομάδα που θέλει να χρησιμοποιήσει τη λίστα SharePoint έρευνα για να δημιουργήσετε μια εβδομαδιαία δημοσκόπηση. Τα αλιεύματα? Δεν θέλουν να δείτε κώδικα… Ή να αλλάξετε το σύστημα κάθε φορά που στέλνουν την δημοσκόπηση (προγραμματιστεί για μια εβδομαδιαία ενημέρωση).

    Ήμουν σε θέση να συνδεθείτε αυτό στον κατάλογο έρευνα και να δημιουργήσετε το γράφημα στην πρώτη στήλη απάντηση. Δεν προβλέπω είναι, όμως, τις αξίες και τις ετικέτες που θα χρειάζονται κινείται προς τα εμπρός. Να κάνει τα πράγματα χειρότερα μπορεί να έχουν περισσότερο ή λιγότερο διαθέσιμες απαντήσεις κάθε εβδομάδα.

    Θα κοιτάζω αλλού μόνο στην περίπτωση, αλλά έχει βρεθεί ένας τρόπος για να δημιουργήσετε γραμμές και ετικέτες που βασίζονται στα ανοικτά από τον αριθμό των διαθέσιμες επιλογές και δυναμικά τον καθορισμό αυτά και όχι σκληρά κωδικοποίηση τις αναμενόμενες τιμές?

  2. Greg Laushine

    Ευχαριστώ Παύλοs. Πολύ χρήσιμο. Χάρη στην εργασία σας, Ήμουν σε θέση να προσθέσετε μια στήλη μπαρ γράφημα σε ένα υπάρχον DVWP (π.χ.. για εργασίες) πολύ εύκολα με λίγες γραμμές του κώδικα σας.
    Στο SharePoint Designer, Τοποθέτησα μια προβολή δεδομένων με τον τίτλο και % πλήρης στήλες από μια λίστα εργασιών. Έβαλα το δρομέα σε ένα από τα κύτταρα και κάντε δεξί κλικ. Εγώ επιλέξτε Εισαγωγή μια στήλη προς τα δεξιά. Στην προβολή code, Βρήκα το <TD> και αντικατέστησε το <XSL:στοιχείο κειμένου μέσα στο κύτταρο με τον κωδικό σας:
    <Πίνακας cellpadding ="0" cellspacing ="0" σύνορα ="0"
    Πλάτος = "{γύρο(@PercentComplete * 100)+1}%">
    <TR style = "υπόβαθρο-χρώμα:κόκκινο">
    <XSL:κείμενο απενεργοποίηση-εξόδου-διαφυγή = "Ναι"><![CDATA[&nbsp;]]></XSL:κείμενο>
    </TR>
    </Πίνακας>

    Σημείωση, έχω αλλάξει τον κωδικό χρώματος γραμμής από χρώμα φόντου = "κόκκινο" να style = "υπόβαθρο-χρώμα:κόκκινο"
    Επίσης, ήταν σε θέση να επιλέξετε μία από τις στήλες στη λίστα μου (@PercentComplete) στη θέση "$BarPercent"
    Greg

  3. Βολφγκαγκ
    Paul, Ευχαριστώ για αυτό! Δημιούργησα ένα ακριβές αντίγραφο του τι κάνατε και να λειτουργεί σχεδόν τέλειο. Υπήρχε ένα μικρό θέμα στην γραμμή παραγράφου 2α του κώδικά σας:
    <XSL:πρότυπο αγώνα = "/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
    xmlns:__designer =http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:ASP ="http://schemas.microsoft.com/ASPNET/20"&gt;
    Πρέπει να βάλετε http://schemas.microsoft.com/WebParts/v2/DataView/designer σε εισαγωγικά.
    Μετά θα διορθωθεί ότι λειτουργεί σαν γοητεία! Θα προσαρμοστεί τώρα αυτό στη δική μου λίστα και την κατάσταση αλλά είμαι βέβαιος ότι δεν θα είναι δύσκολο. (Θα τοποθετήσω το αποτέλεσμα)
    Ευχαριστώ και πάλι
    ~ Wolle
  4. Χωρίς όνομα
    ερώτηση –
    Τι γίνεται αν σε γράφημα μου, θα ήθελα μια μεταβλητή να όχι μόνο να μετρήσει ένα καθεστώς αλλά να υπολογίζετε πολλαπλάσιοι?
    Έτσι, για παράδειγμα τι θα συμβεί αν είχα —
    <XSL:όνομα μεταβλητής = "RequestsInitialized"
    Επιλέξτε = "count(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status)= «ΠΣΕ»])" />
    –Το πράγμα είναι, Θέλω να μετρήσετε τις εμφανίσεις του «ΠΣΕ», αλλά θα ήθελα επίσης να μετρήσει κάτι άλλο, όπως «Εν αναμονή της αναθεώρησης» αυτήν τη μεταβλητή.. Πώς θα το κάνω αυτό?
    Ευχαριστώ!
  5. Murty Srirangam
    Γεια σου Paul,
    Iam πραγματικά αυτό είναι πραγματικά μια μεγάλη προσπάθεια από εσάς. Μπορείs σε παρακαλώ εξηγώ όπου θα τοποθετούσα αυτόν τον κώδικα. Έχω δημιουργήσει ένα prjoect με τέσσερα νέα αρχεία. Στη συνέχεια να σας εξηγήσω με περισσότερες λεπτομέρειες τι πρέπει να κάνω.
    Ευχαριστούμε
    Murty
  6. Andrew Carrington
    Γεια σου, Προσπαθώ να τροποποιήσετε αυτό ελαφρώς, έτσι ώστε να εμφανίζει ένα γράφημα των εργασιών σε μια λίστα εργασιών κατά πληροφορίες χρήστη. Χρησιμοποιεί μια στήλη που ονομάζεται @AssignedTo που είναι μια στήλη παρουσία του χρήστη. Να το πάρετε για να εμφανίσετε τα τετηγμένα HTML, αλλά δεν μπορώ να πάρω αυτό για να υπολογίσει και να εμφανίσετε τιμές.
    Οποιεσδήποτε ιδέες?
    Ευχαριστώ
    Andy
  7. Patrik Luca έγραψε:
    Γεια σου Paul,
    μεγάλη θέση!
    Μια ερώτηση:
    Θα ήθελα να εφαρμόσετε φίλτρο σε δύο πεδία, την ίδια στιγμή: Πώς μπορεί αυτό να επιτευχθεί?
    Για παράδειγμα, μία από τις μεταβλητές σας καλείται totalStalled και αυτό φίλτρα για @Status.
    Θα ήθελα να φιλτράρετε την ίδια στιγμή να μειώσει τον αριθμό μου των επιστρεφόμενων εγγραφών σε ένα άλλο πεδίο.
    Ήδη βρήκα πώς να κάνει ένα 'OR', αλλά εγώ donnot κατάφερε να βρει το ' και’
    Μια «ή’ μπορεί να επιτευχθεί, όπως αυτό:
    <XSL:όνομα μεταβλητής = "totalStalled" Επιλέξτε = "count(/dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@Status) = «Αδιέξοδο»] | /dsQueryResponse/γραμμών/εγγραφών[ομαλοποιήσει-χώρος(@ExtraFilterField) = «αξία»])" />
  8. Φρανκ

    I have a ‘Using Dashboards in SharePoint’ ερώτηση. We are a military hospital using MOSS standard for our Intranet and would like to build a dashboard for our Command Group to see ‘real time’ αν είναι δυνατόν. Ένα από τα κυριότερα σημεία βλέποντας το σε πραγματικό χρόνο τρέχοντα φόρτο εργασίας εντός της εγκατάστασης και κυριολεκτικά προσέξετε αλλαγή πάνω και κάτω (μπορεί να πρέπει να κάνετε κλικ “ανανέωση”/F5).

    Ευχαριστώ εκ των προτέρων,

    1. Paul Galvin Δημοσίευση συγγραφέα

      Μπορείτε να κάνετε κάτι χρήσιμο με jQuery για να επιτευχθεί αυτό το αποτέλεσμα. Ηλεκτρονικό ταχυδρομείο εμένα σε Galvin.Paul@Gmail.com και θα χαρώ πολύ να προσπαθήσει να δώσει ένα χέρι.

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *