using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; 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.Util; namespace GZ_LTHReportForms.YingShouBaoBiao { [Description("应收情况概况表按(合同性质)区分"), HotUpdate] public class YingShouHTXZ : SysReportBaseService { //对报表进行初始化 public override void Initialize() { base.Initialize(); //设置报表类型为普通类型 this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL; //设置是否通过插件创建临时表 this.IsCreateTempTableByPlugin = true; //设置是否分组汇总 this.ReportProperty.IsGroupSummary = true; } //设置单据列 public override ReportHeader GetReportHeaders(IRptParams filter) { //创建表头对象 ReportHeader header = new ReportHeader(); //获取上一年十二月 DateTime lastYearDecember = new DateTime(DateTime.Now.Year - 1, 12, 1); string formattedDate = lastYearDecember.ToString("yyyy-MM"); //获取当前月份 DateTime thisYearDecember = DateTime.Now; string thisDate = thisYearDecember.ToString("yyyy-MM"); header.AddChild("FHTXZ", new LocaleValue("合同性质", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 0; header.AddChild("FJSLX", new LocaleValue("结算类型", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar).ColIndex = 1; var header1 = header.AddChild(formattedDate + "情况", new LocaleValue(formattedDate + "情况")); header1.AddChild("期初已出货欠款汇总", new LocaleValue("期初已出货欠款汇总", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); header1.AddChild("期初已到期欠款", new LocaleValue("期初已到期欠款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); var header2 = header.AddChild(thisDate + "情况", new LocaleValue(thisDate + "情况")); header2.AddChild("本月已出货欠款汇总", new LocaleValue("本月已出货欠款汇总", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); header2.AddChild("本月已到期欠款", new LocaleValue("本月已到期欠款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); var header3 = header.AddChild("变化", new LocaleValue("变化")); header3.AddChild("已出货欠款汇总", new LocaleValue("已出货欠款汇总", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); header3.AddChild("已到期欠款", new LocaleValue("已到期欠款", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar); foreach (var item in header.GetChilds()) { item.Width = 200; } return header; } //创建临时表 public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName) { base.BuilderReportSqlAndTempTable(filter, tableName); DynamicObject customFilter = filter.FilterParameter.CustomFilter; //组织 var ZZ = (customFilter["F_YKQC_OrgId_uky"] as DynamicObject); var ZZFID = string.Empty; if (ZZ != null) { ZZFID = ZZ["Id"]?.ToString(); } //结束日期 string FEndDate = (customFilter["F_EDate"] == null) ? string.Empty : Convert.ToDateTime( customFilter["F_EDate"]).ToString("yyyy-MM-dd"); string sql = string.Format(@"/*dialect*/ EXEC YSQKGKHTXZ_GZTH '{0}','{1}' SELECT ROW_NUMBER() OVER (ORDER BY [FHTXZ] DESC) AS FID, ROW_NUMBER() OVER (ORDER BY [FHTXZ] DESC) AS FIDENTITYID, * INTO {2} FROM YinggShouHTXZ_GZTH ", FEndDate,ZZFID,tableName); //执行SQL并动态创建报表 DBUtils.ExecuteDynamicObject(this.Context, sql); } //添加合计列 public override List GetSummaryColumnInfo(IRptParams filter) { var result = base.GetSummaryColumnInfo(filter); result.Add(new SummaryField("期初已出货欠款汇总", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("期初已到期欠款", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("本月已出货欠款汇总", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("本月已到期欠款", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("已出货欠款汇总", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); result.Add(new SummaryField("已到期欠款", Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM)); return result; } } }