view plaincopy to clipboardprint?

1.            

2.       using System;   

3.       using System.Collections.Generic;   

4.       using System.ComponentModel;   

5.       using System.Data;   

6.       using System.Drawing;   

7.       using System.Text;   

8.       using System.Windows.Forms;   

9.       using System.Net;   

10.   using Smartbi.Catalog;   

11.   using Smartbi.SimpleReport;   

12.   using Smartbi.User;   

13.   using Smartbi.AnalysisReport;   

14.   using Smartbi.ManageReport;   

15.     

16.   namespace WebServiceDemo   

17.   {   

18.       public partial class Form1 : Form   

19.       {   

20.           private CookieContainer cookieContainer = new System.Net.CookieContainer();   

21.           public Form1()   

22.           {   

23.               InitializeComponent();   

24.           }   

25.           private void button1_Click(object sender, EventArgs e)   

26.           {   

27.               /******用户管理模块测试**********/  

28.               UserManagerService user = new UserManagerService();   

29.               user.CookieContainer = cookieContainer;   

30.               //登录   

31.               user.login("admin""manager");   

32.     

33.               //登录信息   

34.               bool isLogged = user.isLogged();   

35.               IUser currentUser = user.getCurrentUser();   

36.               string currentUserName = currentUser.name;   

37.               //新建组              

38.               string newDepId = user.createDepartment("DEPARTMENT""WebServiceTest""WebService测试组""""WEBSERVICE");   

39.               //新建用户   

40.               string newUserId = user.createUser(newDepId"WebServiceTest""webservice测试用户""""manager"true);   

41.               //新建角色   

42.               string newRoleId = user.createRole("WebServiceTestRole""WebService测试角色"""newDepId"0");   

43.               //给用户分配角色   

44.               string[] rolesOfUser = { "GROUPADMIN""USERS" };   

45.               user.assignRolesToUser(newUserIdrolesOfUser);   

46.     

47.               /******资源测试********/  

48.               CatalogService catalog = new CatalogService();   

49.               catalog.CookieContainer = cookieContainer;   

50.               //获取根目录的子结点   

51.               ICatalogElement[] childrenElement = catalog.getChildElements("DEFAULT_TREENODE");   

52.               Boolean isCatalogAccessible = catalog.isCatalogElementAccessible("DEFAULT_TREENODE""WRITE");   

53.     

54.               /****灵活报表测试*****/  

55.               SimpleReportService simpleReport = new SimpleReportService();   

56.               simpleReport.CookieContainer = cookieContainer;   

57.               //此为报表ID,需要根据项目具体情况进行修改   

58.               string reportId = "I2c94ef9e21c7c2470121c7c91c720023";   

59.               //1.打开报表   

60.               ClientReportView reportView = simpleReport.openQuery(reportId);   

61.               string clientId = reportView.clientId;   

62.               //2.设置报表参数,ID取业务查询中右边属性面板输出参数的ID,需要项目具体情况进行修改   

63.               string paramId = "OutputParameter.I2c94ef9e21c7c2470121c7c8e8df001c.产品目录";   

64.               simpleReport.setParamValue(clientIdparamId"3""甜点、面包和");   

65.               //3.取报表数据   

66.               CellData[][] reportData = simpleReport.getReportDataWS(clientId, 0);   

67.               foreach (CellData[] data in reportData)   

68.               {   

69.                   foreach (CellData cellData in data)   

70.                   {   

71.                       string displayValue = cellData.displayValue;   

72.                   }   

73.               }   

74.               //4.关闭报表   

75.               simpleReport.closeQuery(clientId);   

76.     

77.               /******多维分析*****/  

78.               AnalysisReportService analysisReport = new AnalysisReportService();   

79.               analysisReport.CookieContainer = cookieContainer;   

80.               //此为多维分析ID,需要项目具体情况进行修改   

81.               string analysisReportId = "I2c94eaab263f054e01263f2a2f690063";   

82.               //1.打开报表   

83.               string apClientId = analysisReport.openOlapReport(analysisReportId);   

84.               //2.执行报表,获取数据   

85.               AnalysisReportData apReportData = analysisReport.executeQueryWS(apClientId);   

86.               AnalysisReportCell[] apReportCell = apReportData.cells;   

87.               int rowCount = apReportData.rowCount;   

88.               int rowSize = apReportData.rowSize;   

89.               int countSize = apReportData.columnSize;   

90.     

91.               foreach (AnalysisReportCell cell in apReportCell)   

92.               {   

93.                   if (cell == null)   

94.                       break;   

95.                   IMember[] rowMembers = cell.rowMembers;   

96.                   foreach (IMember rowMember in rowMembers)   

97.                   {   

98.                       string name = rowMember.uniqueName;   

99.                       string alias = rowMember.caption;   

100.                    }   

101.                    IMember[] colMembers = cell.columnMembers;   

102.                    foreach (IMember colMember in colMembers)   

103.                    {   

104.                        string name = colMember.uniqueName;   

105.                        string alias = colMember.caption;   

106.                    }   

107.                }   

108.                //3.关闭   

109.                analysisReport.closeQuery(apClientId);   

110.      

111.                /******复杂报表*****/  

112.                ManageReportService manageReport = new ManageReportService();   

113.                manageReport.CookieContainer = cookieContainer;   

114.                //此为复杂报表的名称,需要项目具体情况进行修改   

115.                string complexReportName = "001";   

116.                //1.打开报表   

117.                ManageReportBean complexReport = manageReport.openReportByName(complexReportName);   

118.                string complexReportClientId = complexReport.clientId;   

119.                //2.刷新报表   

120.                manageReport.refreshComplexReport(complexReportClientId);   

121.                //3.关闭报表   

122.                manageReport.closeReport(complexReportClientId);   

123.      

124.                /******指标报表*******/  

125.                //此为指标报表的名称,需要项目具体情况进行修改   

126.                string metricReportName = "report_006";   

127.                //1.打开报表   

128.                ManageReportBean metricReport = manageReport.openReportByName(metricReportName);   

129.                string metricReportClientId = metricReport.clientId;   

130.                //2.获取数据   

131.                ManageReportCell[] reportCell = manageReport.getOriginalDataWS(metricReportClientId); ;   

132.                foreach (ManageReportCell cell in reportCell)   

133.                {   

134.                    ColumnRow row = cell.conflictCR;   

135.                    if (row != null)   

136.                    {   

137.                        int col = row.column;   

138.                        int r = row.row;   

139.                    }   

140.                }   

141.                //3.关闭报表   

142.                manageReport.closeReport(metricReportClientId);   

143.      

144.                //注销   

145.                user.logout();   

146.            }   

147.        }   

148.    }