【Stimulsoft Reports Server教程】登录服务器、运行报表并获取共享URL

发布时间 : 2019-01-17 10:53:30.000|阅读 377 次

概述:此示例项目显示如何使用用户名和密码登录服务器和显示如何运行报表,然后获取报表快照项的共享URL。

相关链接:

下载Stimulsoft Reports Flex最新版本

此示例项目显示如何使用用户名和密码登录服务器。为此,您可以使用登录 REST命令。作为参数,您需要指定用户名(电子邮件)和密码。这些参数可以在HTTP请求标头中传递。

#region Login
url = "http://localhost:40010/1/login";
 
var request = WebRequest.Create(url);
request.Headers.Add("x-sti-UserName", "1@1.com";);
request.Headers.Add("x-sti-Password", "111111");
 
var stream = request.GetResponse().GetResponseStream();
var sr = new StreamReader(stream);
string Out = sr.ReadToEnd();
sr.Close();
var json = JObject.Parse(Out);
// Get session key
var sessionKey = (string)json["ResultSessionKey"];
#endregion

显示如何运行报表,然后获取报表快照项的共享URL

首先,您需要登录服务器。对于此操作,您可以使用登录 REST命令。作为参数,您需要指定用户名(电子邮件)和密码。这些参数可以在HTTP请求标头中传递。

function Connect()
{
    var req = new XMLHttpRequest();
 
    req.open('GET', 'http://localhost:40010/1/login', false);
    req.setRequestHeader("x-sti-UserName", "1@1.com";);
    req.setRequestHeader("x-sti-Password", "111111");
 
    req.send();
 
    var data = JSON.parse(req.responseText);
 
    return data.ResultSessionKey;
}

在运行报表之前,应创建将用于呈现报表模板的报表快照项。您可以使用reportsnapshots REST命令来实现此目的。

function RunReport()
{
    // Create snapshot
    var sessionKey = Connect();
 
    var req_createSnap = new XMLHttpRequest();
    req_createSnap.open('POST', 'http://localhost:40010/1/reportsnapshots', false);
    req_createSnap.setRequestHeader("x-sti-SessionKey", sessionKey);
 
    var expiriesDate = new Date();
    expiriesDate = new Date(expiriesDate.getTime() + 5*60000);
 
    var event = {'Ident': 'ReportSnapshotItem', 'Name': '001', 'Description': '001', 'Expires': expiriesDate};
    event = JSON.stringify(event);
    req_createSnap.send(event);
    var resultCreateSnapshot = JSON.parse(req_createSnap.responseText);
 
    var reportKey = '30bca27f62594b27b46d6f000b50f717';
    var snapshotKey = resultCreateSnapshot.ResultItems[0].Key;
...

要运行报表,可以使用reporttemplates命令组的run REST命令。作为参数,您需要指定报表themplate密钥和目标报表快照密钥。报表模板密钥可以作为REST命令的一部分传递。目标报表快照密钥可以在HTTP请求标头中传递。将使用在上面的命令中创建的报表快照项密钥。

...
    // Run report to the snapshot
    var req_runReport = new XMLHttpRequest();
    req_runReport.open('PUT', 'http://localhost:40010/1/reporttemplates/' + reportKey + '/run', false);
    req_runReport.setRequestHeader("x-sti-SessionKey", sessionKey);
    req_runReport.setRequestHeader("x-sti-DestinationItemKey", snapshotKey);
 
    req_runReport.send();
 
    var data = JSON.parse(req_runReport.responseText);
...

要共享报表快照(或其他项目),可以使用items命令组的共享 REST命令。作为参数,您需要指定共享级别并共享到期日期。这些参数可以作为请求发布数据传递。最后,您可以使用不带参数的相同命令获取共享项URL,您应该在REST命令中仅指定共享项键。

...
    // Share snapshot
    var req_shareItem = new XMLHttpRequest();
 
    req_shareItem.open('PUT', 'http://localhost:40010/1/items/' + snapshotKey + '/share', false);
    req_shareItem.setRequestHeader("x-sti-SessionKey", sessionKey);
    var event = {'ShareLevel':'Public', 'ShareExpires': expiriesDate};
    event = JSON.stringify(event);
    req_shareItem.send(event);
 
    // Get share url
    var req_shareGetUrl = new XMLHttpRequest();
    req_shareGetUrl.open('GET', 'http://localhost:40010/1/items/' + snapshotKey + '/share', false);
    req_shareGetUrl.setRequestHeader("x-sti-SessionKey", sessionKey);
    req_shareGetUrl.send();
 
    var resultShareGetUrl = JSON.parse(req_shareGetUrl.responseText);
    var url = resultShareGetUrl.ResultUrl
 
    // open report by the share url
    location.href = url;
}

下载示例

购买Stimulsoft正版授权,请点击“咨询在线客服”哟!

Stimulsoft资源合集专题页

在线
客服
微信
QQ 电话
023-68661681
返回
顶部