2025-03-14 10:00:24 +08:00
using Kingdee.BOS.App.Data ;
using Kingdee.BOS.Core.Report ;
using Kingdee.BOS.Orm.DataEntity ;
using Kingdee.BOS ;
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Text ;
using System.Threading.Tasks ;
using Kingdee.BOS.Contracts.Report ;
using Kingdee.BOS.Util ;
using System.ComponentModel ;
2025-03-25 15:06:34 +08:00
using Pilot.Report.Exploitation.Common ;
2025-03-14 10:00:24 +08:00
namespace Pilot.Report.Exploitation.SaleOrderProgress
{
/// <summary>
/// 销售订单进度报表
/// </summary>
[Description("【列表插件】销售订单进度报表【报表】"), HotUpdate]
public class SaleOrderProgressReport : SysReportBaseService
{
/// <summary>
/// 初始化
/// </summary>
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 ;
}
/// <summary>
/// 报表列表头
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override ReportHeader GetReportHeaders ( IRptParams filter )
{
base . GetReportHeaders ( filter ) ;
ReportHeader header = new ReportHeader ( ) ;
header . AddChild ( "ClientName" , new LocaleValue ( "客户名称" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ContractNumber" , new LocaleValue ( "纸质合同号" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ProjectName" , new LocaleValue ( "项目名称" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "Salesman" , new LocaleValue ( "销售员" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ContractPrice" , new LocaleValue ( "合同金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "CollectionName" , new LocaleValue ( "收款负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "CollectionDate" , new LocaleValue ( "收款日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "CollectionAmount" , new LocaleValue ( "收款金额" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "RefundName" , new LocaleValue ( "退款负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "RefundDate" , new LocaleValue ( "退款日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "RefundAmount" , new LocaleValue ( "退款金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "ShipmentsName" , new LocaleValue ( "发货负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ShipmentsDate" , new LocaleValue ( "发货日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ShipmentsNum" , new LocaleValue ( "发货数量" ) , SqlStorageType . SqlBigInt ) ;
header . AddChild ( "ShipmentsAmount" , new LocaleValue ( "发货金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "OutShipmentsName" , new LocaleValue ( "出库负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "OutShipmentsDate" , new LocaleValue ( "出库日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "OutShipmentsNum" , new LocaleValue ( "出库数量" ) , SqlStorageType . SqlBigInt ) ;
header . AddChild ( "OutShipmentsAmount" , new LocaleValue ( "出库金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "SignNum" , new LocaleValue ( "签收数量" ) , SqlStorageType . SqlBigInt ) ;
header . AddChild ( "IsSign" , new LocaleValue ( "是否签收" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ReturnName" , new LocaleValue ( "退货负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ReturnDate" , new LocaleValue ( "退货日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "ReturnNum" , new LocaleValue ( "退货数量" ) , SqlStorageType . SqlBigInt ) ;
header . AddChild ( "ReturnAmount" , new LocaleValue ( "退货金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "BillingName" , new LocaleValue ( "开票负责人" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "BillingNumber" , new LocaleValue ( "发票号码" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "BillingDate" , new LocaleValue ( "开票日期" ) , SqlStorageType . Sqlnvarchar ) ;
header . AddChild ( "BillingNum" , new LocaleValue ( "开票数量" ) , SqlStorageType . SqlBigInt ) ;
header . AddChild ( "BillingAmount" , new LocaleValue ( "开票金额" ) , SqlStorageType . SqlDecimal ) ;
header . AddChild ( "NotCollectedAmount" , new LocaleValue ( "销售订单未收款金额" ) , SqlStorageType . SqlDecimal ) ;
foreach ( var item in header . GetChilds ( ) )
{
item . Width = 160 ;
}
return header ;
}
/// <summary>
/// 显示报表数据
/// </summary>
/// <param name="filter"></param>
/// <param name="tableName"></param>
public override void BuilderReportSqlAndTempTable ( IRptParams filter , string tableName )
{
DynamicObject customFilter = filter . FilterParameter . CustomFilter ;
// 日期
string fDate = customFilter [ "FDate" ] ? . ToString ( ) ;
// 结束日期
string fEndDate = customFilter [ "FEndDate" ] ? . ToString ( ) ;
// 纸质合同号
string fPaperContract = customFilter [ "FPaperContract" ] ? . ToString ( ) ;
// 组织
var organizationList = ( customFilter [ "FZuZhi" ] as DynamicObjectCollection ) ? . Select ( n = > ( n [ "FZuZhi" ] as DynamicObject ) [ "ID" ] . ToString ( ) ) . ToList ( ) ;
var organization = organizationList = = null ? "" : ( string . Join ( "," , organizationList ) ) ;
base . BuilderReportSqlAndTempTable ( filter , tableName ) ;
string sql = string . Format ( @ "/*dialect*/
Select
A . FDate as ' Date ' ,
ISNULL ( B . FNAME , ' ' ) as ' ClientName ' , - - 客 户 名 称
A . F_contractnumber as ' ContractNumber ' , - - 纸 质 合 同 号
ISNULL ( C . FNAME , ' ' ) as ' ProjectName ' , - - 项 目 名 称
ISNULL ( D . FNAME , ' ' ) as ' Salesman ' , - - 销 售 员
AA . FBILLALLAMOUNT_LC as ' ContractPrice ' , - - 合 同 金 额
ISNULL ( E5 . FNAME , ' ' ) as ' CollectionName ' , - - 收 款 负 责 人
ISNULL ( E5 . FDate , ' ' ) as ' CollectionDate ' , - - 收 款 日 期
ISNULL ( E5 . FREALRECAMOUNT , 0 ) as ' CollectionAmount ' , - - 收 款 金 额
ISNULL ( E6 . FNAME , ' ' ) as ' RefundName ' , - - 退 款 负 责 人
ISNULL ( E6 . FDate , ' ' ) as ' RefundDate ' , - - 退 款 日 期
ISNULL ( E6 . FREALREFUNDAMOUNT , 0 ) as ' RefundAmount ' , - - 退 款 金 额
ISNULL ( E1 . FName , ' ' ) as ' ShipmentsName ' , - - 发 货 负 责 人
ISNULL ( E1 . FDate , ' ' ) as ' ShipmentsDate ' , - - 发 货 日 期
ISNULL ( E1 . FPriceUnitQty , 0 ) as ' ShipmentsNum ' , - - 发 货 数 量
ISNULL ( E1 . FALLAMOUNT_LC , 0 ) as ' ShipmentsAmount ' , - - 发 货 金 额
ISNULL ( E2 . FNAME , ' ' ) as ' OutShipmentsName ' , - - 出 库 负 责 人
ISNULL ( E2 . FDate , ' ' ) as ' OutShipmentsDate ' , - - 出 库 日 期
ISNULL ( E2 . FREALQTY , 0 ) as ' OutShipmentsNum ' , - - 出 库 数 量
ISNULL ( E2 . FALLAMOUNT_LC , 0 ) as ' OutShipmentsAmount ' , - - 出 库 金 额
ISNULL ( E2 . FSIGNQTY , 0 ) as ' SignNum ' , - - 签 收 数 量
CASE WHEN E2 . FTRACESTATUS = 3 THEN ' 已 签 收 '
ELSE ' 未 签 收 '
END as ' IsSign ' , - - 是 否 签 收
ISNULL ( E3 . FNAME , ' ' ) as ' ReturnName ' , - - 退 货 负 责 人
ISNULL ( E3 . FDate , ' ' ) as ' ReturnDate ' , - - 退 货 日 期
ISNULL ( E3 . FPriceUnitQty , 0 ) as ' ReturnNum ' , - - 退 货 数 量
ISNULL ( E3 . FALLAMOUNT_LC , 0 ) as ' ReturnAmount ' , - - 退 货 金 额
ISNULL ( E4 . FNAME , ' ' ) as ' BillingName ' , - - 开 票 负 责 人
ISNULL ( E4 . F_INVOICENUMBER , ' ' ) as ' BillingNumber ' , - - 发 票 号 码
ISNULL ( E4 . FDate , ' ' ) as ' BillingDate ' , - - 开 票 日 期
ISNULL ( E4 . FPriceQty , 0 ) as ' BillingNum ' , - - 开 票 数 量
ISNULL ( E4 . FALLAMOUNT , 0 ) as ' BillingAmount ' - - 开 票 金 额
- - 0 as ' NotCollectedAmount ' - - 销 售 订 单 未 收 款 金 额
INTO # TEMPTABLE1
From
T_SAL_ORDER A - - 销 售 顶 大
JOIN
T_SAL_ORDERFIN AA - - 销 售 订 单 - 财 务
on A . FID = AA . FID
LEFT JOIN
( SELECT A2 . FDATAVALUE , A1 . * FROM
( Select q2 . FNAME , q1 . * From
T_BD_CUSTOMER q1
JOIN
T_BD_CUSTOMER_L q2
on q1 . FCUSTID = q2 . FCUSTID ) A1
LEFT JOIN
( Select A . FMASTERID , B . FDATAVALUE From T_BAS_ASSISTANTDATAENTRY A
JOIN T_BAS_ASSISTANTDATAENTRY_L B on A . FENTRYID = B . FENTRYID
Where A . FID = ' 673 af6092e2877 '
AND A . FDocumentStatus = 'C'
AND A . FForbidStatus = 'A' ) A2
on A1 . F_CREDITCLASSIFICATION = A2 . FMASTERID ) B - - 客 户 表
on A . FCustId = B . FCUSTID
LEFT JOIN
( Select q2 . FNAME , q1 . * From
T_BAS_PREBDONE q1
JOIN
T_BAS_PREBDONE_L q2
on q1 . FID = q2 . FID
Where q2 . FLocaleID = 2052
AND q1 . FDocumentStatus = 'C'
AND q1 . FForbidStatus = 'A' ) C - - 工 程 项 目 ( 预 置 1 ) 项 目 表
on C . FID = A . F_projectname
LEFT JOIN
( Select q2 . FNAME , q1 . * From
V_BD_SALESMAN q1
LEFT JOIN
V_BD_SALESMAN_L q2
on q1 . fid = q2 . fid
Where q2 . FLOCALEID = 2052
AND q1 . FDocumentStatus = 'C'
AND q1 . FForbidStatus = 'A'
AND q1 . FForbiddenStatus = '0' ) D - - 销 售 员 表
on A . FSalerId = D . fid
LEFT JOIN
( Select R1 . FSBILLID , STRING_AGG ( R1 . FNAME , ',' ) as ' FName ' , SUM ( R1 . FALLAMOUNT_LC ) as ' FALLAMOUNT_LC ' , SUM ( R1 . FPriceUnitQty ) as ' FPriceUnitQty ' ,
STRING_AGG ( CONVERT ( nvarchar , R1 . FDATE , 23 ) , ',' ) as ' FDate ' From ( SELECT W2 . FSBILLID , W1 . FNAME , SUM ( W1 . FALLAMOUNT_LC ) as ' FALLAMOUNT_LC ' ,
SUM ( W1 . FPriceUnitQty ) as ' FPriceUnitQty ' , STRING_AGG ( CONVERT ( nvarchar , W1 . FDATE , 23 ) , ',' ) as ' FDate ' FROM ( Select q2 . FALLAMOUNT_LC ,
q2 . FENTRYID , q1 . FDATE , q3 . FNAME , q2 . FPriceUnitQty From T_SAL_DELIVERYNOTICE q1 JOIN T_SAL_DELIVERYNOTICEENTRY_F q2 on q1 . FID = q2 . FID JOIN
T_SEC_USER q3 on q1 . FCreatorId = q3 . FUSERID Where q1 . FDocumentStatus = 'C' AND q3 . FForbidStatus = 'A' AND q1 . FCancelStatus = 'A' )
W1 JOIN T_SAL_DELIVERYNOTICEENTRY_LK W2 on W1 . FENTRYID = W2 . FENTRYID Where W2 . FSTABLENAME = ' T_SAL_ORDERENTRY '
GROUP BY W2 . FSBILLID , W1 . FNAME ) R1 GROUP BY R1 . FSBILLID ) E1 - - 发 货 通 知 单 表
on A . FID = E1 . FSBILLID
LEFT JOIN
( SELECT QQ . FSBILLID , QQ . FTRACESTATUS , SUM ( QQ . FREALQTY ) ' FREALQTY ' , SUM ( QQ . FSIGNQTY ) ' FSIGNQTY ' , SUM ( QQ . FALLAMOUNT_LC ) ' FALLAMOUNT_LC ' ,
STRING_AGG ( CONVERT ( nvarchar , QQ . FDATE , 23 ) , ',' ) ' FDate ' , STRING_AGG ( QQ . FNAME , ',' ) as ' FNAME ' FROM ( SELECT Q . FSBILLID , Q . FTRACESTATUS , Q . FNAME ,
SUM ( Q . FREALQTY ) ' FREALQTY ' , SUM ( Q . FSIGNQTY ) ' FSIGNQTY ' , SUM ( Q . FALLAMOUNT_LC ) ' FALLAMOUNT_LC ' , STRING_AGG ( CONVERT ( nvarchar , Q . FDATE , 23 ) , ',' ) ' FDate '
FROM ( Select q5 . FSBILLID , q1 . FDate , q3 . FNAME , q2 . FRealQty , q4 . FALLAMOUNT_LC , q7 . FTraceStatus , q6 . FSIGNQTY From T_SAL_OUTSTOCK q1 JOIN T_SEC_USER q3
on q1 . FCreatorId = q3 . FUSERID JOIN T_SAL_OUTSTOCKENTRY q2 on q1 . FID = q2 . FID JOIN T_SAL_OUTSTOCKENTRY_F q4 on q2 . FENTRYID = q4 . FENTRYID JOIN T_SAL_OUTSTOCKENTRY_LK q5
on q5 . FENTRYID = q2 . FENTRYID JOIN T_SAL_OUTSTOCKENTRY_R q6 on q2 . FENTRYID = q6 . FENTRYID LEFT JOIN T_SAL_OUTSTOCKTRACE q7 on q1 . FID = q7 . FID
Where q1 . FDocumentStatus = 'C' AND q3 . FForbidStatus = 'A' AND q1 . FCancelStatus = 'A' ) Q GROUP BY Q . FSBILLID , Q . FTRACESTATUS , Q . FNAME ) QQ GROUP BY QQ . FSBILLID , QQ . FTRACESTATUS ) E2 - - 销 售 出 库 单
on A . FID = E2 . FSBILLID
LEFT JOIN
( SELECT AA . FSBILLID , STRING_AGG ( AA . FNAME , ',' ) ' FNAME ' , STRING_AGG ( CONVERT ( nvarchar , AA . FDATE , 23 ) , ',' ) ' FDate ' , SUM ( AA . FPriceUnitQty ) ' FPriceUnitQty ' ,
SUM ( AA . FALLAMOUNT_LC ) ' FALLAMOUNT_LC ' FROM ( Select a7 . FSBILLID , a3 . FNAME , STRING_AGG ( CONVERT ( nvarchar , a1 . FDATE , 23 ) , ',' ) ' FDate ' ,
SUM ( a2 . FPriceUnitQty ) ' FPriceUnitQty ' , SUM ( a2 . FALLAMOUNT_LC ) ' FALLAMOUNT_LC ' From T_SAL_RETURNSTOCK a1 JOIN T_SAL_RETURNSTOCKENTRY_F a2
on a1 . FID = a2 . FID JOIN T_SEC_USER a3 on a1 . FCreatorId = a3 . FUSERID JOIN T_SAL_RETURNSTOCKENTRY_LK a5
on a2 . FENTRYID = a5 . FENTRYID JOIN T_SAL_RETURNNOTICEENTRY a6 on a5 . FSID = a6 . FENTRYID JOIN T_SAL_RETURNNOTICEENTRY_LK a7 on a6 . FENTRYID = a7 . FENTRYID
Where a5 . FSTABLENAME = ' T_SAL_RETURNNOTICEENTRY ' AND a7 . FSTABLENAME = ' T_SAL_ORDERENTRY ' GROUP BY a7 . FSBILLID , a3 . FNAME ) AA GROUP BY AA . FSBILLID ) E3 - - 退 货 订 单 表
on A . FID = E3 . FSBILLID
LEFT JOIN
( SELECT WW . FSBILLID , WW . F_INVOICENUMBER , STRING_AGG ( WW . FNAME , ',' ) as ' FNAME ' , SUM ( WW . FALLAMOUNT ) as ' FALLAMOUNT ' , SUM ( WW . FPriceQty ) as ' FPriceQty ' ,
STRING_AGG ( CONVERT ( nvarchar , WW . FDATE , 23 ) , ',' ) as ' FDate ' FROM ( SELECT W2 . FSBILLID , W1 . FNAME , W1 . F_INVOICENUMBER , SUM ( W1 . FALLAMOUNT ) as ' FALLAMOUNT ' ,
SUM ( W1 . FPriceQty ) as ' FPriceQty ' , STRING_AGG ( CONVERT ( nvarchar , W1 . FDATE , 23 ) , ',' ) as ' FDate ' FROM ( Select B1 . FALLAMOUNT , B1 . FENTRYID , B1 . FOPENAMOUNTFOR ,
A1 . FDATE , A1 . F_InvoiceNumber , C1 . FNAME , B1 . FPriceQty From T_AR_RECEIVABLE A1 JOIN T_AR_RECEIVABLEENTRY B1 on A1 . FID = B1 . FID JOIN T_SEC_USER C1 on
A1 . FCreatorId = C1 . FUSERID Where A1 . FDocumentStatus = 'C' AND B1 . FORDERNUMBER ! = ' ' AND A1 . F_GeneralInvoice ! = 'Y' ) W1 JOIN T_AR_RECEIVABLEENTRY_LK W2
on W1 . FENTRYID = W2 . FENTRYID Where W2 . FSTABLENAME = ' T_SAL_ORDERENTRY ' GROUP BY W2 . FSBILLID , W1 . FNAME , W1 . F_INVOICENUMBER ) WW GROUP BY WW . FSBILLID , WW . F_INVOICENUMBER ) E4 - - 应 收 单 表
on A . FID = E4 . FSBILLID
LEFT JOIN
( Select a1 . FSBILLID , a3 . FID , a4 . FNAME , CONVERT ( nvarchar , a3 . FDATE , 23 ) as FDate , SUM ( a3 . FREALRECAMOUNT ) as ' FREALRECAMOUNT '
From T_AR_RECEIVEBILLSRCENTRY_LK a1 JOIN T_AR_RECEIVEBILLENTRY a2 on a1 . FENTRYID = a2 . FENTRYID
JOIN T_AR_RECEIVEBILL a3 on a2 . FID = a3 . FID JOIN T_SEC_USER a4 on a3 . FCreatorId = a4 . FUSERID
Where a1 . FSTABLENAME = ' T_SAL_ORDERPLAN ' AND a3 . FDOCUMENTSTATUS = 'C' Group by a1 . FSBILLID , a3 . FID , a4 . FNAME , a3 . FDATE ) E5
on E5 . FSBILLID = A . FID
LEFT JOIN
( Select a1 . FSBILLID , a3 . FID , a4 . FNAME , CONVERT ( nvarchar , a3 . FDATE , 23 ) as FDate , SUM ( a3 . FREALREFUNDAMOUNT ) as ' FREALREFUNDAMOUNT '
From T_AR_REFUNDBILLSRCENTRY_LK a1 JOIN T_AR_REFUNDBILLENTRY a2 on a1 . FENTRYID = a2 . FENTRYID
JOIN T_AR_REFUNDBILL a3 on a2 . FID = a3 . FID JOIN T_SEC_USER a4 on a3 . FCREATERID = a4 . FUSERID
Where a1 . FSTABLENAME = ' T_AR_RECEIVEBILLENTRY ' AND a3 . FDOCUMENTSTATUS = 'C' Group by a1 . FSBILLID , a3 . FID , a4 . FNAME , a3 . FDATE ) E6
on E5 . FID = E6 . FSBILLID
Where A . FDocumentStatus = 'C' ");
if ( ! string . IsNullOrEmpty ( organization ) )
{
sql + = string . Format ( @" AND A.FSaleOrgId in ({0})" , organization ) ;
}
sql + = string . Format ( @";" ) ;
sql + = string . Format ( @"/*dialect*/Select *,(ContractPrice-CollectionAmount-RefundAmount) as'NotCollectedAmount' INTO #TEMPTABLE2 From #TEMPTABLE1 Where 1=1" ) ;
if ( ! string . IsNullOrEmpty ( fDate ) )
{
sql + = string . Format ( @" AND DATE >= '{0}'" , fDate ) ;
}
if ( ! string . IsNullOrEmpty ( fEndDate ) )
{
sql + = string . Format ( @" AND DATE <= '{0}'" , fEndDate ) ;
}
if ( ! string . IsNullOrEmpty ( fPaperContract ) )
{
sql + = string . Format ( @" AND ContractNumber like '%{0}%'" , fPaperContract ) ;
}
sql + = string . Format ( @ "/*dialect*/
Select * INTO # TEMPTABLE3 From # TEMPTABLE2 UNION ALL Select
' ',' 合 计 : ',' ',' ',' ' , SUM ( ContractPrice ) , ' ',' ' , SUM ( CollectionAmount ) , ' ',' ' ,
SUM ( RefundAmount ) , ' ',' ' , SUM ( ShipmentsNum ) , SUM ( ShipmentsAmount ) , ' ',' ' ,
SUM ( OutShipmentsNum ) , SUM ( OutShipmentsAmount ) , SUM ( SignNum ) , ' ',' ',' ' ,
SUM ( ReturnNum ) , SUM ( ReturnAmount ) , ' ',' ',' ' , SUM ( BillingAmount ) ,
SUM ( BillingAmount ) , SUM ( NotCollectedAmount ) FROM # TEMPTABLE2 ");
sql + = string . Format ( @";" ) ;
sql + = string . Format ( @ "/*dialect*/
Select
* ,
ROW_NUMBER ( ) OVER ( ORDER BY Date DESC ) AS FID ,
ROW_NUMBER ( ) OVER ( ORDER BY Date DESC ) AS FIDENTITYID
INTO { 0 }
From
# TEMPTABLE3 ", tableName);
2025-03-25 15:06:34 +08:00
Loghelp . Log ( "销售订单进度报表" ) ;
Loghelp . Log ( sql ) ;
2025-03-14 10:00:24 +08:00
DBUtils . Execute ( this . Context , sql ) ;
}
/// <summary>
/// 获取前端组件转换过滤条件
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override ReportTitles GetReportTitles ( IRptParams filter )
{
ReportTitles reportTitles = new ReportTitles ( ) ;
DynamicObject customFilter = filter . FilterParameter . CustomFilter ;
if ( customFilter ! = null )
{
// 下单时间
string fDate = customFilter [ "FDate" ] ? . ToString ( ) ;
// 下单时间
string fEndDate = customFilter [ "FEndDate" ] ? . ToString ( ) ;
// 纸质合同号
string fPaperContract = customFilter [ "FPaperContract" ] ? . ToString ( ) ;
// 组织
var organizationList = ( customFilter [ "FZuZhi" ] as DynamicObjectCollection ) ? . Select ( n = > ( n [ "FZuZhi" ] as DynamicObject ) [ "Name" ] . ToString ( ) ) . ToList ( ) ;
//这里是报表页面的标识
reportTitles . AddTitle ( "FPaperContract" , fPaperContract = = null ? "" : fPaperContract ) ;
reportTitles . AddTitle ( "FDate" , fDate = = null ? "" : Convert . ToDateTime ( fDate ) . ToString ( "yyyy-MM-dd" ) ) ;
reportTitles . AddTitle ( "FEndDate" , fEndDate = = null ? "" : Convert . ToDateTime ( fEndDate ) . ToString ( "yyyy-MM-dd" ) ) ;
reportTitles . AddTitle ( "FZuZhi" , organizationList = = null ? "" : string . Join ( "," , organizationList ) ) ;
}
return reportTitles ;
}
}
}