ADOMD连接SSAS和Mondrian,rex的终结者

 前传

公司使用Mondrian作为OLAP服务器,于是,不得不适用Java开源的Rex进行客户端连接,用了一段时间,实在无法忍受rex的笨拙,于是乎,一直希望有一个工具能够连接替代它。

周末闲来无事,花了两天时间做了个工具。使用Adomd,通过XMLA协议,对SSAS和Mondrian进行访问。支持Cube、Dimension、Hierarchy、Level、Member节点的拖动,拖动到MdxEditor上,可以在MdxEditor上插入拖动对象的UniqueName。 具体如图所示:

由于不是做UI的,所以界面比较丑陋,各位姑且一用吧。

遗留问题

1、mdx编辑区域,使用ICSharpCode.TextEditor(控件在网络上参见其他高手,支持了TSQL语法,姑且用于mdx吧),但是_DragDrop事件死活进不去。

换一个其他版本的ICSharpCode.TextEditor.dll,竟然好了(郁闷,无此版本的源码),但是TSQL语法支持没了。拖动还是语法染色支持?鱼与熊掌不可兼得啊。

2、使用了WeifenLuo.WinFormsUI.Docking布局组件,这时ICSharpCode.TextEditor在窗体大小变化时,有时部分区域没有重绘。。。

要是有这方面的高手,谁能支持一下?

QQ:308182069

源码地址:https://github.com/piaolingzxh/Justin/tree/master/Justin.Solution

源码文件夹说明

Justin.SolutionCommon:公共dll库

Justin.SolutionJustin.ApplicationJustin.Toolbox :工具箱地址

Justin.SolutionJustin.Controls:个人业务控件库(CubeViewer使用了Justin.Controls.CubeView和Justin.Controls.Executer中的MdxExecuterCtrl)

Justin.SolutionJustin.FrameWork:个人公共运行库

 关于CubeViewer

1、下载地址:http://pan.baidu.com/s/1gdDrfCR

2、怎么打开进行使用,打开Justin.Workspace.exe,在弹出的界面中点击 "File"=>"New"=>"CubeViewer",如下图:

2、后记

首先,关于上边的问题一,已经通过修改ICSharpCode.TextEditor源码,解决了。

其次:为了通过xmla连接mondrian,需要对原生Java的Mondrian3.5.0包进行大量修改。

对于需要进行.net客户端连接的程序来说,这是必须的。

但是若你本身就是使用java进行的客户端连接,这些修改就大可不必了。

鉴于此,我还是对rex0.8.1源码,进行了三处修改,作为Rex_Justin完善版,使其相对好用。

1、连接xmla服务器时,输入的xmla地址,从xmla.datasources.txt中读取

2、mdx输入区域文本框支持ctrl+z撤销,和ctrl+y重做

3、mdx查询修复了所有行数据都与第一行一样的bug

本文地址:http://www.cnblogs.com/piaolingzxh/p/3392759.html

原文地址:https://www.cnblogs.com/piaolingzxh/p/3392759.html