如何实现质量相关报表统计合格率时保留2位小数且舍位处理
需求描述:目前系统内质量模块的报表例如供应商质量统计表统计的合格率默认是保留2位小数四舍五入的,比如检验数量为23.600、合格数量为23.599,显示的合格率为100%,但是有的企业需要保留2位小数时舍位处理即上述数据时合格率显示为99.99%。
解决方案:(此处以供应商质量统计表为例)
1、 二开报表插件继承标准产品报表插件SupplierQuaStatisticRpt,挂在报表的服务器插件处,如下图所示:(由于二开插件是继承的标准产品插件,因此启用二开插件后,将标准产品插件不启用即可)
2、插件示例代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using Kingdee.K3.Core.MFG.EntityHelper;
using Kingdee.BOS.App.Data;
using Kingdee.K3.MFG.App;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.K3.MFG.QM.App.ReportPlugIn.Defect;
namespace Test.K3.MFG.QM.App.ReportPlugIn.Defect
{
public class test : SupplierQuaStatisticRpt
{
public override void BuilderReportSqlAndTempTable(BOS.Core.Report.IRptParams filter, string tableName)
{
base.BuilderReportSqlAndTempTable(filter, tableName);
string sql = string.Format(@"
MERGE INTO {0} U1 USING (
SELECT T0.FIDENTITYID,ROUND(ISNULL(T0.FQUALIFIEDQTY/T0.FINSPECTQTY,0)*100,2,1) as FNEWQUAPERCENT
FROM {0} T0
) U2 ON U2.FIDENTITYID=U1.FIDENTITYID
WHEN MATCHED THEN UPDATE
SET FQUALIFIEDPERCENT=U2.FNEWQUAPERCENT
", tableName, this.Context.UserLocale.LCID);
DBUtils.Execute(this.Context, sql);
}
}
}
3、实现效果如下:
4、补充说明:(1)由于是继承的标准产品插件,因此对应的工程文件的References中需要增加Kingdee.K3.MFG.QM.App.ReportPlugIn.dll的引用;
(2)插件代码的using中增加Kingdee.K3.MFG.QM.App.ReportPlugIn.Defect的引用;
如何实现质量相关报表统计合格率时保留2位小数且舍位处理
本文2024-09-23 03:27:38发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-158999.html