质量报表二开增加显示单据上的字段(以销售退货质量统计表为例)

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

质量报表二开增加显示单据上的字段(以销售退货质量统计表为例)

说明:本例以销售退货质量统计表增加显示检验单上质检方案字段的值为例

1、BOS设计器找到销售退货质量统计表扩展,在表体增加基础资料类型字段,绑定质检方案基础资料,如下图所示:

1.webp


2、BOS设计器找到销售退货质量统计表过滤扩展,在显示隐藏列的字段集合属性中增加基础资料类型字段,命名为质检方案。如下图所示;

2.webp


3、二开报表插件继承标准产品插件;

代码如下:

public class ReportTest : SalesReturnQuaStatisticRpt

    { 

        public override void Initialize()

        {

            base.Initialize();

            this.ReportProperty.DspInsteadColumnsInfo.DefaultDspInsteadColumns.Add("FQCSCHEMEID", "FQCSCHEMENAME");

        }              

        public override void BuilderReportSqlAndTempTable(BOS.Core.Report.IRptParams filter, string tableName)

        {

            base.BuilderReportSqlAndTempTable(filter, tableName);

            string sql = string.Format(@"ALTER TABLE {0} ADD FQCSCHEMEID INT NULL,FQCSCHEMENUMBER NVARCHAR(255),FQCSCHEMENAME NVARCHAR(255) ", tableName);

            DBUtils.Execute(this.Context, sql);

 

            //给新增的字段赋值,注意到报表系统临时表的主键固定是FIDENTITYID       

            sql = string.Format(@"

MERGE INTO {0} U1 USING (

SELECT T0.FQCSCHEMEID,T1.FIDENTITYID,T4.FNUMBER AS FQCSCHEMENUMBER ,T5.FNAME AS FQCSCHEMENAME

FROM T_QM_INSPECTBILLENTRY T0

INNER JOIN T_QM_INSPECTBILL T2 ON T2.FID=T0.FID

INNER JOIN {0} T1 ON T1.FINSPECTBILLID = T2.FID AND T1.FINSPECTBILLROWSEQ = T0.FSEQ

INNER JOIN T_QM_QCSCHEME  T4 ON T4.FID=T0.FQCSCHEMEID

INNER JOIN T_QM_QCSCHEME_L  T5 ON T5.FID=T0.FQCSCHEMEID AND T5.FLOCALEID={1}

) U2 ON U2.FIDENTITYID=U1.FIDENTITYID

WHEN MATCHED THEN UPDATE

SET FQCSCHEMEID=U2.FQCSCHEMEID,FQCSCHEMENUMBER=U2.FQCSCHEMENUMBER,FQCSCHEMENAME=U2.FQCSCHEMENAME

", tableName, this.Context.UserLocale.LCID);

            DBUtils.Execute(this.Context, sql);

        }

    }

4、打开销售退货质量统计表,注册二开的新插件,取消标准产品插件的引用;

3.webp


5、运行效果如下所示:

4.webp


 

注意:代码中质检方案的名称和编码的字段长度可以根据实际修改,代码中给了255为例。


质量报表二开增加显示单据上的字段(以销售退货质量统计表为例)

说明:本例以销售退货质量统计表增加显示检验单上质检方案字段的值为例1、BOS设计器找到销售退货质量统计表扩展,在表体增加基础资料类型字...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息