Compare commits

..

No commits in common. "main" and "master" have entirely different histories.
main ... master

10 changed files with 1289 additions and 0 deletions

63
.gitattributes vendored Normal file
View File

@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

363
.gitignore vendored Normal file
View File

@ -0,0 +1,363 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Oo]ut/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.obj
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd

View File

@ -0,0 +1,68 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.Bill.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn.Args;
using Kingdee.BOS.Core.Util;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TenderItem.Induct
{
/// <summary>
/// 【单据插件】填充中标项目分类
/// </summary>
[Description("【单据插件】填充中标项目分类"), HotUpdate]
public class FillComboFieldPlugIn: AbstractBillPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
//this.View.ShowMessage("触发");
if (e.Field.Key == "F_CYG_BidSerial")
{
string newValue = Convert.ToString(e.NewValue);
string sql1 = string.Format(@"/*dialect*/
Select
FBIDPROJECTTYPE
From
MBBA_t_Cust100005
Where FTENDER = '{0}'", newValue);
var NameList = DBUtils.ExecuteDynamicObject(Context, sql1);
string Name = "";
if (NameList.Count != 0)
{
Name = NameList[0]["FBIDPROJECTTYPE"].ToString();
}
string sql2 = string.Format(@"/*dialect*/
SELECT
A.FMASTERID
FROM
T_BAS_ASSISTANTDATAENTRY A
JOIN
T_BAS_ASSISTANTDATAENTRY_L B
on A.FENTRYID = B.FENTRYID
Where B.FLOCALEID = 2052
AND A.FID = '6716fb25f5fc9d'
AND B.FDataValue = '{0}'", Name);
var NumberList = DBUtils.ExecuteDynamicObject(Context, sql2);
var Number = "";
if (NumberList.Count != 0)
{
Number = NumberList[0]["FMASTERID"].ToString();
}
this.View.Model.SetValue("F_CYG_WinningProject", Number);
}
}
}
}

View File

@ -0,0 +1,100 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Core.BusinessFlow;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.List.PlugIn;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace TenderItem.Induct
{
/// <summary>
/// 【表单插件】导入前事件
/// 查询Excel中的标书编号
/// 删除数据库中存在对应标书编号的数据
/// 实现重复标书覆盖效果
/// </summary>
[Description("【表单插件】导入前事件"), HotUpdate]
public class FormOperationServicePlugIn : AbstractListPlugIn
{
/// <summary>
/// 导入之前方法
/// </summary>
/// <param name="e"></param>
public override void BeforeImportData(BeforeImportDataArgs e)
{
base.BeforeImportData(e);
string FTenderList = "";
var dataTable = e.DataSource.Tables[0];
//循环找到所有标书编号
for (int i = 0; i < dataTable.Rows.Count; i++)
{
var FTender = dataTable.Rows[i]["FTender"];
var FBidProjectType = dataTable.Rows[i]["FBidProjectType"];
string sql2 = string.Format(@"/*dialect*/
SELECT
A.FMASTERID
FROM
T_BAS_ASSISTANTDATAENTRY A
JOIN
T_BAS_ASSISTANTDATAENTRY_L B
on A.FENTRYID = B.FENTRYID
Where B.FLOCALEID = 2052
AND A.FID = '6716fb25f5fc9d'
AND B.FDataValue = '{0}'", FBidProjectType);
var FBidProjectTypeList = DBUtils.ExecuteDynamicObject(Context, sql2);
var FBidProjectTypeId = "";
if (FBidProjectTypeList.Count != 0)
{
FBidProjectTypeId = FBidProjectTypeList[0]["FMASTERID"].ToString();
}
string sql = string.Format(@"Update
T_CRM_CONTRACT
Set F_CYG_WinningProject = '{1}'
Where F_CYG_BidSerial = '{0}'", FTender, FBidProjectTypeId);
DBUtils.ExecuteDynamicObject(Context, sql);
decimal n1 = 0;
decimal n2 = 0;
string nn1 = dataTable.Rows[i]["FWinningBid"].ToString();
string nn2 = dataTable.Rows[i]["FFrameVolume"].ToString();
if(!string.IsNullOrEmpty(nn1))
{
n1 = Convert.ToDecimal(nn1);
}
if(!string.IsNullOrEmpty(nn2))
{
n2 = Convert.ToDecimal(nn2);
}
dataTable.Rows[i]["FWinningBidSubtotal"] = n1 + n2;
FTenderList += "'" + FTender + "',";
}
FTenderList += "'0'";
string sqlDelete = string.Format(@"Delete MBBA_t_Cust100005 where FTender in ({0})", FTenderList);
DBUtils.ExecuteDynamicObject(this.Context, sqlDelete);
//this.View.ShowErrMessage("引入数据操作(测试是否进入插件!!!)");
}
}
}

View File

@ -0,0 +1,33 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("TenderItem.Induct")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("TenderItem.Induct")]
[assembly: AssemblyCopyright("Copyright © 2024")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("b19f9275-cf4f-45ad-a0b1-a138317ddf6b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,36 @@
using Kingdee.BOS.Core.Report.PlugIn;
using Kingdee.BOS.Core.Report.PlugIn.Args;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TenderItem.Induct
{
[Description("【报表表单插件】投标项目报表"), HotUpdate]
public class TenderFormServicePlugIn: AbstractSysReportPlugIn
{
public override void FormatCellValue(FormatCellValueArgs args)
{
// 格式化日期
base.FormatCellValue(args);
if (args.Header.ColType == Kingdee.BOS.SqlStorageType.SqlDatetime)
{
DateTime value = Convert.ToDateTime(args.FormateValue);
string afterValue = value.ToString("yyyy-MM-dd");
args.FormateValue = afterValue;
}
// 格式化金额 汇率不格式化
if (args.Header.ColType == Kingdee.BOS.SqlStorageType.SqlDecimal)
{
decimal value = decimal.Parse(args.FormateValue);
// 千分位
string afterValue = value.ToString("N");
args.FormateValue = afterValue;
}
}
}
}

View File

@ -0,0 +1,82 @@
<?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>{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>TenderItem.Induct</RootNamespace>
<AssemblyName>TenderItem.Induct</AssemblyName>
<TargetFrameworkVersion>v4.8</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>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.App">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.App.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Contracts">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.Contracts.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Core">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.DataEntity">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.DataEntity.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Web">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.Web.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Web.HTML">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.Web.HTML.dll</HintPath>
</Reference>
<Reference Include="Kingdee.BOS.Web.HTML.Core">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.BOS.Web.HTML.Core.dll</HintPath>
</Reference>
<Reference Include="Kingdee.K3.MFG.PLN.Business.PlugIn">
<HintPath>..\..\AccountingVoucher\AccountingVoucher.BOS\bin\Debug\Kingdee.K3.MFG.PLN.Business.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="FillComboFieldPlugIn.cs" />
<Compile Include="TenderFormServicePlugIn.cs" />
<Compile Include="TenderProjectReportPlugin2.cs" />
<Compile Include="TenderProjectReportPlugin.cs" />
<Compile Include="FormOperationServicePlugIn.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>copy $(TargetPath) "F:\金蝶\WebSite\Bin\$(TargetFileName)"</PostBuildEvent>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,316 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.Cvp;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.BOS;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TenderItem.Induct
{
/// <summary>
/// 【列表插件】投标项目数据简单报表
/// </summary>
[Description("【列表插件】投标项目数据报表"), HotUpdate]
public class TenderProjectReportPlugin : SysReportBaseService
{
/// <summary>
/// 初始化
/// </summary>
public override void Initialize()
{
base.Initialize();
this.ReportProperty.ReportName = new LocaleValue("投标项目数据报表", base.Context.UserLocale.LCID);
this.ReportProperty.IsUIDesignerColumns = false;
// 简单账表类型:普通、树形、分页
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
this.IsCreateTempTableByPlugin = true;
//
this.IsCreateTempTableByPlugin = true;
//
this.ReportProperty.IsGroupSummary = true;
//
this.ReportProperty.SimpleAllCols = false;
// 单据主键两行FID相同则为同一单的两条分录单据编号可以不重复显示
this.ReportProperty.PrimaryKeyFieldName = "FID";
//
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;
// 设置精度控制
var list = new List<DecimalControlField>
{
new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"),
new DecimalControlField("FDECIMALS", "ExchangeRate"),
new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"),
new DecimalControlField("FDECIMALS", "MonthEndExRate"),
new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"),
new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"),
};
this.ReportProperty.DecimalControlFieldList = list;
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
base.GetReportHeaders(filter);
ReportHeader header = new ReportHeader();
if (this.Context.UserLocale.LCID == 2052)
{
header.AddChild("Year", new LocaleValue("年份"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderNumber", new LocaleValue("招标编号"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderMain", new LocaleValue("标书主编号"), SqlStorageType.Sqlvarchar);
header.AddChild("Tender", new LocaleValue("标书编号"), SqlStorageType.Sqlvarchar);
header.AddChild("ProjectName", new LocaleValue("项目名称"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderingUnit", new LocaleValue("招标单位"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProjectType", new LocaleValue("中标项目分类"), SqlStorageType.Sqlvarchar);
header.AddChild("ProvincesHead", new LocaleValue("省区负责人"), SqlStorageType.Sqlvarchar);
header.AddChild("Authorizer", new LocaleValue("授权人"), SqlStorageType.Sqlvarchar);
header.AddChild("Region", new LocaleValue("大区"), SqlStorageType.Sqlvarchar);
header.AddChild("Provinces", new LocaleValue("省区"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProductsType", new LocaleValue("中标产品分类"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProducts", new LocaleValue("中标产品"), SqlStorageType.Sqlvarchar);
header.AddChild("BidPackageNumber", new LocaleValue("中标包号"), SqlStorageType.Sqlvarchar);
header.AddChild("WinningBid", new LocaleValue("中标额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("FrameVolume", new LocaleValue("框架标预估体量"), SqlStorageType.SqlDecimal);
header.AddChild("WinningBidSubtotal", new LocaleValue("中标额小计"), SqlStorageType.SqlDecimal);
header.AddChild("BidsDate", new LocaleValue("开标时间"), SqlStorageType.SqlDatetime);
header.AddChild("InstallationIllustrate", new LocaleValue("安装说明"), SqlStorageType.Sqlvarchar);
header.AddChild("Remark", new LocaleValue("备注"), SqlStorageType.Sqlvarchar);
header.AddChild("ContractOriginalReturns", new LocaleValue("合同原件返回额"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOrder", new LocaleValue("下单金额"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOriginalOrder", new LocaleValue("下单无原件金额"), SqlStorageType.SqlDecimal);
header.AddChild("ContractAmountOrder", new LocaleValue("合同返回未下单金额"), SqlStorageType.SqlDecimal);
header.AddChild("BidderNotAgency", new LocaleValue("中标未签约且未下单(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("Sales", new LocaleValue("销售额"), SqlStorageType.SqlDecimal);
header.AddChild("InvoicedAmount", new LocaleValue("已开票额"), SqlStorageType.SqlDecimal);
header.AddChild("UnbilledAmount", new LocaleValue("未开票额"), SqlStorageType.SqlDecimal);
header.AddChild("ProjectSpecialIllustrate", new LocaleValue("项目特殊情况说明"), SqlStorageType.Sqlvarchar);
header.AddChild("Cost", new LocaleValue("成本"), SqlStorageType.SqlDecimal);
}
else
{
header.AddChild("Year", new LocaleValue("Year"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderNumber", new LocaleValue("TenderNumber"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderMain", new LocaleValue("TenderMain"), SqlStorageType.Sqlvarchar);
header.AddChild("Tender", new LocaleValue("Tender"), SqlStorageType.Sqlvarchar);
header.AddChild("ProjectName", new LocaleValue("ProjectName"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderingUnit", new LocaleValue("TenderingUnit"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProjectType", new LocaleValue("BidProjectType"), SqlStorageType.Sqlvarchar);
header.AddChild("ProvincesHead", new LocaleValue("ProvincesHead"), SqlStorageType.Sqlvarchar);
header.AddChild("Authorizer", new LocaleValue("Authorizer"), SqlStorageType.Sqlvarchar);
header.AddChild("Region", new LocaleValue("Region"), SqlStorageType.Sqlvarchar);
header.AddChild("Provinces", new LocaleValue("Provinces"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProductsType", new LocaleValue("BidProductsType"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProducts", new LocaleValue("BidProducts"), SqlStorageType.Sqlvarchar);
header.AddChild("BidPackageNumber", new LocaleValue("BidPackageNumber"), SqlStorageType.Sqlvarchar);
header.AddChild("WinningBid", new LocaleValue("WinningBid"), SqlStorageType.SqlDecimal);
header.AddChild("FrameVolume", new LocaleValue("FrameVolume"), SqlStorageType.SqlDecimal);
header.AddChild("WinningBidSubtotal", new LocaleValue("WinningBidSubtotal"), SqlStorageType.SqlDecimal);
header.AddChild("BidsDate", new LocaleValue("InstallationIllustrate"), SqlStorageType.SqlDatetime);
header.AddChild("InstallationIllustrate", new LocaleValue("InstallationIllustrate"), SqlStorageType.Sqlvarchar);
header.AddChild("Remark", new LocaleValue("Remark"), SqlStorageType.Sqlvarchar);
header.AddChild("ContractOriginalReturns", new LocaleValue("ContractOriginalReturns"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOrder", new LocaleValue("AmountOrder"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOriginalOrder", new LocaleValue("AmountOriginalOrder"), SqlStorageType.SqlDecimal);
header.AddChild("ContractAmountOrder", new LocaleValue("ContractAmountOrder"), SqlStorageType.SqlDecimal);
header.AddChild("BidderNotAgency", new LocaleValue("BidderNotAgency"), SqlStorageType.SqlDecimal);
header.AddChild("Sales", new LocaleValue("Sales"), SqlStorageType.SqlDecimal);
header.AddChild("InvoicedAmount", new LocaleValue("InvoicedAmount"), SqlStorageType.SqlDecimal);
header.AddChild("UnbilledAmount", new LocaleValue("UnbilledAmount"), SqlStorageType.SqlDecimal);
header.AddChild("ProjectSpecialIllustrate", new LocaleValue("ProjectSpecialIllustrate"), SqlStorageType.Sqlvarchar);
header.AddChild("Cost", new LocaleValue("Cost"), SqlStorageType.SqlDecimal);
}
foreach (var item in header.GetChilds())
{
item.Width = 150;
}
return header;
}
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
// 年份
string fDate = customFilter["FDate"]?.ToString();
// 标书编号
string fTender = customFilter["FTender"]?.ToString();
base.BuilderReportSqlAndTempTable(filter, tableName);
string sql = string.Format(@"/*dialect*/
Select
A.FYEAR as [Year],
A.FTenderNumber as TenderNumber,
A.FTenderMain as TenderMain,
A.FTender as Tender,
A.FProjectName as ProjectName,
A.FTenderingUnit as TenderingUnit,
A.FBidProjectType as BidProjectType,
A.FProvincesHead as ProvincesHead,
A.FAuthorizer as Authorizer,
A.FRegion as Region,
A.FProvinces as Provinces,
A.FBidProductsType as BidProductsType,
A.FBidProducts as BidProducts,
A.FBidPackageNumber as BidPackageNumber,
A.FWinningBid as WinningBid,
A.FFrameVolume as FrameVolume,
A.FWinningBidSubtotal as WinningBidSubtotal,
A.FBidsDate as BidsDate,
A.FInstallationIllustrate as InstallationIllustrate,
A.FRemark as Remark,
CASE WHEN ISNULL(E.F_CYG_Paperreturndate,'')='' THEN 0
ELSE (Select FCONTRACTAMOUNT_LC From T_CRM_CONTRACTFIN WHere FId = E.FID)
END as ContractOriginalReturns, --
ISNULL((Select
Sum(q.FAllAmount_LC)
From T_SAL_ORDERENTRY_F q
JOIN
T_SAL_ORDERENTRY w
on q.FID = w.FID
Where q.FID = B.FID
AND w.F_CYG_CheckBalance1 != 1),0) as AmountOrder, --
CASE WHEN ISNULL(E.F_CYG_Paperreturndate,'')='' THEN ISNULL((Select FCONTRACTAMOUNT_LC From T_CRM_CONTRACTFIN WHere FId = E.FID),0)
ELSE 0
END as AmountOriginalOrder, --
((CASE WHEN ISNULL(E.F_CYG_PAPERRETURNDATE,'')='' THEN 0
ELSE (Select FCONTRACTAMOUNT_LC From T_CRM_CONTRACTFIN WHere FId = E.FID)
END)-(ISNULL((Select
Sum(q.FAllAmount_LC)
From T_SAL_ORDERENTRY_F q
JOIN
T_SAL_ORDERENTRY w
on q.FID = w.FID
Where q.FID = B.FID
AND w.F_CYG_CheckBalance1 != 1),0))) as ContractAmountOrder, --
((A.FWinningBidSubtotal)-(CASE WHEN ISNULL(E.F_CYG_Paperreturndate,'')='' THEN 0
ELSE (Select FCONTRACTAMOUNT_LC From T_CRM_CONTRACTFIN WHere FId = E.FID)
END)-(CASE WHEN ISNULL(E.F_CYG_Paperreturndate,'')='' THEN ISNULL((Select FCONTRACTAMOUNT_LC From T_CRM_CONTRACTFIN WHere FId = E.FID),0)
ELSE 0
END)) as BidderNotAgency, --
CASE WHEN D.FID in (Select Ae.FID From
(Select WW.FID,SUM(EE.FMustqty) as 'FMustqty',Sum(EE.FRealQty) as 'FRealQty'
From
(Select W.FSID,E.FID
From T_AR_RECEIVABLEENTRY_LK W
--Where FSTABLENAME = 'T_SAL_RETURNSTOCKENTRY'
JOIN
T_AR_RECEIVABLEENTRY E
on W.FENTRYID = E.FENTRYID AND W.FSTABLENAME = 'T_SAL_RETURNSTOCKENTRY') WW
JOIN
T_SAL_RETURNSTOCKENTRY EE
on WW.FSID = EE.FENTRYID
Group by WW.FID) Ae
Where Ae.FMustqty=Ae.FRealQty)
THEN 0
ELSE
ISNULL((Select SUM(FALLAMOUNT) From T_AR_RECEIVABLEENTRY Where FID = D.FID),0)
END as Sales,--
ISNull((Select SUM(FOPENAMOUNTFOR) From T_AR_RECEIVABLEENTRY Where FID = D.FID),0) as InvoicedAmount, --
((CASE WHEN D.FID in (Select Ae.FID From
(Select WW.FID,SUM(EE.FMustqty) as 'FMustqty',Sum(EE.FRealQty) as 'FRealQty'
From
(Select W.FSID,E.FID
From T_AR_RECEIVABLEENTRY_LK W
--Where FSTABLENAME = 'T_SAL_RETURNSTOCKENTRY'
JOIN
T_AR_RECEIVABLEENTRY E
on W.FENTRYID = E.FENTRYID AND W.FSTABLENAME = 'T_SAL_RETURNSTOCKENTRY') WW
JOIN
T_SAL_RETURNSTOCKENTRY EE
on WW.FSID = EE.FENTRYID
Group by WW.FID) Ae
Where Ae.FMustqty=Ae.FRealQty)
THEN 0
ELSE
ISNULL((Select SUM(FALLAMOUNT) From T_AR_RECEIVABLEENTRY Where FID = D.FID),0)
END)
-(ISNull((Select SUM(FOPENAMOUNTFOR) From T_AR_RECEIVABLEENTRY Where FID = D.FID),0))) as UnbilledAmount, --
A.FProjectSpecialIllustrate as ProjectSpecialIllustrate, --
0 as Cost --
Into #TempTable1 ");
sql += string.Format(@"From MBBA_t_Cust100005 A --投标项目表
Left JOIN --
T_SAL_ORDER B
on A.FTender = B.FTENDERNO
AND B.FBusinessType != 'RETURNSO'
AND B.F_CYG_CheckBalance != 1
AND B.FDocumentStatus = 'C'
AND B.FCloseStatus = 'A'
AND B.FCancelStatus = 'A'
Left JOIN --
T_SAL_OUTSTOCK C
on A.FTENDER = C.FTENDERNO
AND C.FDocumentStatus = 'C'
AND C.FCancelStatus = 'A'
Left JOIN --
T_AR_RECEIVABLE D
on A.FTENDER = D.FTENDERNO
AND D.FDocumentStatus = 'C'
AND D.FWRITTENOFFSTATUS != 'C' --
AND D.FCancelStatus = 'A'
Left JOIN --
T_CRM_CONTRACT E
on E.F_CYG_BidSerial = A.FTENDER
AND E.FDocumentStatus = 'C'
AND E.FCloseStatus = 'A'
AND E.FCancelStatus = 'A'
Where 1=1");
//过滤条件
if (!string.IsNullOrEmpty(fDate))
{
string dateString = fDate.Split('-')[0];
sql += string.Format(@" AND A.FYEAR = {0}", dateString);
}
if (!string.IsNullOrEmpty(fTender))
{
sql += string.Format(@" AND A.FTender = '{0}'", fTender);
}
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/
Select
ROW_NUMBER() OVER (ORDER BY Year) AS FID,
ROW_NUMBER() OVER (ORDER BY Year) AS FIDENTITYID,
*
into {0}
From #TempTable1", tableName);
DBUtils.Execute(this.Context, sql);
}
/// <summary>
/// 获取前端组件转换过滤条件
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override ReportTitles GetReportTitles(IRptParams filter)
{
ReportTitles reportTitles = new ReportTitles();
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
if (customFilter != null)
{
// 截至日期
string fDate = customFilter["FDate"]?.ToString();
// 标书编号
string fTender = customFilter["FTender"]?.ToString();
//这里是报表页面的标识
reportTitles.AddTitle("FTender", fTender == null ? "" : fTender);
reportTitles.AddTitle("FDate", fDate == null ? "" : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd"));
}
return reportTitles;
}
}
}

View File

@ -0,0 +1,203 @@
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.Cvp;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using Kingdee.BOS;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TenderItem.Induct
{
/// <summary>
/// 【列表插件】投标项目数据简单报表2
/// </summary>
[Description("【列表插件】投标项目数据报表2"), HotUpdate]
public class TenderProjectReportPlugin2 : SysReportBaseService
{
/// <summary>
/// 初始化
/// </summary>
public override void Initialize()
{
base.Initialize();
this.ReportProperty.ReportName = new LocaleValue("投标项目数据报表", base.Context.UserLocale.LCID);
this.ReportProperty.IsUIDesignerColumns = false;
// 简单账表类型:普通、树形、分页
this.ReportProperty.ReportType = ReportType.REPORTTYPE_NORMAL;
this.IsCreateTempTableByPlugin = true;
//
this.IsCreateTempTableByPlugin = true;
//
this.ReportProperty.IsGroupSummary = true;
//
this.ReportProperty.SimpleAllCols = false;
// 单据主键两行FID相同则为同一单的两条分录单据编号可以不重复显示
this.ReportProperty.PrimaryKeyFieldName = "FID";
//
this.ReportProperty.IsDefaultOnlyDspSumAndDetailData = true;
// 设置精度控制
var list = new List<DecimalControlField>
{
new DecimalControlField("FDECIMALS", "OrigInvoiceAmount"),
new DecimalControlField("FDECIMALS", "ExchangeRate"),
new DecimalControlField("FDECIMALS", "InvoiceAmountTHB"),
new DecimalControlField("FDECIMALS", "MonthEndExRate"),
new DecimalControlField("FDECIMALS", "RevaluationAountInTHB"),
new DecimalControlField("FDECIMALS", "UnrealizedGainLoss"),
};
this.ReportProperty.DecimalControlFieldList = list;
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
base.GetReportHeaders(filter);
ReportHeader header = new ReportHeader();
if (this.Context.UserLocale.LCID == 2052)
{
header.AddChild("Year", new LocaleValue("年份"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderNumber", new LocaleValue("招标编号"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderMain", new LocaleValue("标书主编号"), SqlStorageType.Sqlvarchar);
header.AddChild("Tender", new LocaleValue("标书编号"), SqlStorageType.Sqlvarchar);
header.AddChild("ProjectName", new LocaleValue("项目名称"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderingUnit", new LocaleValue("招标单位"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProjectType", new LocaleValue("中标项目分类"), SqlStorageType.Sqlvarchar);
header.AddChild("ProvincesHead", new LocaleValue("省区负责人"), SqlStorageType.Sqlvarchar);
header.AddChild("Authorizer", new LocaleValue("授权人"), SqlStorageType.Sqlvarchar);
header.AddChild("Region", new LocaleValue("大区"), SqlStorageType.Sqlvarchar);
header.AddChild("Provinces", new LocaleValue("省区"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProductsType", new LocaleValue("中标产品分类"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProducts", new LocaleValue("中标产品"), SqlStorageType.Sqlvarchar);
header.AddChild("BidPackageNumber", new LocaleValue("中标包号"), SqlStorageType.Sqlvarchar);
header.AddChild("WinningBid", new LocaleValue("中标额(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("FrameVolume", new LocaleValue("框架标预估体量"), SqlStorageType.SqlDecimal);
header.AddChild("WinningBidSubtotal", new LocaleValue("中标额小计"), SqlStorageType.SqlDecimal);
header.AddChild("BidsDate", new LocaleValue("开标时间"), SqlStorageType.SqlDatetime);
header.AddChild("InstallationIllustrate", new LocaleValue("安装说明"), SqlStorageType.Sqlvarchar);
header.AddChild("Remark", new LocaleValue("备注"), SqlStorageType.Sqlvarchar);
header.AddChild("ContractOriginalReturns", new LocaleValue("合同原件返回额"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOrder", new LocaleValue("下单金额"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOriginalOrder", new LocaleValue("下单无原件金额"), SqlStorageType.SqlDecimal);
header.AddChild("ContractAmountOrder", new LocaleValue("合同返回未下单金额"), SqlStorageType.SqlDecimal);
header.AddChild("BidderNotAgency", new LocaleValue("中标未签约且未下单(万元)"), SqlStorageType.SqlDecimal);
header.AddChild("Sales", new LocaleValue("销售额"), SqlStorageType.SqlDecimal);
header.AddChild("InvoicedAmount", new LocaleValue("已开票额"), SqlStorageType.SqlDecimal);
header.AddChild("UnbilledAmount", new LocaleValue("未开票额"), SqlStorageType.SqlDecimal);
header.AddChild("ProjectSpecialIllustrate", new LocaleValue("项目特殊情况说明"), SqlStorageType.Sqlvarchar);
header.AddChild("Cost", new LocaleValue("成本"), SqlStorageType.SqlDecimal);
}
else
{
header.AddChild("Year", new LocaleValue("Year"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderNumber", new LocaleValue("TenderNumber"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderMain", new LocaleValue("TenderMain"), SqlStorageType.Sqlvarchar);
header.AddChild("Tender", new LocaleValue("Tender"), SqlStorageType.Sqlvarchar);
header.AddChild("ProjectName", new LocaleValue("ProjectName"), SqlStorageType.Sqlvarchar);
header.AddChild("TenderingUnit", new LocaleValue("TenderingUnit"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProjectType", new LocaleValue("BidProjectType"), SqlStorageType.Sqlvarchar);
header.AddChild("ProvincesHead", new LocaleValue("ProvincesHead"), SqlStorageType.Sqlvarchar);
header.AddChild("Authorizer", new LocaleValue("Authorizer"), SqlStorageType.Sqlvarchar);
header.AddChild("Region", new LocaleValue("Region"), SqlStorageType.Sqlvarchar);
header.AddChild("Provinces", new LocaleValue("Provinces"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProductsType", new LocaleValue("BidProductsType"), SqlStorageType.Sqlvarchar);
header.AddChild("BidProducts", new LocaleValue("BidProducts"), SqlStorageType.Sqlvarchar);
header.AddChild("BidPackageNumber", new LocaleValue("BidPackageNumber"), SqlStorageType.Sqlvarchar);
header.AddChild("WinningBid", new LocaleValue("WinningBid"), SqlStorageType.SqlDecimal);
header.AddChild("FrameVolume", new LocaleValue("FrameVolume"), SqlStorageType.SqlDecimal);
header.AddChild("WinningBidSubtotal", new LocaleValue("WinningBidSubtotal"), SqlStorageType.SqlDecimal);
header.AddChild("BidsDate", new LocaleValue("InstallationIllustrate"), SqlStorageType.SqlDatetime);
header.AddChild("InstallationIllustrate", new LocaleValue("InstallationIllustrate"), SqlStorageType.Sqlvarchar);
header.AddChild("Remark", new LocaleValue("Remark"), SqlStorageType.Sqlvarchar);
header.AddChild("ContractOriginalReturns", new LocaleValue("ContractOriginalReturns"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOrder", new LocaleValue("AmountOrder"), SqlStorageType.SqlDecimal);
header.AddChild("AmountOriginalOrder", new LocaleValue("AmountOriginalOrder"), SqlStorageType.SqlDecimal);
header.AddChild("ContractAmountOrder", new LocaleValue("ContractAmountOrder"), SqlStorageType.SqlDecimal);
header.AddChild("BidderNotAgency", new LocaleValue("BidderNotAgency"), SqlStorageType.SqlDecimal);
header.AddChild("Sales", new LocaleValue("Sales"), SqlStorageType.SqlDecimal);
header.AddChild("InvoicedAmount", new LocaleValue("InvoicedAmount"), SqlStorageType.SqlDecimal);
header.AddChild("UnbilledAmount", new LocaleValue("UnbilledAmount"), SqlStorageType.SqlDecimal);
header.AddChild("ProjectSpecialIllustrate", new LocaleValue("ProjectSpecialIllustrate"), SqlStorageType.Sqlvarchar);
header.AddChild("Cost", new LocaleValue("Cost"), SqlStorageType.SqlDecimal);
}
foreach (var item in header.GetChilds())
{
item.Width = 150;
}
return header;
}
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
// 年份
string fDate = customFilter["FDate"]?.ToString();
// 标书编号
string fTender = customFilter["FTender"]?.ToString();//FTender
base.BuilderReportSqlAndTempTable(filter, tableName);
string sql = string.Format(@"/*dialect*/
SELECT
*
INTO #TempTable1
FROM
T_DB_TESTVIEW
WHERE 1=1");
//过滤条件
if (!string.IsNullOrEmpty(fDate))
{
string dateString = fDate.Split('-')[0];
sql += string.Format(@" AND YEAR = {0}", dateString);
}
if (!string.IsNullOrEmpty(fTender))
{
sql += string.Format(@" AND Tender = '{0}'", fTender);
}
sql += string.Format(@";");
sql += string.Format(@"/*dialect*/
Select
ROW_NUMBER() OVER (ORDER BY Year) AS FID,
ROW_NUMBER() OVER (ORDER BY Year) AS FIDENTITYID,
*
INTO {0}
From #TempTable1", tableName);
DBUtils.Execute(this.Context, sql);
}
/// <summary>
/// 获取前端组件转换过滤条件
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
public override ReportTitles GetReportTitles(IRptParams filter)
{
ReportTitles reportTitles = new ReportTitles();
DynamicObject customFilter = filter.FilterParameter.CustomFilter;
if (customFilter != null)
{
// 截至日期
string fDate = customFilter["FDate"]?.ToString();
// 标书编号
string fTender = customFilter["FTender"]?.ToString();
//这里是报表页面的标识
reportTitles.AddTitle("FTender", fTender == null ? "" : fTender);
reportTitles.AddTitle("FDate", fDate == null ? "" : Convert.ToDateTime(fDate).ToString("yyyy-MM-dd"));
}
return reportTitles;
}
}
}

25
TenderItem.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35327.3
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TenderItem.Induct", "TenderItem.Induct\TenderItem.Induct.csproj", "{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B19F9275-CF4F-45AD-A0B1-A138317DDF6B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {62FD1093-89C0-435F-86D4-BD6B63A15E7C}
EndGlobalSection
EndGlobal