Programma utelukke sideobjekter i olap dreie

stemmer
1

Jeg har en pivot tabell på en OLAP kube. Jeg kan gå inn i en side-feltet og manuelt fjerne merkingen av flere elementer. Hvordan kan jeg gjøre dette i VBA basert på en liste over elementer jeg trenger utelukket? (NB jeg har ikke en corrresponding liste over elementer jeg trenger inkludert)

Jeg vet hvordan å utelukke disse elementene på andre måter, ved å endre den underliggende spørringen for eksempel. Jeg ønsker spesielt å gjenskape brukerhandling av å oppheve merkingen elementer i pivot.

Publisert på 19/09/2008 klokken 09:34
kilden bruker
På andre språk...                            


3 svar

stemmer
0

Jeg beklager dette eksemplet er i C #, men jeg vet ikke nok VBA til å oversette det (kanskje noen kan redigere denne oppføringen og legge den under).

Er du henviser til noe som dette?

((MOE.PivotField)pivotTableObject.PivotFields("[NAME]")).Delete();

Hvor MOE er Microsoft.Office.Interop.Excel navnerom og [NAME] er navnet på det feltet du ønsker å fjerne

Svarte 19/09/2008 kl. 10:34
kilden bruker

stemmer
0

Jeg fant en ikke helt tilfredsstillende løsning. I en separat MDX spørring hentet I alle medlemmer av den dimensjon som svarer til den side-feltet. Jeg har også bygget en ordbok av elementene som skal utelates. I så sløyfe gjennom elementene som så:

PivotField.CubeField.EnableMultiplePageItems = True
firstTime = True
For Each member In dimensionMembers
    If Not HiddenMembers.Exists(member) Then
        'firstTime = true is the equivalent of unchecking 
        ' the root node of the items treeview
        PivotField.CubeField.AddPageItem "[Dimension].[" & member & "]", firstTime
        firstTime = False
    End If
Next

Jeg sier ikke tilfredsstillende fordi hver samtale til AddPageItem utløser en spørring til Analysis Server gjør det upraktisk treg. Og det føles bare galt.

Svarte 19/09/2008 kl. 13:20
kilden bruker

stemmer
2

Du trenger ikke å kjøre en MDX spørring for å liste opp de medlemmer av en dimensjon, du kan se på egenskapene til kuben objekt i VBA. Start med dette og se hvor det blir deg!

Sett OCAT = Ny ADOMD.Catalog

sløyfe gjennom denne for eksempel: oCat.CubeDefs (scube) .Dimensions (3) .Hierarchies (0) .Levels (2) .Members (i)

Svarte 14/10/2008 kl. 10:43
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more