|
08.07.2004, 13:13 | #1 |
Участник
|
Написал Job, который использует демобазу в OLAPе.
Соответственно в connectionString имя сервера замениь надо. <div class='XPPtop'>X++</div><div class='XPP'> #define.ADOMDCellset([color=:red]"ADOMD.Cellset"[/color]) #define.ADODBConnection([color=:red]"ADODB.Connection"[/color]) [color=:blue]static[/color] [color=:blue]void[/color] Job1(Args _args) { COM connection = [color=:blue]new[/color] COM(#ADODBConnection); COM cellSet = [color=:blue]new[/color] COM(#ADOMDCellset); COM axes, axis0, axis1; COM positions0, positions1, position0, position1; COM members, member; COM cell; COMVariant a = [color=:blue]new[/color] ComVariant(COMVariantInOut::IN, COMVariantType::VT_SAFEARRAY); Array arr; [color=:blue]str[/color] connectionString = [color=:red]"Provider=msolap; Datasource=SQLTEST; Initial Catalog=FoodMart 2000"[/color]; [color=:blue]str[/color] selectString = [color=:red]"select\r\n"[/color]+ [color=:red]" {[Measures].[Unit Sales]} on columns,\r\n"[/color]+ [color=:red]" order(except([Promotion Media].[Media Type].members,{[Promotion Media].[Media Type].[No Media]}),[Measures].[Unit Sales],DESC) on rows\r\n"[/color]+ [color=:red]"from Sales"[/color]; [color=:blue]int[/color] i0, i1; [color=:blue]str[/color] printStr; ; connection.Open(connectionString); cellSet.Open(selectString, connection); axes = cellSet.Axes(); axis0 = axes.Item(0); axis1 = axes.Item(1); positions0 = axis0.Positions(); positions1 = axis1.Positions(); [color=:blue]for[/color] (i1 = 0; i1 < positions1.[color=:blue]Count[/color](); i1++) { position1 = positions1.Item(i1); members = position1.Members(); member = members.Item(0); printStr = member.Caption(); [color=:blue]for[/color] (i0 = 0; i0 < positions0.[color=:blue]Count[/color](); i0++) { arr = [color=:blue]new[/color] Array(Types::Integer); arr.value(1, i0); arr.value(2, i1); a.safeArray(arr, COMVariantType::VT_VARIANT); cell = cellSet.Item(a); printStr += [color=:red]" "[/color]+cell.FormattedValue(); } [color=:blue]print[/color] printStr; } cellSet.Close(); connection.Close(); [color=:blue]pause[/color]; }</div> |
|