Rules / Report Design

Page keeps its default name

warning DEFAULT_PAGE_NAME · built in · report layer · scope: Page

What it checks

Pages whose display name in page.json has the shape Page <n>, Duplicate of <name>, or <name> (copy): the names English Power BI Desktop gives a new page and a duplicated one, and a name marked as a copy. The rule also matches the forms Desktop-saved files show for a new or duplicated page in other languages, such as Seite <n> and Doublon de <name>.

Desktop names pages in the language it runs in, and Microsoft publishes no list of those names, so the rule knows the forms that page.json files saved by Desktop show. Each is named here with the language of the reports it turned up in, as their model's culture or their other page names show it: Seite <n> (German), Página <n> (Spanish, and Portuguese too), Pagina <n> (Italian), and ページ <n> (Japanese) for a new page, and Duplikat von "<name>" (German, with the name in straight double quotes), Duplicado de <name> (Spanish), Doublon de <name> (French), Duplicata de <name> (Portuguese), and Duplikat av <name> for a duplicated one. The report where Duplikat av turned up has an English model culture and English names on its other pages, so it does not show the language Desktop ran in; the phrase reads "duplicate of" in Norwegian and Swedish alike. A name Desktop gives in another language is reported only when it has one of these forms.

Each finding names the page, as Page "Page 2", at the displayName line of its page.json, and its detail says which kind of name it matched: "Page 2" is the name Power BI Desktop gives a new page, "Duplicate of Overview" is the name Power BI Desktop gives a duplicated page, or "Overview (copy)" is named as a copy. A name in another language reads the same way, as "Seite 2" is the name Power BI Desktop gives a new page.

Example

Fires the rule in page.json
{
  "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/2.1.0/schema.json",
  "name": "8f3c2a1d6b4e5f7a9c0d",
  "displayName": "Page 2",
  "displayOption": "FitToPage",
  "height": 720,
  "width": 1280
}
After the fix in page.json
{
  "$schema": "https://developer.microsoft.com/json-schemas/fabric/item/report/definition/page/2.1.0/schema.json",
  "name": "8f3c2a1d6b4e5f7a9c0d",
  "displayName": "Overview",
  "displayOption": "FitToPage",
  "height": 720,
  "width": 1280
}

The page still carries the name it was added under, so the finding reads Page "Page 2" with "Page 2" is the name Power BI Desktop gives a new page. The fix names it for what it shows. Only displayName changes: the page's name, the id that pages.json lists it by, stays the same.

Why it matters

A page's name is how readers find their way around a report. It labels the page's tab, it is the label of the page's button in a page navigator, and for a drillthrough page it is the entry readers pick from the Drillthrough menu. Page 2 says nothing about what the page holds, and Duplicate of Overview says only where the page came from, so readers have to open each page to learn what is on it. The next author learns as little: a page that kept the name it was added under may be a draft nobody finished, and a duplicate that kept its name may be an experiment nobody removed, and nothing in the name says which.

How to fix it

In Power BI Desktop, right-click the page's tab at the bottom of the report, select Rename Page, and type the new name. Or, with nothing selected on the page, select the Page information card in the Format pane and type the name into Name. In page.json the name is displayName, as in the example; leave name as it is, since pages.json and the page's folder use it.

A page navigator's buttons take the new name on their own. A button that picks its destination from a table of page names, through conditional formatting, does not: Power BI matches those values to the page names exactly, so change the name in that table too.

When to ignore it

A page whose real name has one of these shapes is named on purpose. A report that reproduces a printed document page for page, with pages called Page 1 and Page 2 to match the original, is the usual case; ignore the finding on those pages.

To ignore this rule on one page, add { "name": "pbiplint.ignore", "value": "DEFAULT_PAGE_NAME" } to the annotations array of its page.json. Power BI Desktop keeps the annotation. To turn the rule off for a whole project, set "DEFAULT_PAGE_NAME": "off" under rules in pbiplint.config.json.

Quirks

Check a report for this Improve this page