Κοινή χρήση μέσω


Δυναμικό στοιχείο ελέγχου διερεύνησης

Σημείωμα

Αυτή η δυνατότητα είναι διαθέσιμη από την έκδοση API 5.7.0.

Η δυναμική δυνατότητα ελέγχου διερεύνησης επιτρέπει στην απεικόνιση να ενεργοποιήσει ή να απενεργοποιήσει τη δυνατότητα διερεύνησης δυναμικά χρησιμοποιώντας μια κλήση API. Όταν είναι ενεργοποιημένη η δυνατότητα λεπτομερούς έρευνας, όλες οι λειτουργίες λεπτομερούς έρευνας και οι δυνατότητες ανάπτυξης/σύμπτυξης είναι διαθέσιμες, όπως κλήσεις API, εντολές μενού περιβάλλοντος, κουμπιά λεπτομερούς έρευνας κεφαλίδας και υποστήριξη για δεδομένα ιεραρχίας. Όταν είναι απενεργοποιημένο, αυτές οι λειτουργίες δεν είναι διαθέσιμες.

Οι παρακάτω εικόνες εμφανίζουν ένα παράδειγμα μιας απεικόνισης με ενεργοποιημένη και απενεργοποιημένη τη δυναμική δυνατότητα ελέγχου διερεύνησης:

Η δυναμική δυνατότητα ελέγχου διερεύνησης περιλαμβάνει τα ακόλουθα στοιχεία API:

  • Η isDrillDisabled σημαία στο DataRolesInfo:

    export interface DataRolesInfo {
          //…
          isDrillDisabled?: boolean; // ----- NEW -----
      }
    
  • Η setCanDrill μέθοδος στη IVisualHost διασύνδεση:

      export interface IVisualHost extends extensibility.IVisualHost {
          //…
          setCanDrill: (drillAllowed: boolean) => void; // ----- NEW -----
      }
    

Για να προσδιορίσετε εάν η λεπτομερής έρευνα είναι απενεργοποιημένη, χρησιμοποιήστε την isDrillDisabled ιδιότητα στη μέθοδο update:

    private update(options: VisualUpdateOptions) {
      //…
      const isDrillDisabled = options.dataViews[0].metadata.dataRoles.isDrillDisabled;
      //…
    }

Στη συνέχεια, χρησιμοποιήστε την κλήση API για να ενεργοποιήσετε ή να απενεργοποιήσετε τη διερεύνηση, ανάλογα με τις ανάγκες:

  • Για να ενεργοποιήσετε: this.host.setCanDrill(true /* drillAllowed */);

  • Για να απενεργοποιήσετε: this.host.setCanDrill(false /* drillAllowed */);

Απαιτήσεις δυναμικού ελέγχου διερεύνησης

Η λεπτομερής έρευνα ενεργοποιείται από προεπιλογή, αλλά η δυναμική δυνατότητα ελέγχου διερεύνησης επιτρέπει στην απεικόνιση να ενεργοποιήσει ή να απενεργοποιήσει τη διερεύνηση με χρήση μιας κλήσης API.

Μια απεικόνιση με τη δυναμική δυνατότητα ελέγχου διερεύνησης, έχει τον ακόλουθο κώδικα στο αρχείο capabilities.json :

  • Με απενεργοποιημένη τη διερεύνηση από προεπιλογή:

        "drilldown": {
            "roles": [
                "Rows",
                "Columns"
            ],
            "canDisableDrill": { 
                "disabledByDefault": true
            }
        },
    
  • Με ενεργοποιημένη τη διερεύνηση από προεπιλογή:

        "drilldown": {
            "roles": [
                "Rows",
                "Columns"
            ],
            "canDisableDrill": {}
        },
    

Η canDisableDrill ιδιότητα υποδεικνύει ότι η απεικόνιση υποστηρίζει αυτήν τη δυνατότητα. Χωρίς αυτήν την ιδιότητα, η κλήση API δεν τηρείται.
Η disabledByDefault ιδιότητα υποδεικνύει εάν θα απενεργοποιηθεί η δυνατότητα λεπτομερούς έρευνας από προεπιλογή.

Σημείωμα

Η disabledByDefault ιδιότητα τίθεται σε ισχύ όταν κάνετε μία από τις ακόλουθες ενέργειες:

  • Προσθήκη νέας απεικόνισης στον καμβά
  • Μετατρέψτε μια απεικόνιση από μία που δεν υποστηρίζει αυτήν τη δυνατότητα.

Για παράδειγμα, εάν μετατρέψετε μια προέλευσηVisual σε targetVisual, η ιδιότητα της disabledByDefault targetVisual εξετάζεται μόνο εάν η προέλευσηVisual δεν υποστηρίζει αυτήν τη δυνατότητα. Εάν η sourceVisual υποστηρίζει αυτή τη δυνατότητα, η ιδιότητα targetVisual διατηρεί την κατάσταση της προέλευσηςVisual και όχι την προεπιλογή.

Προσθήκη υποστήριξης διερεύνησης σε μια νέα έκδοση μιας υπάρχουσας απεικόνισης

Η χρήση της δυνατότητας λεπτομερούς έρευνας αντιπροσωπεύει μια σημαντική αλλαγή. Επομένως, για την πιο ομαλή μετάβαση, συνιστούμε να χρησιμοποιήσετε ένα νέο GUID απεικόνισης για τη νέα έκδοση.

Εάν, ωστόσο, θέλετε να έχετε το ίδιο GUID, να θυμάστε τα ακόλουθα σημεία:

  • Όταν κάνετε μετεγκατάσταση από μια έκδοση χωρίς δυνατότητα διερεύνησης σε μια νέα έκδοση με δυνατότητα διερεύνησης, ορισμένα δεδομένα ενδέχεται να μην παρέχονται στο dataView λόγω της υποστήριξης ιεραρχικών δεδομένων που παρουσιάστηκε ως μέρος της δυνατότητας λεπτομερούς έρευνας. Η δυναμική δυνατότητα ελέγχου διερεύνησης δεν προσφέρει αυτόματη υποστήριξη για αυτό το ζήτημα, αλλά μπορεί να χρησιμοποιηθεί για τη διαχείριση της διαδικασίας μετεγκατάστασης.

  • Για την αυτο-μετεγκατάσταση της απεικόνισης, η απεικόνιση θα πρέπει να εκτελέσει τις ακόλουθες ενέργειες:

    • Προσδιορίστε την πρώτη φορά που φορτώνεται η νέα έκδοση αντί για την παλαιότερη έκδοση και εφαρμόστε το persistProperties API.

    • Απενεργοποιήστε τη διερεύνηση για να λάβετε όλα τα δεδομένα, χρησιμοποιώντας το setCanDrill API.

Το παρακάτω παράδειγμα εμφανίζει τον τρόπο αυτόματης μετεγκατάστασης μιας παλαιότερης απεικόνισης σε μια απεικόνιση που χρησιμοποιεί δυναμικό έλεγχο διερεύνησης:

  1. Προσθέστε το ακόλουθο αντικείμενο στο αρχείο capabilities.json:

    "DrillMigration": {
      "displayName": "Drill Migration",
      "properties": {
          "isMigrated": {
              "displayName": "Is Drill Migrated",
              "type": {
                  "bool": true
              }
          }
      }
    },
    
  2. Προσθέστε τα παρακάτω στο αρχείο visual.ts :

    export class Visual implements IVisual {
        //...
          private isCalledToDisableDrillInMigrationScenario = false;
          private drillMigration = { disabledByDefault: true };
          constructor(options: VisualConstructorOptions) {
           //...
           this.host = options.host;
           //...
          }
          private update(options: VisualUpdateOptions) {
             this.handleSelfDrillMigration(options);
              //...
          }
          private handleSelfDrillMigration(options: VisualUpdateOptions): void {
              if (options && options.dataViews && options.dataViews[0] && options.dataViews[0].metadata) {
                  const metadata = options.dataViews[0].metadata;
                  if (metadata && metadata.dataRoles) {
                      const isDrillDisabled = metadata.dataRoles.isDrillDisabled;
                      if (isDrillDisabled === undefined) {
                          return;
                      }
                      // Continue in case the visual is already migrated
                      if (!metadata.objects?.DrillMigration?.isMigrated) {
                          // Persist the isMigrated property when the drill has the correct state
                          if (this.drillMigration.disabledByDefault === isDrillDisabled) {
                              this.persistMigrationProperty();
                          } else if (!this.isCalledToDisableDrillInMigrationScenario) {
                              // Use the API call only once
                              this.host.setCanDrill(!this.drillMigration.disabledByDefault);
                              this.isCalledToDisableDrillInMigrationScenario = true;
                          }
                      }
                  }
              }
          }
          private persistMigrationProperty(): void {
              let property = {
                  merge: [{
                      objectName: "DrillMigration",
                      properties: {
                          isMigrated: true
                      },
                      selector: null
                  }]
              };
              this.host.persistProperties(property);
          }
      }
    

Την πρώτη φορά που ανοίγει η απεικόνιση μετά την προσθήκη αυτού του κώδικα, η μεταβλητή DrillMigration ορίζεται σε true και η απεικόνιση ανοίγει στην προεπιλεγμένη κατάσταση.

Ζητήματα προς εξέταση και περιορισμοί

  • Η κατάσταση λεπτομερούς έρευνας δεν αποθηκεύεται μετά την απενεργοποίηση της λεπτομερούς έρευνας. Εάν μπορείτε να αλλάξετε τη δυνατότητα λεπτομερούς έρευνας μετά την απενεργοποίηση της, εμφανίζεται μόνο το πρώτο επίπεδο, ανεξάρτητα από τα στοιχεία που εμφανίζονταν πριν απενεργοποιηθεί.

  • Η κατάσταση ανάπτυξης/σύμπτυξης δεν αποθηκεύεται μετά την απενεργοποίηση της διερεύνησης. Όλες οι γραμμές συμπτύσσονται όταν γίνει επαναφορά της λεπτομερούς έρευνας.

  • Η κλήση API δεν υποστηρίζεται για πίνακες εργαλείων.

  • Συνθήκες αντιστοίχισης προβολής δεδομένων: Χρησιμοποιήστε "max": 1 το για όλες τις συνθήκες για τον ρόλο με δυνατότητα διερεύνησης για να περιορίσετε την απεικόνιση ώστε να εμφανίζει μόνο ένα πεδίο όταν η λεπτομερής έρευνα είναι απενεργοποιημένη. Για παράδειγμα:

    • Για προβολή κατηγορικών δεδομένων:

      "conditions": [
           { "category": { "min": 1 }, "measure": { "max": 1 }}
      ]
      
    • Για την προβολή δεδομένων μήτρας:

      "conditions": [
          { "Rows": { "max": 0 }, "Columns": { "max": 0 }, "Value": { "min": 1 } },
          { "Rows": { "min": 1 }, "Columns": { "min": 0 }, "Value": { "min": 0 } },
          { "Rows": { "min": 0 }, "Columns": { "min": 1 }, "Value": { "min": 0 } },
      ]