本文总结了万能报表开发过程中常见的案例及问题解决方案,包括增加行号、删除后残留、预览慢、分组排序字段无效、文本换行空格、报错处理、存储过程发布缓慢、插件注册问题、字段不显示、输入格式错误、过滤方案更新、预览错误等,每个问题都给出了具体的代码示例或操作步骤,旨在帮助用户解决在使用万能报表时遇到的各种问题。
一、帖子
二、问题
1、万能报表增加行号功能?
参考帖子9,但可能经过分组后会导致序号错乱,解决办法加脚本处理: int rowIndex =1;
private void label19_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
(sender as XRLabel).Text = string.Format("{0}", rowIndex );
rowIndex =rowIndex +1;
}
2,万能报表在BOSIDE中删除后,在万能报表设计器中还能看到并且点击报对象不存在错误?
BOSIDE中删除万能报表没有清除报表表中的数据导致,建议在万能报表设计器中删除,如果已发生此中情况,使用下面脚本清理报表表中的数据:delete from t_BOS_DevReport where FREPORTID='报表FormId'
delete from T_BOS_DEVREPORT_L where FREPORTID='报表FormId'
3,使用万能报表作为套打模板预览很慢?
检查物料中是否存在大的图片,如果存在建议使用下面脚本去除试试:
--去除图片
update t_bd_material set FIMAGEFILESERVER= FIMAGEFILESERVER+'_noimage' from t_bd_material
where len(FIMAGEFILESERVER)>0 and FIMAGEFILESERVER not like '%_noimage'
--恢复图片
update t_bd_material set FIMAGEFILESERVER= Replace(FIMAGEFILESERVER,'_noimage','') from t_bd_material
where len(FIMAGEFILESERVER)>0 and FIMAGEFILESERVER like '%_noimage'
4, 万能报表分组排序字段无效?
需要先设置数据成员在设置分组排序字段
5,万能报表作为套打模板预览换行是字符被覆盖?
调整此字段的宽度试试
6,万能报表作为套打模板,文本字段换行空格问题?
参考帖子:https://vip.kingdee.com/article/21192, 去空格代码,
using System.Text.RegularExpressions;
private void label8_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
XRLabel bindLabel = sender as XRLabel;
string lbText= Regex.Replace(Regex.Replace(bindLabel.Text, "(?<=[\u4e00-\u9fa5])\\s+(?=[\u4e00-\u9fa5])", string.Empty), "(?<=[a-z])\\s+(?=[a-z])", " ");
bindLabel.Text = lbText.Trim();
}
7. 万能报表打开报"对象引用未设置到对象实例 或"“根级别上的数据无效”,堆栈为
在 Kingdee.BOS.IDE.Core.LocalConfiguration.SetClientConfigFilePath()
在 Kingdee.BOS.ReportIDE.frmMain..ctor()
在 Kingdee.BOS.ReportIDE.Program.Main(String[] args)?
可能客户端上的目录下的Program Files (x86)\Kingdee\K3Cloud\DeskClient\K3CloudClient的Kingdee.BOS.IDE.exe.user.default.config配置损坏,而服务器上重新下载下来又没有覆盖此文件,解决方式则从从服务器或其他电脑上找此配置文件,并覆盖损坏的。
8. 万能报表销售订单创建设计模板是报"FDeptName"列无效?
视图V_BD_SALESMAN_L缺乏FDeptName列定义,修复
alter view V_BD_SALESMAN_L as SELECT A.FENTRYID AS fid, C.FPKID, A.FSTAFFID, C.FLOCALEID, C.FDESCRIPTION, AL.FNAME, DL.FNAME AS fdeptname
FROM dbo.T_BD_OPERATORENTRY AS A LEFT OUTER JOIN
dbo.T_BD_OPERATORENTRY_L AS AL ON A.FENTRYID = AL.FENTRYID INNER JOIN
dbo.T_BD_STAFF AS B ON A.FSTAFFID = B.FSTAFFID INNER JOIN
dbo.T_HR_EMPINFO_L AS C ON B.FEMPINFOID = C.FID AND AL.FLOCALEID = C.FLOCALEID LEFT OUTER JOIN
dbo.T_BD_DEPARTMENT_L AS DL ON B.FDEPTID = DL.FDEPTID AND C.FLOCALEID = DL.FLOCALEID
WHERE (A.FOPERATORTYPE = 'XSY')
9. 万能报表绑定的字段不显示?
万能报表的数据来源是直接sql账表,直接sql账表使用存储过程,并且参数类型不对。
10. 万能报表点击任何报错,EditorClassInfo.CreateAccessible?
1)https://vip.kingdee.com/article/23812
2)https://vip.kingdee.com/article/43384
11. 存储过程做的账表发布到前端变得缓慢
1)问题原因:分析是存储过程的参数嗅探问题,使用了缓存的执行计划导致。
解决方案:在存储过程中加with compile重新编译。
12. 万能报表运行时,所有的点击菜单无效,比如打印,打印设置菜单?
1)直线原因是插件(DevReportViewPlugIn)没有注册,原因是在注册的时候报错,
可能打临时补丁导致在注册的时候报发生依赖错误,比如下图: Kingdee.K3.ECM.ActiveX.dll
13. 列表类万能报表,字段不显示?
1. 首先检查单据中字段的可见性,确保列表默认可见
2. 然后在万能报表设计器中打开对应的万能报表,并重新保存一下。
3. 打开万能报表页面,把其他过滤方案删除,基于默认过滤方案重新创建其他过滤方案
14、万能报表部分单据打印或创建单据类报表都报输入字符串的格式不正确StringToNumber?
1)创建或打印都会需要解析元数据,部分单据报错因为使用了相同的基础资料,而基础资料中增加的字段有问题,字段类型跟数据类型不匹配,如部门新增的更新已排,是下列表默认都是字符串类型,但它的元数据fieldType却是整形
15、万能报表过滤方案
默认过滤方案是根据最新万能报表模板动态生成的,其他过滤方案是根据当时模板元数据生成,所以只要默认过滤方案是最新的模板元数据。
16、万能报表预览报下面错误
1) silverlight端发了无效证书导致被拦截,解决方式: 加有效证书或使用使用http访问。
2)客户端系统组件有问题,解决方式:卸载重新安装
推荐阅读