From 99b85a43de68895a9f73a28768e273b78a52975e Mon Sep 17 00:00:00 2001
From: 王 垚 <1402714037@qq.com>
Date: 星期五, 18 十二月 2020 13:33:04 +0800
Subject: [PATCH] 提料计划报表代码提交
---
src/BLL/Demo.Report/PRD/prd_ExtractionPlanDetail.cs | 193 ++++++++++++++++++++++++++++++++++++++++++++++++
src/BLL/Demo.Report/Demo.Report.csproj | 2
2 files changed, 195 insertions(+), 0 deletions(-)
diff --git a/src/BLL/Demo.Report/Demo.Report.csproj b/src/BLL/Demo.Report/Demo.Report.csproj
index cba82ec..d4c0884 100644
--- a/src/BLL/Demo.Report/Demo.Report.csproj
+++ b/src/BLL/Demo.Report/Demo.Report.csproj
@@ -122,10 +122,12 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="PRD\prd_ExtractionPlanDetail.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
+ <ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
diff --git a/src/BLL/Demo.Report/PRD/prd_ExtractionPlanDetail.cs b/src/BLL/Demo.Report/PRD/prd_ExtractionPlanDetail.cs
new file mode 100644
index 0000000..c22efe3
--- /dev/null
+++ b/src/BLL/Demo.Report/PRD/prd_ExtractionPlanDetail.cs
@@ -0,0 +1,193 @@
+锘縰sing 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_ExtractionPlanDetail : SysReportBaseService
+ {
+ //鍒濆鍖�
+ public override void Initialize()
+ {
+ base.Initialize();
+ // 绠�鍗曡处琛ㄧ被鍨嬶細鏅�氥�佹爲褰€�佸垎椤�
+ this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
+ this.IsCreateTempTableByPlugin = true;
+ //鍙栦唬鐮佷腑閰嶇疆鐨勫垪
+ this.ReportProperty.IsUIDesignerColumns = false;
+ //鏄惁鍒嗙粍姹囨��
+ this.ReportProperty.IsGroupSummary = true;
+ }
+ //缁勭粐鍚嶇О
+ private string GetMultiOrgnNameValues(string orgIdStrings)
+ {
+ List<string> list = new List<string>();
+ string result = string.Empty;
+ if (orgIdStrings.Trim().Length > 0)
+ {
+ IQueryService service = Kingdee.BOS.Contracts.ServiceFactory.GetService<IQueryService>(base.Context);
+ QueryBuilderParemeter para = new QueryBuilderParemeter
+ {
+ FormId = "ORG_Organizations",
+ SelectItems = SelectorItemInfo.CreateItems("FNAME"),
+ FilterClauseWihtKey = string.Format(" FORGID IN ({0}) AND FLOCALEID={1}", orgIdStrings, base.Context.UserLocale.LCID)
+ };
+ DynamicObjectCollection dynamicObjectCollection = service.GetDynamicObjectCollection(base.Context, para, null);
+ foreach (DynamicObject current in dynamicObjectCollection)
+ {
+ list.Add(current["FNAME"].ToString());
+ }
+ if (list.Count > 0)
+ {
+ result = string.Join(",", list.ToArray());
+ }
+ }
+ return result;
+ }
+
+ /*
+ //鑾峰彇杩囨护鏉′欢淇℃伅(鏋勯�犲崟鎹俊鎭�)
+ public override ReportTitles GetReportTitles(IRptParams filter)
+ {
+ ReportTitles reportTitles = new ReportTitles();
+ DynamicObject customFilter = filter.FilterParameter.CustomFilter;
+ if (customFilter != null)
+ {
+ string multiOrgnNameValues = this.GetMultiOrgnNameValues(customFilter["F_PAEZ_OrgId"].ToString());
+ string startValue = (customFilter["FOrderStartDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FOrderStartDate"]).ToString("yyyy-MM-dd");
+ string endValue = (customFilter["FOrderEndDate"] == null) ? string.Empty : Convert.ToDateTime(customFilter["FOrderEndDate"]).ToString("yyyy-MM-dd");
+ string BillNo = (Convert.ToString(customFilter["F_PoOrderBillNo"]) == "") ? string.Empty : customFilter["F_PoOrderBillNo"].ToString();
+ string baseDataNameValue = this.GetBaseDataNameValue(customFilter["F_PAEZ_WLID"] as DynamicObjectCollection);
+ string baseDataNameValue3 = this.GetBaseDataNameValue(customFilter["F_PAEZ_SuppId"] as DynamicObjectCollection);
+ reportTitles.AddTitle("F_PAEZ_Org", multiOrgnNameValues);
+ reportTitles.AddTitle("F_PAEZ_Date", startValue + "-" + endValue);
+ reportTitles.AddTitle("F_PAEZ_BillNo", BillNo);
+ reportTitles.AddTitle("F_PAEZ_WLName", baseDataNameValue);
+ reportTitles.AddTitle("F_PAEZ_GYS", baseDataNameValue3);
+ }
+ return reportTitles;
+ }
+
+ */
+ //鍩虹璧勬枡鍚嶇О
+ private string GetBaseDataNameValue(DynamicObjectCollection dyobj)
+ {
+ string name = "";
+ foreach (DynamicObject dynbj in dyobj)
+ {
+ if (dynbj != null || !dynbj.DynamicObjectType.Properties.Contains("Name"))
+ {
+ DynamicObject dynbj2 = (DynamicObject)dynbj[2];
+ name = name + ",'" + dynbj2["Name"].ToString() + "'";
+ }
+ }
+ if (name.Length > 0)
+ {
+ name = name.Substring(1, name.Length - 1);
+ }
+ return name;
+ }
+ //璁剧疆鍗曟嵁鍒�
+ public override ReportHeader GetReportHeaders(IRptParams filter)
+ {
+ ReportHeader header = new ReportHeader();
+ ReportHeader headerch = new ReportHeader();
+ header.AddChild("FRogNUMBER", new LocaleValue("渚涘簲鍟嗕俊鎭�&閲囪喘缁勭粐", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
+ header.AddChild("FNAME", new LocaleValue("渚涘簲鍟嗕俊鎭�&渚涘簲鍟�", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
+ header.AddChild("FNUMBER", new LocaleValue("渚涘簲鍟嗕俊鎭�&鐗╂枡", this.Context.UserLocale.LCID), SqlStorageType.Sqlvarchar);
+ DataSet ds = DBServiceHelper.ExecuteDataSet(Context, "/*dialect*/select distinct convert(nvarchar(50),FHDATE,111) FHDATE from Cg_PODemandPlanBillMain ");
+ 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() + "", this.Context.UserLocale.LCID), SqlStorageType.SqlDecimal);
+ }
+ }
+ return header;
+ }
+ //鍒涘缓涓存椂鎶ヨ〃
+ public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
+ {
+ string Filter = GetFilterWhere(filter);
+ string seqFld = string.Format(base.KSQL_SEQ, OrderColumn(filter));
+ // 鍙栨暟SQL
+ // FID, FEntryId, 缂栧彿銆佺姸鎬併�佺墿鏂欍�佹暟閲忋�佸崟浣嶃�佸崟浣嶇簿搴︺�佸崟浠枫�佷环绋庡悎璁� ,t1M_L.FNAME as FMaterialName
+ string sql = string.Format(@"/*dialect*/
+ exec 鎻愭枡璁″垝鎶ヨ〃 '{0}','{1}','{2}'
+ ",
+ seqFld,
+ tableName
+ , Filter
+ );
+ DBUtils.ExecuteDynamicObject(this.Context, sql);
+ }
+ ////鑾峰彇杩囨护鏉′欢
+ private string GetFilterWhere(IRptParams filter)
+ {
+ DynamicObject customFilter = filter.FilterParameter.CustomFilter;
+ StringBuilder strwhere = new StringBuilder();
+ strwhere.AppendLine("Where 1=1 ");
+ //鏃ユ湡
+ 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");
+ strwhere.AppendLine(string.Format(" AND FHDate>=''{0}'' and FHDate<=''{1}'' ", startValue, endValue));
+ //鐗╂枡
+ var baseDataNameValue = customFilter["FMATERIALID"];
+ string MaterailName = baseDataNameValue == null
+ ? " " : string.Format(" AND B.FHMATERID IN ({0}) ", (customFilter["FMATERIALID"] as DynamicObject)["Id"].ToString());
+ strwhere.AppendLine(MaterailName);
+ //缁勭粐
+ var org = customFilter["FOrgId"] == null
+ ? " " : string.Format(" AND FPURCHASEORGID IN ({0}) ", (customFilter["FOrgId"] as DynamicObject)["Id"].ToString());
+ strwhere.AppendLine(org);
+ //渚涘簲鍟�
+ var baseSuppName = customFilter["FSUPPLIERID"];
+ string SuppName = baseSuppName == null
+ ? " " : string.Format(" AND a.FSUPPLIERID IN ({0}) ", (customFilter["FSUPPLIERID"] as DynamicObject)["Id"].ToString());
+ strwhere.AppendLine(SuppName);
+ string text2 = string.IsNullOrWhiteSpace(filter.FilterParameter.FilterString) ? " " : " AND " + filter.FilterParameter.FilterString.Replace("{ts", "").Replace("}", "");
+ strwhere.AppendLine(text2);
+ return strwhere.ToString();
+ }
+ /// 璁剧疆姹囨�诲垪淇℃伅
+ public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
+ {
+ var result = base.GetSummaryColumnInfo(filter);
+ //result.Add(new SummaryField(dr[0].ToString(), Kingdee.BOS.Core.Enums.BOSEnums.Enu_SummaryType.SUM));
+ return result;
+ }
+ ///鎺掑簭璇彞
+ private string OrderColumn(IRptParams filter)
+ {
+ string OrderBy = "";
+ string datasort = Convert.ToString(filter.FilterParameter.SortString);//鎺掑簭
+ if (datasort != "")
+ {
+ OrderBy = " " + datasort + " ";
+ }
+ else
+ {
+ OrderBy = " a.FID ";
+ }
+ return OrderBy;
+ }
+ }
+}
--
Gitblit v1.9.1