Ext.define('Test.View.Report', {
    extend: 'Ext.window.Window',
    title: '报表',
    layout: 'fit',
    autoShow: true,
    modal: true,
    formBind: true,
    initComponent: function () {
        this.items = [
            {
                xtype: 'box',                autoEl: {
                    tag: 'div',
                    html:'<script type=\"text/javascript\">CreateDisplayViewer(\'../../grf/test1.grf\');</script>'
                }
            }
        ];
        this.callParent(arguments);
    }
});
以上是小弟写的代码 想法是在里面嵌入一个div 在里面做报表的展示现在发现这个div里面只能显示文字内容比如  html:'这是一个报表'  是可以显示的但是JS方法却没效果不知道是哪里不对 请各位高人教下 或者有做过的前辈 请给点例子看看 感激不尽~

解决方案 »

  1.   

    CreateDisplayViewer(\'../../grf/test1.grf\')  返回的是什么?
     
      

  2.   

    这个方法是创建报表查询显示插件
    //创建报表查询显示插件,详细请查看帮助中的 IGRDisplayViewer
    //ReportURL - 获取报表模板的URL
    //DataURL - 获取报表数据的URL
    function CreateDisplayViewer(ReportURL)
    {
    document.write('<OBJECT classid="CLSID:E060AFE6-5EFF-4830-B7F0-093ECC08EF37" '+ GridReportCodeBase + ' width="100%" height="100%" id="ReportViewer" VIEWASTEXT>');
    document.write('<param name="ReportURL" value="' + ReportURL + '">');
    document.write('<param name="DataURL" value="' + DataURL + '">');
    document.write('<param name="SerialNo" value="' + SerialNo + '">');
    document.write('<param name="UserName" value="' + UserName + '">');
    document.write('</OBJECT>');
    }
      

  3.   


    document.write肯定不行的吧!你应该用一个对象把这些内容拼装起来成为一个html片段,然后在你的window的html属性中间才能插入进去。我写一个你做做看行不行,我不能保证是完全0正确的
    function CreateDisplayViewer(ReportURL)
    {
        document.write('<OBJECT classid="CLSID:E060AFE6-5EFF-4830-B7F0-093ECC08EF37" '+       GridReportCodeBase + ' width="100%" height="100%" id="ReportViewer" VIEWASTEXT>');
        var divValue ='<param name="ReportURL" value="' + ReportURL + '">';
        divValue =divValue + '<param name="DataURL" value="' + DataURL + '">';
        divValue =divValue +'<param name="SerialNo" value="' + SerialNo + '">';
        divValue =divValue +'<param name="UserName" value="' + UserName + '">';
        divValue =divValue +'</OBJECT>';
        return   divValue ;
    }然后在你的window的html属性中间写:html:"<div id='xxx'>"+CreateDisplayViewer(ReportURL)+"</div>"随手编写的,仅供参考,呵呵~
      

  4.   

    function CreateDisplayViewer(ReportURL)
    {
      var divValue = '<OBJECT classid="CLSID:E060AFE6-5EFF-4830-B7F0-093ECC08EF37" '+ GridReportCodeBase + ' width="100%" height="100%" id="ReportViewer" VIEWASTEXT>';
      divValue= divValue +'<param name="ReportURL" value="' + ReportURL + '">';
      divValue =divValue + '<param name="DataURL" value="' + DataURL + '">';
      divValue =divValue +'<param name="SerialNo" value="' + SerialNo + '">';
      divValue =divValue +'<param name="UserName" value="' + UserName + '">';
      divValue =divValue +'</OBJECT>';
      return divValue ;
    }上面的函数写错了~