report-visuals
Creates Power BI reports and visuals in PBIR format. Use for pages, charts, tables, slicers, and visual configuration.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Creates Power BI reports and visuals in PBIR format. Use for pages, charts, tables, slicers, and visual configuration.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Applies Power BI best practices, BPA rules, and enterprise standards. Use for quality validation, naming conventions, and performance optimization.
Creates calculation groups for reusable DAX patterns like time intelligence and currency conversion. Use to replace repetitive measures with dynamic calculations.
Writes DAX measures, calculated columns, and calculations for Power BI. Use for business logic, time intelligence, and analytical calculations.
Implements CI/CD pipelines and DevOps practices for Power BI. Use for automated validation, testing, and deployment of PBIP projects.
Creates and manages Power BI Desktop Project (PBIP) structure. Use when starting new Power BI projects, setting up folder structure, or configuring project files.
Writes Power Query (M language) for data transformation, connections, and ETL. Use for data sources, transformations, parameters, and query optimization.
| name | report-visuals |
| description | Creates Power BI reports and visuals in PBIR format. Use for pages, charts, tables, slicers, and visual configuration. |
This skill helps create Power BI reports and visuals in PBIR (Power BI Report) format.
<ProjectName>.Report/
├── definition.pbir # Report pointer file
├── report.json # Report configuration
├── StaticResources/ # Images and resources
│ └── RegisteredResources/
└── definition/
├── pages/
│ ├── ReportSection1/
│ │ └── page.json
│ └── ReportSection2/
│ └── page.json
├── bookmarks/
└── ...
{
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/report/1.0.0/schema.json",
"themeCollection": {
"baseTheme": {
"name": "CY24SU06",
"reportVersionAtImport": "5.55",
"type": "SharedResources"
}
},
"config": {
"version": 5,
"defaultDrillFilterOtherVisuals": true
},
"objects": {}
}
{
"$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/1.0.0/schema.json",
"name": "ReportSection1a2b3c4d",
"displayName": "Sales Overview",
"displayOption": "FitToPage",
"height": 720,
"width": 1280,
"visuals": [],
"filters": [],
"ordinal": 0
}
| Property | Description | Values |
|---|---|---|
name | Unique identifier | ReportSection + GUID |
displayName | User-visible name | Any string |
displayOption | Sizing mode | FitToPage, FitToWidth, ActualSize |
height | Page height in pixels | 720 (standard), 1080 (tall) |
width | Page width in pixels | 1280 (standard), 1920 (wide) |
ordinal | Page order | 0, 1, 2, ... |
| Size | Width | Height | Use Case |
|---|---|---|---|
| 16:9 | 1280 | 720 | Standard dashboard |
| 4:3 | 1280 | 960 | Traditional reports |
| Letter | 816 | 1056 | Print reports |
| Custom | Any | Any | Special layouts |
Every visual has this structure:
{
"name": "visual_unique_id",
"position": {
"x": 0,
"y": 0,
"width": 400,
"height": 300,
"z": 0,
"tabOrder": 0
},
"visual": {
"visualType": "columnChart",
"query": { ... },
"objects": { ... },
"visualContainerObjects": { ... }
}
}
| Property | Description |
|---|---|
x | Left position in pixels |
y | Top position in pixels |
width | Visual width in pixels |
height | Visual height in pixels |
z | Layer order (higher = on top) |
tabOrder | Keyboard navigation order |
{
"name": "columnChart1",
"position": {
"x": 20,
"y": 20,
"width": 600,
"height": 400,
"z": 0,
"tabOrder": 0
},
"visual": {
"visualType": "columnChart",
"query": {
"queryState": {
"Category": {
"projections": [
{
"field": {
"Column": {
"Expression": {
"SourceRef": { "Entity": "Products" }
},
"Property": "Category"
}
},
"queryRef": "Products.Category",
"active": true
}
]
},
"Y": {
"projections": [
{
"field": {
"Measure": {
"Expression": {
"SourceRef": { "Entity": "Sales" }
},
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
}
]
}
}
},
"objects": {
"categoryAxis": [{
"properties": {
"show": { "expr": { "Literal": { "Value": "true" } } }
}
}],
"valueAxis": [{
"properties": {
"show": { "expr": { "Literal": { "Value": "true" } } }
}
}]
}
}
}
{
"name": "barChart1",
"position": { "x": 20, "y": 20, "width": 500, "height": 350, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "barChart",
"query": {
"queryState": {
"Category": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Products" } },
"Property": "Product Name"
}
},
"queryRef": "Products.Product Name",
"active": true
}]
},
"Y": {
"projections": [{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
}]
}
}
}
}
}
{
"name": "lineChart1",
"position": { "x": 20, "y": 20, "width": 600, "height": 400, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "lineChart",
"query": {
"queryState": {
"Category": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Date" } },
"Property": "Month"
}
},
"queryRef": "Date.Month",
"active": true
}]
},
"Y": {
"projections": [{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
}]
}
}
}
}
}
{
"name": "card1",
"position": { "x": 20, "y": 20, "width": 200, "height": 100, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "card",
"query": {
"queryState": {
"Values": {
"projections": [{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
}]
}
}
},
"objects": {
"labels": [{
"properties": {
"fontSize": { "expr": { "Literal": { "Value": "28D" } } }
}
}]
}
}
}
{
"name": "table1",
"position": { "x": 20, "y": 20, "width": 500, "height": 400, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "tableEx",
"query": {
"queryState": {
"Values": {
"projections": [
{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Products" } },
"Property": "Product Name"
}
},
"queryRef": "Products.Product Name",
"active": true
},
{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
},
{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Quantity"
}
},
"queryRef": "Sales.Total Quantity",
"active": true
}
]
}
}
}
}
}
{
"name": "matrix1",
"position": { "x": 20, "y": 20, "width": 600, "height": 400, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "pivotTable",
"query": {
"queryState": {
"Rows": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Products" } },
"Property": "Category"
}
},
"queryRef": "Products.Category",
"active": true
}]
},
"Columns": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Date" } },
"Property": "Year"
}
},
"queryRef": "Date.Year",
"active": true
}]
},
"Values": {
"projections": [{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "Sales" } },
"Property": "Total Sales"
}
},
"queryRef": "Sales.Total Sales",
"active": true
}]
}
}
}
}
}
{
"name": "slicer1",
"position": { "x": 20, "y": 20, "width": 200, "height": 300, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "slicer",
"query": {
"queryState": {
"Values": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Products" } },
"Property": "Category"
}
},
"queryRef": "Products.Category",
"active": true
}]
}
}
},
"objects": {
"general": [{
"properties": {
"orientation": { "expr": { "Literal": { "Value": "'Vertical'" } } }
}
}],
"selection": [{
"properties": {
"selectAllCheckboxEnabled": { "expr": { "Literal": { "Value": "true" } } },
"singleSelect": { "expr": { "Literal": { "Value": "false" } } }
}
}]
}
}
}
{
"name": "dateSlicer1",
"position": { "x": 20, "y": 20, "width": 300, "height": 80, "z": 0, "tabOrder": 0 },
"visual": {
"visualType": "slicer",
"query": {
"queryState": {
"Values": {
"projections": [{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Date" } },
"Property": "Date"
}
},
"queryRef": "Date.Date",
"active": true
}]
}
}
},
"objects": {
"general": [{
"properties": {
"orientation": { "expr": { "Literal": { "Value": "'Horizontal'" } } }
}
}],
"data": [{
"properties": {
"mode": { "expr": { "Literal": { "Value": "'Between'" } } }
}
}]
}
}
}
The query object binds visuals to data. Key concepts:
{
"field": {
"Column": {
"Expression": { "SourceRef": { "Entity": "TableName" } },
"Property": "ColumnName"
}
}
}
{
"field": {
"Measure": {
"Expression": { "SourceRef": { "Entity": "TableName" } },
"Property": "MeasureName"
}
}
}
| Bucket | Used By | Purpose |
|---|---|---|
Category | Charts | X-axis grouping |
Y | Charts | Y-axis values |
Series | Charts | Legend grouping |
Values | Cards, Tables | Data fields |
Rows | Matrix | Row headers |
Columns | Matrix | Column headers |
Tooltips | All | Hover information |
{
"name": "Filter123",
"expression": {
"Column": {
"Expression": { "SourceRef": { "Entity": "Products" } },
"Property": "Category"
}
},
"type": "Categorical",
"filter": {
"Version": 2,
"From": [{"Name": "p", "Entity": "Products", "Type": 0}],
"Where": [{
"Condition": {
"In": {
"Expressions": [{"Column": {"Expression": {"SourceRef": {"Source": "p"}}, "Property": "Category"}}],
"Values": [[{"Literal": {"Value": "'Electronics'"}}]]
}
}
}]
}
}
Add to the page's filters array using the same structure.
{
"objects": {
"values": [{
"properties": {
"backColor": {
"solid": { "color": { "expr": { "Literal": { "Value": "'#E8E8E8'" } } } }
}
}
}]
}
}
{
"properties": {
"fontColor": {
"expr": {
"Conditional": {
"Cases": [
{
"Condition": { "Comparison": { "Left": { "Measure": "..." }, "Right": { "Literal": { "Value": "0" } } } },
"Value": { "Literal": { "Value": "'#FF0000'" } }
}
],
"Else": { "Literal": { "Value": "'#00FF00'" } }
}
}
}
}
}
name values for all visualsz ordering for overlapping visualsAfter creating visuals:
best-practices skill for quality checksqueryRef matches the field path$schema reference is correctname follows expected format