发布时间 : 2019-01-17 10:53:30.000|阅读 377 次
概述:此示例项目显示如何使用用户名和密码登录服务器和显示如何运行报表,然后获取报表快照项的共享URL。
此示例项目显示如何使用用户名和密码登录服务器。为此,您可以使用登录 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
首先,您需要登录服务器。对于此操作,您可以使用登录 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正版授权,请点击“咨询在线客服”哟!