前传
公司使用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.Solution\Common:公共dll库
Justin.Solution\Justin.Application\Justin.Toolbox :工具箱地址
Justin.Solution\Justin.Controls:个人业务控件库(CubeViewer使用了Justin.Controls.CubeView和Justin.Controls.Executer中的MdxExecuterCtrl)
Justin.Solution\Justin.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