文档章节

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

x
 xiaochuachua
发布于 01/17 11:05
字数 726
阅读 1
收藏 0

下载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资源合集专题页

本文转载自:https://www.stimulsoft.com/en/samples/server/run-the-report-and-get-the-shared-url

x
粉丝 0
博文 225
码字总数 49214
作品 0
私信 提问
可以在任何客户端生成报表的PHP报表控件Stimulsoft Reports.Fx

Stimulsoft Reports.Fx for PHP控件是为在互联网上使用客户端-服务器技术来创建报表而设计的报表工具控件。在这个产品中,我们结合了两种技术。PHP 脚本在服务器端工作。这个技术控制报表生...

javascript1
2014/06/24
1K
0
Stimulsoft Reports Designer.Silverlight是一个基于web的报表

Stimulsoft Reports Designer.Silverlight是一个基于web的报表设计器控件,通过使用它您可以直接在web浏览器中更改您的报表控件。该产品使用Silverlight技术和ASP.NET开发。它不需要开发人员...

baobiaokongjian
2014/06/24
126
0
服务器技术来创建报表而设计的报表工具控件Stimulsoft Reports.Fx for PHP

Stimulsoft Reports.Fx for PHP控件是为在互联网上使用客户端-服务器技术来创建报表而设计的报表工具控件。在这个产品中,我们结合了两种技术。PHP 脚本在服务器端工作。这个技术控制报表生...

javascriptc
2014/06/24
0
0
【盘点】最实用的五大企业级报表控件

对于大型的综合程序,特别是企业级的程序解决方案,都会依赖报表来处理企业中的各种数据及可视化表现,从而让企业掌握运营中的各项数据汇总。本文将为您介绍最实用的五大企业级报表控件,为您...

鸟栖沙岩
2016/07/25
102
0
报表工具Stimulsoft Reports快速生成.NET简单列报表

在.NET开发中经常会涉及到报表的开发,通常我们采用报表工具来快速生成报表,报表生成工具最常用的是水晶报表、Stimusoft Reports,下面我们以Stimulsoft Reports为例,做一个快速生成报表的...

baobiaokongjian
2014/08/09
220
0

没有更多内容

加载失败,请刷新页面

加载更多

怎样在磁盘上查找MySQL表的大小?这里有答案

导读 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎...

问题终结者
35分钟前
6
0
jQuery load() 方法实现加载远程数据

jQuery load() 方法是简单但强大的 AJAX 方法。load() 方法从服务器加载数据,并把返回的数据放入被选元素中。 语法: $(selector).load(URL,data,callback);必需的 URL 参数规定您希望加载的...

前端老手
37分钟前
5
0
Spring Boot缓存实战 Redis 设置有效时间和自动刷新缓存-2

问题 上一篇Spring Boot Cache + redis 设置有效时间和自动刷新缓存,时间支持在配置文件中配置,说了一种时间方式,直接扩展注解的Value值,如: @Override@Cacheable(value = "people#${s...

xiaolyuh
45分钟前
9
0
怎样在磁盘上查找MySQL表的大小?这里有答案

我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应该在 INFORMATION_SCHEMA.TABLES 中提供这些信息吗?没那么简单! 我想知道 MySQL 表在磁盘上占用多少空间,但看起来很琐碎。不应...

Linux就该这么学
今天
5
0
Redis

一、Redis支持的几种数据类型:字符串、List、SET、HASH、ZSET 二、Redis的缓存技术主要是为了降低关系数据库的负载并减少网站成本 三、在Redis里面,被MULTI命令和EXEC命令包围的所有命令会...

BobwithB
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部