王 垚
2022-09-05 226dd2b152c0fb06b3f8108ac7740216a8a453c6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using Demo.BillView.PRD;
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Core.SqlBuilder;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.ServiceHelper;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
 
namespace Demo.Report.PRD
{
    [Description("供应商交货批次合格率-简单账表")]
    [HotUpdate]
    /// <summary>
    /// 提料计划单简单账表
    /// </summary>
    public class prd_SupplierDeliveryBatchPassRate : SysReportBaseService
    {
        string date = "";
        string TableName = "";
        //初始化
        public override void Initialize()
        {
            base.Initialize();
            // 简单账表类型:普通、树形、分页
            this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
            this.IsCreateTempTableByPlugin = true;
            //取代码中配置的列
            this.ReportProperty.IsUIDesignerColumns = false;
            //是否分组汇总
            this.ReportProperty.IsGroupSummary = true;
        }
 
        //设置单据列
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = new ReportHeader();
            //  日期 FCOLUMN1,供应商 FCOLUMN2,送货批次 FCOLUMN3,收料通知单号 FCOLUMN4,合格批次 FCOLUMN5,不合格批次 FCOLUMN6,合格批次占比 FCOLUMN7,备注 FCOLUMN8
            header.AddChild("FCOLUMN1", new LocaleValue("日期"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN2", new LocaleValue("供应商"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN3", new LocaleValue("送货批次"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN4", new LocaleValue("收料通知单号"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN5", new LocaleValue("合格批次"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN6", new LocaleValue("不合格批次"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN7", new LocaleValue("合格批次占比"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN8", new LocaleValue("备注"), SqlStorageType.Sqlvarchar);
 
            return header;
        }
        //创建临时报表
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            /*
            @FTEMPNAME NVARCHAR(50) , --临时表名
            @FORGID INT ,--组织
            @FWORKSHOPID NVARCHAR(200) = '', --生产车间,可多选
            @FSCZYID NVARCHAR(200) = '',--生产资源,可多选
            @FBEGINDATE DATETIME , --开始日期
            @FENDDATE DATETIME --结束日期
            */
            base.BuilderReportSqlAndTempTable(filter, tableName);
            DynamicObject customFilter = filter.FilterParameter.CustomFilter;
            string FOrgId = Convert.ToString(customFilter["FOrgId_Id"]);//组织
            string FBEGINDATE = Convert.ToString(customFilter["FBEGINDATE"]);//开始日期 
            string FENDDATE = Convert.ToString(customFilter["FENDDATE"]);//结束日期 
            TableName = tableName;
            string sql = string.Format(@"/*dialect*/exec PR_SupplierDeliveryBatchPassRate '{0}','{1}', '{2}','{3}'", TableName, FOrgId,FBEGINDATE, FENDDATE);
            LogService.Write("供应商交货批次合格率报表sql:" + sql);
            DBServiceHelper.Execute(this.Context, sql);
        }
    }
}