zzr99
2021-12-15 ebf585f09302784e56c1d2ce1dbbb2bc92d91951
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
//由三原色值合成颜色整数值
function ColorFromRGB(red, green, blue)
{
    return red + green*256 + blue*256*256;
}
 
//获取颜色中的红色值,传入参数为整数表示的RGB值
function ColorGetR(intColor)
{
    return intColor & 255;
}
 
//获取颜色中的绿色值,传入参数为整数表示的RGB值
function ColorGetG(intColor)
{
    return (intColor>>8) & 255;
}
 
//获取颜色中的蓝色值,传入参数为整数表示的RGB值
function ColorGetB(intColor)
{
    return (intColor>>16) & 255;
}
 
//创建 XMLHttpRequest 对象
function CreateXMLHttpRequest() 
{
    var xmlhttp;
    if (window.XMLHttpRequest)
        xmlhttp = new XMLHttpRequest(); // code for IE7+, Firefox, Chrome, Opera, Safari
    else
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
    return xmlhttp;
}
 
//按异步方式请求报表数据,在响应事件中将数据加载进报表,然后执行后续任务函数
function AjaxReportRun(Report, DataUrl, RunFun) 
{
    var xmlhttp = CreateXMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //加载报表数据
            RunFun(); //数据加载后需要执行的任务
        }
    }
    xmlhttp.open("POST", encodeURI(DataUrl), true);
    xmlhttp.send();
}
 
//按异步方式请求报表数据,在响应事件中将数据加载进报表,并启动报表查看器的运行
function AjaxReportViewerStart(ReportViewer, DataUrl) 
{
    ReportViewer.Stop(); //首先停止报表的运行
 
    var xmlhttp = CreateXMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            ReportViewer.Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //加载报表数据
            ReportViewer.Start(); //启动报表运行
        }
    }
    xmlhttp.open("POST", encodeURI(DataUrl), true);
    xmlhttp.send();
}
 
//按异步方式请求报表模板与报表数据,在响应事件中将模板与数据加载进报表,并启动报表查看器的运行
function AjaxReportViewerStart2(ReportViewer, ReportUrl, DataUrl, ReportUrlMethod) 
{
    var xmlhttp = CreateXMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            ReportViewer.Report.LoadFromStr(xmlhttp.responseText);
            
            AjaxReportViewerStart(ReportViewer, DataUrl);
        }
    }
    xmlhttp.open(ReportUrlMethod, encodeURI(ReportUrl), true);
    xmlhttp.send();
}
 
//按异步方式请求报表模板,在响应事件中将模板加载
function AjaxReportLoad(Report, ReportUrl, ReportUrlMethod) 
{
    var xmlhttp = CreateXMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
            Report.LoadFromStr(xmlhttp.responseText);
    }
    xmlhttp.open(ReportUrlMethod, encodeURI(ReportUrl), true);
    xmlhttp.send();
}
 
 
//按同步方式请求报表数据,数据请求方法调用后紧接着调用报表载入数据的方法
//用 Ajax 载入子报表数据必须用 HTTP 同步数据请求,即采用本函数
function AjaxSyncLoadReportData(Report, DataUrl) 
{
    var xmlhttp = CreateXMLHttpRequest();
    xmlhttp.open("POST", encodeURI(DataUrl), false);
    xmlhttp.send();
    Report.LoadDataFromAjaxRequest(xmlhttp.responseText, xmlhttp.getAllResponseHeaders()); //加载报表数据
}