2017-05-16 3 views
1

이 답변을 온라인에서 찾을 수 없으므로 질문을 게시하고 대답을 게시하기로 결정했습니다. Power BI 개발에서 columns.roles에 액세스하려면 어떻게합니까?

은 내가 capabilities.json 파일에 테이블을 생성 :

"dataRoles": [ 
    { 
     "displayName": "Stakeholders", 
     "name": "roleIwant", 
     "kind": "GroupingOrMeasure" 
    } 
... 
"dataViewMappings": [   
    { 
     "table": { 
      "rows": { 
       "select": [ 
        { 
        "for": { 
         "in": "roleIwant" 
        } 
        } 
       ] 
      } 
     } 
    } 
] 
나는 간단하게 예를 들어, 설정할 수 없습니다 것을 깨달았다

, 첫 번째 범주에서 전설 데이터, 첫 번째 범주는 첫 조각에서 오기 때문에 위치에 관계없이 사용자가 드래그하는 데이터 예를 들어, Power BI 온라인에서 다양한 데이터 세트를 설정하고 하나를 제거하면 모든 주문이 엉망이됩니다. 이 문제를 해결하는 가장 좋은 방법은 각 열의 역할을 확인하고 거기에서부터 시작하는 것이라고 생각했습니다.

...table->columns[0]->roles: { "roleIwant": true } 

그래서 나는 내가 좋아 액세스 할 수 있다고 생각 :

당신이 쇼 DataView를 클릭

는 계층 구조를 명확하게 보여줍니다

...table.columns[0].roles.roleIwant 

을하지만 그건 사실이 아니다. 명령 프롬프트에서 pbiviz start를 사용하여 컴파일 중입니다. 오류가 발생합니다.

error TYPESCRIPT /src/visual.ts : (56,50) Property 'roleIwant' does not exist on type '{ [name: string]: boolean; }'. 

왜 이런 방식으로 액세스 할 수 있습니까? 기본적으로 역할에 롤인 속성 롤이 포함되어 있지 않기 때문에 생각하고있었습니다. 사실이긴하지만 중요하지 않아야합니다 ...

답변

1

솔루션은 실제로 매우 간단합니다. 나는 '점'도움말 (제안을 위해 역할 뒤에 점을 입력 함)이 없지만 역할에 대해 일반 개체 속성을 사용할 수 있습니다. 이 경우의 명령은 다음과 같습니다

...table.columns[0].roles.hasOwnProperty("roleIwant") 

그리고 기능 코드 부분 : 그것은 재산이있는 경우

... 
columns.forEach((column) =>{ 
     if(column.roles.hasOwnProperty("roleIwant")){ 
      roleIwantData = dataview.categorical.categories[columns.indexOf(column)].values; 
     }) 

, 그것은 그 역할에 속한다. 여기에서 저장된 데이터에는 해당 역할의 실제 값이 포함됩니다! 여기에 추가 할 수있는 유일한 점은 코드 작성 방법에 따라 여러 역할에 대해 열이 사용되는 경우 다른 경우가 아닌 열에 속한 여러 역할을 확인하기 위해 여러 역할을 수행하는 것이 좋습니다.

누구나 주제에 대해 더 많은 조언을 구하거나 더 나은 방법을 찾으시는 분이라면 언제든지. 열의 역할에 액세스하는 방법에 대해 오류를 검색했으며 아무 것도 얻지 않았으므로이 주제가 다른 사람에게 도움이되기를 바랍니다. 그리고 어리 석음에 대해 유감스럽게 생각합니다. 저는 많이 이야기하는 경향이 있습니다.