当前位置: 首页 > 知识库问答 >
问题:

如何将刺激软件报表js保存到服务器上?

刘兴朝
2023-03-14

我有一个用于报表设计器的组件,并将方法分配给onsavereport事件,但在该方法中,我的组件memeber是undefined

    options: any;
    designer: any;
    html" target="_blank">public document: ReportDocument;

    reportBody = '';
    constructor() {

    }

    ngOnInit() {
        this.document = new ReportDocument();
        this.options = new Stimulsoft.Designer.StiDesignerOptions();
        this.options.appearance.fullScreenMode = false;

        this.designer = new Stimulsoft.Designer.StiDesigner(this.options, 'StiDesigner', false);
        var report = new Stimulsoft.Report.StiReport();
        var json = { "DataSet": [{ Id: "a", Name: "A" }] }
        var dataSet = new Stimulsoft.System.Data.DataSet("JSON");

        dataSet.readJson(json)
        report.regData("JSON", "JSON", dataSet);

        report.dictionary.synchronize();
        this.designer.report = report;
        this.designer.renderHtml('designer');
        this.designer.onSaveReport = this.onReportSave;
    }

    private onReportSave(e: any) {
        this.document.body = e.report.saveToJsonString(); // error is here
        
    }
}

这是错误:

无法设置未定义的属性(设置'body')类型错误:无法将未定义的属性(设置'body')设置在$.onReportSave[as onSaveReport](http://localhost:4200/features-expressionsoft-report-expressionsoft-report-report-module.js:1206:28)设置在$.invokesaverePort(http://localhost:4200/assets/lazybundles/expressionsoft.designer.js:30:82619)设置在$.raisecallbackeventasync/lazybundles/inspirsoft/inspirsoft.designer.js:30:78818 at zoneDelegate.invokeTask(http://localhost:4200/polyfills.js:12178:35)at object.oninvoketask(http://localhost:4200/vendor.js:72788:33)at zoneDelegate.invokeTask(http://localhost:4200/polyfills.js:12177:40)at zoneDelegate.invokeTask)在zonetask.invoke(http://localhost:4200/polyfills.js:12248:52)`

共有1个答案

景阳曜
2023-03-14

您无权访问这个insideonreportsave函数中的类,因为您将函数引用传递给onsavereport,并且由于设计器调用函数函数中的这个属于设计器而不是类,这就是错误的原因。document未定义,您从未定义的函数调用body,但您可以使用bind属性更改它

this.designer.onSaveReport = this.onReportSave.bind(this);

现在您将函数中的this设置为类的this

 类似资料:
  • 问题内容: 我有这样的JavaScript代码 我的PHP代码是这样的 执行此代码时,我得到了一个零尺寸的png文件图像?我的代码有什么问题? 问题答案: 我最近不得不自己做。 首先,我将canvasData放入一个隐藏字段中,并将其发布到我的PHP页面中。 它以以下格式返回: 您需要首先拆分数据,因为这是标题信息。其余的是编码数据。 然后,在服务器上创建映像: 然后阅读以完成我想做的事情。 我非

  • 我们在最佳实践文章中建议大家如何去配置协议和密码套件,但是如果服务器软件(nginx、apache等)所使用的ssl协议库存在SSL漏洞,或者不支持那些现代化的密码套件和特性,那么无论你如何去修改配置都无法改善现在的安全问题。 所以我们在配置前,或者发现按照推荐配置进行了调整《SSL/TLS安全评估报告》还是无法满足要求,那么可以检查下所使用的OpenSSL等加密库是否版本过低。 如何检查 Ope

  • 问题内容: 在这里和其他地方,我已经看到许多对此的部分答案,但是我非常适合作为新手程序员,并希望找到一个彻底的解决方案。我已经能够在Chrome Canary(v。29.x)中设置笔记本电脑麦克风的录制音频,并且可以使用recorder.js相对容易地设置录制.wav文件并将其保存在本地,例如: http://webaudiodemos.appspot.com/AudioRecorder/inde

  • 我用的是Flink 1.4.0 我正在尝试将Table API查询的结果保存到CSV文件,但我收到错误。以下是详细信息: 我的输入文件如下所示: 我对此运行查询以仅选择犬类,我想将其保存到csv文件中: 当我运行此命令时,我看到数据集的结果被输出: 犬科动物,2 然而,我在输出文件中没有得到任何结果,我在下面看到了这些错误。我能做些什么来解决这个问题?谢谢

  • 以下是我的设想: 我尝试将一个报告从studio发布到服务器,当我打开服务器web应用程序上的报告时,报告显示为空白,并显示一条消息说‘报告为空。’。 在搜索了一下之后,我发现我的报表需要发布到带有数据源的服务器上,以便在服务器web应用程序上查看。

  • 问题内容: 我要上传图像并将其保存在服务器中。我上传了图像并获得了预览,但是我被困在将图像发送到服务器上。我想使用角度服务将此图像发送到服务器。 这是HTML代码 这是指令 问题答案: 假设您在后端中期望Multipart,这是一段对我有用的代码。 这是一个jsfiddle。 请注意 以下部分: 是一些Angular魔术,为了使$ http解析FormData并找到正确的内容类型,等等。