润乾实现连接IIS配置下的ssas并自定义数据集

具体的实现润乾连接ssas并显示取到的数据,这里简单做了一个以自定义数据集的形式定义数据集并展现 具体代码如下。

import java.sql.DriverManager;

 

import org.olap4j.Cell;

import org.olap4j.CellSet;

import org.olap4j.OlapConnection;

import org.olap4j.OlapStatement;

import org.olap4j.OlapWrapper;

import org.olap4j.Position;

 

import com.runqian.report4.dataset.DataSet;

importcom.runqian.report4.dataset.IDataSetFactory;

import com.runqian.report4.dataset.Row;

import com.runqian.report4.usermodel.Context;

importcom.runqian.report4.usermodel.DataSetConfig;

 

public class SSas5 implementsIDataSetFactory {

 

         publicDataSet  createDataSet(Context ctx,DataSetConfig dsc, boolean isinput) {

                   CellSetcellSet = null;

 

                   DataSetds = new DataSet("ds1");

                   ds.addCol("地区");//定义显示列

                   ds.addCol("产品");

                   ds.addCol("日期");

                   ds.addCol("Amount");

 

                   //以下变量通过参数传入

                  

                  

                   String[]sts = {"北京第一销售部","北京第一销售部","北京第一销售部","北京第一销售部", "北京第二销售部", "北京第二销售部", "北京第二销售部", "北京第二销售部"};

                  

                   String[]Products = {"饼干", "奶茶","番茄酱","苹果","饼干", "奶茶","番茄酱","苹果"};

                   String[]dates = {"2010", "2011"};

                  

 

                   try{

                            //连接到SSAS

                            Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver");

                            OlapConnectioncon = (OlapConnection) DriverManager

                                               .getConnection("jdbc:xmla:Server=http://localhost/olap/msmdpump.dll;Catalog=Testssas2");

                            OlapWrapperwrapper = (OlapWrapper) con;

                            OlapConnectionolapConnection = wrapper.unwrap(OlapConnection.class);

                            OlapStatementstmt = olapConnection.createStatement();

 

                           

                            cellSet= stmt.executeOlapQuery("SELECT {[Weibiao3].[地区].&[北京第一销售部],[Weibiao3].[地区].&[北京第二销售部]}*{[Weibiao2].[产品].&[饼干],[Weibiao2].[产品].&[番茄酱],[Weibiao2].[产品].&[奶茶],[Weibiao2].[产品].&[苹果]} ONCOLUMNS,{[Weibiao1].[Date].&[2010],[Weibiao1].[Date].&[2011]} on ROWSFROM [Runqian As]  where[Measures].[Amount]");

                           

                            //填充结果集

                            introwIndex = 0;

                            for(Position rowPos : cellSet.getAxes().get(1)) {

                                     String日期 = dates[rowIndex];

 

                                     intcolIndex = 0;

                                     for(Position colPos : cellSet.getAxes().get(0)) {

                                               String产品 = Products[colIndex];

                                               String地区 = sts[colIndex];

                                               //拿到数据值

                                               Cellcell = cellSet.getCell(colPos, rowPos);

                                               Stringvalue = cell.getFormattedValue();

                                              

                                               Rowrow = ds.addRow();

                                               row.setData(1,地区);

                                               row.setData(2,产品);

                                               row.setData(3,日期);

                                               row.setData(4,value);

 

                                               colIndex++;

                                     }

 

                                     rowIndex++;

                            }

                   }catch (Exception e) {

                            e.printStackTrace();

                   }

                   returnds;

         }

 

         /**

          * 生成查询语句

          *

          * @param cubeName 立方体名称

          * @param colDimName 列维度名称

          * @param colDatas 列维度数据

          * @param rowDimName 行维度名称

          * @param rowDatas 行维度数据

          * @param measureName 测度名称

          * @return

          */

 

        

         publicstatic void main(String[] args) {

                   SSas5s = new SSas5();

                   DataSetds = s.createDataSet(null, null, false);

         }

}

最后按照润乾的自定义数据集的步骤把相关文件放到润乾目录下




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值