说起来“报表“我们并不陌生,机房收费系统中我们就已经接触过,简单的说:报表就是用表格、图表等格式来动态显示数据,可以用公式表示为:“报表 = 多样的格式 + 动态的数据”。最近在用MVC+EF框架做人事系统,需要用报表显示财务。
在mvc中的view中,我们只需要写入以下代码即可实现引入报表:
<span style="font-family:KaiTi_GB2312;font-size:18px;"><head> <title>代理费结算表</title> <script src="~/Scripts/CreateControl.js"></script> </head> <body> <script type="text/javascript"> //用查询显示控件展现报表,从URL“../grf/1a.grf”获取报表膜板定义,从URL“../data/xmlCustomer.aspx”获取XML形式的报表数据 //Width - 插件的显示宽度,"100%"为整个显示区域宽度,"500"表示500个屏幕像素点 //Height - 插件的显示高度,"100%"为整个显示区域高度,"500"表示500个屏幕像素点 //ReportURL - 获取报表模板的URL //DataURL - 获取报表数据的URL //AutoRun - 指定插件在创建之后是否自动生成并展现报表,值为false或true //ExParams - 指定更多的插件属性阐述,形如: "<param name="%ParamName%" value="%Value%">"这样的参数串 //CreatePrintViewerEx(Width, Height, ReportURL, DataURL, AutoRun, ExParams) CreateDisplayViewerEx("100%", "100%", "../grf/代理费结算表.grf", "", true, ""); </script> </span>已经引入了,但是没有我们想象的那么顺利,总是报“读入模板失败”错误。
通过上网各种搜索,发现两种解决方法:
1.如果出现以下错误,并且只能出来表头:
在IIS服务中,点击“MIME类型“,添加类型.grf.如图:
这样就可以解决第一种问题,如果这时还不可以显示报表,请往下看。
2.第一种情况后,还可能会出现以下情况:
(1).在DOS窗口下进入IISExpress安装目录,默认是“C:\Program Files\IIS Express”;
(2).在IISExpress安装目录下执行命令:appcmd set config /section:staticContent/+[fileExtension='.xyz',mimeType='text/plain']
PS:变量fileExtension 字符串是文件扩展名,变量 mimeType 字符串是文件类型说明,比如我执行的命令是:appcmd set config/section:staticContent/+[fileExtension='.grf',mimeType='PrintReports/代理费结算表.grf']
这时命令窗口会提示更改成功,那么就可以访问报表了。