This commit is contained in:
PastSaid
2023-12-14 10:31:17 +08:00
parent 6d521d4bf9
commit a44ce28933
10 changed files with 673 additions and 83 deletions

View File

@@ -23,11 +23,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTestProject1", "UnitTes
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "天大药业(珠海)有限公司", "天大药业(珠海)有限公司", "{56C57ADC-8E92-4340-AC25-B7647758D4EB}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SQLServer", "SQLServer", "{96D996D2-FAEA-41A0-95BA-B1F88C4DC42E}"
ProjectSection(SolutionItems) = preProject
SAL_OUTSTOCK\SQLServer\月度生产计划表-预测单.sql = SAL_OUTSTOCK\SQLServer\月度生产计划表-预测单.sql
SAL_OUTSTOCK\SQLServer\月度生产计划表.sql = SAL_OUTSTOCK\SQLServer\月度生产计划表.sql
EndProjectSection
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "月度生产计划", "月度生产计划", "{A362AFBC-FC73-46A6-9185-15C17E694538}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonthlyProductionSchedule", "MonthlyProductionSchedule\MonthlyProductionSchedule.csproj", "{86DA044C-9D3B-43BD-8BDB-24B65E152604}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -59,6 +57,10 @@ Global
{6EE96AB5-8FD3-4A48-912A-CA2AF5B82300}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6EE96AB5-8FD3-4A48-912A-CA2AF5B82300}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6EE96AB5-8FD3-4A48-912A-CA2AF5B82300}.Release|Any CPU.Build.0 = Release|Any CPU
{86DA044C-9D3B-43BD-8BDB-24B65E152604}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{86DA044C-9D3B-43BD-8BDB-24B65E152604}.Debug|Any CPU.Build.0 = Debug|Any CPU
{86DA044C-9D3B-43BD-8BDB-24B65E152604}.Release|Any CPU.ActiveCfg = Release|Any CPU
{86DA044C-9D3B-43BD-8BDB-24B65E152604}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -70,7 +72,8 @@ Global
{2E8D2379-C8CB-47E1-BF89-A11111F18A08} = {F03B5F75-6DCD-4FF8-989F-403C5EA0AA5B}
{50532462-8F7F-455C-B4B3-732ED764E2FA} = {4ACB1DA8-8A4D-451A-A5FB-3CBD7A261263}
{6EE96AB5-8FD3-4A48-912A-CA2AF5B82300} = {2217EA0E-E53F-4ECC-A49D-F38BC743F47A}
{96D996D2-FAEA-41A0-95BA-B1F88C4DC42E} = {56C57ADC-8E92-4340-AC25-B7647758D4EB}
{A362AFBC-FC73-46A6-9185-15C17E694538} = {56C57ADC-8E92-4340-AC25-B7647758D4EB}
{86DA044C-9D3B-43BD-8BDB-24B65E152604} = {A362AFBC-FC73-46A6-9185-15C17E694538}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {16F7DBDD-F487-41D6-A856-9E9B7B3F61C5}

View 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>

View 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;
}
}
}

View 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")]

View 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;

View File

@@ -96,7 +96,6 @@ namespace SAL_OUTSTOCK
_doingButtonFlag = false;
}
/// <summary>
/// 设置content报文明文信息
/// </summary>

View File

@@ -1,48 +1,86 @@
declare @LCID int
set @LCID = 2052
DECLARE @DATE DATE,@STARTDATE DATETIME ,@ENDDATE DATETIME
SET @DATE = '2023-12-15'
SELECT
@STARTDATE = DATEADD(MONTH, DATEDIFF(MONTH, 0, @DATE), 0)
,@ENDDATE = DATEADD(MS,-3, DATEADD(MONTH, DATEDIFF(MONTH, 0, DATEADD(MONTH, 1, @DATE)), 0))
DECLARE @LCID INT
SET @LCID = 2052
SELECT
A.FBILLNO
,ae.FMATERIALID
,b.FBILLNO
--,'' AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.FMATERIALID
,AE.FENTRYID
,C_L.FNAME AS '<EFBFBD><EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,C_L.FSPECIFICATION AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͺ<EFBFBD>'
--,(CASE
-- FEXPUNIT
-- CS.FEXPUNIT
-- WHEN 'Y' THEN
-- CONVERT ( VARCHAR, BA.FEXPPERIOD ) + '<27><>'
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) ) + '<27><>'
-- WHEN 'M' THEN
-- CONVERT ( VARCHAR, ba.FEXPPERIOD) + '<27><>'
-- CONVERT ( VARCHAR, CAST(CS.FEXPPERIOD AS INT) /12 ) + '<27><>'
-- WHEN 'D' THEN
-- CONVERT ( VARCHAR, ba.FEXPPERIOD ) + '<27><>' ELSE ''
--END) as '<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>'
--,'' as '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' as 'ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' as '<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' as '<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>ֵ'
--,a.FUNITID
--,'' as '<EFBFBD><EFBFBD>λ'
--,'' as '<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,BA.FSAFESTOCK AS '<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.m01 as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.s01 as 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.s02 as 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.s03 as 'ǰһ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,EE_A.FSTOCKINQUAAUXQTY as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' as '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,(EE_A.FSTOCKINQUAAUXQTY + 0) as '<EFBFBD>ϼƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' as '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,DE.FQTY AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
-- 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 '<EFBFBD><EFBFBD>Ч<EFBFBD><EFBFBD>'
--,'' AS '<EFBFBD><EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,CP.FLOTYIELD AS 'ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,CP.FPACKUNITCONVERRATIO AS '<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,CP.FPACKUNITCONVERRATIO AS '<EFBFBD><EFBFBD>װ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD>'
--,CP.FPACKUNITID AS '<EFBFBD><EFBFBD>λ'
,CS.FSTOREUNITID AS '<EFBFBD><EFBFBD>λ'
,'' AS '<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,CAST(CS.FSAFESTOCK AS INT) AS '<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,AE.FSEQ
--,AE.M01 AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,AE.S01 AS 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,AE.S02 AS 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,AE.S03 AS 'ǰһ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,'' AS 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,'' AS 'ǰ<EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
,'' AS 'ǰһ<EFBFBD>·<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,DE.FSRCBILLNO
--,EE_A.FSTOCKINQUAAUXQTY AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' AS '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,(EE_A.FSTOCKINQUAAUXQTY + 0) AS '<EFBFBD>ϼƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,'' AS '<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,(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>'
,B.VerifyQty AS 'ȷ<EFBFBD>ϼƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'
--,DE.FREMARK AS '<EFBFBD><EFBFBD>ע'
FROM
T_PLN_FORECAST A --Ԥ<EFBFBD>
left join T_PLN_FORECASTENTRY AE on a.FID = ae.FID
left join T_PLN_PLANORDER_B B_b on ae.FENTRYID = b_b.FSALEORDERENTRYID and a.FID = b_b.FSALEORDERID
left join T_PLN_PLANORDER B on b.FID = b_b.FID
--T_PLN_PLANORDER A --<EFBFBD>ƻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--LEFT JOIN T_BD_MATERIAL B ON A.FMATERIALID = B.FMATERIALID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--LEFT JOIN T_BD_MATERIALSTOCK BA ON BA.FMATERIALID = B.FMATERIALID
--LEFT JOIN T_PLN_FORECASTENTRY DE ON DE.FMATERIALID = B.FMATERIALID --Ԥ<EFBFBD>
--left join T_PLN_FORECAST d on de.FID = d.FID
LEFT JOIN T_PLN_FORECASTENTRY AE ON A.FID = AE.FID
LEFT JOIN (
SELECT
A.FMATERIALID
,A_B.FSALEORDERENTRYID
,SUM(case when A.FRELEASESTATUS = 1 then A.FDemandQty else 0 end) as 'PlanQty'
,SUM(case when A.FRELEASESTATUS = 2 then A.FDemandQty else 0 end) as 'VerifyQty'
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 ON B.FSALEORDERENTRYID = AE.FENTRYID
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
LEFT JOIN T_BD_MATERIALSTOCK CS ON CS.FMATERIALID = AE.FMATERIALID
LEFT JOIN T_BD_MATERIALPRODUCE CP ON CP.FMATERIALID = C.FMATERIALID
--LEFT JOIN T_PRD_MOENTRY_LK DE_LK ON DE_LK.FSID = B.FID
--LEFT JOIN T_PRD_MOENTRY DE ON DE.FENTRYID = DE_LK.FENTRYID
--LEFT JOIN T_PRD_MOENTRY EE ON EE.FMATERIALID = B.FMATERIALID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--LEFT JOIN T_PRD_MOENTRY_A EE_A ON EE_A.FENTRYID = EE.FENTRYID AND EE.FID =EE_A.FID --<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
where a.fdate ='2023-12-01'
-- A.FRELEASETYPE = 1
WHERE
A.FDATE BETWEEN @STARTDATE AND @ENDDATE

View File

@@ -1,10 +1,10 @@
--DECLARE @date date,@startDate datetime ,@endDate datetime
--set @date = '2023-07-15'
--select
-- @startDate = dateadd(month, datediff(month, 0, @date), 0)
-- ,@endDate = dateadd(ms,-3, dateadd(month, datediff(month, 0, dateadd(month, 1, @date)), 0))
--select
--@startDate,@endDate
DECLARE @date date,@startDate datetime ,@endDate datetime
set @date = '2023-07-15'
select
@startDate = dateadd(month, datediff(month, 0, @date), 0)
,@endDate = dateadd(ms,-3, dateadd(month, datediff(month, 0, dateadd(month, 1, @date)), 0))
select
@startDate,@endDate
declare @LCID int
set @LCID = 2052
@@ -22,8 +22,6 @@ SELECT
WHEN 'D' THEN
CONVERT ( VARCHAR, ba.FEXPPERIOD ) + '' ELSE ''
END) as '有效期'
,'' as '有效期'
,'' as '标准批量'
,'' as '每批产量(件)'
,'' as '包装规格'

View File

@@ -26,38 +26,37 @@ namespace UseGetFmaterialData
{
base.BeforeSave(e);
if (this.Model.DataObject["Id"].Long2Int() == 0)
if (OrgIdCheck())
if (OrgIdCheck())
{
Entity details = null;
//其他出库单 明细表
if (this.View.UserParameterKey.Equals("STK_MisDelivery"))
details = this.View.BusinessInfo.GetEntity("FEntity");
//直接调拨单 明细表
if (this.View.UserParameterKey.Equals("STK_TransferDirect"))
details = this.View.BusinessInfo.GetEntity("FBillEntry");
if (details != null)
{
Entity details = null;
var entrys = this.View.Model.GetEntityDataObject(details);
//其他出库单 明细表
if (this.View.UserParameterKey.Equals("STK_MisDelivery"))
details = this.View.BusinessInfo.GetEntity("FEntity");
//直接调拨单 明细表
if (this.View.UserParameterKey.Equals("STK_TransferDirect"))
details = this.View.BusinessInfo.GetEntity("FBillEntry");
if (details != null)
if (entrys != null && entrys.Any())
{
var entrys = this.View.Model.GetEntityDataObject(details);
if (entrys != null && entrys.Any())
var tempValue2 = this.View.Model.GetValue("FDATE");
var dateValue = tempValue2.IsNullOrEmptyOrWhiteSpace() ? string.Empty : tempValue2.ToString();
foreach (var entry in entrys)
{
var tempValue2 = this.View.Model.GetValue("FDATE");
var dateValue = tempValue2.IsNullOrEmptyOrWhiteSpace() ? string.Empty : tempValue2.ToString();
foreach (var entry in entrys)
{
var rowIndex = this.View.Model.GetRowIndex(details, entry);
var tempValue = entry["MaterialId_Id"];
var rowValue = tempValue.IsNullOrEmptyOrWhiteSpace() ? string.Empty : tempValue.ToString();
UpdReferPriceAndExplain(dateValue, rowValue, rowIndex);
}
TotalReferAmount(entrys, details);
var rowIndex = this.View.Model.GetRowIndex(details, entry);
var tempValue = entry["MaterialId_Id"];
var rowValue = tempValue.IsNullOrEmptyOrWhiteSpace() ? string.Empty : tempValue.ToString();
UpdReferPriceAndExplain(dateValue, rowValue, rowIndex);
}
TotalReferAmount(entrys, details);
}
}
}
}
@@ -151,7 +150,7 @@ namespace UseGetFmaterialData
////小数类型参考金额控件
//this.View.Model.SetValue("FReferAmountM", 0, row);
//参考方向
this.View.Model.SetValue("FExplain", "", row);
this.View.Model.SetValue("FExplain", "没有找到价格", row);
}
else
{
@@ -186,7 +185,7 @@ namespace UseGetFmaterialData
//小数类型参考金额控件
//this.View.Model.SetValue("FReferAmountM", 0, row);
//参考方向
this.View.Model.SetValue("FExplain", "", row);
this.View.Model.SetValue("FExplain", "没有找到价格", row);
}
}
}

View File

@@ -82,7 +82,7 @@ namespace UseGetFmaterialData
var referPrice = this.View.Model.GetValue("FReferPrice", e.Row).ToDecimalR();
var amount = (e.NewValue.ToDecimal() * referPrice).ToDecimalR();
//参考金额
this.View.Model.SetValue("FReferAmount", amount, e.Row);
this.View.Model.SetValue("FReferAmount", amount == 0 ? "" : amount.ToString(), e.Row);
//小数类型参考金额控件
//this.View.Model.SetValue("FReferAmountM", amount, e.Row);
TotalReferAmount(null, null);
@@ -218,7 +218,7 @@ namespace UseGetFmaterialData
////小数类型参考金额控件
//this.View.Model.SetValue("FReferAmountM", 0, row);
//参考方向
this.View.Model.SetValue("FExplain", "", row);
this.View.Model.SetValue("FExplain", "没有找到价格", row);
}
else
{
@@ -253,7 +253,7 @@ namespace UseGetFmaterialData
//小数类型参考金额控件
//this.View.Model.SetValue("FReferAmountM", 0, row);
//参考方向
this.View.Model.SetValue("FExplain", "", row);
this.View.Model.SetValue("FExplain", "没有找到价格", row);
}
}
}