This commit is contained in:
PastSaid
2024-01-08 10:58:24 +08:00
parent a8689c9ba0
commit f3eae0a034
23 changed files with 904 additions and 235 deletions

View File

@@ -1,12 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProductionMaterialsReport
{
public class Class1
{
}
}

View File

@@ -7,11 +7,12 @@
<ProjectGuid>{49AF92F2-2DCF-42F4-AB29-12298575D803}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ProductionMaterialsReport</RootNamespace>
<AssemblyName>ProductionMaterialsReport</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<RootNamespace>HW.ProductionMaterialsReport</RootNamespace>
<AssemblyName>HW.ProductionMaterialsReport</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -31,6 +32,27 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Kingdee.BOS">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Core">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.DataEntity">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.DataEntity.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Model">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.BOS.Model.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.BD.Contracts">
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.BD.Contracts.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
@@ -41,13 +63,18 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="ProductionMaterialsReportEx.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="SqlServer\SQLQuery4.sql" />
<Content Include="SqlServer\SQLQuery5.sql" />
<Content Include="SqlServer\仓库值.sql" />
<Content Include="SqlServer\存储过程-生产用料清单.sql" />
<Content Include="SqlServer\生产用料清单.sql" />
<Content Include="SqlServer\生产订单.sql" />
<Content Include="SqlServer\获取产品类型.sql" />
<Content Include="SqlServer\获取单据状态.sql" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@@ -0,0 +1,362 @@
using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ProductionMaterialsReport
{
[Description("生产投料报表-服务插件"), HotUpdate]
public class ProductionMaterialsReport : SysReportBaseService
{
/***********事件执行顺序*************
2015/8/31 18:04:12 : Initialize
2015/8/31 18:04:12 : GetTableName
2015/8/31 18:04:15 : BuilderReportSqlAndTempTable
2015/8/31 18:04:15 : GetIdentityFieldIndexSQL
2015/8/31 18:04:15 : ExecuteBatch
2015/8/31 18:04:19 : GetReportHeaders
2015/8/31 18:04:19 : GetReportTitles
2015/8/31 18:04:27 : GetTableName
2015/8/31 18:04:27 : GetIdentityFieldIndexSQL
2015/8/31 18:04:28 : ExecuteBatch
2015/8/31 18:04:28 : AnalyzeDspCloumn
2015/8/31 18:04:28 : AfterCreateTempTable
2015/8/31 18:04:28 : GetSummaryColumnInfo
2015/8/31 18:04:28 : GetSummaryColumsSQL
2015/8/31 18:04:28 : GetTableName
2015/8/31 18:04:28 : GetTableName
2015/8/31 18:04:29 : ExecuteBatch
2015/8/31 18:04:29 : GetIdentityFieldIndexSQL
2015/8/31 18:04:29 : ExecuteBatch
2015/8/31 18:04:29 : CreateGroupSummaryData
2015/8/31 18:04:29 : GetListData
2015/8/31 18:04:30 : GetReportData
2015/8/31 18:04:30 : GetRowsCount
2015/8/31 18:04:30 : GetListData
*/
public override void Initialize()
{
base.Initialize();
//简单账表类型:普通、树形、分页
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
//报表名称
this.ReportProperty.ReportName = new LocaleValue("生产投料报表", base.Context.UserLocale.LCID);
//是否由插件创建表名
this.IsCreateTempTableByPlugin = true;
//
this.ReportProperty.IsUIDesignerColumns = false;
//
this.ReportProperty.IsGroupSummary = true;
//
this.ReportProperty.SimpleAllCols = false;
// 单据主键两行FID相同则为同一单的两条分录单据编号可以不重复显示
this.ReportProperty.PrimaryKeyFieldName = "FID";
//
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;
// 报表主键字段名默认为FIDENTITYID可以修改
//this.ReportProperty.IdentityFieldName = "FIDENTITYID";
// 设置精度控制
var list = new List<DecimalControlField>
{
new DecimalControlField("FDECIMALS", "FLOTYIELD"),
};
this.ReportProperty.DecimalControlFieldList = list;
this.ReportProperty.DspInsteadColumnsInfo.DefaultDspInsteadColumns.Add("FSTOCKID", "仓库");
}
public override string GetTableName()
{
return base.GetTableName();
}
/// <summary>
/// 向报表临时表,插入报表数据
/// </summary>
/// <param name="filter"></param>
/// <param name="tableName"></param>
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
base.BuilderReportSqlAndTempTable(filter, tableName);
string seqFld = string.Format(base.KSQL_SEQ, " t0.FID ");
var sql = $@"
DECLARE @FBILLNO varchar(80)
,@MainNumber varchar(80)
,@MainName varchar(80)
,@FMOBILLNO varchar(80)
,@FNumber varchar(80)
,@FName varchar(80)
,@FSALEORDERNO varchar(80)
,@LCID int
set @FBILLNO = ''
set @MainNumber = ''
set @MainName = ''
set @FMOBILLNO = ''
set @FNumber = ''
set @FName = ''
set @FSALEORDERNO = ''
set @LCID = 2052
--set @FBILLNO =''
--set @MainNumber=''
--set @MainName=''
--set @FMOBILLNO=''
--set @FNumber=''
--set @FName=''
--set @FSALEORDERNO=''
--set @LCID=2052
SELECT
top 1000
ROW_NUMBER() OVER(ORDER BY T0.FMATERIALID) AS '行号' --1.行号
,T0.FID
--,T0.FFORMID
,t7.FDATE AS '单据日期' --2.单据日期
,T0.FBILLNO AS '生产投料单号'--3.生产投料单号
--,T0.FMOID --生产订单内码
----,T0.FMOENTRYID --生产订单子表内码
--,t0.FSALEORDERID
--,t0.FSALEORDERENTRYID
,T0.FSALEORDERNO AS '销售订单号' --4.销售订单号
--,T0.FMATERIALID --产品ID
--5.购货单位代码
,T1.FMNEMONICCODE AS '助记码'--6.助记码
,T0.FMOBILLNO AS '生产任务单号'--7.生产任务单号
,T1.FNUMBER --AS '产品编码'--8.产品编码
,T1_L.FNAME AS '产品名称'--9.产品名称
,T1_L.FSPECIFICATION AS '产品规格型号'--10.产品规格型号
,T3_L.FNAME AS '产品单位'--11.产品单位
,T0.FQTY AS '产品生产数量'--12.产品生产数量
,T2.FNUMBER AS '物料代码'--13.物料代码
,T2_L.FNAME AS '物料名称'--14.物料名称
,(CASE T2.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS '物料来源' --15.物料来源
,T2_L.FSPECIFICATION AS '物料规格型号'--16.物料规格型号
,t10_L.FNAME AS '物料技术标准'--17.物料技术标准
,(T0E.FNUMERATOR / T0E.FDENOMINATOR) AS '物料单位用量' --18.物料单位用量
--,T0E.FUNITID AS ENTRYUNITID
,T4_L.FNAME AS '物料单位' --19.物料单位
,t9.FBASEQTY AS '物料库存量'--20.物料库存量
,T11E_A.FBASEINVQTY
--21.物料待检数
,T0E.FNEEDQTY AS '物料总需求'--22.物料总需求
,T0E_Q.FBASEWIPQTY AS '当前在制品数量'--23.当前在制品数量
--,(case when t9.FBASEQTY > T0E.FNEEDQTY then 0 else T0E.FNEEDQTY - t9.FBASEQTY end) AS '欠料'--24.欠料
,T11E.FBASELACKQTY AS '欠料'--24.欠料
,T11E_A.FBASEONORDERQTY AS '物料在途数' --25.物料在途数
,T11E_A.FENTRYID
--26.计划投料数量
,T0E_Q.FPICKEDQTY AS '已领数量'--27.已领数量
,T0E_Q.FNOPICKEDQTY AS '未领数量'--28.未领数量
,T0E.FSTDQTY AS '标准数量'--标准用量 --29.标准数量
,T0E.FMUSTQTY AS '应发数量'--应发数量 --30.应发数量
,t0E_L.FMEMO AS '备注'--31.备注
,T0E_Q.FPICKEDQTY * (100 - t7E.FYIELDRATE) AS '损耗数量'--32.损耗数量
,T0E_Q.FSCRAPQTY AS '报废数量' --33.报废数量
--34.计划发料日期
,T0E_C.FSTOCKID
,T5_L.FNAME --AS '仓库'--35.仓库
,T0E_C.FSTOCKLOCID --36.仓位
,T0E_Q.FREPICKEDQTY AS '补料数量'--37.补料数量
,t7E.FPLANSTARTDATE AS '计划开工日期'--38.计划开工日期
,t7E.FPLANFINISHDATE AS '计划完工日期'--39.计划完工日期
--40.工位
--,7E.FMEMO AS '其他备注项' --41.其他备注项
,t8_L.FMEMO AS 'BOM备注项'--42.BOM备注项
--,t8.FNUMERATOR
,(CASE T7e.FPRODUCTTYPE WHEN 1 THEN '主产品' WHEN 2 THEN '主产品' WHEN 3 THEN '主产品' ELSE '' END) AS '生产类型'--43.生产类型
--,T0.FWORKSHOPID
,T6_L.FNAME AS '生产车间'--44.生产车间
,(CASE T7E_A.FSTATUS WHEN 6 THEN '已结案'ELSE '' END) AS '生产任务单结案否'--45.生产任务单结案否
,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '创建' WHEN 'B' THEN '审核中' WHEN 'C' THEN '已审核' WHEN 'D' THEN '重新审核' WHEN 'Z' THEN '暂存' ELSE '' END) AS '生产投料单状态'--46.生产投料单状态
--47.PR已审未转PO数量
,6 AS FDECIMALS
,{seqFld}
into {tableName}
FROM
T_PRD_MO t7 --生产订单
LEFT JOIN T_PRD_MOENTRY t7E on t7E.FID = t7.FID
LEFT JOIN T_PRD_MOENTRY_A t7E_A on t7E_A.FENTRYID = t7E.FENTRYID
LEFT JOIN T_PRD_PPBOM T0 on T0.FMOID = t7.FID --生产用料清单
LEFT JOIN T_PRD_PPBOMENTRY T0E ON T0.FID = T0E.FID AND t0.FMOENTRYSEQ = t7e.FSEQ--生产用料清单子表
LEFT JOIN T_PRD_PPBOMENTRY_Q T0E_Q ON T0E_Q.FENTRYID = T0E.FENTRYID --生产用料清单数量拆分表
LEFT JOIN T_PRD_PPBOMENTRY_C T0E_C ON T0E_C.FENTRYID = T0E.FENTRYID
LEFT JOIN T_PRD_PPBOMENTRY_L t0E_L on t0E_L.FENTRYID = T0E.FENTRYID AND t0E_L.FLOCALEID = @LCID
LEFT JOIN T_BD_MATERIAL T1 ON T1.FMATERIALID = T0.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T1_L ON T1_L.FMATERIALID = T0.FMATERIALID AND T1_L.FLOCALEID = @LCID
LEFT JOIN T_BD_MATERIAL T2 ON T2.FMATERIALID = T0E.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T2_L ON T2_L.FMATERIALID = T0E.FMATERIALID AND T2_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T3_L ON T3_L.FUNITID = T0.FUNITID AND T3_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T4_L ON T4_L.FUNITID = T0E.FUNITID AND T4_L.FLOCALEID = @LCID
LEFT JOIN T_BD_STOCK_L T5_L ON T5_L.FSTOCKID = T0E_C.FSTOCKID AND T5_L.FLOCALEID =@LCID
LEFT JOIN T_BD_DEPARTMENT_L T6_L ON T6_L.FDEPTID = T0.FWORKSHOPID AND T6_L.FLOCALEID = @LCID
LEFT JOIN T_ENG_BOMCHILD_L t8_L ON t8_L.FENTRYID = T0E.FBOMENTRYID AND t8_L.FLOCALEID = @LCID
LEFT JOIN (
SELECT
t0.FMATERIALID
,t0.FSTOCKORGID
,sum(t0.FBASEQTY) AS FBASEQTY
FROM
T_STK_INVENTORY t0
GROUP BY
t0.FMATERIALID
,t0.FSTOCKORGID
) t9 on t9.FMATERIALID = T2.FMASTERID AND t9.FSTOCKORGID = t2.FUSEORGID
LEFT JOIN T_ENG_ROUTE_L t10_L on t10_L.FID = t7E.FROUTINGID AND t10_L.FLOCALEID = @LCID
LEFT JOIN T_PRD_PMPPBOMENTRY T11E on T11E.FMOID = t7e.FID AND T11E.FMOENTRYID = t7e.FENTRYID AND T11E.FMOENTRYSEQ = t7E.FSEQ AND T11E.FMATERIALIDSUB = T0E.FMATERIALID AND T11E.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_PRD_PMPPBOMENTRY_A T11E_A ON T11E_A.FENTRYID = T11E.FENTRYID
WHERE
T0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE T0.FBILLNO END)
AND T0.FMOBILLNO = (CASE WHEN @FMOBILLNO != '' THEN @FMOBILLNO ELSE T0.FMOBILLNO END)
AND T0.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE T0.FSALEORDERNO END)
AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END)
AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END)
AND T2.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE T2.FNUMBER END)
AND T2_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE T2_L.FNAME END)
";
var res = DBUtils.ExecuteDynamicObject(this.Context, $"/*dialect*/{sql}");
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
var header = base.GetReportHeaders(filter);
int _colIndex = 0;
header.AddChild("FNUMBER", new LocaleValue("产品编码"), _colIndex++);
header.AddChild("FSTOCKID", new LocaleValue("仓库"), _colIndex++);
header.AddChild("FSTOCKLOCID", new LocaleValue("仓位"), _colIndex++);
return header;
}
protected override void ExecuteBatch(List<string> listSql)
{
base.ExecuteBatch(listSql);
}
public override ReportTitles GetReportTitles(IRptParams filter)
{
var result = base.GetReportTitles(filter);
//DynamicObject dyFilter = filter.FilterParameter.CustomFilter;
//if (dyFilter != null)
//{
// if (result == null)
// {
// result = new ReportTitles();
// }
// //数据保存状态
// string saveDataStauts = dyFilter["DataBDStatu"].Long2Int() > 0 ? "1" : "0";
// result.AddTitle("FDataBDStatu", saveDataStauts);
// result.AddTitle("FDataHoldYear", dyFilter["DataHoldYear"].ToString());
// result.AddTitle("FDataHoldMonth", dyFilter["DataHoldMonth"].ToString());
//}
return result;
}
protected override string AnalyzeDspCloumn(IRptParams filter, string tablename)
{
string result = base.AnalyzeDspCloumn(filter, tablename);
return result;
}
protected override void AfterCreateTempTable(string tablename)
{
base.AfterCreateTempTable(tablename);
}
/// <summary>
/// 设置报表合计列
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override List<SummaryField> GetSummaryColumnInfo(IRptParams filter)
{
var result = base.GetSummaryColumnInfo(filter);
return result;
}
protected override string GetSummaryColumsSQL(List<SummaryField> summaryFields)
{
var result = base.GetSummaryColumsSQL(summaryFields);
return result;
}
protected override System.Data.DataTable GetListData(string sSQL)
{
var result = base.GetListData(sSQL);
return result;
}
protected override System.Data.DataTable GetReportData(IRptParams filter)
{
var result = base.GetReportData(filter);
return result;
}
protected override System.Data.DataTable GetReportData(string tablename, IRptParams filter)
{
var result = base.GetReportData(tablename, filter);
return result;
}
public override int GetRowsCount(IRptParams filter)
{
var result = base.GetRowsCount(filter);
return result;
}
protected override string BuilderFromWhereSQL(IRptParams filter)
{
string result = base.BuilderFromWhereSQL(filter);
return result;
}
protected override string BuilderSelectFieldSQL(IRptParams filter)
{
string result = base.BuilderSelectFieldSQL(filter);
return result;
}
protected override string BuilderTempTableOrderBySQL(IRptParams filter)
{
string result = base.BuilderTempTableOrderBySQL(filter);
return result;
}
public override void CloseReport()
{
base.CloseReport();
}
protected override string CreateGroupSummaryData(IRptParams filter, string tablename)
{
string result = base.CreateGroupSummaryData(filter, tablename);
return result;
}
protected override void CreateTempTable(string sSQL)
{
base.CreateTempTable(sSQL);
}
public override void DropTempTable()
{
base.DropTempTable();
}
public override System.Data.DataTable GetList(IRptParams filter)
{
var result = base.GetList(filter);
return result;
}
public override List<long> GetOrgIdList(IRptParams filter)
{
var result = base.GetOrgIdList(filter);
return result;
}
public override List<TreeNode> GetTreeNodes(IRptParams filter)
{
var result = base.GetTreeNodes(filter);
return result;
}
}
}

View File

@@ -0,0 +1,21 @@
SELECT
TOP 1000
T0E.FMATERIALID
,T0E.FMATERIALIDSUB
FROM
T_PRD_PMPPBOMENTRY T0E
INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID
WHERE T0E.FID = 101118
GROUP BY T0E.FMATERIALID,T0E.FMATERIALIDSUB
SELECT
TOP 1000
t0E.*
,T0E_A.*
FROM
T_PRD_LACKANALYSEBILL t0
INNER JOIN T_PRD_PMPPBOMENTRY T0E on t0.FID = T0E.FID
INNER JOIN T_PRD_PMPPBOMENTRY_A T0E_A ON T0E_A.FENTRYID = T0E.FENTRYID
WHERE t0.FBILLNO = 'SCQL000671'

View File

@@ -0,0 +1,12 @@
SELECT T2.FSTOCKID, T2.FNUMBER, T3.FNAME, T4.FFLEXENTRYID AS <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, T41.FNUMBER <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, T41L.FNAME <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>, T1.FFLEXID <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD>ά<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,T31.FNUMBER <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,T31L.FNAME <EFBFBD><EFBFBD>λֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM
T_BD_STOCKFLEXITEM T1
JOIN T_BD_STOCKFLEXDETAIL T4 ON T1.FENTRYID = T4.FENTRYID
JOIN T_BAS_FLEXVALUES T31 ON T1.FFLEXID = T31.FID
JOIN T_BAS_FLEXVALUES_L T31L ON T31L.FID = T31.FID AND T31L.FLOCALEID = 2052
JOIN T_BAS_FLEXVALUESENTRY T41 ON T4.FFLEXENTRYID = T41.FENTRYID
JOIN T_BAS_FLEXVALUESENTRY_L T41L ON T41L.FENTRYID = T41.FENTRYID AND T41L.FLOCALEID = 2052
JOIN T_BD_STOCK T2 ON T1.FSTOCKID = T2.FSTOCKID
JOIN T_BD_STOCK_L T3 ON T2.FSTOCKID = T3.FSTOCKID AND T3.FLOCALEID = 2052
ORDER BY
T2.FSTOCKID, T31.FNUMBER, T41.FNUMBER

View File

@@ -0,0 +1,96 @@
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_PPBOM_RPT')
DROP PROCEDURE DBO.PROC_PPBOM_RPT;
GO
CREATE PROCEDURE PROC_PPBOM_RPT
@FBILLNO varchar(80)
,@MainNumber varchar(80)
,@MainName varchar(80)
,@FMOBILLNO varchar(80)
,@FNumber varchar(80)
,@FName varchar(80)
,@FSALEORDERNO varchar(80)
,@LCID int
AS
BEGIN
SELECT
ROW_NUMBER() OVER(ORDER BY T0.FMATERIALID) AS '<EFBFBD>к<EFBFBD>' --1.<EFBFBD>к<EFBFBD>
--,T0.FID
--,T0.FFORMID
--2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>'--3.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
--,T0.FMOID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0.FMOENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FSALEORDERNO AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --4.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0.FMATERIALID --<EFBFBD><EFBFBD>ƷID
--5.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1.FMNEMONICCODE AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--6.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FMOBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>'--7.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>
,T1.FNUMBER AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--8.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1_L.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--9.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1_L.FSPECIFICATION AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'--10.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
--,T0.FBOMID
--,T0.FUNITID
,T3_L.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ'--11.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ
,T0.FQTY AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--12.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FMATERIALID AS ENTRYMATERIALID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
,T2.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>'--13.<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>
,T2_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--14.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,(CASE T2.FMATERIALSRC WHEN 'T0' THEN 'PLM' WHEN 'T1' THEN 'ERP' ELSE '' END) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ' --15.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
,T2_L.FSPECIFICATION AS '<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'--16.<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
--17.<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼
,(T0E.FNUMERATOR / T0E.FDENOMINATOR) AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --18.<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.FUNITID AS ENTRYUNITID
,T4_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ' --19.<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ
--20.<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--21.<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FNEEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--22.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.FWIPQTY --23.<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--24.Ƿ<EFBFBD><EFBFBD>
--25.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>
--26.<EFBFBD>ƻ<EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--27.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FNOPICKEDQTY AS 'δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--28.δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FSTDQTY AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD> --29.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FMUSTQTY AS 'Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --30.Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.FMEMO AS '<EFBFBD><EFBFBD>ע'--31.<EFBFBD><EFBFBD>ע
--32.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FSCRAPQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --33.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--34.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E_C.FSTOCKID
,T5_L.FNAME AS '<EFBFBD>ֿ<EFBFBD>'--35.<EFBFBD>ֿ<EFBFBD>
,T0E_C.FSTOCKLOCID --36.<EFBFBD><EFBFBD>λ
,T0E_Q.FREPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--37.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.F_ORA_JHKGSJ AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--38.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.F_ORA_JHWGSJ AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--39.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--40.<EFBFBD><EFBFBD>λ
--41.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
--42.BOM<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
--43.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FWORKSHOPID
,T6_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--44.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--45.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥽<EFBFBD><EFBFBD>
--46.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD>״̬
--47.PR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δתPO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FROM
T_PRD_PPBOM T0 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY T0E ON T0.FID = T0E.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_Q T0E_Q ON T0E_Q.FENTRYID = T0E.FENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_C T0E_C ON T0E_C.FENTRYID = T0E.FENTRYID
LEFT JOIN T_BD_MATERIAL T1 ON T1.FMATERIALID = T0.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T1_L ON T1_L.FMATERIALID = T0.FMATERIALID AND T1_L.FLOCALEID = @LCID
LEFT JOIN T_BD_MATERIAL T2 ON T2.FMATERIALID = T0E.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T2_L ON T2_L.FMATERIALID = T0E.FMATERIALID AND T2_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T3_L ON T3_L.FUNITID = T0.FUNITID AND T3_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T4_L ON T4_L.FUNITID = T0E.FUNITID AND T4_L.FLOCALEID = @LCID
LEFT JOIN T_BD_STOCK_L T5_L ON T5_L.FSTOCKID = T0E_C.FSTOCKID AND T5_L.FLOCALEID =@LCID
LEFT JOIN T_BD_DEPARTMENT_L T6_L ON T6_L.FDEPTID = T0.FWORKSHOPID AND T6_L.FLOCALEID = @LCID
WHERE
t0.FBILLNO = (case when @FBILLNO != '' then @FBILLNO else t0.FBILLNO end)
and t0.FMOBILLNO = (case when @FMOBILLNO != '' then @FMOBILLNO else t0.FMOBILLNO end)
and t0.FSALEORDERNO = (case when @FSALEORDERNO != '' then @FSALEORDERNO else t0.FSALEORDERNO end)
and t1.FNUMBER = (case when @MainNumber != '' then @MainNumber else t1.FNUMBER end)
and T1_L.FNAME = (case when @MainName != '' then @MainName else T1_L.FNAME end)
and T2.FNUMBER = (case when @FNumber != '' then @FNumber else T2.FNUMBER end)
and t2_L.FNAME = (case when @FName != '' then @FName else t2_L.FNAME end)
END

View File

@@ -1,49 +1,130 @@
SELECT
TOP 100
A.FID
,A.FFORMID
,A.FBILLNO --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
,A.FMATERIALID --<EFBFBD><EFBFBD>ƷID
,A.FMOBILLNO --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>
,B.FNUMBER --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,B_L.FNAME --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,B_L.FSPECIFICATION --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
,A.FBOMID
,A.FSALEORDERNO --<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,A.FUNITID --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ
,D_L.FNAME UNITNAME
,A.FQTY --<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FMATERIALID AS ENTRYMATERIALID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
,C.FNUMBER
,C.FMNEMONICCODE
,C_L.FNAME
,(CASE C.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) FMATERIALSRC --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
,C_L.FSPECIFICATION
,(AE.FNUMERATOR / AE.FDENOMINATOR) DOSAGE
,AE.FNEEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FUNITID AS ENTRYUNITID
,E_L.FNAME ENTRYUNITNAME --<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ
,AE.FMATERIALTYPE --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD>
,AE.FSTDQTY --<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE.FMUSTQTY --Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FPICKEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FNOPICKEDQTY --δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FREPICKEDQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_Q.FSCRAPQTY --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,AE.FMEMO --<EFBFBD><EFBFBD>ע
--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,AE_C.FSTOCKID
,F_L.FNAME --<EFBFBD>ֿ<EFBFBD>
,AE_C.FSTOCKLOCID --<EFBFBD><EFBFBD>λ
FROM
T_PRD_PPBOM A --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY AE ON A.FID = AE.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_Q AE_Q ON AE_Q.FENTRYID = AE.FENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_C AE_C ON AE_C.FENTRYID = AE.FENTRYID
LEFT JOIN T_BD_MATERIAL B ON B.FMATERIALID = A.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L B_L ON B_L.FMATERIALID = A.FMATERIALID AND B_L.FLOCALEID = 2052
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = AE.FMATERIALID AND C_L.FLOCALEID = 2052
LEFT JOIN T_BD_UNIT_L D_L ON D_L.FUNITID = A.FUNITID AND D_L.FLOCALEID = 2052
LEFT JOIN T_BD_UNIT_L E_L ON E_L.FUNITID = AE.FUNITID AND E_L.FLOCALEID = 2052
LEFT JOIN T_BD_STOCK_L F_L ON F_L.FSTOCKID = AE_C.FSTOCKID AND F_L.FLOCALEID =2052
DECLARE @FBILLNO varchar(80)
,@MainNumber varchar(80)
,@MainName varchar(80)
,@FMOBILLNO varchar(80)
,@FNumber varchar(80)
,@FName varchar(80)
,@FSALEORDERNO varchar(80)
,@LCID int
set @FBILLNO = ''
set @MainNumber = ''
set @MainName = ''
set @FMOBILLNO = ''
set @FNumber = ''
set @FName = ''
set @FSALEORDERNO = ''
set @LCID = 2052
--set @FBILLNO =''
--set @MainNumber=''
--set @MainName=''
--set @FMOBILLNO=''
--set @FNumber=''
--set @FName=''
--set @FSALEORDERNO=''
--set @LCID=2052
SELECT
top 1000
ROW_NUMBER() OVER(ORDER BY T0.FMATERIALID) AS '<EFBFBD>к<EFBFBD>' --1.<EFBFBD>к<EFBFBD>
,T0.FID
--,T0.FFORMID
,t7.FDATE AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --2.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>'--3.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>
--,T0.FMOID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
----,T0.FMOENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,t0.FSALEORDERID
--,t0.FSALEORDERENTRYID
,T0.FSALEORDERNO AS '<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --4.<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0.FMATERIALID --<EFBFBD><EFBFBD>ƷID
--5.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1.FMNEMONICCODE AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--6.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0.FMOBILLNO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>'--7.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥺<EFBFBD>
,T1.FNUMBER AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--8.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1_L.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--9.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T1_L.FSPECIFICATION AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'--10.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
,T3_L.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ'--11.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD>λ
,T0.FQTY AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--12.<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T2.FNUMBER AS '<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>'--13.<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD>
,T2_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--14.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,(CASE T2.FMATERIALSRC WHEN 'A' THEN 'PLM' WHEN 'B' THEN 'ERP' ELSE '' END) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ' --15.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ
,T2_L.FSPECIFICATION AS '<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'--16.<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>
,t10_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼'--17.<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼
,(T0E.FNUMERATOR / T0E.FDENOMINATOR) AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --18.<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0E.FUNITID AS ENTRYUNITID
,T4_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ' --19.<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD>λ
,t9.FBASEQTY AS '<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--20.<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T11E_A.FBASEINVQTY
--21.<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FNEEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--22.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FBASEWIPQTY AS '<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--23.<EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,(case when t9.FBASEQTY > T0E.FNEEDQTY then 0 else T0E.FNEEDQTY - t9.FBASEQTY end) AS 'Ƿ<EFBFBD><EFBFBD>'--24.Ƿ<EFBFBD><EFBFBD>
,T11E.FBASELACKQTY AS 'Ƿ<EFBFBD><EFBFBD>'--24.Ƿ<EFBFBD><EFBFBD>
,T11E_A.FBASEONORDERQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>' --25.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<EFBFBD><EFBFBD>
,T11E_A.FENTRYID
--26.<EFBFBD>ƻ<EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--27.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FNOPICKEDQTY AS 'δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--28.δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FSTDQTY AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD> --29.<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E.FMUSTQTY AS 'Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> --30.Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t0E_L.FMEMO AS '<EFBFBD><EFBFBD>ע'--31.<EFBFBD><EFBFBD>ע
,T0E_Q.FPICKEDQTY * (100 - t7E.FYIELDRATE) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--32.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_Q.FSCRAPQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' --33.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--34.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,T0E_C.FSTOCKID
,T5_L.FNAME AS '<EFBFBD>ֿ<EFBFBD>'--35.<EFBFBD>ֿ<EFBFBD>
,T0E_C.FSTOCKLOCID --36.<EFBFBD><EFBFBD>λ
,T0E_Q.FREPICKEDQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--37.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t7E.FPLANSTARTDATE AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--38.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,t7E.FPLANFINISHDATE AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--39.<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--40.<EFBFBD><EFBFBD>λ
--,7E.FMEMO AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>' --41.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
,t8_L.FMEMO AS 'BOM<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>'--42.BOM<EFBFBD><EFBFBD>ע<EFBFBD><EFBFBD>
--,t8.FNUMERATOR
,(CASE T7e.FPRODUCTTYPE WHEN 1 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ' WHEN 2 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ' WHEN 3 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ' ELSE '' END) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--43.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--,T0.FWORKSHOPID
,T6_L.FNAME AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'--44.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,(CASE T7E_A.FSTATUS WHEN 6 THEN '<EFBFBD>ѽ᰸'ELSE '' END) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥽᰸<EFBFBD><EFBFBD>'--45.<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񵥽<EFBFBD><EFBFBD>
,(CASE t0.FDOCUMENTSTATUS WHEN 'A' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' WHEN 'B' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' WHEN 'C' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' WHEN 'D' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>' WHEN 'Z' THEN '<EFBFBD>ݴ<EFBFBD>' ELSE '' END) AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD>״̬'--46.<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD>ϵ<EFBFBD>״̬
--47.PR<EFBFBD><EFBFBD><EFBFBD><EFBFBD>δתPO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
,6 AS FDECIMALS
FROM
T_PRD_MO t7 --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN T_PRD_MOENTRY t7E on t7E.FID = t7.FID
LEFT JOIN T_PRD_MOENTRY_A t7E_A on t7E_A.FENTRYID = t7E.FENTRYID
LEFT JOIN T_PRD_PPBOM T0 on T0.FMOID = t7.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY T0E ON T0.FID = T0E.FID AND t0.FMOENTRYSEQ = t7e.FSEQ--<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_Q T0E_Q ON T0E_Q.FENTRYID = T0E.FENTRYID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD>
LEFT JOIN T_PRD_PPBOMENTRY_C T0E_C ON T0E_C.FENTRYID = T0E.FENTRYID
LEFT JOIN T_PRD_PPBOMENTRY_L t0E_L on t0E_L.FENTRYID = T0E.FENTRYID AND t0E_L.FLOCALEID = @LCID
LEFT JOIN T_BD_MATERIAL T1 ON T1.FMATERIALID = T0.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T1_L ON T1_L.FMATERIALID = T0.FMATERIALID AND T1_L.FLOCALEID = @LCID
LEFT JOIN T_BD_MATERIAL T2 ON T2.FMATERIALID = T0E.FMATERIALID
LEFT JOIN T_BD_MATERIAL_L T2_L ON T2_L.FMATERIALID = T0E.FMATERIALID AND T2_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T3_L ON T3_L.FUNITID = T0.FUNITID AND T3_L.FLOCALEID = @LCID
LEFT JOIN T_BD_UNIT_L T4_L ON T4_L.FUNITID = T0E.FUNITID AND T4_L.FLOCALEID = @LCID
LEFT JOIN T_BD_STOCK_L T5_L ON T5_L.FSTOCKID = T0E_C.FSTOCKID AND T5_L.FLOCALEID =@LCID
LEFT JOIN T_BD_DEPARTMENT_L T6_L ON T6_L.FDEPTID = T0.FWORKSHOPID AND T6_L.FLOCALEID = @LCID
LEFT JOIN T_ENG_BOMCHILD_L t8_L ON t8_L.FENTRYID = T0E.FBOMENTRYID AND t8_L.FLOCALEID = @LCID
LEFT JOIN (
SELECT
t0.FMATERIALID
,t0.FSTOCKORGID
,sum(t0.FBASEQTY) AS FBASEQTY
FROM
T_STK_INVENTORY t0
GROUP BY
t0.FMATERIALID
,t0.FSTOCKORGID
) t9 on t9.FMATERIALID = T2.FMASTERID AND t9.FSTOCKORGID = t2.FUSEORGID
LEFT JOIN T_ENG_ROUTE_L t10_L on t10_L.FID = t7E.FROUTINGID AND t10_L.FLOCALEID = @LCID
LEFT JOIN T_PRD_PMPPBOMENTRY T11E on T11E.FMOID = t7e.FID AND T11E.FMOENTRYID = t7e.FENTRYID AND T11E.FMOENTRYSEQ = t7E.FSEQ AND T11E.FMATERIALIDSUB = T0E.FMATERIALID AND T11E.FMATERIALID = t0.FMATERIALID
LEFT JOIN T_PRD_PMPPBOMENTRY_A T11E_A ON T11E_A.FENTRYID = T11E.FENTRYID
WHERE
T0.FBILLNO = (CASE WHEN @FBILLNO != '' THEN @FBILLNO ELSE T0.FBILLNO END)
AND T0.FMOBILLNO = (CASE WHEN @FMOBILLNO != '' THEN @FMOBILLNO ELSE T0.FMOBILLNO END)
AND T0.FSALEORDERNO = (CASE WHEN @FSALEORDERNO != '' THEN @FSALEORDERNO ELSE T0.FSALEORDERNO END)
AND T1.FNUMBER = (CASE WHEN @MAINNUMBER != '' THEN @MAINNUMBER ELSE T1.FNUMBER END)
AND T1_L.FNAME = (CASE WHEN @MAINNAME != '' THEN @MAINNAME ELSE T1_L.FNAME END)
AND T2.FNUMBER = (CASE WHEN @FNUMBER != '' THEN @FNUMBER ELSE T2.FNUMBER END)
AND T2_L.FNAME = (CASE WHEN @FNAME != '' THEN @FNAME ELSE T2_L.FNAME END)

View File

@@ -0,0 +1,13 @@
CREATE FUNCTION GetProductTypeText(@docStatu int)
RETURNS varchar(10) --<EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
as
BEGIN
declare @result varchar(10)
select @result = (CASE @docStatu
WHEN 1 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ'
WHEN 2 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ'
WHEN 3 THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ'
ELSE ''
END)
RETURN @result
END

View File

@@ -0,0 +1,15 @@
create FUNCTION ReturnStatuText(@docStatu varchar(10))
RETURNS varchar(10) --<EFBFBD><EFBFBD><EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
as
BEGIN
declare @result varchar(10)
select @result = (CASE @docStatu
WHEN 'A' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'B' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'C' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'D' THEN '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
WHEN 'Z' THEN '<EFBFBD>ݴ<EFBFBD>'
ELSE ''
END)
RETURN @result
END