这里有代码和解释。续:利用XML实现通用WEB报表打印(实现篇)
http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebprint.asp

解决方案 »

  1.   

    控件已经生成,RemotePrint.Dll生成成功。
    但是在Web页面上显示不出来。
    就是<object>那里好像不行。
    请各位各抒意见。
    谢谢。
      

  2.   

    我这有代码,可以进行演示,但我的.NET现在暂时不能用,想要的话,发短消息给我
      

  3.   

    把你的贴出来看看,哪里不对。是不是object那里设置有问题?
      

  4.   

    要注意生成的dll文件不能放在bin目录里面
      

  5.   

    是就是<object>那里出错误?
    怎么搞定,
    谢谢。
      

  6.   

    这是我RemotePrint.Dll中的一部分。
    private void PrintControl_Load(object sender, System.EventArgs e)
    {

    try
    { //装载报表XML数据
    this.label1.Text = "正在加载报表数据,请稍侯...";
    doc.Load("http://cwy/WebPrint/report.xml");//其中cwy是我的计算机名字,WebPrint是我要用的虚拟目录,report.xml是一个xml文件。
    this.label1.Text = "报表数据加载完毕!";
    SettingPrinter(doc["root"]["pagesetting"]); this.button1.Enabled = this.button2.Enabled = this.button3.Enabled = true;
    }
    catch(Exception ex)
    {
    this.label1.Text = "出现错误:" + ex.Message;
    }

    }
    我再Htm页中调用的代码如下:
    <HTML>
    <BODY>
    <object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT>
    </object>
    </BODY>
    </HTML>
    再运行期间,他也不报错,就是显示不出来。(我的xml文件是没有问题的。)
    htm的文件的虚拟目录是WebPrint,而且.Dll文件和htm文件,和xml文件都在同一个目录下面。
      

  7.   

    你这里的设置为“object id="print"”
    而这为“doc.Load("http://cwy/WebPrint/report.xml")”改为:print.Load("http://cwy/WebPrint/report.xml")OK?
      

  8.   

    呵呵,没认真看,
    Htm页中调用的代码如下:
    <HTML>
    <BODY>
    <object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT>
    </object>
    </BODY>
    </HTML>这是你调用的全部代码吗?你调用了提供的对象的打印方法吗?
    你上面调用的代码不好判断错误,太少了,你现在是载入数据出问题还是调用打印,预览等方法,就碰上这个问题,还是就没法调用object?
      

  9.   

    能调用Object ,但是在调用中出现错误。label上写着:出现错误:远程服务不能调用
      

  10.   

    就是一调用这个页就出现这个错误。
    应该是这句话出现错误了。
    doc.Load("http://cwy/WebPrint/report.xml")
    但是应该这样写啊。
      

  11.   

    我倒,呵呵,不好意思,还是没认真看你的代码
    引“我再Htm页中调用的代码如下:
    <HTML>
    <BODY>
    <object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT>
    </object>
    </BODY>
    </HTML>
    ”如果上面是你全部的代码的话,那么出现错误的原因可能如下:在这里你声明了对象print,但你并没有去调用相关的方法,而你所引用是一个用户控件,它不会自动的去执行静态的方法,需要你去显式的调用,现修改如下:
    <HTML>
    <BODY>
    <object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT>
    </object>
    <input type="button" name="Submit2" value="载入数据" onclick="print.LoadXml('http://Localhost/XMLPrint/r1.xml');">
    <input type="button" name="Button" value="打印" onclick="print.print();">
    <input type="button" name="Submit2" value="设置" onclick="print.Seting()">
    <input type="button" name="Submit22" value="预览" onclick="print.Preview()" >
    <input id="tex" type="text" name="textfield">
    </BODY>
    </HTML>
    ”测试:先点击载入数据,然后点预览,可以了吗?