Compare commits

...

2 Commits

Author SHA1 Message Date
20c69e3d91 11 2025-05-28 18:06:19 +08:00
2d2a1ae65d 222 2025-05-28 18:05:57 +08:00
3 changed files with 366 additions and 1 deletions

View File

@ -991,6 +991,7 @@
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="YSCBYSJCB_FXB\YSCBYSJCB_FXB.cs" />
<Compile Include="YSKM_KMDM_GXB\YSKM_KMDM_GXB_Save.cs" />
</ItemGroup>
<ItemGroup>
@ -1241,5 +1242,6 @@
<None Include="KingDeeDll\Kingdee.BOS.ScheduleService.InstallLog" />
<None Include="KingDeeDll\Kingdee.BOS.ScheduleService.InstallState" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,319 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
namespace VapeEZDLL.YSCBYSJCB_FXB
{
/// <summary>
/// 销售预算成本与实际成本分析报表
/// </summary>
[Description("销售预算成本与实际成本分析报表"), HotUpdate]
public class YSCBYSJCB_FXB : AbstractDynamicFormPlugIn
{
public override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var showParameter = new DynamicFormShowParameter();
showParameter.FormId = "NAAD_YSSJFXGLK";
showParameter.ParentPageId = this.View.PageId;
showParameter.PageId = this.View.PageId + "_Filter";
showParameter.OpenStyle.CacheId = this.View.PageId;
this.View.ShowForm(showParameter, action => FilterCallBack(action));
}
/// <summary>
/// 过滤框回调方法
/// </summary>
/// <param name="action"></param>
public void FilterCallBack(FormResult action)
{
Dictionary<string, decimal> dicList = new Dictionary<string, decimal>();
if (action.ReturnData != null)
{
string wheresql = " 1=1 ";
FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据
DynamicObject dyObj = returnData.CustomFilter as DynamicObject;
//获取开发日期
var FSDate = Convert.ToString(dyObj["F_DATE"]);
if (!string.IsNullOrWhiteSpace(FSDate))
{
wheresql += $@" and [F_012]>='{FSDate}'";
}
//获取结束日期
var FEDate = Convert.ToString(dyObj["F_YKQC_Date_apv"]);
if (!string.IsNullOrWhiteSpace(FEDate))
{
wheresql += $@" and [F_012] <= '{FEDate}'";
}
//获取合同类型
DynamicObject HTLX = dyObj["F_YKQC_Assistant_dvn"] as DynamicObject;
string HTLXFid = "";
if (HTLX != null)
{
HTLXFid = Convert.ToString(HTLX["ID"]);
wheresql += $@" and [F_059] = '{HTLXFid}'";
}
//获取购货单位
DynamicObject CUST = dyObj["F_YKQC_Base_qtr"] as DynamicObject;
string CustFid = "";
if (CUST != null)
{
CustFid = Convert.ToString(CUST["name"]);
wheresql += $@" and [F_005] = '{CustFid}'";
}
//获取销售员
DynamicObject XSY = dyObj["F_YKQC_Base_tzk"] as DynamicObject;
string XSYFid = "";
if (XSY != null)
{
XSYFid = Convert.ToString(XSY["ID"]);
wheresql += $@" and [销售员ID] = '{XSYFid}'";
}
//获取项目名称
DynamicObject GCXM = dyObj["F_YKQC_Base_uky"] as DynamicObject;
string GCXMFid = "";
if (GCXM != null)
{
GCXMFid = Convert.ToString(GCXM["NAME"]);
wheresql += $@" and [F_009] = '{GCXMFid}'";
}
this.View.Model.DeleteEntryData("F_MBBA_Entity_qtr");
//获取表1
var sql_1 = "";
sql_1 += string.Format($@"/*dialect*/Select * From (Select * From [ReceivablesDetailsTable] where {wheresql}
Union ALL
(Select
null,null,'',null,null,null,null,null,null,null,SUM(F_010),
null,null,null,null,null,null,SUM(F_017),SUM(F_018),SUM(F_019),SUM(F_020),SUM(F_021),SUM(F_022),null
,F_024=(SELECT SUM(F_024) FROM [ReceivablesDetailsTable] hh where {wheresql})
,SUM(F_025),
null
,F_027=(SELECT SUM(F_027) FROM [ReceivablesDetailsTable] hh where {wheresql})
,null,null,null,null,null,null,null,null
,F_036=(
SELECT SUM(F_036)
FROM ( SELECT DISTINCT [ID],hh.ID,F_036
FROM [ReceivablesDetailsTable] hh where {wheresql} ) a )
,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,0,0,0,null,0
, null, null, null, null, null
From
(select distinct [ID],[ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,0 as F_024 ,F_025,
0 as F_027,0 F_036 from
[ReceivablesDetailsTable]
where {wheresql}
) a )) W Order by W.F_001");
var sql_2 = "";
sql_2 += string.Format(@"/*dialect*/Select top 1 * From ReceivablesDetailsTable");
var sql_List2 = DBUtils.ExecuteDynamicObject(Context, sql_2);
//判断是否存在表
if (sql_List2.Count() <= 0)
{
/*this.View.ShowMessage("FSaleOrgId :" + FSaleOrgId + "," + "FSDate:" + FSDate + ","
+ "FEDate :" + FEDate + "," + "HTLXFid:" + HTLXFid + "," + "CustFid:" + CustFid + ","
+ "XSYFid:" + XSYFid + "," + "GCXMFid:" + GCXMFid);*/
string sql = string.Format(@"/*dialect*/EXEC [PR_YingShouMingXi_yuyubo]");
var sqlList = DBUtils.ExecuteDynamicObject(Context, sql);
if (sqlList.Count() > 0)
{
string sql_3 = "";
const int batchSize = 1000; // 每批处理 1000 条数据
}
}
//Loghelp.Log("合计");
//Loghelp.Log(sql_1);
var sql_List1 = DBUtils.ExecuteDynamicObject(Context, sql_1);
int indexi = 0;
foreach (var item in sql_List1)
{
#region
int rowindex = this.View.Model.GetEntryRowCount("F_MBBA_Entity_qtr");
this.View.Model.CreateNewEntryRow("F_MBBA_Entity_qtr");
//1
this.View.Model.SetValue("F_001", item["F_001"], indexi);
//2
this.View.Model.SetValue("F_002", item["F_002"], indexi);
//3
this.View.Model.SetValue("F_003", item["F_003"], indexi);
//4
this.View.Model.SetValue("F_004", item["F_004"], indexi);
//5
this.View.Model.SetValue("F_005", item["F_005"], indexi);
//6
this.View.Model.SetValue("F_006", item["F_006"], indexi);
//7
this.View.Model.SetValue("F_007", item["F_007"], indexi);
//8 indexi
this.View.Model.SetValue("F_008", item["F_008"], indexi);
//9 indexi
this.View.Model.SetValue("F_009", item["F_009"], indexi);
//10 indexi
this.View.Model.SetValue("F_010", item["F_010"], indexi);
//11 indexi
this.View.Model.SetValue("F_011", item["F_011"], indexi);
//12 indexi
this.View.Model.SetValue("F_012", item["F_012"], indexi);
//13 indexi
this.View.Model.SetValue("F_013", item["F_013"], indexi);
//14 indexi
this.View.Model.SetValue("F_FaHuoRiQi", item["F_014"], indexi);
//15 indexi
this.View.Model.SetValue("F_015", item["F_015"], indexi);
//16 indexi
this.View.Model.SetValue("F_FaPiaoRiQi", item["F_016"], indexi);
//17 indexi
this.View.Model.SetValue("F_017", item["F_017"], indexi);
//18 indexi
this.View.Model.SetValue("F_018", item["F_018"], indexi);
//19 indexi
this.View.Model.SetValue("F_019", item["F_019"], indexi);
//20 indexi
this.View.Model.SetValue("F_020", item["F_020"], indexi);
//21 indexi
this.View.Model.SetValue("F_021", item["F_021"], indexi);
//22 indexi
this.View.Model.SetValue("F_022", item["F_022"], indexi);
//23 indexi
this.View.Model.SetValue("F_023", item["F_023"], indexi);
//24 indexi
this.View.Model.SetValue("F_024", item["F_024"], indexi);
//25 indexi
this.View.Model.SetValue("F_025", item["F_025"], indexi);
//26 indexi
this.View.Model.SetValue("F_026", item["F_026"], indexi);
//27 indexi
this.View.Model.SetValue("F_027", item["F_027"], indexi);
//28 indexi
this.View.Model.SetValue("F_028", item["F_028"], indexi);
//29 indexi
this.View.Model.SetValue("F_029", item["F_029"], indexi);
//30 indexi
this.View.Model.SetValue("F_030", item["F_030"], indexi);
//31 indexi
this.View.Model.SetValue("F_031", item["F_031"], indexi);
//32 indexi
this.View.Model.SetValue("F_032", item["F_032"], indexi);
//33 indexi
this.View.Model.SetValue("F_033", item["F_033"], indexi);
//34 indexi
this.View.Model.SetValue("F_034", item["F_034"], indexi);
//35 indexi
this.View.Model.SetValue("F_035", item["F_035"], indexi);
//36 indexi
this.View.Model.SetValue("F_036", item["F_036"], indexi);
//37 indexi
this.View.Model.SetValue("F_037", item["F_037"], indexi);
//38 indexi
this.View.Model.SetValue("F_038", item["F_038"], indexi);
//39 indexi
this.View.Model.SetValue("F_039", item["F_039"], indexi);
//40 indexi
this.View.Model.SetValue("F_040", item["F_040"], indexi);
//41 indexi
this.View.Model.SetValue("F_041", item["F_041"], indexi);
//42 indexi
this.View.Model.SetValue("F_042", item["F_042"], indexi);
//43 indexi
this.View.Model.SetValue("F_043", item["F_043"], indexi);
//44 indexi
this.View.Model.SetValue("F_044", item["F_044"], indexi);
//45 indexi
this.View.Model.SetValue("F_045", item["F_045"], indexi);
//46 indexi
this.View.Model.SetValue("F_046", item["F_046"], indexi);
//47 indexi
this.View.Model.SetValue("F_047", item["F_047"], indexi);
//48 indexi
this.View.Model.SetValue("F_048", item["F_048"], indexi);
//49 indexi
this.View.Model.SetValue("F_049", item["F_049"], indexi);
//50 indexi
this.View.Model.SetValue("F_050", item["F_050"], indexi);
//51 indexi
this.View.Model.SetValue("F_051", item["F_051"], indexi);
//52 indexi
this.View.Model.SetValue("F_052", item["F_052"], indexi);
//53 indexi
this.View.Model.SetValue("F_053", item["F_053"], indexi);
//54 indexi
this.View.Model.SetValue("F_054", item["F_054"], indexi);
//55 indexi
this.View.Model.SetValue("F_055", item["F_055"], indexi);
//56 indexi
this.View.Model.SetValue("F_056", item["F_056"], indexi);
//57 indexi
this.View.Model.SetValue("F_057", item["F_057"], indexi);
//58 indexi
this.View.Model.SetValue("F_058", item["F_058"], indexi);
//59 indexi
this.View.Model.SetValue("F_059", item["F_059"], indexi);
//00 indexi
this.View.Model.SetValue("F_000", item["F_000"], indexi);
//F_FID
this.View.Model.SetValue("F_FID", item["FID"], indexi);
//60
this.View.Model.SetValue("F_060", item["F_060"], indexi);
//61
this.View.Model.SetValue("F_061", item["F_061"], indexi);
//62
this.View.Model.SetValue("F_062", item["F_062"], indexi);
//63
this.View.Model.SetValue("F_063", item["F_063"], indexi);
//64
this.View.Model.SetValue("F_064", item["F_064"], indexi);
//65
this.View.Model.SetValue("F_065", item["F_065"], indexi);
//66
this.View.Model.SetValue("F_066", item["F_066"], indexi);
//67
this.View.Model.SetValue("F_067", item["F_067"], indexi);
//68
this.View.Model.SetValue("F_068", item["F_068"], indexi);
//【订单总额、累计发货金额、累计退货金额、累计开票金额、累计到款金额、应收款合计、未出货总额、实际已出货应收款合计、】的明细需要去重
if (dicList.ContainsKey(item["销售单主键ID"].ToString() + "-" + item["销售员ID"].ToString()))
{
this.View.Model.SetValue("F_010", null, indexi);
this.View.Model.SetValue("F_017", null, indexi);
this.View.Model.SetValue("F_018", null, indexi);
this.View.Model.SetValue("F_019", null, indexi);
this.View.Model.SetValue("F_020", null, indexi);
this.View.Model.SetValue("F_021", null, indexi);
this.View.Model.SetValue("F_022", null, indexi);
this.View.Model.SetValue("F_025", null, indexi);
}
else
dicList.Add(item["销售单主键ID"].ToString() + "-" + item["销售员ID"].ToString(), 0);
indexi++;
#endregion
}
this.View.UpdateView("F_MBBA_Entity_qtr");
}
}
}
}

View File

@ -5,4 +5,48 @@ ON T1.FID = T2.FID
left join T_HS_CALDIMENSIONS T5 on T3.FDIMENSIONID = T5.FDIMENSIONID
left join T_BD_EXPENSE_L T6 on T4.FEXPENSEID = T6.FEXPID and T6.FLOCALEID = 2052
left join T_BD_MATERIAL ff on t2.FMaterialID=ff.FMaterialID
order by T2.FENTRYID desc
order by T2.FENTRYID desc
SELECT T1.FCUSTOMERID,t1.FDOCUMENTSTATUS
, cc.[FBMMATERIALGROUP],SUM(FRealQty) AS FRealQty
,(SELECT SUM(FREALQTY) FROM dbo.T_SAL_RETURNSTOCK tui LEFT JOIN T_SAL_RETURNSTOCKENTRY tuide ON tui.FID=tuide.FID
WHERE tui.FAPPROVEDATE>='2025-05-01' AND tui.FAPPROVEDATE<'2025-06-01' AND tui.FDOCUMENTSTATUS='C'
) ReturnQty
,(
select sum(FALLAMOUNT)
from VHUB_T_BMGStandCost where 1=1 ) as F_YSZCB
,(
select sum(FMATERIALCOSTAMOUNT)
from VHUB_T_BMGStandCost where 1=1 ) as F_YSZCB_Z
,(
select sum(FLABORCOSTAMOUNT)
from VHUB_T_BMGStandCost where 1=1 ) as F_YSCB_G_Z
,(
select sum(FFEEAMOUNT)
from VHUB_T_BMGStandCost where 1=1 ) as F_YSCB_F_Z
FROM
T_SAL_OUTSTOCK T1
INNER join T_SAL_OUTSTOCKENTRY T2 ON T1.FID = T2.FID
INNER JOIN T_BD_MATERIAL matal2 ON T2.FMATERIALID = matal2.FMATERIALID
INNER JOIN VHUB_T_BMMGroupLinkTable cc ON matal2.FMATERIALGROUP = cc.[FMATERIALGROUP]
WHERE T1.FAPPROVEDATE>='2025-05-01' AND t1.FAPPROVEDATE<'2025-06-01'
GROUP BY T1.FCUSTOMERID
, cc.[FBMMATERIALGROUP],t1.FDOCUMENTSTATUS
--select T1.FID, T1.FBILLNO,T2.FENTRYID,t2.FMaterialID,ff.FNUMBER, FMustQty ,t4.*,T6.*
--from T_SAL_OUTSTOCK T1 inner join T_SAL_OUTSTOCKENTRY T2
--inner join T_SAL_OUTSTOCKENTRY_C T3 on T3.FENTRYID = T2.FENTRYID
--ON T1.FID = T2.FID
-- inner join T_SAL_OUTSTOCKENTRY_CE T4 on T3.FENTRYID = T4.FENTRYID
-- left join T_HS_CALDIMENSIONS T5 on T3.FDIMENSIONID = T5.FDIMENSIONID
-- left join T_BD_EXPENSE_L T6 on T4.FEXPENSEID = T6.FEXPID and T6.FLOCALEID = 2052
-- left join T_BD_MATERIAL ff on t2.FMaterialID=ff.FMaterialID
-- WHERE T1.FAPPROVEDATE>='2025-05-01' AND t1.FAPPROVEDATE<'2025-06-01'
--order by T2.FENTRYID desc