using Kingdee.BOS;
|
using Kingdee.BOS.App.Data;
|
using Kingdee.BOS.Contracts;
|
using Kingdee.BOS.Contracts.Report;
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
using Kingdee.BOS.Core.List;
|
using Kingdee.BOS.Core.Report;
|
using Kingdee.BOS.Orm.DataEntity;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using Kingdee.BOS.ServiceHelper;
|
using Kingdee.BOS.Util;
|
using Newtonsoft.Json;
|
using ZD.Cloud.Logger;
|
|
namespace Demo.Report
|
{
|
/// <summary>
|
/// 及时率报表
|
/// </summary>
|
[Description("及时率报表")]
|
[HotUpdate]
|
public class prd_TimelinessRateReport : SysReportBaseService
|
{
|
|
public override void Initialize()
|
{
|
//base.Initialize();
|
//this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
|
//this.ReportProperty.ReportName = new LocaleValue("供应商送料计划列表订单", base.Context.UserLocale.LCID);
|
//this.ReportProperty.IsUIDesignerColumns = true;
|
//this.ReportProperty.IsGroupSummary = true;
|
//this.ReportProperty.SimpleAllCols = false;
|
|
base.Initialize();
|
// 简单账表类型:普通、树形、分页
|
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
|
this.IsCreateTempTableByPlugin = true;
|
//取代码中配置的列
|
this.ReportProperty.IsUIDesignerColumns = false;
|
//是否分组汇总
|
this.ReportProperty.IsGroupSummary = true;
|
this.ReportProperty.PrimaryKeyFieldName = "FIDENTITYID";
|
|
}
|
|
public override ReportHeader GetReportHeaders(IRptParams filter)
|
{
|
ReportHeader header = new ReportHeader();
|
|
header.AddChild("FIDENTITYID", new LocaleValue("序号"), SqlStorageType.SqlInt).ColIndex = 1;
|
header.AddChild("FHDATE", new LocaleValue("提料计划日期", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 1;
|
header.AddChild("FHSOURCEBILLNO", new LocaleValue("生产订单编号", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 2;
|
header.AddChild("FSOURCENAME", new LocaleValue("生产线"), SqlStorageType.Sqlvarchar).ColIndex = 3;
|
header.AddChild("FSUPPLIERNUMBER", new LocaleValue("供应商编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 4;
|
header.AddChild("FSUPPLIERNAME", new LocaleValue("供应商名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 5;
|
header.AddChild("FMATERIALNUMBER2", new LocaleValue("产品编码"), SqlStorageType.Sqlvarchar).ColIndex = 6;
|
header.AddChild("FMATERIALNAME2", new LocaleValue("产品名称"), SqlStorageType.Sqlvarchar).ColIndex = 7;
|
header.AddChild("FSPECIFICATION2", new LocaleValue("产品规格"), SqlStorageType.Sqlvarchar).ColIndex = 8;
|
header.AddChild("FMATERIALNUMBER", new LocaleValue("原材料编码", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 9;
|
header.AddChild("FMATERIALNAME", new LocaleValue("原材料名称", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 10;
|
header.AddChild("FSPECIFICATION", new LocaleValue("原材料规格", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 11;
|
header.AddChild("FHQTY", new LocaleValue("订单数量", this.Context.UserLocale.LCID),SqlStorageType.SqlDecimal).ColIndex = 11;
|
header.AddChild("FREALQTY", new LocaleValue("实际到货数量", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 11;
|
header.AddChild("FRKDATE", new LocaleValue("实际到货时间", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12;
|
header.AddChild("FTYPE", new LocaleValue("类型", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 12;
|
header.AddChild("FJSRATE", new LocaleValue("到货及时率", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal).ColIndex = 12;
|
|
return header;
|
}
|
|
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
{
|
base.BuilderReportSqlAndTempTable(filter, tableName);
|
DynamicObject customFil = filter.FilterParameter.CustomFilter;
|
string FDATE = ""; //提料日期
|
string FProductLine = ""; //生产线
|
string FMoBillNo = ""; //生产订单号
|
string FMaterialID = ""; //物料
|
string FSupplyID = ""; //供应商
|
|
FDATE = customFil["FDATE"]?.ToString();
|
FMoBillNo = customFil["FMoBillNo"]?.ToString();
|
|
if (((DynamicObject)customFil["FMaterialID"]) != null)
|
{
|
FMaterialID = ((DynamicObject)customFil["FMaterialID"])["Id"].ToString();
|
}
|
if (((DynamicObject)customFil["FProductLine"]) != null)
|
{
|
FProductLine = ((DynamicObject)customFil["FProductLine"])["Id"].ToString();
|
}
|
if (((DynamicObject)customFil["FSupplyID"]) != null)
|
{
|
FSupplyID = ((DynamicObject)customFil["FSupplyID"])["Id"].ToString();
|
}
|
string sql = string.Format($"/*dialect*/ EXEC pr_TimelinessRateReport '{tableName}','{FDATE}','{FMoBillNo}','{FProductLine}','{FSupplyID}','{FMaterialID}'");
|
LogHelper.Info(sql);
|
DBUtils.Execute(this.Context, sql);
|
}
|
public override void CloseReport()
|
{
|
|
}
|
}
|
}
|