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] /// /// 提料计划单简单账表 /// public class prd_YlPlanReport : 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(); header.AddChild("FRogNUMBER", new LocaleValue("生产组织"), SqlStorageType.Sqlvarchar).ColIndex = 0; header.AddChild("FNAME", new LocaleValue("生产车间"), SqlStorageType.Sqlvarchar).ColIndex = 1; header.AddChild("FSumQty", new LocaleValue("合计"), SqlStorageType.Sqlvarchar).ColIndex = 2; //采购订单号、需求单号(销售订单号),采购订单表头摘要,采购订单表体备注,采购员 header.AddChild("FHPOOrderBillNo", new LocaleValue("生产订单号"), SqlStorageType.Sqlvarchar).ColIndex = 3; header.AddChild("FSalOrderNo", new LocaleValue("需求单号"), SqlStorageType.Sqlvarchar).ColIndex = 4; //header.AddChild("F_QIMB_NOTE", new LocaleValue("摘要"), SqlStorageType.Sqlvarchar).ColIndex = 5; //header.AddChild("FNOTE", new LocaleValue("备注"), SqlStorageType.Sqlvarchar).ColIndex = 6; //header.AddChild("FCgddCreaterNmae", new LocaleValue("采购员"), SqlStorageType.Sqlvarchar).ColIndex = 7; header.AddChild("FNUMBER", new LocaleValue("物料编码"), SqlStorageType.Sqlvarchar).ColIndex = 5; header.AddChild("FMATERIALNAME", new LocaleValue("物料名称"), SqlStorageType.Sqlvarchar).ColIndex = 6; header.AddChild("FSPECIFICATION", new LocaleValue("物料规格"), SqlStorageType.Sqlvarchar).ColIndex = 7; //header.AddChild("FBASEUNIT", new LocaleValue("单位"), SqlStorageType.Sqlvarchar); header.AddChild("FPROUNIT", new LocaleValue("计量单位"), SqlStorageType.Sqlvarchar).ColIndex = 8; //header.AddChild("FQTY", new LocaleValue("库存数量"), SqlStorageType.Sqlvarchar).ColIndex = 9; //header.AddChild("FTRANSITQTY", new LocaleValue("在途数量"), SqlStorageType.Sqlvarchar).ColIndex = 10; header.AddChild("TQSum", new LocaleValue("提料拖期明细&提料拖期数量"), SqlStorageType.Sqlvarchar); DataSet ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,23) FHDATE from T_PRD_PRODUCTPLAN where " + date + " and datediff(d,FHDATE,getdate())>0 "); DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { header.AddChild(dr[0].ToString(), new LocaleValue("提料拖期明细&" + dr[0].ToString() + ""), SqlStorageType.SqlDecimal); } } header.AddChild("PlanSum", new LocaleValue("计划明细&合计"), SqlStorageType.Sqlvarchar); DataSet _ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,23) FHDATE from T_PRD_PRODUCTPLAN where " + date + " and datediff(d,FHDATE,getdate())<=0"); dt = _ds.Tables[0]; if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { header.AddChild(dr[0].ToString(), new LocaleValue("计划明细&" + dr[0].ToString() + ""), SqlStorageType.SqlDecimal); } } 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 FBeginDate = Convert.ToString(customFilter["FBeginConveyDate"]); string FEndDate = Convert.ToString(customFilter["FEndConveyDate"]); string FMATERIALID = Convert.ToString(customFilter["FMATERIALID_Id"]); string FSUPPLIERID = Convert.ToString(customFilter["FSUPPLIERID_Id"]); //日期 string startValue = (customFilter["FBeginConveyDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FBeginConveyDate"]).ToString("yyyy/MM/d"); string endValue = (customFilter["FEndConveyDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FEndConveyDate"]).ToString("yyyy/MM/d"); date = string.Format(" FHDate>='{0}' and FHDate<='{1}' ", startValue, endValue); TableName = tableName; // 取数SQL // FID, FEntryId, 编号、状态、物料、数量、单位、单位精度、单价、价税合计 ,t1M_L.FNAME as FMaterialName string sql = string.Format(@"/*dialect*/exec 要料计划报表 '{0}','{1}', '{2}','{3}', '{4}','{5}'", tableName, FOrgId, FBeginDate, FEndDate, FMATERIALID, FSUPPLIERID); LogService.Write("要料计划报表sql:" + sql); DBServiceHelper.Execute(this.Context, sql); } } }