这片文章只适合采用拉模式的水晶报表。
对于非嵌入式的报表:
1创建非嵌入式报表#region 创建非嵌入式报表
2 /**//// <summary>
3 /// 创建非嵌入式报表
4 /// </summary>
5 /// <param name="服务名">服务名</param>
6 /// <param name="用户名">用户名</param>
7 /// <param name="密码">密码</param>
8 /// <param name="文件路径">报表文件路径</param>
9 /// <returns></returns>
10 private ReportDocument 创建非嵌入式报表( string 服务名, string 用户名, string 密码, string 文件路径 )
11 {
12 // 创建报表文档对象
13 ReportDocument 报表文档 = new ReportDocument();
14
15 // 根据文件路径加载一个新报表
16 报表文档.Load( 文件路径 );
17
18 // 创建新的连接信息
19 ConnectionInfo 连接信息 = new ConnectionInfo();
20
21 连接信息.ServerName = 服务名;
22 连接信息.UserID = 用户名;
23 连接信息.Password = 密码;
24
25 // 创建新的表连接选项信息
26 TableLogOnInfo 表连接信息 = new TableLogOnInfo();
27
28 // 设定表连接选项信息的连接信息
29 表连接信息.ConnectionInfo = 连接信息;
30
31 // 逐个进行表的属性设置
32 foreach( Table 表 in 报表文档.Database.Tables )
33 {
34 表.ApplyLogOnInfo( 表连接信息 );
35 表.Location = 用户名 + "." + 表.Name;
36 }
37
38 // 用报表登录数据库
39 报表文档.SetDatabaseLogon( 用户名, 密码, 服务名, string.Empty, true );
40
41 return 报表文档;
42 }
43 #endregion
2 /**//// <summary>
3 /// 创建非嵌入式报表
4 /// </summary>
5 /// <param name="服务名">服务名</param>
6 /// <param name="用户名">用户名</param>
7 /// <param name="密码">密码</param>
8 /// <param name="文件路径">报表文件路径</param>
9 /// <returns></returns>
10 private ReportDocument 创建非嵌入式报表( string 服务名, string 用户名, string 密码, string 文件路径 )
11 {
12 // 创建报表文档对象
13 ReportDocument 报表文档 = new ReportDocument();
14
15 // 根据文件路径加载一个新报表
16 报表文档.Load( 文件路径 );
17
18 // 创建新的连接信息
19 ConnectionInfo 连接信息 = new ConnectionInfo();
20
21 连接信息.ServerName = 服务名;
22 连接信息.UserID = 用户名;
23 连接信息.Password = 密码;
24
25 // 创建新的表连接选项信息
26 TableLogOnInfo 表连接信息 = new TableLogOnInfo();
27
28 // 设定表连接选项信息的连接信息
29 表连接信息.ConnectionInfo = 连接信息;
30
31 // 逐个进行表的属性设置
32 foreach( Table 表 in 报表文档.Database.Tables )
33 {
34 表.ApplyLogOnInfo( 表连接信息 );
35 表.Location = 用户名 + "." + 表.Name;
36 }
37
38 // 用报表登录数据库
39 报表文档.SetDatabaseLogon( 用户名, 密码, 服务名, string.Empty, true );
40
41 return 报表文档;
42 }
43 #endregion
对于嵌入式的报表:
1创建嵌入式报表#region 创建嵌入式报表
2 /**//// <summary>
3 /// 创建嵌入式报表
4 /// </summary>
5 /// <param name="服务名">服务名</param>
6 /// <param name="用户名">用户名</param>
7 /// <param name="密码">密码</param>
8 /// <returns>我的水晶报表</returns>
9 private 我的水晶报表 创建嵌入式报表( string 服务名, string 用户名, string 密码 )
10 {
11 // 创建新报表
12 我的水晶报表 报表 = new 我的水晶报表();
13
14 // 创建新的连接信息
15 ConnectionInfo 连接信息 = new ConnectionInfo();
16
17 连接信息.ServerName = 服务名;
18 连接信息.UserID = 用户名;
19 连接信息.Password = 密码;
20
21 // 创建新的表连接选项信息
22 TableLogOnInfo 表连接信息 = new TableLogOnInfo();
23
24 // 设定表连接选项信息的连接信息
25 表连接信息.ConnectionInfo = 连接信息;
26
27 // 逐个进行表的属性设置
28 foreach( Table 表 in 报表.Database.Tables )
29 {
30 表.ApplyLogOnInfo( 表连接信息 );
31 表.Location = 用户名 + "." + 表.Name;
32 }
33
34 // 用报表登录数据库
35 报表.SetDatabaseLogon( 用户名, 密码, 服务名, string.Empty, true );
36
37 return 报表;
38 }
39 #endregion
2 /**//// <summary>
3 /// 创建嵌入式报表
4 /// </summary>
5 /// <param name="服务名">服务名</param>
6 /// <param name="用户名">用户名</param>
7 /// <param name="密码">密码</param>
8 /// <returns>我的水晶报表</returns>
9 private 我的水晶报表 创建嵌入式报表( string 服务名, string 用户名, string 密码 )
10 {
11 // 创建新报表
12 我的水晶报表 报表 = new 我的水晶报表();
13
14 // 创建新的连接信息
15 ConnectionInfo 连接信息 = new ConnectionInfo();
16
17 连接信息.ServerName = 服务名;
18 连接信息.UserID = 用户名;
19 连接信息.Password = 密码;
20
21 // 创建新的表连接选项信息
22 TableLogOnInfo 表连接信息 = new TableLogOnInfo();
23
24 // 设定表连接选项信息的连接信息
25 表连接信息.ConnectionInfo = 连接信息;
26
27 // 逐个进行表的属性设置
28 foreach( Table 表 in 报表.Database.Tables )
29 {
30 表.ApplyLogOnInfo( 表连接信息 );
31 表.Location = 用户名 + "." + 表.Name;
32 }
33
34 // 用报表登录数据库
35 报表.SetDatabaseLogon( 用户名, 密码, 服务名, string.Empty, true );
36
37 return 报表;
38 }
39 #endregion