如何实现质量相关报表统计合格率时保留2位小数且舍位处理

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

如何实现质量相关报表统计合格率时保留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位小数且舍位处理

需求描述:目前系统内质量模块的报表例如供应商质量统计表统计的合格率默认是保留2位小数四舍五入的,比如检验数量为23.600、合格数量为23....
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息