Написал 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>
|