1
This commit is contained in:
parent
b595f279c8
commit
c9a8a895d3
127
DDWFHMX.cs
Normal file
127
DDWFHMX.cs
Normal file
@ -0,0 +1,127 @@
|
||||
using Kingdee.BOS.Core.Report;
|
||||
using Kingdee.BOS;
|
||||
using Kingdee.BOS.Util;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Kingdee.BOS.Contracts.Report;
|
||||
using Kingdee.BOS.Orm.DataEntity;
|
||||
using Kingdee.BOS.App.Data;
|
||||
using Kingdee.BOS.Core.Enums;
|
||||
|
||||
namespace GZ_LTHReportForms.ReporyDDWFH
|
||||
{
|
||||
[Description("【报表服务插件】订单为未发货明细表_TH"), HotUpdate]
|
||||
public class DDWFHMX : SysReportBaseService
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
this.ReportProperty.ReportName = new LocaleValue("销售业绩排行榜", base.Context.UserLocale.LCID);
|
||||
this.ReportProperty.IsUIDesignerColumns = false;
|
||||
// 简单账表类型:普通、树形、分页
|
||||
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
|
||||
this.IsCreateTempTableByPlugin = true;
|
||||
//
|
||||
this.IsCreateTempTableByPlugin = true;
|
||||
//
|
||||
this.ReportProperty.IsGroupSummary = true;
|
||||
//
|
||||
this.ReportProperty.SimpleAllCols = false;
|
||||
// 单据主键:两行FID相同,则为同一单的两条分录,单据编号可以不重复显示
|
||||
this.ReportProperty.PrimaryKeyFieldName = "FID";
|
||||
//
|
||||
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;
|
||||
|
||||
// 设置精度控制
|
||||
var list = new List<DecimalControlField>
|
||||
{
|
||||
new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"),
|
||||
new DecimalControlField("FDECIMALS", "ExchangeRate"),
|
||||
new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"),
|
||||
new DecimalControlField("FDECIMALS", "MonthEndExRate"),
|
||||
new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"),
|
||||
new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"),
|
||||
};
|
||||
this.ReportProperty.DecimalControlFieldList = list;
|
||||
}
|
||||
//设置报表表单单据头
|
||||
public override ReportHeader GetReportHeaders(IRptParams filter)
|
||||
{
|
||||
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
||||
|
||||
base.GetReportHeaders(filter);
|
||||
|
||||
ReportHeader header = new ReportHeader();
|
||||
|
||||
header.AddChild("日期", new LocaleValue("日期"), SqlStorageType.SqlDatetime);
|
||||
header.AddChild("制单人", new LocaleValue("制单人"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("区域", new LocaleValue("区域"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("业务员", new LocaleValue("业务员"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("合同号", new LocaleValue("合同号"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("客户", new LocaleValue("客户"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("项目名", new LocaleValue("项目名"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("物料编码", new LocaleValue("物料编码"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("物料名称", new LocaleValue("物料编码"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("规格型号", new LocaleValue("规格型号"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("数量", new LocaleValue("数量"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("含税单价", new LocaleValue("含税单价"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("已发货数量", new LocaleValue("已发货数量"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("已发货金额", new LocaleValue("已发货金额"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("未发货数量", new LocaleValue("未发货数量"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("未发货金额", new LocaleValue("未发货金额"), SqlStorageType.SqlDecimal);
|
||||
header.AddChild("合同类型", new LocaleValue("合同类型"), SqlStorageType.Sqlnvarchar);
|
||||
header.AddChild("发货条件", new LocaleValue("发货条件"), SqlStorageType.Sqlnvarchar);
|
||||
|
||||
foreach (var item in header.GetChilds())
|
||||
{
|
||||
item.Width = 160;
|
||||
}
|
||||
return header;
|
||||
}
|
||||
//查询报表数据
|
||||
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
||||
{
|
||||
base.BuilderReportSqlAndTempTable(filter, tableName);
|
||||
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
|
||||
//获取开始日期
|
||||
string FstartDate = (customFilter["F_SDate"] == null) ? string.Empty : Convert.ToDateTime(
|
||||
customFilter["F_SDate"]).ToString("yyyy-MM-dd");
|
||||
//获取结束日期
|
||||
string FEndDate = (customFilter["F_EDate"] == null) ? string.Empty : Convert.ToDateTime(
|
||||
customFilter["F_EDate"]).ToString("yyyy-MM-dd");
|
||||
var FZZ = customFilter["F_YWZZ"] as DynamicObject;
|
||||
string FSaleOrgId = "";
|
||||
if (FZZ != null)
|
||||
{
|
||||
FSaleOrgId = FZZ["Id"].ToString();
|
||||
}
|
||||
string sql = String.Format(@"/*dialect*/
|
||||
EXEC GZTH_DDWFHMXB '{0}','{1}','{2}'
|
||||
|
||||
SELECT
|
||||
ROW_NUMBER() OVER (ORDER BY [日期]) AS FIDENTITYID,
|
||||
*
|
||||
INTO {3}
|
||||
FROM GZ_DDWFHMX_TH
|
||||
ORDER BY [日期]
|
||||
", FstartDate, FEndDate, FSaleOrgId, tableName);
|
||||
DBUtils.Execute(this.Context, sql);
|
||||
}
|
||||
//设置报表合计列
|
||||
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
|
||||
{
|
||||
var result = base.GetSummaryColumnInfo(filter);
|
||||
result.Add(new SummaryField("数量", BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("含税单价", BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("已发货数量", BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("已发货金额", BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("未发货数量", BOSEnums.Enu_SummaryType.SUM));
|
||||
result.Add(new SummaryField("未发货金额", BOSEnums.Enu_SummaryType.SUM));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
Binary file not shown.
@ -1,20 +1,24 @@
|
||||
CREATE TABLE GZ_DDWFHMX_TH (
|
||||
FId INT,
|
||||
FENTRYID INT,
|
||||
日期 DATE,
|
||||
制单人 VARCHAR(200),
|
||||
区域 VARCHAR(200),
|
||||
业务员 VARCHAR(200),
|
||||
合同号 VARCHAR(200),
|
||||
客户 VARCHAR(200),
|
||||
项目名 VARCHAR(200),
|
||||
物料编码 VARCHAR(200),
|
||||
规格型号 VARCHAR(200),
|
||||
制单人 VARCHAR(5000),
|
||||
区域 VARCHAR(5000),
|
||||
业务员 VARCHAR(5000),
|
||||
合同号 VARCHAR(5000),
|
||||
客户 VARCHAR(5000),
|
||||
项目名 VARCHAR(5000),
|
||||
物料编码 VARCHAR(5000),
|
||||
物料名称 VARCHAR(5000),
|
||||
规格型号 VARCHAR(5000),
|
||||
数量 DECIMAL(23, 10),
|
||||
含税单价 DECIMAL(23, 10),
|
||||
已发货数量 DECIMAL(23, 10),
|
||||
已发货金额 DECIMAL(23, 10),
|
||||
未发货数量 DECIMAL(23, 10),
|
||||
未发货金额 DECIMAL(23, 10),
|
||||
合同类型 VARCHAR(200),
|
||||
发货条件 VARCHAR(200)
|
||||
合同类型 VARCHAR(5000),
|
||||
发货条件 VARCHAR(5000)
|
||||
);
|
||||
|
||||
--DROP TABLE GZ_DDWFHMX_TH
|
@ -1,6 +1,20 @@
|
||||
ALTER PROCEDURE GZTH_DDWFHMXB
|
||||
@FSDate nvarchar(1000),
|
||||
@FEDate nvarchar(1000),
|
||||
@FSaleOrgId nvarchar(1000)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE @ConvertedDate DATE;
|
||||
|
||||
SET @ConvertedDate = CONVERT(DATE, @FEDate, 120);
|
||||
-- 在日期上加一天
|
||||
SET @ConvertedDate = DATEADD(DAY, 1, @ConvertedDate);
|
||||
|
||||
TRUNCATE TABLE GZ_DDWFHMX_TH
|
||||
|
||||
SELECT
|
||||
A.FID AS FID,
|
||||
AE.FENTRYID AS FENTRYID,
|
||||
A.FApproveDate AS '日期',
|
||||
B.FNAME AS '制单人',
|
||||
CASE WHEN ISNULL(E.FNAME,'') = '' THEN ACG.区域
|
||||
@ -17,6 +31,7 @@ AE.FQTY AS '
|
||||
AE_F.FTaxPrice AS '含税单价',
|
||||
HT_L.FDATAVALUE AS '合同类型',
|
||||
A.F_Deliveryconditions AS '发货条件'
|
||||
INTO #TEMP1
|
||||
FROM T_SAL_ORDER A
|
||||
INNER JOIN T_SEC_USER B ON A.FCreatorId = B.FUSERID --用户表
|
||||
INNER JOIN V_BD_SALESMAN_L G ON G.FID = A.FSALERID -- 员工表,销售订单
|
||||
@ -33,3 +48,44 @@ INNER JOIN T_BD_MATERIAL_L WL_L ON WL_L.FMATERIALID = WL.FMATERIALID --
|
||||
INNER JOIN T_SAL_ORDERENTRY_F AE_F ON AE_F.FENTRYID = AE.FENTRYID --销售订单明细-财务表
|
||||
INNER JOIN T_BAS_ASSISTANTDATAENTRY_L HT_L On A.F_Ordercategory = HT_L.FENTRYID --合同类型辅助资料_L表
|
||||
WHERE A.FDocumentStatus = 'C'
|
||||
AND (ISNULL(@FSaleOrgId,'') = '' OR A.FSaleOrgId = @FSaleOrgId)
|
||||
AND (ISNULL(@FSDate,'') = '' OR A.FAPPROVEDATE >= @FSDate)
|
||||
AND (ISNULL(@FEDate,'') = '' OR A.FAPPROVEDATE < @ConvertedDate)
|
||||
|
||||
INSERT INTO GZ_DDWFHMX_TH([FId],[FENTRYID],[日期],[制单人],[区域],[业务员],[合同号],[客户],[项目名],
|
||||
[物料编码],[物料名称],[规格型号],[数量],[含税单价],[合同类型],[发货条件])
|
||||
SELECT * FROM #TEMP1
|
||||
|
||||
|
||||
SELECT
|
||||
E.FID AS FID,
|
||||
D.FENTRYID AS FENTRYID,
|
||||
SUM(B.FQTY) AS '已发货数量',
|
||||
SUM(BF.FAllAmount_LC) AS '已发货金额'
|
||||
INTO #TEMP2
|
||||
FROM T_SAL_DELIVERYNOTICE A
|
||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY B ON A.FID = B.FID
|
||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_F BF ON BF.FENTRYID = B.FENTRYID
|
||||
INNER JOIN T_SAL_DELIVERYNOTICEENTRY_LK C ON B.FENTRYID = C.FENTRYID AND C.FSTABLENAME = 'T_SAL_ORDERENTRY'
|
||||
INNEr JOIN T_SAL_ORDERENTRY D ON C.FSID = D.FENTRYID
|
||||
INNER JOIN T_SAL_ORDER E ON D.FID = E.FID
|
||||
WHERE
|
||||
A.FDOCUMENTSTATUS = 'C'
|
||||
AND (ISNULL(@FSaleOrgId,'') = '' OR E.FSaleOrgId = @FSaleOrgId)
|
||||
AND(ISNULL(@FSDate,'') = '' OR E.FAPPROVEDATE >= @FSDate)
|
||||
AND (ISNULL(@FEDate,'') = '' OR E.FAPPROVEDATE <= @ConvertedDate)
|
||||
GROUP BY E.FID,D.FENTRYID
|
||||
|
||||
UPDATE A
|
||||
SET A.[已发货数量] = B.[已发货数量],A.[已发货金额] = B.[已发货金额]
|
||||
FROM GZ_DDWFHMX_TH A
|
||||
INNER JOIN #TEMP2 B ON A.FId = B.FID AND A.FENTRYID = B.FENTRYID
|
||||
|
||||
UPDATE A
|
||||
SET A.[未发货数量] = ISNULL(A.[数量],0) - ISNULL(A.[已发货数量],0),A.[未发货金额] = B.FALLAMOUNT_LC - ISNULL(A.[已发货金额],0)
|
||||
FROM GZ_DDWFHMX_TH A
|
||||
INNER JOIN T_SAL_ORDERENTRY_F B ON A.FENTRYID = B.FENTRYID
|
||||
|
||||
DROP TABLE #TEMP1,#TEMP2
|
||||
END;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user