2014-03-25 1 views
0

개체 나는 한 다음 MDX 코드 나 C# code.Any 제안에서 MDX ADOMD 명령을 사용하여 reate하기 위해 노력하고있어프로그래밍 AMO OLAP은

Scope (
     {[Dim PNL].[PNL].&[88]} 
,[Measures].members 


);  
this = iif(aggregate([Dim PNL].[PNL].&[12],[Measures].currentmember)<>0, 
aggregate([Dim PNL].[PNL].&[60],[Measures].currentmember) 
/(-1* aggregate([Dim PNL].[PNL].&[12],[Measures].currentmember)),null 
);  
End Scope; 

?

답변

1

ADOMD를 통해 큐브 구조를 변경할 수는 없지만 AMO를 사용할 수는 있습니다. 그러나 계산 스크립트를 모두 파싱해야합니다. 액세스 할 수있는 모든 것은 완전한 계산 스크립트가 포함 된 하나의 큰 문자열입니다.

당신이 읽기 계산 스크립트에 액세스 할 수 있습니다, 당신은 AMO 큐브 객체가 cube 이름이 가정하고 변경 사항을 수행 한 후

cube.DefaultMdxScript.Commands[0].Text 

를 통해 작성, 당신은 작성

cube.Update() 

를 호출해야합니다 실행중인 큐브로 다시 변경됩니다.

기술적으로 볼 때 큐브에는 여러 계산 스크립트가있을 수 있습니다. 그러나 BIDS는 모든 것을 하나의 독서에 결합합니다 (최소한 나는 그렇다고 생각합니다). 그리고 BIDS는 서면으로 모든 것을 첫 번째 스크립트에 다시 작성합니다.

+0

어떻게 계산 스크립트를 구문 분석 할 수 있습니까? 어떤 생각? –

+0

글쎄, 당신은 당신이 무엇을 찾고 있는지 알고 나서 정규식과 같은 문자열 검색 방법을 사용해야합니다. 순서를 코드에 추가하려는 계산의 일부로 중요하지 않은 경우 물론 가장 간단한 방법은 스크립트의 끝에 추가하는 것입니다. – FrankPl