Tutorial: Adición de opciones de formato al objeto visual Circle Card

Al crear un objeto visual, puede agregar opciones para personalizar sus propiedades. Algunos de los elementos a los que se puede aplicar formato personalizado son los siguientes:

  • Título
  • Fondo
  • Borde
  • Shadow
  • Colores

En este tutorial aprenderá a:

  • Agregar propiedades de formato al objeto visual.
  • Empaquetar el objeto visual.
  • Importar el objeto visual personalizado a un informe de Power BI Desktop o del servicio Power BI.

Requisito previo

En este tutorial se explica cómo agregar propiedades de formato comunes a un objeto visual. Se usará el objeto visual Circle Card como ejemplo. Se agregará la capacidad de cambiar el color y el grosor del círculo. Si no tiene la carpeta de proyecto Circle Card que ha creado en ese tutorial, repítalo antes de continuar.

Adición de opciones de formato

  1. En PowerShell, vaya a la carpeta del proyecto Circle card e inicie el objeto visual Circle card. Su objeto visual ahora se ejecuta mientras está hospedado en el equipo.

    pbiviz start
    
  2. En Power BI, seleccione el panel Formato.

    Debería ver las opciones de formato generales, pero no las opciones de formato del objeto visual.

    Screenshot of formatting panel with only general formatting options.

  3. Abra el archivo capabilities.json en Visual Studio Code.

  4. Antes de la matriz dataViewMappings, agregue objects.

    "objects": {},
    

    Screenshot of capabilities file with empty objects array.

  5. Guarde el archivo capabilities.json.

  6. En Power BI, vuelva a revisar las opciones de formato.

    Nota

    Si no ve el cambio de opciones de formato, seleccione Recargar objeto visual personalizado.

    Screenshot of general and visual formatting options on the formatting pane.

  7. Establezca la opción Title (Título) en Off (Desactivar). Tenga en cuenta que el objeto visual ya no muestra el nombre de medida en la esquina superior izquierda.

    Screenshot of visualizations pane with the Title switch turned off.

    Screenshot of circle card visual without the title row.

Adición de opciones de formato personalizadas

Ahora se agregará un nuevo grupo denominado color para configurar el color del círculo y el grosor del contorno del círculo.

  1. Para detener el objeto visual personalizado, presione Ctrl+C en PowerShell.

  2. En Visual Studio Code, en el archivo capabilities.json, inserte el siguiente fragmento de JSON en el objeto que tiene la etiqueta objects.

        "circle": {
            "properties": {
                "circleColor": {
                    "type": {
                        "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    }
                },
                "circleThickness": {
                    "type": {
                        "numeric": true
                    }
                }
            }
        }
    

    En este fragmento de JSON se describe un grupo denominado circle, que consta de dos variables: circleColor y circleThickness.

  3. Guarde el archivo capabilities.json.

  4. En el panel Explorador, vaya a la carpeta src y, después, seleccione settings.ts. Este archivo representa la configuración para el objeto visual de inicio.

  5. En el archivo settings.ts, reemplace las líneas de importación y las dos clases por el siguiente código.

    import { formattingSettings } from "powerbi-visuals-utils-formattingmodel";
    
    import FormattingSettingsCard = formattingSettings.SimpleCard;
    import FormattingSettingsSlice = formattingSettings.Slice;
    import FormattingSettingsModel = formattingSettings.Model;
    
    export class CircleSettings extends FormattingSettingsCard{
        public circleColor = new formattingSettings.ColorPicker({
            name: "circleColor",
            displayName: "Color",
            value: { value: "#ffffff" },
            show: true
        });
    
        public circleThickness = new formattingSettings.NumUpDown({
            name: "circleThickness",
            displayName: "Thickness",
            value: 2,
            show: true
        });
    
        public name: string = "circle";
        public displayName: string = "Circle";
        public show: boolean = true;
        public slices: FormattingSettingsSlice[] = [this.circleColor, this.circleThickness]
    }
    
    export class VisualSettings extends FormattingSettingsModel {
        public circle: CircleSettings = new CircleSettings();
        public cards: FormattingSettingsCard[] = [this.circle];
    }
    

    Este módulo define las dos clases. La clase CircleSettings define dos propiedades con nombres que coinciden con los objetos definidos en el archivo capabilities.json (circleColor y circleThickness) y establece valores predeterminados. La clase VisualSettings define el objeto de círculo según las propiedades descritas en el archivo capabilities.json.

  6. Guarde el archivo settings.ts.

  7. Abra el archivo visual.ts .

  8. En el archivo visual.ts, importe:

    import { VisualSettings } from "./settings";
    import { FormattingSettingsService } from "powerbi-visuals-utils-formattingmodel";
    

    y en la clase Visual, agregue las siguientes propiedades:

    private visualSettings: VisualSettings;
    private formattingSettingsService: FormattingSettingsService;
    
    

    Esta propiedad almacena una referencia al objeto VisualSettings, que describe la configuración visual.

  9. En la clase Visual, inserte lo siguiente como la primera línea del constructor:

    this.formattingSettingsService = new FormattingSettingsService();
    
  10. En la clase Visual, agregue el método siguiente después del método update.

    public getFormattingModel(): powerbi.visuals.FormattingModel {
        return this.formattingSettingsService.buildFormattingModel(this.visualSettings);
    }
    

    Se llama a esta función en cada representación de panel de formato. Permite seleccionar cuáles de los objetos y propiedades desea exponer a los usuarios en el panel de propiedades.

  11. En el método update, después de la declaración de la variable radius, agregue el código siguiente.

    this.visualSettings = this.formattingSettingsService.populateFormattingSettingsModel(VisualSettings, options.dataViews[0]);
    this.visualSettings.circle.circleThickness.value = Math.max(0, this.visualSettings.circle.circleThickness.value);
    this.visualSettings.circle.circleThickness.value = Math.min(10, this.visualSettings.circle.circleThickness.value);
    

    Este código recupera las opciones de formato. Ajusta cualquier valor pasado a la propiedad circleThickness y lo convierte en un número entre 0 y 10.

    Screenshot of setting circle thickness to between zero and 10.

  12. En el elemento circle, modifique los valores pasados al estilo de relleno y al estilo de ancho de trazo, como se muestra a continuación:

    .style("fill", this.visualSettings.circle.circleColor.value.value)
    
    .style("stroke-width", this.visualSettings.circle.circleThickness.value)
    

    Screenshot of circle elements.

  13. Guarde el archivo visual.ts.

  14. En PowerShell, inicie el objeto visual.

    pbiviz start
    
  15. En Power BI, la barra de herramientas flotante sobre el objeto visual, seleccione Activar recarga automática.

    Screenshot of Toggle Auto Reload icon.

  16. En las opciones de formato del objeto visual, expanda Circle.

    Screenshot of the final circle card visuals format pane elements.

    Modifique las opciones de color y grosor.

Modifique la opción de grosor a un valor inferior a cero y un valor superior a 10. A continuación, observe que el objeto visual actualiza el valor a un mínimo o máximo tolerable.

Depuración

Para obtener sugerencias sobre cómo depurar el objeto visual personalizado, consulte la guía de depuración.

Empaquetado del objeto visual personalizado

Ahora que ha terminado el objeto visual y está listo para usarse, es momento de empaquetarlo. Un objeto visual empaquetado se puede importar a informes de Power BI u ofrecerlo para que otros usuarios lo puedan utilizar y disfrutar.

Cuando el objeto visual esté listo, siga las instrucciones de Empaquetado de un objeto visual de Power BI y, si lo desea, compártalo con otros usuarios para que puedan importarlo y disfrutarlo.

Pasos siguientes