王 垚
2022-09-14 54a976bab1ce8da78435bbdf8a651aa2d1af0898
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
82
83
84
85
86
87
88
89
90
91
92
93
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_CompleteReport : 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,电压+功率+底板 FCOLUMN9,订单交期 FCOLUMN10,产品 FCOLUMN11,产品编码 FCOLUMN12,产品名称 FCOLUMN13,产品规格型号 FCOLUMN26,日计划日期 FCOLUMN14,日计划数量 FCOLUMN15,物料 FCOLUMN16,物料编码 FCOLUMN17,物料名称 FCOLUMN18,物料规格型号 FCOLUMN27,计划发料数量 FCOLUMN19,齐套数量 FCOLUMN20,缺料数量 FCOLUMN21,可用数量 FCOLUMN22,即时库存数量 FCOLUMN23,占用数量 FCOLUMN24,领用占用数量 FCOLUMN25
            header.AddChild("FCOLUMN2", new LocaleValue("组织名称"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN4", 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.SqlDatetime);
            header.AddChild("FCOLUMN12", new LocaleValue("产品编码"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN13", new LocaleValue("产品名称"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN26", new LocaleValue("产品规格型号"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN14", new LocaleValue("日计划日期"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN15", new LocaleValue("日计划数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN17", new LocaleValue("物料编码"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN18", new LocaleValue("物料名称"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN27", new LocaleValue("物料规格型号"), SqlStorageType.Sqlvarchar);
            header.AddChild("FCOLUMN19", new LocaleValue("计划发料数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN20", new LocaleValue("齐套数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN21", new LocaleValue("缺料数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN22", new LocaleValue("可用数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN23", new LocaleValue("即时库存数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN24", new LocaleValue("占用数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN25", new LocaleValue("领用占用数量"), SqlStorageType.SqlDecimal);
            header.AddChild("FCOLUMN28", 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 FSCZYID = Convert.ToString(customFilter["FSCZYID_Id"]);//生产资源
            string FXQD = Convert.ToString(customFilter["FXQD"]);//需求单号 
            string FMOBILLNO = Convert.ToString(customFilter["FMOBILLNO"]);//生产订单号 
            TableName = tableName;
            // 取数SQL
            // FID, FEntryId, 编号、状态、物料、数量、单位、单位精度、单价、价税合计 ,t1M_L.FNAME as FMaterialName
            string sql = string.Format(@"/*dialect*/exec PR_Complete_Report '{0}','{1}', '{2}','{3}', '{4}','{5}','{6}'", TableName, FXQD, FMOBILLNO, FOrgId, FWORKSHOPID, FSCZYID, FMATERIALID);
            LogService.Write("齐套报表sql:" + sql);
            DBServiceHelper.Execute(this.Context, sql);
 
        }
    }
}