aa
This commit is contained in:
76
MonthlyProductionSchedule/MonthlyProductionSchedule.csproj
Normal file
76
MonthlyProductionSchedule/MonthlyProductionSchedule.csproj
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{86DA044C-9D3B-43BD-8BDB-24B65E152604}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>MonthlyProductionSchedule</RootNamespace>
|
||||
<AssemblyName>MonthlyProductionSchedule</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<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, Version=8.1.571.1, Culture=neutral, PublicKeyToken=null" />
|
||||
<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="Kingdee.K3.SCM.App.Stock.Report">
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.App.Stock.Report.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Kingdee.K3.SCM.Stock.Report.PlugIn">
|
||||
<HintPath>..\..\..\..\..\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\Kingdee.K3.SCM.Stock.Report.PlugIn.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="ProductionPlanRptPlugIn.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="SQLServer\月度生产计划表-预测单.sql" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
301
MonthlyProductionSchedule/ProductionPlanRptPlugIn.cs
Normal file
301
MonthlyProductionSchedule/ProductionPlanRptPlugIn.cs
Normal file
@@ -0,0 +1,301 @@
|
||||
using Kingdee.BOS.Contracts.Report;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.ComponentModel;
|
||||
using Kingdee.BOS;
|
||||
using Kingdee.BOS.Util;
|
||||
using Kingdee.BOS.Core;
|
||||
using Kingdee.BOS.Core.Report;
|
||||
using Kingdee.BOS.Core.Report.PlugIn;
|
||||
using Kingdee.BOS.Core.Report.PlugIn.Args;
|
||||
using Kingdee.BOS.Core.List;
|
||||
using Kingdee.BOS.App.Data;
|
||||
using Kingdee.BOS.Orm.DataEntity;
|
||||
using Kingdee.BOS.Core.Metadata;
|
||||
|
||||
|
||||
namespace MonthlyProductionSchedule
|
||||
{
|
||||
[Description("生产计划表-服务插件"), HotUpdate]
|
||||
public class ProductionPlanRptPlugIn : 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>();
|
||||
//// 数量
|
||||
//list.Add(new DecimalControlField
|
||||
//{
|
||||
// ByDecimalControlFieldName = "FQty",
|
||||
// DecimalControlFieldName = "FUnitPrecision"
|
||||
//});
|
||||
//// 单价
|
||||
//list.Add(new DecimalControlField
|
||||
//{
|
||||
// ByDecimalControlFieldName = "FTAXPRICE",
|
||||
// DecimalControlFieldName = "FPRICEDIGITS"
|
||||
//});
|
||||
//// 金额
|
||||
//list.Add(new DecimalControlField
|
||||
//{
|
||||
// ByDecimalControlFieldName = "FALLAMOUNT",
|
||||
// DecimalControlFieldName = "FAMOUNTDIGITS"
|
||||
//});
|
||||
this.ReportProperty.DecimalControlFieldList = list;
|
||||
}
|
||||
|
||||
public override string GetTableName()
|
||||
{
|
||||
var result = base.GetTableName();
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 向报表临时表,插入报表数据
|
||||
/// </summary>
|
||||
/// <param name="filter"></param>
|
||||
/// <param name="tableName"></param>
|
||||
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
|
||||
{
|
||||
base.BuilderReportSqlAndTempTable(filter, tableName);
|
||||
|
||||
// 拼接过滤条件 : filter
|
||||
// 略
|
||||
|
||||
// 默认排序字段:需要从filter中取用户设置的排序字段
|
||||
string seqFld = string.Format(base.KSQL_SEQ, " t0.FID ");
|
||||
|
||||
// 取数SQL
|
||||
// FID, FEntryId, 编号、状态、物料、数量、单位、单位精度、单价、价税合计
|
||||
|
||||
var startDate = "2023-12-01";
|
||||
var endDate = "2023-12-31";
|
||||
string sql = $@"
|
||||
EXEC PROC_ProductionSchedule '{tableName}','{startDate}','{endDate}', {base.Context.UserLocale.LCID} ,'{seqFld}';
|
||||
";
|
||||
DBUtils.ExecuteDynamicObject(this.Context, sql);
|
||||
}
|
||||
protected override string GetIdentityFieldIndexSQL(string tableName)
|
||||
{
|
||||
string result = base.GetIdentityFieldIndexSQL(tableName);
|
||||
return result;
|
||||
}
|
||||
|
||||
protected override void ExecuteBatch(List<string> listSql)
|
||||
{
|
||||
base.ExecuteBatch(listSql);
|
||||
}
|
||||
///
|
||||
/// 构建出报表列
|
||||
///
|
||||
///
|
||||
///
|
||||
///
|
||||
/// // 如下代码,演示如何设置同一分组的分组头字段合并
|
||||
/// // 需配合Initialize事件,设置分组依据字段(PrimaryKeyFieldName)
|
||||
/// ReportHeader header = new ReportHeader();
|
||||
/// header.Mergeable = true;
|
||||
/// int width = 80;
|
||||
/// ListHeader headChild1 = header.AddChild("FBILLNO", new LocaleValue("应付单号"));
|
||||
/// headChild1.Width = width;
|
||||
/// headChild1.Mergeable = true;
|
||||
///
|
||||
/// ListHeader headChild2 = header.AddChild("FPURMAN", new LocaleValue("采购员"));
|
||||
/// headChild2.Width = width;
|
||||
/// headChild2.Mergeable = true;
|
||||
///
|
||||
public override ReportHeader GetReportHeaders(IRptParams filter)
|
||||
{
|
||||
var date = System.DateTime.Now;
|
||||
|
||||
// FID, FEntryId,
|
||||
var _colIndex = 0;
|
||||
ReportHeader header = new ReportHeader();
|
||||
|
||||
header.AddChild("FNAME", new LocaleValue("产品名称"), _colIndex++);
|
||||
header.AddChild("ShelfLife", new LocaleValue("有效期"), _colIndex++);
|
||||
header.AddChild("ShelfLife", new LocaleValue("标准批量"), _colIndex++);
|
||||
header.AddChild("FLOTYIELD", new LocaleValue("每批产量"), _colIndex++);
|
||||
header.AddChild("FPACKUNITCONVERRATIO", new LocaleValue("包装规格"), _colIndex++);
|
||||
header.AddChild("FPACKUNITCONVT", new LocaleValue("包装规格"), _colIndex++);
|
||||
header.AddChild("FPACKUNITNAME", new LocaleValue("单位"), _colIndex++);
|
||||
header.AddChild("ShelfLife", new LocaleValue("安全库存量"), _colIndex++);
|
||||
header.AddChild("SAFESTOCK", new LocaleValue("安全库存数量"), _colIndex++);
|
||||
header.AddChild("M01", new LocaleValue("本月预计需求量"), _colIndex++);
|
||||
header.AddChild("S01", new LocaleValue(date.AddMonths(-1).ToString("yyyyMM") + "发货量"), _colIndex++);
|
||||
header.AddChild("S02", new LocaleValue(date.AddMonths(-2).ToString("yyyyMM") + "发货量"), _colIndex++);
|
||||
header.AddChild("S03", new LocaleValue(date.AddMonths(-3).ToString("yyyyMM") + "发货量"), _colIndex++);
|
||||
header.AddChild("FSPECIFICATION", new LocaleValue("已入库量"), _colIndex++);
|
||||
header.AddChild("FSPECIFICATION", new LocaleValue("在生产量"), _colIndex++);
|
||||
header.AddChild("FSPECIFICATION", new LocaleValue("合计入库量"), _colIndex++);
|
||||
header.AddChild("OrderLotQty", new LocaleValue("系统计划生产批数"), _colIndex++);
|
||||
header.AddChild("FirmLotQty", new LocaleValue("确认计划生产批数"), _colIndex++);
|
||||
header.AddChild("FFirmQty", new LocaleValue("确认计划生产量"), _colIndex++);
|
||||
header.AddChild("Note", new LocaleValue("备注"), _colIndex++);
|
||||
|
||||
return header;
|
||||
}
|
||||
|
||||
public override ReportTitles GetReportTitles(IRptParams filter)
|
||||
{
|
||||
var result = base.GetReportTitles(filter);
|
||||
var date = System.DateTime.Now;
|
||||
DynamicObject dyFilter = filter.FilterParameter.CustomFilter;
|
||||
if (dyFilter != null)
|
||||
{
|
||||
if (result == null)
|
||||
{
|
||||
result = new ReportTitles();
|
||||
}
|
||||
//result.AddTitle("F_JD_Date", Convert.ToString(dyFilter["F_JD_Date"]));
|
||||
|
||||
result.AddTitle("FNameLabel", $"{date.AddMonths(-1).ToString("yyyyyMMM")}");
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
36
MonthlyProductionSchedule/Properties/AssemblyInfo.cs
Normal file
36
MonthlyProductionSchedule/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// 有关程序集的一般信息由以下
|
||||
// 控制。更改这些特性值可修改
|
||||
// 与程序集关联的信息。
|
||||
[assembly: AssemblyTitle("MonthlyProductionSchedule")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("MonthlyProductionSchedule")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// 将 ComVisible 设置为 false 会使此程序集中的类型
|
||||
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
|
||||
//请将此类型的 ComVisible 特性设置为 true。
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
|
||||
[assembly: Guid("86da044c-9d3b-43bd-8bdb-24b65e152604")]
|
||||
|
||||
// 程序集的版本信息由下列四个值组成:
|
||||
//
|
||||
// 主版本
|
||||
// 次版本
|
||||
// 生成号
|
||||
// 修订号
|
||||
//
|
||||
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
|
||||
//通过使用 "*",如下所示:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
140
MonthlyProductionSchedule/SQLServer/月度生产计划表-预测单.sql
Normal file
140
MonthlyProductionSchedule/SQLServer/月度生产计划表-预测单.sql
Normal file
@@ -0,0 +1,140 @@
|
||||
|
||||
IF EXISTS(SELECT * FROM SYS.PROCEDURES WHERE NAME='PROC_ProductionSchedule')
|
||||
DROP PROCEDURE dbo.PROC_ProductionSchedule;
|
||||
GO
|
||||
|
||||
CREATE PROCEDURE PROC_ProductionSchedule
|
||||
@TableName varchar(100)
|
||||
,@STARTDATE date
|
||||
,@ENDDATE date
|
||||
,@LCID int
|
||||
,@SeqFld varchar(200)
|
||||
AS
|
||||
begin
|
||||
|
||||
SELECT
|
||||
A.FID
|
||||
,A.FBILLNO
|
||||
,AE.FMATERIALID
|
||||
,AE.FENTRYID
|
||||
,C.FNUMBER
|
||||
,C_L.FNAME
|
||||
,C_L.FSPECIFICATION
|
||||
--,(CASE
|
||||
-- CS.FEXPUNIT
|
||||
-- WHEN 'Y' THEN
|
||||
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<27><>'
|
||||
-- WHEN 'M' THEN
|
||||
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /12 ) + '<27><>'
|
||||
-- WHEN 'D' THEN
|
||||
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /365) + '<27><>' ELSE ''
|
||||
--END) AS '<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>'
|
||||
,(CASE
|
||||
CS.FEXPUNIT
|
||||
WHEN 'Y' THEN
|
||||
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) * 12 ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
WHEN 'M' THEN
|
||||
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
WHEN 'D' THEN
|
||||
CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) / 365 * 12) + '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>' ELSE ''
|
||||
END) AS 'ShelfLife'
|
||||
--,'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
,CS.FSAFESTOCK --<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
--,CS.FSTOREUNITID --<EFBFBD><EFBFBD><EFBFBD>浥λ
|
||||
--,CP.FLOTYIELD -- 'ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
|
||||
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>'
|
||||
--,CP.FPACKUNITCONVERRATIO -- '<27><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>'
|
||||
--,CP.FPACKUNITID -- '<27><>λ'
|
||||
--,AE.M01
|
||||
--,AE.S01
|
||||
--,AE.S02
|
||||
--,AE.S03
|
||||
,'' AS 'M01'
|
||||
,'' AS 'S01'
|
||||
,'' AS 'S02'
|
||||
,'' AS 'S03'
|
||||
,B.FFirmQty
|
||||
,B.FOrderQty
|
||||
,B.FMATERIALID
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
A.FMATERIALID
|
||||
,A_B.FSALEORDERENTRYID
|
||||
,SUM(A.FFirmQty) as 'FFirmQty'
|
||||
,SUM(A.FORDERQTY) as 'FOrderQty'
|
||||
FROM
|
||||
T_PLN_PLANORDER A
|
||||
LEFT JOIN T_PLN_PLANORDER_B A_B ON A.FID = A_B.FID
|
||||
WHERE
|
||||
A.FRELEASETYPE = 1 --AND (A.FRELEASESTATUS = 1 OR A.FRELEASESTATUS = 2 )
|
||||
group By
|
||||
A.FRELEASETYPE
|
||||
,A.FMATERIALID
|
||||
,A_B.FSALEORDERENTRYID
|
||||
) B
|
||||
--Ԥ<EFBFBD>ⵥ
|
||||
LEFT JOIN T_PLN_FORECASTENTRY AE ON B.FSALEORDERENTRYID = AE.FENTRYID
|
||||
LEFT JOIN T_PLN_FORECAST A ON A.FID = AE.FID
|
||||
LEFT JOIN T_BD_MATERIAL C ON C.FMATERIALID = B.FMATERIALID
|
||||
LEFT JOIN T_BD_MATERIAL_L C_L ON C_L.FMATERIALID = B.FMATERIALID
|
||||
LEFT JOIN T_BD_MATERIALSTOCK CS ON CS.FMATERIALID = B.FMATERIALID
|
||||
LEFT JOIN T_BD_MATERIALPRODUCE CP ON CP.FMATERIALID = B.FMATERIALID
|
||||
WHERE
|
||||
--A.FDATE BETWEEN '2023-12-01 00:00:00' AND '2023-12-31 23:59:59'
|
||||
A.FDATE BETWEEN @STARTDATE AND @ENDDATE
|
||||
|
||||
--<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>λ
|
||||
alter table #TMPMPS add STOREUNITNAME varchar(10)
|
||||
update #TMPMPS set #TMPMPS.STOREUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FSTOREUNITID
|
||||
|
||||
--alter table #TMPMPS add FPACKUNITNAME varchar(10)
|
||||
--update #TMPMPS set #TMPMPS.FPACKUNITNAME = B_L.FNAME from T_BD_UNIT_L B_L where B_L.FUNITID = #TMPMPS.FPACKUNITID
|
||||
|
||||
declare @sql varchar(2000)
|
||||
|
||||
set @sql = '
|
||||
select
|
||||
FID
|
||||
,FENTRYID
|
||||
,FBILLNO
|
||||
,FMATERIALID
|
||||
,FNAME
|
||||
,FSPECIFICATION
|
||||
,ShelfLife
|
||||
--,'''' --<2D><><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
||||
--,FLOTYIELD --ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
--,FPACKUNITCONVERRATIO -- <20><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>
|
||||
--,CAST(FPACKUNITCONVERRATIO AS VARCHAR)+STOREUNITNAME+''/''+FPACKUNITNAME as FPACKUNITCONVT --<2D><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>
|
||||
--,FPACKUNITID --<2D><>λ
|
||||
,FSTOREUNITID
|
||||
,STOREUNITNAME
|
||||
,'''' AS --<2D><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><>
|
||||
,CAST(FSAFESTOCK AS INT) AS SAFESTOCK
|
||||
,FSEQ
|
||||
,0 AS M01
|
||||
,0 AS S01
|
||||
,0 AS S02
|
||||
,0 AS S03
|
||||
--,(B.PlanQty / CP.FPACKUNITCONVERRATIO)AS ''ϵͳ<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
|
||||
--,(B.VerifyQty / CP.FPACKUNITCONVERRATIO) AS ''ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>''
|
||||
,FFirmQty --ȷ<>ϼƻ<CFBC><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,FFirmQty as FirmLotQty --ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,FOrderQty as OrderLotQty --<2D>ƻ<EFBFBD><C6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
,'+@SeqFld+'
|
||||
into '+ @TableName +' From #TMPMPS t0 '
|
||||
--select @sql
|
||||
EXECUTE(@sql)
|
||||
drop table #TMPMPS
|
||||
end
|
||||
|
||||
go
|
||||
|
||||
--DECLARE @STARTDATE DATETIME ,@ENDDATE DATETIME
|
||||
--SELECT
|
||||
-- @STARTDATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, '2023-12-15'), 0)
|
||||
-- ,@ENDDATE = DATEADD(MS,-3, DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, 1, '2023-12-15')), 0))
|
||||
--DECLARE @LCID INT
|
||||
--SET @LCID = 2052
|
||||
|
||||
--EXEC PROC_ProductionSchedule @STARTDATE,@ENDDATE, @LCID;
|
||||
Reference in New Issue
Block a user