谁有?利用XML实现通用WEB报表打印(源代码) 这里有代码和解释。续:利用XML实现通用WEB报表打印(实现篇)http://www.microsoft.com/China/Community/TechZone/TechArticle/TechDoc/xmlwebprint.asp 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 控件已经生成,RemotePrint.Dll生成成功。但是在Web页面上显示不出来。就是<object>那里好像不行。请各位各抒意见。谢谢。 我这有代码,可以进行演示,但我的.NET现在暂时不能用,想要的话,发短消息给我 把你的贴出来看看,哪里不对。是不是object那里设置有问题? 要注意生成的dll文件不能放在bin目录里面 是就是<object>那里出错误?怎么搞定,谢谢。 这是我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文件都在同一个目录下面。 你这里的设置为“object id="print"”而这为“doc.Load("http://cwy/WebPrint/report.xml")”改为:print.Load("http://cwy/WebPrint/report.xml")OK? 呵呵,没认真看,Htm页中调用的代码如下:<HTML> <BODY><object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT> </object> </BODY></HTML>这是你调用的全部代码吗?你调用了提供的对象的打印方法吗?你上面调用的代码不好判断错误,太少了,你现在是载入数据出问题还是调用打印,预览等方法,就碰上这个问题,还是就没法调用object? 能调用Object ,但是在调用中出现错误。label上写着:出现错误:远程服务不能调用 就是一调用这个页就出现这个错误。应该是这句话出现错误了。doc.Load("http://cwy/WebPrint/report.xml")但是应该这样写啊。 我倒,呵呵,不好意思,还是没认真看你的代码引“我再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>”测试:先点击载入数据,然后点预览,可以了吗? DataGridView移除多行问题 C#访问ACCESS数据库 C#使用Bitmap 生成图片的问题,哪位达人帮帮帮我 关于session失效的问题 菜鸟 高分求 C#开发游戏 关于datagrid自定义删除按钮单击两次才弹出窗口的问题 一个关于在web下面弹出对话框的问题!(在线等!) 关于更换数据源的问题 如何学C# 大神 你在哪里 gridcontrol RowCellClick事件问题 在线:我想点击一个BUTTON按钮后就在DATAGRID控件中增加一行(没有数据)?试验正确马上给分!! 如何通过反射实例化一个类
但是在Web页面上显示不出来。
就是<object>那里好像不行。
请各位各抒意见。
谢谢。
怎么搞定,
谢谢。
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文件都在同一个目录下面。
而这为“doc.Load("http://cwy/WebPrint/report.xml")”改为:print.Load("http://cwy/WebPrint/report.xml")OK?
Htm页中调用的代码如下:
<HTML>
<BODY>
<object id="print" classid="http:RemotePrint.dll#RemotePrint.PrintControl" Width="0" Height="0" VIEWASTEXT>
</object>
</BODY>
</HTML>这是你调用的全部代码吗?你调用了提供的对象的打印方法吗?
你上面调用的代码不好判断错误,太少了,你现在是载入数据出问题还是调用打印,预览等方法,就碰上这个问题,还是就没法调用object?
应该是这句话出现错误了。
doc.Load("http://cwy/WebPrint/report.xml")
但是应该这样写啊。
引“我再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>
”测试:先点击载入数据,然后点预览,可以了吗?