SSAS多维模型建好之后,除了在excel客户端直接链接ssas源拖拽pivot分析使用外,还可以讲要展示的结果集通过MDX语句查询出来,嵌入到程序中,通过运行程序跑出完整的报表。如图所示:

aaarticlea/png;base64,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" alt="" />

MDX对于OLAP数据集就像Transact-SQL对于Microsoft SQL Server关系数据库。在SQL里mdxquery查询视窗,将SSAS的查询结果,显示在我们自定义的应用程序里面,和传统的ADO.net链接SQL数据库引擎相似。

例如如下MDX查询代码:

WITH MEMBER [Target] AS [Measures].[USD REV TARGET - Vw ST SUBREGION TGT]/1000
MEMBER [QTD] AS [Measures].[ST AMT USD]/1000
MEMBER [HitRate] AS IIF([Target]=NULL OR [Target]=0,NULL,[QTD]/[Target])
MEMBER [SO_Target] as [Measures].[USD REV TARGET]/1000
MEMBER [SO_QTD] AS [Measures].[SO AMT USD]/1000
MEMBER [SO_HitRate] as IIF([SO_Target]=NULL OR [SO_Target]=0,NULL,[SO_QTD]/[SO_Target])
SELECT CROSSJOIN([OverviewAllBrand-BU].[BU CODE],
{[Target],[QTD],[HitRate],[SO_Target],[SO_QTD],[SO_HitRate]}) ON COLUMNS,
CROSSJOIN({[OverviewAllBrand-Region].[REGION EN], [OverviewAllBrand-Region].[REGION EN].CHILDREN },
{[OverviewAllBrand-Channel].[CHANNEL TYPE].CHILDREN, [OverviewAllBrand-Channel].[CHANNEL TYPE] }) ON ROWS
FROM [OverviewAllBrand] where ([OverviewAllBrand-Region].[AREA CN].&[CHINA])

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0QAAAGICAIAAADuzrefAAAgAElEQVR4nO19PY4kR5J1HGla2xW7jrHAJzV4kUYdgRihQWkAXmABnmCBUQgUhQFitRhhhRVGoDAChRXiE5LMifIfC3MPC/PnVu/BYMjyjB+3Z24ZLy2zMpb1b2/r395ev74+HjTZThAEQRAEQQzFQjFHEARBEAQxLyjmCIIgCIIgJgbFHEEQBEEQxMToFHMvn186xB+NRqPRaDQazdbeiTmlAHz9+voQc7fKTIIgCIIgCOIUqZjTCMCjmBuuRmk0Go1Go9E+slHM0Wg0Go1Go01s52JuWZZkhGKORqPRaDQaDcROxNyyLBRzNBqNRqPRaLAmibnlDyT7UMzRaDQajUajgVhVzC0HJPtQzNFoNBqNRqOBGDtzNBqNRqPRaBMbvzNHo9FoNBqNNrHxv1lpNBqNRqPRJjb+zhyNRqPRaDTaxEYxR6PRaDQajTaxUczRaDQajUajTWzvxNzr11elPcScfnsajUaj0Wg02h32LzH38vmFRqPRaDQajTaX/UvM0Wg0Go1Go9Gms/RnR2g0Go1Go9FoExnFHI1Go9FoNNrERjFHo9FoNBqNNrFRzNFoNBqNRqNNbPwHCBqNRqPRaLSJjT9NQqPRaDQajTaxvRNzw/uEHbZPheF00Wg0Go1GC2Zzi7np5NGMJNNoNBqNRkO2qpgb3cNSYTh9rfb69XXGadNoNBqNRoO1spibQnBMMcnEJu2A0mg0Go1Gg7WCmCuKpL/+11//+l9//ek/fzraj3/5ceDUBTH35VvZPn2XmkTNsgh/9hnFHI1Go9FoNFvTirkfvqUfvP76j1+/fPth4NRlMffDL/vv9m3/UrGLYm6po3ZMijkajUaj0Wi21izmfvvnb2+/7m+/7j/+/NuX7y6JOUH0aNpgTZ25vCf36bu3T386n5ug1Y6TrD1OjGKORqPRaDSarbWJufW/17df3t5+fvvx599++PbWJOZyDVR8oO91CWLu2Ed8+/lfj//6X3/9/dH/7T98e/v0py/Kqa7szNFoNBqNRoO0BjH3wy9vP/3nTz98e/vxLz8+rLUzl4iko082qO14NKWY+5eA2/ef/vOnh5L77Z+//fDt7d//7d9rp8s1WVHMnT5OjGKORqPRaDSarfV/Z+7Hn3/7vUX3y9sPv7xtf9+az32t1yWIuR//8uP63+vbz7//38bTHmL08a8bgphLplebCTtzNBqNRqPRhluDmPvf//nfX//x66//+PXtl/3Hn3/78effnsLu8ZGloOdONVC+WW33p8lirtiZ++Hb22///O3xtb8f//KjIOYEQXZle4o5Go1Go9FottYg5ra/b+9aXL+87fu+f/th//blh29vbz9r9ZzweaVVZ678Mev/7T/950//+geOuphLzlvTnTKKR6aYo9FoNBqNZmv9H7P+Lub2fd/37e/bp+++fPrTl9q/FLw75f2due///P3bL79/xvr8qt/DP7/z98O3H+SPWYtnrynRoxeMYo5Go9FoNJqttYm5R1vr13/8+vbrH2Lu25f9uy/7vn/59umHb2+fvlOJudqIVWfu+z9/f/xo9fEfD7/987cf//Lj26/742Pi7//8vSw9j5252uRzGSrrOYo5Go1Go9FottYs5h5K7u3X/dir++2fv21/3374pfpjH7+frPSpZU2rnXa5lGLu8dHq83tyzy/8CWIumVKtiVgTefyYlUaj0Wg0mpu1ibmnknv75Q8x992X/btP//s///vl2ydZzAm9q+QpZbtLFnPP/109frT6+CfW7//8/cM0HwqvZx+zyuOJUczRaDQajUaztS4x98v+5ZdPz/8Y/fUfv67/vf71v/6q+RnetUXMCYO1eT7s+z9//+//9u+f/vQl8ccHD3Omm2KORqPRaDSarTWIubeff//p4If9Lua++7R/9+nt57dP330SxNy7U2ZarfjVtOSTzSYxB2sUczQajUaj0WytQcx9+u7Lf/y///j03ZeHPcTc7z8a/MdHmcoPLk2MYo5Go9FoNBpNK+Zye0i33NymTjFHo9FoNBqN9k7M7bNhOH2tNinPBEEQBEHAIhVzw+UOjUaj0Wg0Gk1vVTH3+vWVRqPRaDQajQZukph7+fxCo9FoNBqNRkO2EzG3/u1t+9sbPT09PT09PT09pj8Rc9vf3sSv3H0gkA1PkO0iHu+vRs/iLsSOLgaYIzJABtDwyMh5Z+4xOFx1jvVkg2wP98f3VwjzYXQfzTNHZIAMoPlnRlSdOYQZg/BFNsj2KB9b48aOLoZnjsgAGUDzz4ywM8cVDOfJdtHH1rixo4vhmSMyQAbQPDtzXMG4Hoftxx2BnyPLsjy9/3ycNa5z7PEUfMLV8R7Tw+c2aY6G1yMZGM5AGCbNM8LO3MdawVN4HLahrsfOGtc5dhwFb+XDXC1wcjS8HsnAcAbCMGmeEXbmPtYKnsKDsJ1ffT9OZ84/dhwFb+Lza8O8VwuQHCHUIxmIUacITJpnhJ25D7SCZ/EgbKNdjz01rn/sIAreyke6WoDkCKEeyUCMOkVg0jwj7Mx9oBU8i0dgO6/zbfT12E3jDokdRMGb+FzDrTNfLRByBFKPZCBAnYIwaZ4RduY+ygqeyCOwDXg9dtO4Q2JHUPBWPtjVAiFHIPVIBgLUKQiT5hlhZ+6jrOCJPALby3s8xj9OZ84/dgQFb+UTAp+srnNeLRByBFKPZCBAnYIwaZ4RduY+ygqeyA9nO7/iHq/EsTtzo2JHUPAmPr8eHK8TM14thucIpx7JwOx1isOkeUbYmfsQK3guP5xtzOuxj8YdFftwBW/l410thucIpx7JwOx1isOkeUbYmfsQK3guT7aLfrjGZXQf3DNHZIAMoHl25riCcT3ZLvrYGjd2dDE8c0QGyACaZ2eOKxjXk+2ij61xY0cXwzNHZIAMoPm2ztzr11ca2SDbw+2pcYfPhNF9TGOOyAAZQDNtZ+7l8wvtYWSDbA+3LTQtsaOLYcwRGSADaKbqzA3vItLT09PT09PT09e86jtzxL7vZMMTZLuIlz8+fQ6J2NHFAHNEBsgAGrSduZ3fcyQbZBvAv4b+v5DY0cXwzBEZIANovuE7c8wZVzDZRvCxNW7s6GJ45ogMkAE0/8wIO3NcwXCebBd9bI0bO7oYnjkiA2QAzbMzxxWM633YLt4NHdnfp3GLPBT5uY+xKRR8EnVyl+4in1Pfv8s2R8WVo1xRINVquEqvsFHb0qFmh9fpxVWU7BWgftmZm2wFfyjvybZtrd5a+Tdp3GTOtde7/Fnba+oU75eUXMkcCkcA91dyVFw5Mp+n/Ntm03OVXmRjYM2OrVMf3uaqX3bmZlrBH817sm1bjbfW9k0aV38lOH0WMLpbV0uNje6rC7i/kqNipPqrpvl66zua1Sq9yMbAmh1bpz68zVW/7MzNtII/mh/bmUu66/nj4shx35tmi9aZK7KHFt2tqyV59X9mX2BJs7oQIjXPUTGu650552q9ozPXwcbAmsXpzBnyNnX9sjM30wr+aB6kM/es8HzLvOaLrwK2np254X7JUMx+cZvW1YUQr22O8qtdq84YXq23fmdOz8bAmh1epxd5i1e/7MxNtoI/lAfpzOUVnuyV1/zp1eiKZ2duuK+xIbyy5yuntrpOrx/DvXlfqlVnDK/WO1ZpBxsDaxanTg15m7p+2ZmbdQV/BD+wM1e8BuRbJpVcO5qtv7szV7zCNV0nAKPzWS2CkqiNy9cPTG/+jbFWnTG8Wu9YpR1sDKxZnDq9wlvxCJPWLztzs67gj+AHduaEa4BQycURc+/QmXu+49TzAx6dz2pRvrNvWl0I8RrmqLhyWnXG8GoF/G9W55rF+c7cRd7yI0xav+zMzbSCP5of+5255YBV7LEfR47b3DRb59+ZK/IjbAkb3X2rJX+VL6qE5BqQrBlhLaH5gb8zV+Q/5/PuagX/nTmHmh1ep1d4C1m/7MxNtoI/lMdne8gV1+23lIewyvdL+H7SHBlWKyYDnjWLycBH9uzMcQXjeky28/dkzh5f4zK62N4nR0uGjuPcVK3+q9SEjakZiMGbQ0bYmQu1gmN4sl30mBqX0X0czxyRATKA5ts6c69fX2lkg2wPt6fGHT4TRvcxjTkiA2QAzbSduZfPL7SHkQ2yPdzW0LTEji6GMUdkgAygmaozN7yLSE9PT09PT09PX/Oq78wR+76TDU+Q7RrW0LTEji4GmCMyQAbQsPK/WZWebIxim0gQW+PGji4GmCMyQAbQoO3MDb+6D/dkYxTbRILYGjd2dDHAHJEBMoCGlZ05pScbo9gmEsTWuLGjiwHmiAyQATRs3Z25/Lf4kh/oQ9AEhr6VjS0j5LnlcV+ZPeE3D6PynLPdgWVZjo8faBrRb5zk6Mo0lNBrXP1UlTPUHLDppFeiK87QdvJN4TRRpzmycobJ2YUZ6ucmo/td1kWKkkO18lmcRv6nBj7vM/UTey6Ypr2uYK532shMWmHt68wtJUWyiPf6nd23stH67FL6feravovLnUBB2G5F8oJ+HFeOFP/U7H5lGnooNa58iouR1g6o56cGvYK/mLh8+769no8vrrrTHAnzqZ09h8lS7HuXhVmYudTToPt9ph5Ns0pCdlAhDgxYAZxJK2x9nbkm5RHD69no03ZFTdak/CL5K5252quz/pJZO2zT7veJuQ6NK1wL+0ZqB+ym9wl9dMqLvbxjbeMm+bvPLObkMxZx/V1WftIhhdl0oiP6GGgCuARxYMAK4ExaYTXpzGlUy+wetjMX0nd35oQ35fddM56obWwr5jo07lgxl/MjQB8djpjrSHdxJCGqOJJPoOnyYyLmulcgWmE2neiIvveZTcjze7rAPCWIAwNWAGfSCpttZ+4IBE1g6A07cwny8eO+xfHj9sOZuZvtJtRerI/FmbzEF1/0i4et7V7cLP+zdqjWGJs0bn6K4hmVtBTnXNxAjl1AR3T5YYWcKtlo2itfdRo+k5GcKM1I/pQQe+0Ie2mdCLB6l9XEj3DY2u7FzYrTaA2ng4FWJKEdB2sLoxj7TXBgwArgTFphZWdO6aE6c4F5ztnWQ67Apgtk8bCnG9deCDpOKqBb4wqn61YSysfCqRPooxPOdWVKrSOaVWc1IiTldBqahadciq0rELYwhYPL6KjBVjS9evhLEAcGrADOpBU2fmdO6aG+MxeY55xtPZb3yJ/d268ZSpWQHDCZhq2Ya9W4u+K1qVvMdfAjQx9dq5i7Q8ntulVnNVJMirDYclxP0N6+AmELs7b9KTpqsBXFdStzdVrmhnBgwArgTFph5X+zKj1UZ+44HoznnO0OdFRvvn3+Z/furRcqGUqNqxQ0+hlqDng9Ur2CVyZOkDhN6ZYH98Z0W43IZ5cn370UW99l5ccHKcza0U7RzYAeGq6eqtRfgjgwYAVwJq2w2f7OnKBaZvcdvzPXpO2W9zjdN9kymB/7O3NJhefPnh6wbxpK6DVu8aRXZnh6QOVeApoUfC1xxaeKqSwe7bmNZq/j7rWz3zqSnL04Z4E04Zg1XH+XpZxGjflaXlq5Kv6pQTcDehTXWxLsc+To966IWuHAgBXAmbTCyjtAKD3ZGMU2kaBb406B2NHFAHPkwMAVGeEgQSZaA+BMWmHjvVmVnmyMYptIEFvjxo4uBpgjHwb6lISP/phrDSAzaYWVnTmlJxuj2CYSxNa4saOLAeaIDJABNGzKztzr11ca2RjCNpEgtsaNHV0MMEdkgAygQdWZe/n8QnsY2XBme3SBICK2xo0dXQwwR2SADKBB1ZlD+NyNnp6enp6enp6+6FXfmSP2fScbniDbNWyhaYkdXQwwR2SADKBh43+zKj3ZGMU2kSC2xo0dXQwwR2SADKBB25kbfnUf7snGKLaJBLE1buzoYoA5IgNkAA0bO3NKTzZGsU0kiK1xY0cXA8wRGSADaFi7O3PHu6nkI0use3ltZ/dmzdkQxumb2PaE/lcii/d+8cEdGhcn8EkVPA6BDvDJETKlZGCuOkVm0gpbX2duKd0zdPmo92YtsiGM0zex7Yam0h14Cz9zjQsVuL+Cvw4oAh3gkCNwSsnARHUKzqQV1r7OXFGXxNYuejaePMRWt25su2GWmjfXuFCBOyt4E0AR6ACHHIFTSgYmqlNwJq2wmXTmPoJ2YWduFNtuSAr48eF48tT+vtqDdeYQAndW8CaAItABDjkCp5QMTFSn4ExaYbXtzB2BoAkMPb8zN4ptNxwLOK//ZLOBNW+ucaECd1bwJoAi0AEOOQKnlAxMVKfgTFphY2dO6a935uj72HbD6du1fGRIzZtrXKjAnRW8CaAIdIBDjsApJQMT1Sk4k1ZY+Z05pb/+nTn6PrbdMEvNm2tcqMCdFbwJoAh0gEOOwCklAxPVKTiTVtj436xKz87cKLbdoKn5ZVmG17y5xoUK3FnBmwCKQAc45AicUjIwUZ2CM2mF1fZ35oqaJoZnZ24U224Qan6vVPuQmjfXuFCBOyt4E0AR6ACHHIFTSgYmqlNwJq2w8Q4QSk82RrHthit161nz5hoXKnBnBW8CKAId4JAjcErJwER1Cs6kFVbem1XpycYotj3RV7rOBX+HxsUJ3FnBWwGHQAf45AiZUjIwV50iM2mFjZ05pScbo9gmEvhrXE/Eji4GmCMyQAbQsCo7c69fX2lkYwjbRILYGjd2dDHAHJEBMoAGVWfu5fML7WFkw5nt0QWCiNgaN3Z0McAckQEygAZVZw7hczd6enp6enp6evqiV31njtj3nWx4gmzXsIamJXZ0McAckQEygIaV/82q9GRjFNtEgtgaN3Z0McAckQEygAZtZ2741X24Jxuj2CYSxNa4saOLAeaIDJABNKzszCk92RjFNpEgtsaNHV0MMEdkgAygYevuzB1v55WPxLuTlZKN40i+zeNxYJbuYNsT+l+JLN77xQd3aFycwCdV8DgEOsAnR8iUkoG56hSZSSusfZ25pXQ30oX3Zn2v2JIjLKV7tgZj6Q623dBUugNv4WeucaEC91fw1wFFoAMccgROKRmYqE7BmbTC1teZy5VKTeEhKAMT38HGcfzYh0vGEaJD80M6c7PUvLnGhQrcWcGbAIpABzjkCJxSMjBRnYIzaYXVpDNX1CXBek4dbCQdOHbm+th2Q1LAj5QlT+3vqz1YZw4hcGcFbwIoAh3gkCNwSsnARHUKzqQVNtvO3BEImsDQ931nLvfbe6KGx4Xpx3bm8mqHqnlzjQsVuLOCNwEUgQ5wyBE4pWRgojoFZ9IKKztzSq/8b9bl/WepuV/ZmWtk2w2nb9fykSE1b65xoQJ3VvAmgCLQAQ45AqeUDExUp+BMWmHjd+aUXvk7c7liE0bisXQH226YpebNNS5U4M4K3gRQBDrAIUfglJKBieoUnEkrrPxvVqXv/m9WYSQeS3ew7QZNzS/LMrzmzTUuVODOCt4EUAQ6wCFH4JSSgYnqFJxJK2y2vzOXKzwEZWDi+Ttzo9h2g1Dze6Xah9S8ucaFCtxZwZsAikAHOOQInFIyMFGdgjNphZV3gFB6sjGKbTdcqVvPmjfXuFCBOyt4E0AR6ACHHIFTSgYmqlNwJq2w8d6sSk82RrHtib7SdS74OzQuTuDOCt4KOAQ6wCdHyJSSgbnqFJlJK6zszCk92RjFNpHAX+N6InZ0McAckQEygIZN2Zl7/fpKIxtD2CYSxNa4saOLAeaIDJABNKg6cy+fX2gPIxvObI8uEETE1rixo4sB5ogMkAE0qDpzCJ+70dPT09PT09PTF73qO3PEvu9kwxNku4YtNC2xo4sB5ogMkAE0bPxvVqUnG6PYJhLE1rixo4sB5ogMkAE0aDtzw6/uwz3ZGMU2kSC2xo0dXQwwR2SADKBhY2dO6cnGKLaJBLE1buzoYoA5IgNkAA1rd2cuvyfV8h4ImsDQC2wkgT/ZsJ2DcO+v2Gx7Qv8rkcV7v/jgDo2LE/ikCh6HQAf45AiZUjIwV50iM2mFra8zl6iHh85YPvC9WWucGM5B4NP8XMP9kM5cU+kOvIWfucaFCtxfwV8HFIEOcMgROKVkYKI6BWfSCmtfZ66oHu5WM2P96Xfm7tay7MzdjVlq3lzjQgXurOBNAEWgAxxyBE4pGZioTsGZtMJm0pnzUTNjfV9n7viJc/64+Jlsvs1j5OlzVZccp7jNXH5sZ+5Zz8WSLvbhY3TmEAJ3VvAmgCLQAQ45AqeUDExUp+BMWmG17cwl+mO4JjD0HZ25XGPlWy7ZJ9TCSPEIuf4TcjSLH9uZy6sdqubNNS5U4M4K3gRQBDrAIUfglJKBieoUnEkrbOzMKf2V78wl+mzJ+nB9I/m5hG3m8gidueNjqJo317hQgTsreBNAEegAhxyBU0oGJqpTcCatsPI7c0p/5Ttzi1Fn7vRcwjZz+eGduWQQqubNNS5U4M4K3gRQBDrAIUfglJKBieoUnEkrbPxvVqX36cwty7KwMwfcmXskqDjuNk9zjQsVuLOCNwEUgQ5wyBE4pWRgojoFZ9IKq+3vzNXUTABv2Jk7speMJMrsyHCuDvNzCdvM5dE6c3ul2ofUvLnGhQrcWcGbAIpABzjkCJxSMjBRnYIzaYWtrzP3Af1ANpaZe2zX2XbDlbr1rHlzjQsVuLOCNwEUgQ5wyBE4pWRgojoFZ9IKa3dn7qN5ZzaObbnhsY9l2xN9petc8HdoXJzAnRW8FXAIdIBPjpApJQNz1Skyk1bY2JlTerIxim0igb/G9UTs6GKAOSIDZAANq7Iz9/r1lUY2hrBNJIitcWNHFwPMERkgA2hQdeZePr/QHkY2nNkeXSCIiK1xY0cXA8wRGSADaFB15hA+d6Onp6enp6enpy961XfmiH3fyYYnyHYNa2haYkcXA8wRGSADaFj536xKTzZGsU0kiK1xY0cXA8wRGSADaNB25oZf3Yd7sjGKbSJBbI0bO7oYYI7IABlAw8rOnNKTjVFsEwlia9zY0cUAc0QGyAAatu7OXP6rtst7IGgCQy+wkQTedOQlu9PXeu1OXEvlbmD5WQy9+ZH7OnNJIpLBZMvijsIxL440nVRGh8a9EmCR1V0Xzt3R1eKqzTmZ0t2plDnsOHJ+HM2InrR84yJMVmAf1cmWMp9XTiHjOgNCmuSn5D87GBCWigAlA7XDnrKhSbFmm+698vl3k1ncoMa58pg51r7O3FK6N+jCe7Ne0F5WjAm5uC8j5kfu68ydlmKtVGpHKO7eN6I/6Sk6NG7tXK3hPMdPw1G+AOXQR6eMKxk/vnwn29umUnixvnjk2nFqW9ae1cy2iOsrsI9q4eC3niKHLQP6HY+rV1ODHSNKnDIgcHt9YWv20ozIR7775SLHlQRtfZ25pdSJWep3mg/gT78z1xfvcS8Txpa6brsvI+ZH7u7MndaG/nHTwa0moEGrxq3NpzgN/VXnjtD2luiakvUcv/jq3PRYs0I6jnz8U3mKvtnWcP1dlvxs38UvGezjQYkrDGimV5xYniN5tbQqgyYelAycHrNvYWv2an1BKx5BeWR5hlfEXO3ZHKtJZ654RS9uM69v7cw91sHxcaLbnjgqsOV9X+24zXboui3v+3nFbQSdV5xJbRv9XjexrceRVbk2OipNU1p3lHeOVo1bm09xGsWRhNXavvJjJfTRycnK55wEqIy9eLrTx/nuwpw7mDyeSFjzynPVZlvD9XdZ8rP6JSTw2cGDHlcYkMvqdC95g9rG8nqujQhQMnB6zL6FLeyVDLYyXyuK01wIM+xbz60J2mw7c0cgKDBD39qZKzKwZErrOLJk+knQYfnxl/e6sHj25b3mK85tqWtHef43sa1HsRKKdZv/KbyqFnc/HSmepXhSuURztGpcYYZ7Frv8miW81hTDaQ1tb+zM1QisrYT8z+JTwkj+eC+tn3z3/M/aoU5jlB/L60rDzCmuv8sqzue5pbDB6VPHoPQnPYsgRUcNnhZavn3+pzBz5eqtrahWEpQMyOlrCmfPOCyeohbdc1Bg/pTDJIOn5yoetrYs9XMrYmVnTuk7OnOJinqgptKO44tCMy1Z924p6cLaDJesayjPLdeUtb3M2e6DXLeax8UD6kc025+etIhWjSuc6/TFS9hdE05raLvRd+byzY4vwbXd9WzIj4unKE6yb5HI29QuEqcx6pNl8i5LOKNJSepPeusq7Z5AcZfT+j0+bj1pEw9KBk6P2bewrRJ9um/Ty0XTkZON9THWsPE7c0rf3ZlbFJpsUXfmlCNFdaWfiX7kplxf/505q/oXnhJGTl+dNeM1XNe4xT+vvEK1biNAH11T4pb3KO6uZ+P0IpqcqzjDvkWiibS2gX62MlpXoHyZVG4vbFMc0Z/01lUqTEY/UsvR6Tq8clIZSgZOj9m3sGt7dYd8SrjVS2VreZ7u8sRq0plb+N+sdS27tCuwnM/WkWIu9DO5MmLOth76elNWmuaA8oh8tOJJT9Gqcc0D7HushD66prjyP++OXf+UZhf91avjaiFPKcf1FXj94nc6+b7CVMKWAXnywrhM2pUVfgolA8VjXl/YV/ZqKplbXy6E02nmlmDr68yt2ad7gpqJ4a98Z67I1XFkqfTkBIbzbWr7Lu81Yq41izMR9OJxr5ty3d2Ze05MGMkrJNlG3v10ZHkP5Un1aNW4xRkK0zDhsLiNBk3RNcWl2cYw9vxcxV1aF0nxLAkJxSM3zVaGyQrMJ3lKdSufSmb0gT9xnYHi9E6nJJCjOYVyRAMlA0L6TrOgnHzfXpqFoZmzhsziBjXO9XNLsPZ15j6gJxuj2CYSdGjciRA7uhhgjsgAGUDD1t2Z+2iebIxim0gQW+PGji4GmCMyQAbQsLIzp/RkYxTbRILYGjd2dDHAHJEBMoCGTdmZe/36SiMbQ9gmEsTWuLGjiwHmiAyQATSoOnMvn19oDyMbzmyPLhBExNa4saOLAeaIDJABNKg6cwifu9HT09PT09PT0xe96jtzxL7vZMMTZLuGLTQtsaOLAeaIDJABNGz8b1alJxuj2CYSxNL4+3sAACAASURBVNa4saOLAeaIDJABNGg7c8Ov7sM92RjFNpEgtsaNHV0MMEdkgAygYWNnTunJxii2iQSxNW7s6GKAOSIDZAANa3dn7niLiXxkiXUvr6333qzxePBnuxWn907R3C/l9PYpwi1c9AeUb89Sg1LjtsaVP2U1sjfeYVC5Ze1cyonl/CgZOw2w+zgmMyxu08TMKVpzlJ9ISaBmhh3Etp4iRzcD+aCcr9N5FnfXR6cZKULDwJWsdcelibS4Tf5n67k0cy5u03reIra+ztxydh/3eDrmtDOn4YS+g209imWQb3P6rLzN80RXDqiszyKUGrcp9uIMrUaaItUr+Ivh5NtrGGsN8Ap1tZnoj1Obj/68RehX4Gk9HrfsmOF961ZGNwPH8dPTtc5cv1c+jdpIDacMGGatb69apJoSvr6KNMfJcWVlrn2duaWkUZb6neYD+NM+ZcJAPkLfx3Yr9BfF2kvM6ctZ62ux/DLRCqXGbYo93+z6i5dmPEergi8ev+k1VJn306uF8sia12ghnNPTtV4tTg+boylHmlV3eq2tHcFW3MiTPKKbgeeI/tXmuNkVcZCPJAqmOFLDKQOGrzaaA56WZ/ersZ5nq21q85H33Uw6c0X1FkzHyJ25JevD5SP0fWy3Iq9hTSUf/2yqSX8xp9S4TbEnOxY3bn3B1YznuK7gd91U841zxvLNmlLZJ1DkcE5Pd9/V4ommHMn1uGfTbuKqTwRcJ6GbgXwO8qqr7XUcOV20xRF9URdxysD1V5umly8hs6cLTJ6kvqxaX0Bq29TmI++72nbmjkDQBIZeycZy+AbhFk7RDmG7FXKtaiq5qSZrGytPpI/rCaXGrb2uCZeN05fO/OX1dCQ/moxWBS+kqXViQmqKy6O2Qe0IyV7FKXUcec8SJ2RZiPemHJ0yvJQKU8NVcePimkxOqky0gG4G8jkIk3kOCuQ0JVRDhSEDp0uxNa7i0eTjFOMqTqw2STmW1lyccnJ6hBo2duaUXsnG8/HCzpwR262oLfrai5f+8f6+tvsOcvrycYoOjSvHrty4b+T0dAmuK3iTiV1PZd+Wfdsfx2sXCc0aUKapKUfK2Z4WVHFkilVaPMXptbz4lNVCEmj3XAN7S1x92+gJv6+EazM8PnW9PFd+Z07pZTaOOLKxxFK0Q9huhf5SV6tzoaKSXF88oP7icUSHxtW8Upxu7HOZNFHwyomdkqA58ulm8pbySNMLunC16J5JEU05Oq1HTUHVRgxXaVMxdjOQx1vbsviU1UIq0i5MLIfJGthb4urbRk/4TSUszDDHlfLc+N+sSl9jY8k065GN/Fn6VrZbUasH/eu4XFHCvq0HbLp+PKHUuMrY9Rt3Xybz0wnQK/iL4bTuJZ+09UrQN8O+ObfO5BRN77JaGRu+bjXoZiAfHBtdq2J44pSBIa82fQvsdMI3zTDHlfJcbX9nTlY5U/saG0umWZdDTy5/lr6V7VbkNfyAPJIf5LjNaW23HrC2mQZ6jXsa+2kUJiN7S6RNCv56OKcHPKJ2nPxQmgXQPcOOObfOREZrjuSz55udzrCDxtMDyqQluMLAaQie0cmJEKBh4O64lCOas9c2KNJ4ZT5CLlojSrDxDhBKTzZGsU0k6NO4syB2dDHAHJEBMoCGlfdmVXqyMYptIkFsjRs7uhhgjsgAGUDDxs6c0pONUWwTCWJr3NjRxQBzRAbIABpWZWfu9esrjWwMYZtIEFvjxo4uBpgjMkAG0KDqzL18fqE9jGw4sz26QBARW+PGji4GmCMyQAbQoOrMIXzuRk9PT09PT09PX/Sq78wR+76TDU+Q7RrW0LTEji4GmCMyQAbQsPK/WZWebIxim0gQW+PGji4GmCMyQAbQoO3MDb+6D/dkYxTbRILYGjd2dDHAHJEBMoCGlZ05pScbo9gmEsTWuLGjiwHmiAyQATRstvdmzYGgDEy83JnL4z2SgDD/uXxfZ055D5bnuLBX7am+U9T+1NykJccdGlc/jScPTXvpMamCxyHQAa05Ai/M4oiMK6v0tPBlBvLdrUaa0LEGNM8ahpycVHPkfBvlfPIAT4+cM3AxQWtfZ255r9KWil6pjc/olWwsf+jaqDz4s61Hvu6T2kjqpLaXcPDuU+SFKkxbRqvGPUXTBBIeWid/CvPoHABFoAM63mUJIwMLszZyiu5Velr4wsW+uLvVSCv0DJyKEjnp3QEKL7maIzftdfryLpNskqDNsDMXWMnJbORRB4t9LNt63HfNaHqtyU9xuuXpBI5o1bingNIi5tE5AIpAB+C8y7IqTLca7BNzHWEeR/RKQo/ra+D4lLmYkx9rjqzfq/VcOa7s+8R6U2cunppRfmduKXXm6K+wrcdygFAk+dU0f2tVK6e+Uwhb5pudolXjniKfthDd3VrEPDoHQBHogI53WbCFWbuKy+hepZrLtnA512sL+YC1I+hx/Z32cbwpj5qR4mPNkfNtNOtKeCyHf33fJ7buzlyC2EpOZuPISWAGRrGtR+3lO7ke5C8fctmcVuzpKYoHz18mlGjVuKdIAjkO1oIqsmcC8+gcAEWgAzreZeWPQQqzWKqnuLJKhao/fd0ovmjUDpjzIGzTiitrIB8Xkq4Z2SskyCvk+rmE4ycbCCmQ56lP0GremVuC6hh25kax3YfT4jwtKnmw4xTycfRo1bin6HgllWm8AvPoHABFoAOu5AiqMLuz0M1A7bItTKZVkfQ9bsWVd9r5oPBst+SqHfZ0r74RfZqOT/XNpIjN9jtzUZWczEbOTGAe/Nnug1D2wpukpkJqPYWVmLuiceUJIGgR8+gcAEWgA256l+VfmPJJBXQzILwgFCeTb5M8Lh7wdK98m1a0MlA8nSbp+prKTyS/5Mpbto7Ij2W2W2dSxGrYmVtCKxj+N+sotvXQF/leeVE7LaS+U8gnan1VvaJxixCoOD51HLG6JOQwj84BUAQ6oDVH4IVZHJHRvUr1UqO4Tauy0ezVhytrQHi2T7rpRdX1I18/V46m1VvDxt+ZU3r+ztwotpvw5FwYKdbPcZvTq0jHKYp/Fvc6RavGPYUc+HOSud/VLzR6mEfnACgCHdCRI+TCLI7IuLJKhaDykY4wl/fQb9OE6++0hWdP86jMdf6nyZE7znVKuPIsAlbeAULpycYotokEHRpXRt+r+fV9izCPzgFQBDpgxhzZggyQATRsvDer0pONUWwTCe7QuH2S4g4hMqmCxyHQAZPmyBBkgAygYWVnTunJxii2iQSxNW7s6GKAOSIDZAANm7Iz9/r1lUY2hrBNJIitcWNHFwPMERkgA2hQdeZePr/QHkY2nNkeXSCIiK1xY0cXA8wRGSADaFB15hA+d6Onp6enp6enpy961XfmiH3fyYYnyHYNW2haYkcXA8wRGSADaNj436xKTzZGsU0kiK1xY0cXA8wRGSADaNB25oZf3Yd7sjGKbSJBbI0bO7oYYI7IABlAw8bOnNKTjVFsEwlia9zY0cUAc0QGyAAaVtt7s+ZAUAYmXu7MHUM+ciIfU7lNMCZb2faE/kdcl9KtmXxwh8bFCXxSBY9DoAN8coRMKRmYq06RmbTCZnhv1vyqXBuf0beyYRL78cjPx5FY1bDthqbSTards+zNNS5U4P4K/jqgCHSAQ47AKSUDE9UpOJNWWA07c4GV3NbChsBJq7/vyOB+SGdulpo317hQgTsreBNAEegAhxyBU0oGJqpTcCatsN3UmQum5JrYODKQfEKafGZ67OEVP0utHfl4hAeOxy+eay4/tjP3rOdiSRf78DE6cwiBOyt4E0AR6ACHHIFTSgYmqlNwJq2wdnfmEsRWcltXZ26pf39u+eNbhpotE4aX0uety/vPdovbT+THdubyaoeqeXONCxW4s4I3ARSBDnDIETilZGCiOgVn0gqbeWcupJJrYkPg5Ch/cwUms5druFyxLVnH7qgUJ/IInbnjY6iaN9e4UIE7K3gTQBHoAIccgVNKBiaqU3AmrbDafmduRt2g9Fe+M5corWQkHy/OIddwuQos6rwZ/fDOXDIIVfPmGhcqcGcFbwIoAh3gkCNwSsnARHUKzqQVNsPOXGAld5ENeSQfFxRhTbEtWWdO1prgHrYztyzL8Jo317hQgTsreBNAEegAhxyBU0oGJqpTcCatsPJ35pT+yu/MLaVPP3MFluvC45GL/CfPLu813HE+c3m0ztxeqfYhNW+ucaECd1bwJoAi0AEOOQKnlAxMVKfgTFph6+vMfUBPNkax7YYrdetZ8+YaFypwZwVvAigCHeCQI3BKycBEdQrOpBXWvs7cB/RkYxTbnugrXeeCv0Pj4gTurOCtgEOgA3xyhEwpGZirTpGZtMLGzpzSk41RbBMJ/DWuJ2JHFwPMERkgA2hYlZ2516+vNLIxhG0iQWyNGzu6GGCOyAAZQIOqM/fy+YX2MLLhzPboAkFEbI0bO7oYYI7IABlAg6ozh/C5Gz09PT09PT09fdGrvjNH7PtONjxBtmtYQ9MSO7oYYI7IABlAw8r/ZlV6sjGKbSJBbI0bO7oYYI7IABlAg7YzN/zqPtyTjVFsEwlia9zY0cUAc0QGyAAaVnbmlJ5sjGKbSBBb48aOLgaYIzJABtCw2d6bNQeCMjDxcmfuGPKQGdbOO2o+hmx7Qv8rkcV7v/jgDo2LE/ikCh6HQAf45AiZUjIwV50iM2mF1fDerGGURNFfZ2OIn1RPD+nMNZXuwFv4mWtcqMD9Ffx1QBHoAIccgVNKBiaqU3AmrbAZduYCK7kmNqA88tyUbLthlpo317hQgTsreBNAEegAhxyBU0oGJqpTcCatsN7UmZtUQwhez8Zx/PhZ8/FzWM147Qj5Xsc51Mbn8mM7c896Lpb0sdqDdeYQAndW8CaAItABDjkCp5QMTFSn4ExaYevuzCWIreRO2SgqueTxUW81jQtbPh/nc6iNT+HHdubyaoeqeXONCxW4s4I3ARSBDnDIETilZGCiOgVn0gqreWduUvVw6ls7c4LeSjSZMH5Ecct8DonCLs4N3yN05o6PoWreXONCBe6s4E0ARaADHHIETikZmKhOwZm0wmb7nbmoSq6JjVxvLZc7c6c8L1kfLh+ZyA/vzCWDUDVvrnGhAndW8CaAItABDjkCp5QMTFSn4ExaYTXszE2qG5T+ChtLb2fu9AiJ8hMU5FwetjO3LMvwmjfXuFCBOyt4E0AR6ACHHIFTSgYmqlNwJq2w8XfmlL7jd+aSkaWxMycc4XjGfN/jXsucChutM7dXqn1IzZtrXKjAnRW8CaAIdIBDjsApJQMT1Sk4k1ZY+zpzH9CTjVFsu+FK3XrWvLnGhQrcWcGbAIpABzjkCJxSMjBRnYIzaYWtrzP3AT3ZGMW2J/pK17ng79C4OIE7K3gr4BDoAJ8cIVNKBuaqU2QmrbCyM6f0ZGMU20QCf43ridjRxQBzRAbIABo2ZWfu9esrjWwMYZtIEFvjxo4uBpgjMkAG0KDqzL18fqE9jGw4sz26QBARW+PGji4GmCMyQAbQoOrMIXzuRk9PT09PT09PX/Sq78wR+76TDU+Q7Rq20LTEji4GmCMyQAbQsPG/WZWebIxim0gQW+PGji4GmCMyQAbQoO3MDb+6D/dkYxTbRILYGjd2dDHAHJEBMoCGjZ05pScbo9gmEsTWuLGjiwHmiAyQATSstvdmzYGgDEy8zEZ3vEugO57dxLYn9L8SWbz3iw/u0Lg4gU+q4HEIdIBPjpApJQNz1Skyk1bYDO/NGlupKNlo1XOR9O5NbLuhqXQH3sLPXONCBe6v4K8DikAHOOQInFIyMFGdgjNphdWwMxdYyW2X2aj5YCzdwbYbZql5c40LFbizgjcBFIEOcMgROKVkYKI6BWfSCttNnbl4GqWPjefHr7WR5775eDwO+9h2Q1LAjxQkT+3vqz1YZw4hcGcFbwIoAh3gkCNwSsnARHUKzqQV1u7OXILYSm7r6swlGq6419Hn48OjRmDbDccCzus/2WxgzZtrXKjAnRW8CaAIdIBDjsApJQMT1Sk4k1bYzDtzUVVIBxtFvZuMLKX/HcmP+dE8Qmfu+Biq5s01LlTgzgreBFAEOsAhR+CUkoGJ6hScSSustt+Zi6rkNiM2ctW7VPpwgZlsZdsNs9S8ucaFCtxZwZsAikAHOOQInFIyMFGdgjNphc2wMxdbf3T8N2v+uDYib/kBPWxnblmW4TVvrnGhAndW8CaAItABDjkCp5QMTFSn4ExaYeXvzCl93+/M5ePHjY9MJlsuoZVxE9tuEGp+r1T7kJo317hQgTsreBNAEegAhxyBU0oGJqpTcCatsPEOEEpPNkax7YYrdetZ8+YaFypwZwVvAigCHeCQI3BKycBEdQrOpBVW3ptV6cnGKLY90Ve6zgV/h8bFCdxZwVsBh0AH+OQImVIyMFedIjNphY2dOaUnG6PYJhL4a1xPxI4uBpgjMkAG0LAqO3OvX19pZGMI20SC2Bo3dnQxwByRATKABlVn7uXzC+1hZMOZ7dEFgojYGjd2dDHAHJEBMoAGVWcO4XM3enp6enp6enr6old9Z47Y951seIJs17CGpiV2dDHAHJEBMoCGlf/NqvRkYxTbRILYGjd2dDHAHJEBMoAGbWdu+NV9uCcbo9gmEsTWuLGjiwHmiAyQATSs7MwpPdkYxTaRILbGjR1dDDBHZIAMoGGzvTdrDgRlYOI1bBRjX0r3+KqdZfkAd7ltZdsT+l+JLN77xQd3aFycwCdV8DgEOsAnR8iUkoG56hSZSSushvdmza/KgmqZznezkSszQastf9zldni8OGy7oal0B97Cz1zjQgXur+CvA4pABzjkCJxSMjBRnYIzaYXNsDMXWMldYSPpUD7+rJ2FnbmcbTfMUvPmGhcqcGcFbwIoAh3gkCNwSsnARHUKzqQV1ps6c8GU3HatM3ccKWq75DPZeOxdYdsNSQE/8pI8tb+v9mCdOYTAnRW8CaAIdIBDjsApJQMT1Sk4k1bYujtzCWIruVM2TrVd7ouKcGFnLmPbDccCzus/2WxgzZtrXKjAnRW8CaAIdIBDjsApJQMT1Sk4k1ZYzTtzIZXcdvk7czWtdhTEstr7UB6hM3d8DFXz5hoXKnBnBW8CKAId4JAjcErJwER1Cs6kFTbb78wFViEXO3NFlhJVV1R7H9MP78wlg1A1b65xoQJ3VvAmgCLQAQ45AqeUDExUp+BMWmE17MwFVnKbxX+zCqou4TA2k61su0FT88uyDK95c40LFbizgjcBFIEOcMgROKVkYKI6BWfSCht/Z07pr3fmiiMJVws7cxnbbhBqfq9U+5CaN9e4UIE7K3gTQBHoAIccgVNKBiaqU3AmrbDyDhBKTzZGse2GK3XrWfPmGhcqcGcFbwIoAh3gkCNwSsnARHUKzqQVNt6bVenJxii2PdFXus4Ff4fGxQncWcFbAYdAB/jkCJlSMjBXnSIzaYWVnTmlJxuj2CYS+GtcT8SOLgaYIzJABtCwKTtzr19faWRjCNtEgtgaN3Z0McAckQEygAZVZ+7l8wvtYWTDme3RBYKI2Bo3dnQxwByRATKABlVnDuFzN3p6enp6enp6+qJXfWeO2PedbHiCbNewhaYldnQxwByRATKAho3/zar0ZGMU20SC2Bo3dnQxwByRATKABm1nbvjVfbgnG6PYJhLE1rixo4sB5ogMkAE0bOzMKT3ZGMU2kSC2xo0dXQwwR2SADKBhtb03aw4EZWDiW9noPlfO3n1394K9b1h3Z+5JnTCyZ78GWdym6YDJMZNtkqI4PamMVo0rT6M251tHBHQoeGXi8o370tQdcv7n6dlrExZmWDtO62wF9OXoOkUdB9zFjMunENDEwGlQF8PULADNNsXZ1mD7TrtjMWjCLB5Kyb98EP1xijvmuxR3bMJmeG/WibRCh5fZOEZ6JeqlopJviuu+IxuyrUdSJLWRvAKLj5UHfD4+vqDUDnh6HA2aNG5tYsVZyTO0GpHRquA1r93FjfvS1D2iX3XKvWrHkUm+nqC9K0enJx1SmN1lqGRAE9TFMDULoGkJ3bQGBPQtBquqV569O4/J2QWGm1ZgjtWwMxdYyW1nbBwZKLJxRV3dxyRsjvo6c00FdnqE0wMmWwqvF/mfV+q2SePWJpZvJozUnr1+IcnRoeDlk9Y21rBx/Wra+lj+UyZQXqKaoymX5R3vsuQJ3FSYrYvzidYaVJ7ldE1q6qvpFPmfN60B5ZT0C6NpnStfePVnbFrSMueaiWmw3dSZg1UJ3f6UjaX0qejyBxLe8hGBt+XwKbZ8ZHlEmA+av68zlz+uHeH0gLWnNNfpK6Wr17j5xJ4oblkbqT2r4af1etmk4DUnrW18euHczwLUj+gfy38KGSyeXQituKVyWc7yLuu0MFsX5xMdq1RzltM1qakvzSKRdxdm+ETrGhDQUSO7Okx91WvOKDwuPlukVJOXDqzdnbkEsZXcpuhTLnXFptympq6ODOfcPo+cbFMcqc0HzV//ztyxnPKCr700CAesHX+vFLN8UvmVSIZe4wovZPnc8kiFjWs71vjRR9qk4HPma+HkG9dSUGNGOLgy5BqlAtX6LU/jOj2afim2vssqzkpDvjCx2tGEjBdPKnAloGOVCvPMN6s9VQszoUI4tXDGnC4BHWugBmVd9IWZBKXnX96g+FizAk+P3I3NvDO3oOqDi17DxpIptiOeW+ZeZm8pfYZbPPJxm+KIsBeUv/7frHkV1R7newm7yC8T8olaJ1ODUuMW51M7qSZS4WjCXq2R6hW8EKBPmlpDvnKWHE0Jel5j+s6VoONdVnIKkMLsLsMmBi6+CMi7tCb0dAIOa6B1SsJjeaSv6jUjfStQf64OrLbfmVuCKrlNzcZTJxXZWA5qbyn1xorqahE7an0j4Pm6/jtznteMI2onOj2yHkqNm0+sNoHifFpf6E9f0eTdn9AreCFAnzS1hnz6uMjP6Vo9vVTUnu2+qMzyLus0491l2MRAX96LT7WGIIzkRxZeLnJcWQPCJFsfyyN9Va85S98KLB65aeEJ2Aw7cwuqMjDxSjYeaSuO15SZoK6Wlq7bxREo7/mdOWWZnb50Fl8ahJfO2nFO0apx5YnVnpJH+vbSRNqh4PUvu/vlNF0J+fTx6UWlNSmao3Usxe4VeHpS58LsLsMmBlozKEzJcEHWznvTGhDQtxjuWAO1WfXNp+/PbqyGnbmlBARlYOL7/rc356H2+Hi0ZK+lpP+OmxW3kfeqqUkQP/Z35uTdiwfU7HU6VSUuatzuSJf3UO5VHDGM7hiFT5q6Q87/PD376V55Uoppao1IRl+OrlPUwXn3XjKaGOjIYO0pZQjKEc1sa+hYA8KJOhaDcuT0XEWS87P3zae2o/BnN7a+ztwH9GRjFNtEgg6NOxFiRxcDzBEZIANoWPs6cx/Qk41RbBMJYmvc2NHFAHNEBsgAGjZ25pSebIxim0gQW+PGji4GmCMyQAbQsCo7c69fX2lkYwjbRILYGjd2dDHAHJEBMoAGVWfu5fML7WFkw5nt0QWCiNgaN3Z0McAckQEygAZVZw7hczd6enp6enp6evqiV31njtj3nWx4gmzXsIamJXZ0McAckQEygIaV/82q9GRjFNtEgtgaN3Z0McAckQEygAZtZ2741X24Jxuj2CYSxNa4saOLAeaIDJABNKzszCk92RjFNpEgtsaNHV0MMEdkgAygYbO9N2sOBGVg4uXO3DHkI0v5+FK591eRt+IRku2HM3M323oUb8yiuelK7TYsfbt3T0OJVo27KO4ek89ZM6KPSx+mPrrifIRpWKWyGFHxINfJLJ6oe856HmR0rEBNsE0T69hdz/kpfN5n6me1HO4D1hpLH+Z6p43MpBVWw3uz5lfl2viMvpsN5bNFrmr7LqX7rkby1ztzeTXqR4p/duzevZeMJo2rvG7Jc6i9tCn5abpY6qMTjtmXOE0qn4+VakBDnTDnXJ00RVGbj3yEU7S+y8onAFuYSlxhQImm+SThOKgQBwasAM6kFTbDzlxgJXeFDeWzGg5l5RfJX/zOXLEUza8ZxV26p6FHk8bNdUarmFO+rmnUiQb66JrEXP5s90rY21ntE3P6x7UohCkpZ1VE97ss/MJU4sr7TCXAJYgDA1YAZ9IK602duXhqA7YzF9Jf7MzhXzOuiDm9xi3OuSY7nigeRN6meNi+GJuiO52zMDHblXAq5pKpFkdO598alzAl4QinCPwuS4luBvRIJikvlYSE1peUDjgwYAVwJq2wdXfmEsRWcqdsNKm3BPl4jeficYYzczfbrZAvfsVn8yvrcZvjU/mWtX3zP5NthJPK0GvcPOT8z3yw9XHxT81Ji2iNrnb8Ir1J4vLdlamsDWqmV1uHV1KgWZD6I5yi711WKyG7GEvyVL5lbd/iWm0Kf/ftzOWLtsZecW3fBAcGrADOpBVW887cElHJbWCdOWGbGP5KZ67jmiGMnO5+5Rp8etIilBq39np0ejp5trbb5Liu4E+fMknlKasaWrrPrjzO8amL6/8It3dZmoldyabyFDn6GGhCcaXhSBAHBqwAzqQVNtvvzEVVcn1sND1b1GTyvoE57+7MCZdYz2vG6TSUJy1CqXGX99CfTvNC1rSN5qRPXFfwp09dTKWGVZP56B/XjiOfvXspduQIszCVp8jRt0qbAC5BHBiwAjiTVlgNO3MhVcXTQ3XmFv43awUd1wzlJdlWzPUJnQdaNa5GZ1yPQjhO7aRF6KMzT1zT5V9m1XAdyo81SWmdySl83mUNKUwlOhhohUaCLMsySoI4MGAFcCatsPF35pS+43fmmrRdkTdh33gM19huQlFePAtVOdK0cW2kYxpKtGrcRXcB64giWbS14xQPVUNTdHck7pSE4vhpvH1nLx5Z3quYlNaZyLj+Lks5jTvyezoNDToYaEUt6ueDJRMfxV1uggMDVgBn0gor7wCh9GRjFNtEgg6NOxFiRxcDzJEDA1dkhIMEmWgNc4K7pgAACSJJREFUgDNphY33ZlV6sjGKbSJBbI0bO7oYYI58GOhTEj76Y641gMykFVZ25pSebIxim0gQW+PGji4GmCMyQAbQsCk7c69fX2lkYwjbRILYGjd2dDHAHJEBMoAGVWfu5fML7WFkw5nt0QWCiNgaN3Z0McAckQEygAZVZw7hczd6enp6enp6evqiV31njtj3nWx4gmzXsIWmJXZ0McAckQEygIaN/82q9GRjFNtEgtgaN3Z0McAckQEygAZtZ2741X24Jxuj2CYSxNa4saOLAeaIDJABNGzszCk92RjFNpEgtsaNHV0MMEdkgAygYbW9N2sOBGVg4mU2jjgdp29i2xP6X4ks3vvFB3doXJzAJ1XwOAQ6wCdHyJSSgbnqFJlJK2yG92bNr8qRFEwHG0qW6GW23dBUugNv4WeucaEC91fw1wFFoAMccgROKRmYqE7BmbTCatiZC6zkti42NCzRn7Lthllq3lzjQgXurOBNAEWgAxxyBE4pGZioTsGZtMJ2U2cumJLrY4OdORO23ZAU8OPD8eSp/X21B+vMIQTurOBNAEWgAxxyBE4pGZioTsGZtMLa3ZlLEF618Dtzo9h2w7GA8/pPNhtY8+YaFypwZwVvAigCHeCQI3BKycBEdQrOpBU2885cVNVyvTNH38e2G07fruUjQ2reXONCBe6s4E0ARaADHHIETikZmKhOwZm0wmr7nbmoSm4jG+PYdsMsNW+ucaECd1bwJoAi0AEOOQKnlAxMVKfgTFphM+zMxdYu7MyNYtsNmpp/Nuo/WmfOLXBnBW8CKAId4JAjcErJwER1Cs6kFVb+zpzSszM3im03CDW/V6p9SM2ba1yowJ0VvAmgCHSAQ47AKSUDE9UpOJNW2HgHCKUnG6PYdsOVuvWseXONCxW4s4I3ARSBDnDIETilZGCiOgVn0gor782q9GRjFNue6Ctd54K/Q+PiBO6s4K2AQ6ADfHKETCkZmKtOkZm0wsbOnNKTjVFsEwn8Na4nYkcXA8wRGSADaFiVnbnXr680sjGEbSJBbI0bO7oYYI7IABlAg6oz9/L5hfYwsuHM9ugCQURsjRs7uhhgjsgAGUCDqjOH8LkbPT09PT09PT190au+M0fs+042PEG2a1hD0xI7uhhgjsgAGUDDyv9mVXqyMYptIkFsjRs7uhhgjsgAGUCDtjM3/Oo+3JONUWwTCWJr3NjRxQBzRAbIABpWduaUnmyMYptIEFvjxo4uBpgjMkAG0LDZ3ps1B4IyMPFyZy6PN499OdyzNR4/97HtCf2vRBbv/eKDOzQuTuCTKngcAh3gkyNkSsnAXHWKzKQVVsN7s+ZX5dr4jF7JxlGx1diQNR/9Nqgz11S6A2/hZ65xoQL3V/DXAUWgAxxyBE4pGZioTsGZtMJm2JkLrOSa2Hhychw/9uGScYTo0PyQztwsNW+ucaECd1bwJoAi0AEOOQKnlAxMVKfgTFphvakzF0+j6NnI1Vui7diZa2LbDUkBP1KWPLW/r/ZgnTmEwJ0VvAmgCHSAQ47AKSUDE9UpOJNW2Lo7cwliKzmZjfVv1e/M5T5hb3hcmH5sZy6vdqiaN9e4UIE7K3gTQBHoAIccgVNKBiaqU3AmrbCad+ZCKrlN/d+sy/vPUnO/sjPXyLYbTt+u5SNDat5c40IF7qzgTQBFoAMccgROKRmYqE7BmbTCZvuduahKTmajyEzOSZGlwIxZse2GWWreXONCBe6s4E0ARaADHHIETikZmKhOwZm0wmrYmYutS7r/m1UYyZmkz9l2g6bml2UZXvPmGhcqcGcFbwIoAh3gkCNwSsnARHUKzqQVNv7OnNLzd+ZGse0Goeb3SrUPqXlzjQsVuLOCNwEUgQ5wyBE4pWRgojoFZ9IKK+8AofRkYxTbbrhSt541b65xoQJ3VvAmgCLQAQ45AqeUDExUp+BMWmHjvVmVnmyMYtsTfaXrXPB3aFycwJ0VvBVwCHSAT46QKSUDc9UpMpNWWNmZU3qyMYptIoG/xvVE7OhigDkiA2QADZuyM/f69ZVGNoawTSSIrXFjRxcDzBEZIANoUHXmXj6/0B5GNpzZHl0giIitcWNHFwPMERkgA2hQdeYQPnejp6enp6enp6cvetV35oh938mGJ8h2DVtoWmJHFwPMERkgA2jY+N+sSk82RrFNJIitcWNHFwPMERkgA2jQduaGX92He7Ixim0iQWyNGzu6GGCOyAAZQMPGzpzSk41RbBMJYmvc2NHFAHNEBsgAGlbbe7PmQFAGJl5mI79Dl3nswr2/IvGcs+0J/a9EFu/94oM7NC5O4JMqeBwCHeCTI2RKycBcdYrMpBU2w3uzNumP6fxpZ07JSbcXFFsknnO23dBUugNv4WeucaEC91fw1wFFoAMccgROKRmYqE7BmbTCatiZi60wTr8zp+Hkimdn7m7MUvPmGhcqcGcFbwIoAh3gkCNwSsnARHUKzqQVtps6c8GUnMyGwMnxs+b8cfEz2Xyb5Y9Psbc/BmtsC9vM5cd25p71XCzpYh8+RmcOIXBnBW8CKAId4JAjcErJwER1Cs6kFdbuzlyC2Epu6+rM5Ror33L5Q/NpRopHyPVfgCyM7czl1Q5V8+YaFypwZwVvAigCHeCQI3BKycBEdQrOpBU2887c1BpC8Fe+M5fosyXrw/WN5OcStpnLI3Tmjo+hat5c40IF7qzgTQBFoAMccgROKRmYqE7BmbTCavuduahKbrv2nbnFqDPXxP/UuRjemUsGoWreXONCBe6s4E0ARaADHHIETikZmKhOwZm0wmbYmZtaPZx6n87csiwLO3PAnblHgorjbvM017hQgTsreBNAEegAhxyBU0oGJqpTcCatsPJ35pTesDN35CoZSZTZE0V1mJ9L2GYuj9aZ2yvVPqTmzTUuVODOCt4EUAQ6wCFH4JSSgYnqFJxJK2x9nbkP6AeyEUkTd7Dthit161nz5hoXKnBnBW8CKAId4JAjcErJwER1Cs6kFda+ztwH9M5shOxu9rHtib7SdS74OzQuTuDOCt4KOAQ6wCdHyJSSgbnqFJlJK2zszCk92RjFNpHAX+N6InZ0McAckQEygIZV2Zl7/fpKIxtD2CYSxNa4saOLAeaIDJABNGx/e/v/kJGX6JqUGqAAAAAASUVORK5CYII=" alt="" />

原理:

1、客户端与SSAS的通讯,其实传递是XML/A指令。发起这种指令,可以通过标准的Web Request(封装为一个SOAP包即可),也可以通过客户端API。

2、SQL Server 自带了一个客户端API,Microsoft.AnalysisServices.AdomdClient.dll.这个程序集,一般是在 C:\Program Files (x86)\Microsoft.NET\ADOMD.NET\100\Microsoft.AnalysisServices.AdomdClient.dll 这个路径下面。所以首先项目程序中需要先引用这个dll。

aaarticlea/png;base64,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" alt="" />

使用Adomd的方式与标准的ADO.NET还是有相似之处的,也需要有Connection以及Command之类的对象,只不过它的查询语法是所谓的MDX(多维表达式),而且它返回的结果不是一个平面的二维结构,可能会有多个轴(最多可以有128个轴),所以解析的时候会更加复杂些。

以下是代码:

        public DataTable GetRegionOverview()
{
DataTable dt = null;
string strSql = @"WITH MEMBER [Target] AS [Measures].[USD REV TARGET - Vw ST SUBREGION TGT]/1000
MEMBER [QTD] AS [Measures].[ST AMT USD]/1000
MEMBER [HitRate] AS IIF([Target]=NULL OR [Target]=0,NULL,[QTD]/[Target])
MEMBER [SO_Target] as [Measures].[USD REV TARGET]/1000
MEMBER [SO_QTD] AS [Measures].[SO AMT USD]/1000
MEMBER [SO_HitRate] as IIF([SO_Target]=NULL OR [SO_Target]=0,NULL,[SO_QTD]/[SO_Target])
SELECT CROSSJOIN([OverviewAllBrand-BU].[BU CODE],
{[Target],[QTD],[HitRate],[SO_Target],[SO_QTD],[SO_HitRate]}) ON COLUMNS,
CROSSJOIN({[OverviewAllBrand-Region].[REGION CN], [OverviewAllBrand-Region].[REGION CN].CHILDREN },
{[OverviewAllBrand-Channel].[CHANNEL TYPE].CHILDREN, [OverviewAllBrand-Channel].[CHANNEL TYPE] }) ON ROWS
FROM [OverviewAllBrand] where ([OverviewAllBrand-Region].[AREA CN].&[CHINA])";
DataTable ssasResult = base.GetSsasResult(strSql);
if (ssasResult.Rows.Count > )
{
int num;
ssasResult.Rows[][] = " All Sell Thru Rev (K$) ";
ssasResult.Rows[][] = " All Sell Thru Rev (K$) ";
ssasResult.Rows[][] = " All Sell Thru Rev (K$) ";
ssasResult.Rows[][] = " All Sell Out Rev (K$) ";
ssasResult.Rows[][] = " All Sell Out Rev (K$) ";
ssasResult.Rows[][] = " All Sell Out Rev (K$) ";
ssasResult.Rows[][] = " Target ";
ssasResult.Rows[][] = " QTD ";
ssasResult.Rows[][] = " HitRate ";
ssasResult.Rows[][] = " Region ";
ssasResult.Rows[][] = " Channel ";
for (num = ; num < ssasResult.Rows.Count; num++)
{
if (ssasResult.Rows[num][].ToString().ToLower() == "all")
{
ssasResult.Rows[num][] = " ACCN ";
}
if (ssasResult.Rows[num][].ToString().ToLower() == "all")
{
if (ssasResult.Rows[num][].ToString().Trim().ToUpper() == "ACCN")
{
ssasResult.Rows[num][] = " ACCN Total ";
}
else
{
ssasResult.Rows[num][] = " Sub Total ";
}
}
}
return ssasResult;
}

BaseDBAccess.cs

使用标准的方法:CellSet2DataTable(CellSet cs)返回一个特殊的CellSet对象,因为SSAS的结果集可能是有多维的 ,在方法中将CellSet转换为DataTable;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.AnalysisServices.AdomdClient;
using System.Data; namespace ReportExcel.DataAccess
{
public class BaseDBAccess
{
private AdomdConnection conn;
private string connStr = string.Empty; protected BaseDBAccess()
{ } /// <summary>
/// 设置连接的SSAS数据库
/// </summary>
/// <param name="strConn"></param>
protected void SetSSASDB(string strConn)
{
//connStr = "Provider=MSOLAP; DataSource=http://10.40.15.82/olap/msmdpump.dll; Initial Catalog=" + strConn;
connStr = "Provider=MSOLAP; DataSource=http://10.40.15.87/olap/msmdpump.dll; Initial Catalog=" + strConn;
} /// <summary>
/// 选择连接的SSAS数据库
/// </summary>
/// <param name="strDB"></param>
private void CreateConn()
{
conn = new AdomdConnection(connStr);
conn.Open();
} /// <summary>
/// 到SSAS去查询数据,缺省连接SSAS1数据库
/// </summary>
/// <param name="strSql"></param>
/// <returns></returns>
protected DataTable GetSsasResult(string strSql)
{
CreateConn();
AdomdCommand command = conn.CreateCommand();
command.CommandText = strSql;
CellSet cs = command.ExecuteCellSet();
conn.Close();
return CellSet2DataTable(cs);
} /// <summary>
/// 将CellSet转换为DataTable
/// </summary>
/// <param name="cs"></param>
/// <returns></returns>
private DataTable CellSet2DataTable(CellSet cs)
{
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
DataRow dr = null;
int rowDescCount = ;
int rowColLayersCount = ;
if (cs.Axes[].Set.Tuples.Count > )
{
rowDescCount = cs.Axes[].Set.Tuples[].Members.Count; //得到行描述的列数
}
if (cs.Axes[].Set.Tuples.Count > )
{
rowColLayersCount = cs.Axes[].Set.Tuples[].Members.Count; //得到Axis[0]表头的层数
} //根据纵向表头的层数生成Columns
for (int i = ; i < rowDescCount; i++)
{
dt.Columns.Add(new DataColumn("c" + i.ToString()));
} //生成剩下所有的Columns
string name;
for (int i = ; i < cs.Axes[].Set.Tuples.Count; i++)
{
dc = new DataColumn();
name = "a" + i.ToString();
dc.ColumnName = name;
dc.DataType = typeof(object);
dt.Columns.Add(dc);
} //每层表头生成一行数据
for (int i = ; i < rowColLayersCount; i++)
{
dr = dt.NewRow();
for (int j = ; j < dt.Columns.Count - rowDescCount; j++)
{
dr[j + rowDescCount] = cs.Axes[].Set.Tuples[j].Members[i].Caption;
}
dt.Rows.Add(dr);
} //生成剩下的所有的数据行,以及纵向表头的描述
if (cs.Axes[].Set.Tuples.Count > )
{
for (int i = ; i < cs.Axes[].Set.Tuples.Count; i++)
{
dr = dt.NewRow();
//维度描述列数据(行头)
name = "";
for (int j = ; j < cs.Axes[].Set.Tuples[i].Members.Count; j++)
{
dr[j] = cs.Axes[].Set.Tuples[i].Members[j].Caption;
}
dt.Rows.Add(dr);
} //填充数据
for (int i = ; i < dt.Rows.Count - rowColLayersCount; i++)
{
for (int j = rowDescCount; j < dt.Columns.Count; j++)
{
dt.Rows[i + rowColLayersCount][j] = cs.Cells[j - rowDescCount, i].Value;
}
}
} dt.TableName = "SSAS Data";
return dt;
}
}
}

如有兴趣可以参见另一篇其他博友bloger的文章,比较完整的一个winform小程序:

http://www.cnblogs.com/chenxizhang/archive/2011/05/28/2061073.html

MDX查询SSAS结果--通过adomd.net展示到客户端的更多相关文章

  1. SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表 2013-10-09 23:09 by BI Wor ...

  2. 微软BI 之SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表

    基于数据仓库上的 SSRS 报表展示,一般可以直接通过 SQL 查询,存储过程,视图或者表等多种方式将数据加载并呈现在报表中.但是如果是基于 Cube 多维数据集的数据查询,就不能再使用 SQL 的语 ...

  3. 微软BI 之SSRS 系列 - 如何在 MDX 查询中获取有效的 MEMBER 成员属性作为参数传递

    这篇小文章的来源是 天善问答,比如在报表中要根据点击某一个成员名称然后作为参数传递给自身报表或者下一张报表,这个在普通的 SQL 查询中没有任何问题.但是在 MDX 中查询是有区别的,比如在 MDX ...

  4. MDX 查询原型

    本篇文章记录 SBS 中 MDX 查询原型,可以根据这些查询原型来解决实际项目中的问题. 1. 查询在 2004年1月2日 - 2004年3月1日之间购买过 Bikes 产品的用户. SELECT ( ...

  5. 微软BI 之SSRS 系列 - 基于时间段参数的 MDX 查询以及时间日历 Date Picker 的时间类型参数化

    今天在天善问答里看到一个问题,如果我没有理解错的话,它应该是指比如在一个报表中选取一个时间段,然后求出这个时间段的某个 Measure 的 SUM 和.并且同时求出这两个时间点对应的上一年的时间点之间 ...

  6. 微软BI 之SSRS 系列 - 在 Cube 中通过 MDX 查询实现基于父子递归关系的汇总报表

    之前我写了一篇在 SSRS 开发中处理这种父子关系的汇总与聚合的文章 (SSRS 系列 - 使用分组 Group 属性实现基于父子递归关系的汇总报表),示例中的查询是基于 SQL Server 关系型 ...

  7. MDX查询语句

    另:15个经典的MDX查询语句 另:http://www.cnblogs.com/biwork/p/3437959.html 1.排名+排序+量值过滤: WITH member [Measures]. ...

  8. 查询表格——建立动态表格,使用ajax输入查询条件将后台数据查询出来以表格的形式展示出来

    建立动态表格,使用ajax将前台查询条件传给后台,并将查询结果以表格的形式展示出来. 页面的展示效果如下图所示: 第一步:查询条件的部分: 代码如下: <div class="text ...

  9. SSAS多维设计模型与报表客户端-Excel透视表制作

    VS:SSAS设计多维设计模型: 数据源视图.dsv: 数据源视图表,名称命名规范:vw_表名(事实表_F_/维表_D_),

随机推荐

  1. c#实现golang 的channel

    使用.NET的 BlockingCollection<T>来包装一个ConcurrentQueue<T>来实现golang的channel. 代码如下: public clas ...

  2. 【码云周刊第 32 期】程序员眼中的 Vue 与 Angular !

    码云项目推荐 基于 Vue 的项目: 1.项目名称:基于 Vue.js 的 UI 组件库 项目简介:iView 是一套基于 Vue.js 的 UI 组件库,主要服务于 PC 界面的中后台产品. 项目地 ...

  3. 使用NAudio实现Wav转Mp3

    转换成MP3: using Microsoft.Win32; using NAudio.MediaFoundation; using NAudio.Wave; using System.Windows ...

  4. nginx 负载均衡,多站点共享Session

    原文:nginx 负载均衡,多站点共享Session nginx 负载均衡,多站点共享Session 多站点共享Session常见的作法有: 使用.net自动的状态服务(Asp.net State S ...

  5. CUDA配置

    你问这个有多恶心,是真的很恶心!!! 首先推出一个博客上的内容,里面内容很不错,都是前车之鉴,很有用.http://blog.csdn.net/masa_fish/article/details/51 ...

  6. CDC-更改数据捕获存储过程 (Transact-SQL)-学习

    背景: 在SQLServer2008之前,对数据变更的捕获通常使用触发器.时间戳等低效高成本的功能来实现,所以很多系统都没有做数据变更或者仅仅对核心表做监控. 适用环境: 仅在SQLServer200 ...

  7. express 中间件的理解

    nodejs(这指express) 中间件 铺垫: 一个请求发送到服务器,要经历一个生命周期,服务端要: 监听请求-解析请求-响应请求,服务器在处理这一过程的时候,有时候就很复杂了,将这些复杂的业务拆 ...

  8. netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

    AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统 特色: 用户管理 菜单管理 角色管理 权限管理 ...

  9. java里字节与字符的区别

    当时学Java的时候没搞懂字节和字符的区别,今天看文件输入输出流的时候觉得是时候彻底把这两个概念弄懂. 首先得知道byte的概念和作用: byte即字节的意思,是java中的基本数据类型,用来申明字节 ...

  10. 3D echarts 点位报表展示

    一,准备工作1)获取Echarts 以下为官网推荐的几种获取 ECharts方式: 从官网下载界面选择你需要的版本下载,根据开发者功能和体积上的需求,我们提供了不同打包的下载,如果你在体积上没有要求, ...