李狗蛋 4c8304f04f 1
2025-07-02 10:10:05 +08:00

105 lines
5.3 KiB
C#

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<SummaryField> 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;
}
}
}