提交 def09a8c authored 作者: 谭富强's avatar 谭富强

修改仓租汇总报表过滤条件,显示编码,(仓库、库存组织、库存单位、货主)

上级 aad36715
......@@ -93,9 +93,30 @@ namespace LQKJ.K3.CZXT.Pluglus
// 返回最终拼接后的 name 字符串
return name;
}
private string GetFilterWhere(IRptParams filter)
{
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
StringBuilder strwhere = new StringBuilder();
//仓库
string org = this.GetBaseDataNameValue(customFilter["F_LQKJ_Stocks"] as DynamicObjectCollection);
string ywzzb = string.IsNullOrWhiteSpace(org)
? " " : string.Format(" AND CKBM.FNUMBER IN ({0}) ", org);
strwhere.AppendLine(ywzzb);
//物料
string baseSuppName = this.GetBaseDataNameValue(customFilter["F_LQKJ_Materials"] as DynamicObjectCollection);
string SuppName = string.IsNullOrWhiteSpace(baseSuppName)
? " " : string.Format(" AND W.FNUMBER IN ({0}) ", baseSuppName);
strwhere.AppendLine(SuppName);
string text2 = string.IsNullOrWhiteSpace(filter.FilterParameter.FilterString) ? " " : " AND " + filter.FilterParameter.FilterString.Replace("{ts", "").Replace("}", "");
strwhere.AppendLine(text2);
return strwhere.ToString();
}
//构建单据select 和字段
protected override string BuilderSelectFieldSQL(IRptParams filter)
{
string Filter = GetFilterWhere(filter);
//// 创建组织信息列表
List<string> errorMessagest = new List<string>();
// 创建一个 StringBuilder 来构建 SQL 语句中的 WHERE 子句
......@@ -246,24 +267,28 @@ namespace LQKJ.K3.CZXT.Pluglus
}
receBillTableS.EndInit();
Kingdee.BOS.App.Data.DBUtils.BulkInserts(this.Context, receBillTableS);
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(FSEQ) AS FSEQ,FDate--业务日期
,FSTOCKORGID--库存组织
,FSTOCKID--仓库名称
,FMATERIALID--物料编码
,SUM(CAST(FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY--期初&数量(库存)
,SUM(CAST(FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY--收入&数量(库存)
,SUM(CAST(FSTOCKOUTQTY AS DECIMAL(18, 4))) AS FSTOCKOUTQTY--发出&数量(库存)
,SUM(CAST(FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY--结存&数量(库存)
FROM {receBillTableS}
WHERE FDate<>''
GROUP BY FSTOCKORGID,FSTOCKID,FMATERIALID,FDate
string sqlsa = ($@"/*dialect*/SELECT * FROM (SELECT MIN(T1.FSEQ) AS FSEQ,T1.FDate--业务日期
,T1.FSTOCKORGID--库存组织
,T1.FSTOCKID--仓库名称
,T1.FMATERIALID--物料编码
,SUM(CAST(T1.FSTOCKQCQTY AS DECIMAL(18, 4))) AS FSTOCKQCQTY--期初&数量(库存)
,SUM(CAST(T1.FSTOCKINQTY AS DECIMAL(18, 4))) AS FSTOCKINQTY--收入&数量(库存)
,SUM(CAST(T1.FSTOCKOUTQTY AS DECIMAL(18, 4))) AS FSTOCKOUTQTY--发出&数量(库存)
,SUM(CAST(T1.FSTOCKJCQTY AS DECIMAL(18, 4))) AS FSTOCKJCQTY--结存&数量(库存)
FROM {receBillTableS} T1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID
WHERE T1.FDate<>'' {Filter}
GROUP BY T1.FSTOCKORGID,T1.FSTOCKID,T1.FMATERIALID,T1.FDate
UNION ALL
SELECT FSEQ,FDate--业务日期
,FSTOCKORGID--库存组织
,FSTOCKID--仓库名称
,FMATERIALID--物料编码
,FSTOCKQCQTY,FSTOCKINQTY,FSTOCKOUTQTY,FSTOCKJCQTY FROM {receBillTableS}
WHERE (FDate IS NULL OR FDate = '' )
SELECT T1.FSEQ,T1.FDate--业务日期
,T1.FSTOCKORGID--库存组织
,T1.FSTOCKID--仓库名称
,T1.FMATERIALID--物料编码
,T1.FSTOCKQCQTY,T1.FSTOCKINQTY,T1.FSTOCKOUTQTY,T1.FSTOCKJCQTY FROM {receBillTableS} T1
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID
WHERE (T1.FDate IS NULL OR T1.FDate = '' ) {Filter}
) t1
ORDER BY FSEQ");
DataTable dataTablesa = DBUtils.ExecuteDataSet(this.Context, sqlsa).Tables[0];
......@@ -475,7 +500,7 @@ namespace LQKJ.K3.CZXT.Pluglus
DataTable db = CreateTmpTable();
db.BeginInit();// 开始初始化数据表
// 构建最终的 SQL 查询语句
string sql = string.Format(@"/*dialect*/SELECT REPLACE(CONVERT(VARCHAR(10), T1.FDate, 111), '-', '/') AS F_LQKJ_FDate,T1.FNUMBER,ZZ.FNAME AS F_LQKJ_OrgId --组织
string sql = string.Format(@"/*dialect*/SELECT REPLACE(CONVERT(VARCHAR(10), T1.FDate, 111), '-', '/') AS F_LQKJ_FDate,T1.FNUMBER,Z.FNUMBER AS F_LQKJ_OrgId --组织
,ISNULL(FORMAT(CONVERT(FLOAT, T1.FSTOCKQCQTY), '0.####'), '0') AS F_LQKJ_FSTOCKQCQTY--期初数
,ISNULL(FORMAT(CONVERT(FLOAT, T2.FSTOCKINQTY), '0.####'), '0') AS F_LQKJ_FSTOCKINQTY--入库数
,ISNULL(FORMAT(CONVERT(FLOAT, T2.FSTOCKOUTQTY), '0.####'), '0') AS F_LQKJ_FSTOCKOUTQTY--出库数
......
......@@ -532,13 +532,13 @@ namespace LQKJ.K3.CZXT.Pluglus
db.BeginInit();// 开始初始化数据表
// 构建最终的 SQL 查询语句
string sql = string.Format(@"/*dialect*/SELECT REPLACE(CONVERT(VARCHAR(10), T1.FDate, 111), '-', '/') AS F_LQKJ_FDate--日期
,ZZ.FNAME AS FSTOCKORGID--库存组织
,Z.FNAME AS FOwnerId--货主
,CK.FNAME AS FSTOCKID--仓库名称
,CKZZ.FNUMBER AS FSTOCKORGID--库存组织
,HZ.FNUMBER AS FOwnerId--货主
,CKBM.FNUMBER AS FSTOCKID--仓库名称
,W.FNUMBER AS FMATERIALNUMBER--物料编码
,WL.FNAME AS FMATERIALID--物料名称
,T1.FOWNERTYPENAME --货主类型
,DW.FNAME AS FSTOCKUNITID--库存单位
,DWBM.FNUMBER AS FSTOCKUNITID--库存单位
,ISNULL(FORMAT(CONVERT(FLOAT,T1.FSTOCKQCQTY), '0.####'), '0') AS FSTOCKQCQTY--期初&数量(库存)
--,ISNULL(FORMAT((T1.FSTOCKJCQTY - T1.FSTOCKINQTY + T1.FSTOCKOUTQTY), '0.##'), '0') AS FSTOCKQCQTY--期初&数量(库存)
,ISNULL(FORMAT(CONVERT(FLOAT, T1.FSTOCKINQTY), '0.####'), '0') AS FSTOCKINQTY--收入&数量(库存)
......@@ -569,15 +569,18 @@ namespace LQKJ.K3.CZXT.Pluglus
FROM {0} T1
LEFT JOIN LQKJ_SettupParameters CS ON 1=1 --设置参数表
LEFT JOIN T_ORG_ORGANIZATIONS_L ZZ ON T1.FSTOCKORGID=ZZ.FORGID AND ZZ.FLOCALEID=2052--组织多语言表
LEFT JOIN T_ORG_ORGANIZATIONS CKZZ ON T1.FSTOCKORGID=CKZZ.FORGID--组织表
LEFT JOIN T_ORG_ORGANIZATIONS_L Z ON T1.FOwnerId=Z.FORGID AND Z.FLOCALEID=2052--组织多语言表
LEFT JOIN T_ORG_ORGANIZATIONS HZ ON T1.FOwnerId=HZ.FORGID--组织表
LEFT JOIN T_BD_STOCK_L CK ON T1.FSTOCKID=CK.FSTOCKID AND CK.FLOCALEID=2052--仓库多语言表
LEFT JOIN T_BD_MATERIAL W ON T1.FMATERIALID=W.FMATERIALID
LEFT JOIN t_BD_MaterialBase JB ON JB.FMATERIALID=W.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L WL ON T1.FMATERIALID=WL.FMATERIALID AND WL.FLOCALEID = 2052 --物料多语言表
LEFT JOIN T_BD_UNIT_L DW ON T1.FSTOCKUNITID=DW.FUNITID AND DW.FLOCALEID=2052 --计量单位多语言表
LEFT JOIN T_BD_UNIT DWBM ON T1.FSTOCKUNITID=DWBM.FUNITID--计量单位表
LEFT JOIN T_LQKJ_CZexpenses SS ON T1.FDate= SS.F_LQKJ_FDATE AND ZZ.FNAME=SS.F_LQKJ_ORGID AND CK.FNAME=SS.F_LQKJ_WAREHOUSE AND W.FNUMBER=SS.F_LQKJ_FMATERIALID--仓租手输费用表
LEFT JOIN T_BD_STOCK CKBM ON T1.FSTOCKID=CKBM.FSTOCKID
WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOCKQCQTY != 0 OR T1.FSTOCKINQTY !=0 OR T1.FSTOCKOUTQTY!=0) {1}", receBillTable, Filter, F_LQKJ_StartDate);
WHERE 1=1 AND (T1.FSTOCKQCQTY + T1.FSTOCKINQTY - T1.FSTOCKOUTQTY !=0 OR T1.FSTOCKQCQTY != 0 OR T1.FSTOCKINQTY !=0 OR T1.FSTOCKOUTQTY!=0) {1}", receBillTable, Filter);
// 执行动态SQL查询并获取查询结果
DynamicObjectCollection dynamics = DBUtils.ExecuteDynamicObject(Context, sql);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论