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