王 垚
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
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.Text;
 
namespace Demo.Report.PRD
{
    [Description("提料计划生成占用采购预库存-简单账表")]
    [HotUpdate]
    /// <summary>
    /// 
    /// </summary>
    public class prd_OccupyPrestockReport : 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();
            //SELECT IDENTITY(INT, 1, 1)FIDENTITYID,组织 FCOLUMN1, 用户 FCOLUMN2,日计划用料清单单号 FCOLUMN3, 生产订单编号 FCOLUMN4,需求单号 FCOLUMN5, 生产车间 FCOLUMN6,物料编码 FCOLUMN7, 物料名称 FCOLUMN8,采购订单不足数量 FCOLUMN9, 占用采购收料订单单号 FCOLUMN10,占用采购收料数量 FCOLUMN11
            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);
            header.AddChild("FCOLUMN9", new LocaleValue("采购订单不足数量"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN10", new LocaleValue("占用采购收料订单单号"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN11", new LocaleValue("占用采购收料数量"), SqlStorageType.Sqlvarchar);
            return header;
        }
        //创建临时报表
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);
            DynamicObject customFilter = filter.FilterParameter.CustomFilter;
            string FOrgId = Convert.ToString(customFilter["FOrgId_Id"]);//组织
            string FMATERIALID = Convert.ToString(customFilter["FMATERIALID_Id"]);//物料
            string FWORKSHOPID = Convert.ToString(customFilter["FWORKSHOPID_Id"]);//生产车间
            string FXQD = Convert.ToString(customFilter["FXQD"]);//需求单号 
            string FMOBILLNO = Convert.ToString(customFilter["FMOBILLNO"]);//生产订单号 
            TableName = tableName;
            // 取数SQL
            string sql = string.Format(@"/*dialect*/exec prd_OccupyPrestockReport '{0}','{1}', '{2}','{3}', '{4}','{5}'", TableName, FXQD, FMOBILLNO, FOrgId, FWORKSHOPID,FMATERIALID);
            LogService.Write("齐套报表sql:" + sql);
            DBServiceHelper.Execute(this.Context, sql);
 
        }
    }
}