430 lines
24 KiB
C#
430 lines
24 KiB
C#
using Kingdee.BOS.App.Data;
|
|
using Kingdee.BOS.Core.CommonFilter;
|
|
using Kingdee.BOS.Core.DynamicForm;
|
|
using Kingdee.BOS.Core.DynamicForm.PlugIn;
|
|
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
|
|
using Kingdee.BOS.Core.Permission;
|
|
using Kingdee.BOS.Core.SqlBuilder;
|
|
using Kingdee.BOS.Orm.DataEntity;
|
|
using Kingdee.BOS.Util;
|
|
using SixLabors.ImageSharp.PixelFormats;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
namespace Pilot.Report.Exploitation.Receivables
|
|
{
|
|
/// <summary>
|
|
/// 【动态表单】应收款明细报表
|
|
/// </summary>
|
|
[Description("【动态表单】应收款明细报表"), HotUpdate]
|
|
public class ReceivablesDetails : AbstractDynamicFormPlugIn
|
|
{
|
|
public override void OnLoad(EventArgs e)
|
|
{
|
|
base.OnLoad(e);
|
|
var showParameter = new DynamicFormShowParameter();
|
|
showParameter.FormId = "YKQC_YSKMXBGL";
|
|
showParameter.ParentPageId = this.View.PageId;
|
|
showParameter.PageId = this.View.PageId + "_Filter";
|
|
showParameter.OpenStyle.CacheId = this.View.PageId;
|
|
this.View.ShowForm(showParameter, action => FilterCallBack(action));
|
|
}
|
|
public override void BarItemClick(BarItemClickEventArgs e)
|
|
{
|
|
base.BarItemClick(e);
|
|
|
|
//点击过滤按钮,弹出过滤窗体
|
|
if (e.BarItemKey.Equals("MBBA_tbButton_GL", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
var showParameter = new DynamicFormShowParameter();
|
|
showParameter.FormId = "YKQC_YSKMXBGL";
|
|
showParameter.ParentPageId = this.View.PageId;
|
|
showParameter.PageId = this.View.PageId + "_Filter";
|
|
showParameter.OpenStyle.CacheId = this.View.PageId;
|
|
this.View.ShowForm(showParameter,action => FilterCallBack(action));
|
|
}
|
|
|
|
//点击保存按钮
|
|
if (e.BarItemKey == "MBBA_tbButton_2")
|
|
{
|
|
var sql_1 = string.Format(@"/*dialect*/Select top 1 FId From ReceivablesDetailsTable");
|
|
var sql_List1 = DBUtils.ExecuteDynamicObject(Context, sql_1);
|
|
|
|
//判断是否存在表
|
|
if (sql_List1.Count() > 0)
|
|
{
|
|
DynamicObjectCollection entries = this.View.Model.DataObject[6] as DynamicObjectCollection;
|
|
List<int> strings = new List<int>();
|
|
foreach (var item in entries)
|
|
{
|
|
if (item["F_666"]?.ToString() == "True")
|
|
{
|
|
strings.Add(Convert.ToInt32(item["F_FID"]));
|
|
}
|
|
}
|
|
string fids = string.Join(",", strings.ToArray());
|
|
string sql_2 = string.Format(@"DELETE FROM ReceivablesDetailsTable Where Fid in ({0})", fids);
|
|
DBUtils.ExecuteDynamicObject(Context, sql_2);
|
|
for (int i = 0; i < entries.Count; i++)
|
|
{
|
|
var f = this.View.Model.GetValue("F_000", i)?.ToString();
|
|
if (f != "0" && entries[i]["F_666"]?.ToString() == "True")
|
|
{
|
|
#region 隐藏单据体赋值
|
|
|
|
var f0 = this.View.Model.GetValue("F_000", i);
|
|
var f1 = this.View.Model.GetValue("F_001", i);
|
|
var f2 = this.View.Model.GetValue("F_002", i);
|
|
var f3 = this.View.Model.GetValue("F_003", i);
|
|
var f4 = this.View.Model.GetValue("F_004", i);
|
|
var f5 = this.View.Model.GetValue("F_005", i);
|
|
var f6 = this.View.Model.GetValue("F_006", i);
|
|
var f7 = this.View.Model.GetValue("F_007", i);
|
|
var f8 = this.View.Model.GetValue("F_008", i);
|
|
var f9 = this.View.Model.GetValue("F_009", i);
|
|
var f10 = this.View.Model.GetValue("F_010", i);
|
|
var f11 = this.View.Model.GetValue("F_011", i);
|
|
var f12 = this.View.Model.GetValue("F_012", i);
|
|
var f13 = this.View.Model.GetValue("F_013", i);
|
|
var f14 = this.View.Model.GetValue("F_014", i);
|
|
var f15 = this.View.Model.GetValue("F_015", i);
|
|
var f16 = this.View.Model.GetValue("F_016", i);
|
|
var f17 = this.View.Model.GetValue("F_017", i);
|
|
var f18 = this.View.Model.GetValue("F_018", i);
|
|
var f19 = this.View.Model.GetValue("F_019", i);
|
|
var f20 = this.View.Model.GetValue("F_020", i);
|
|
var f21 = this.View.Model.GetValue("F_021", i);
|
|
var f22 = this.View.Model.GetValue("F_022", i);
|
|
var f23 = this.View.Model.GetValue("F_023", i);
|
|
var f24 = this.View.Model.GetValue("F_024", i);
|
|
var f25 = this.View.Model.GetValue("F_025", i);
|
|
var f26 = this.View.Model.GetValue("F_026", i);
|
|
var f27 = this.View.Model.GetValue("F_027", i);
|
|
var f28 = this.View.Model.GetValue("F_028", i);
|
|
var f29 = this.View.Model.GetValue("F_029", i);
|
|
var f30 = this.View.Model.GetValue("F_030", i);
|
|
var f31 = this.View.Model.GetValue("F_031", i);
|
|
var f32 = this.View.Model.GetValue("F_032", i);
|
|
var f33 = this.View.Model.GetValue("F_033", i);
|
|
var f34 = this.View.Model.GetValue("F_034", i);
|
|
var f35 = this.View.Model.GetValue("F_035", i);
|
|
var f36 = this.View.Model.GetValue("F_036", i);
|
|
var f37 = this.View.Model.GetValue("F_037", i);
|
|
var f38 = this.View.Model.GetValue("F_038", i);
|
|
var f39 = this.View.Model.GetValue("F_039", i);
|
|
var f40 = this.View.Model.GetValue("F_040", i);
|
|
var f41 = this.View.Model.GetValue("F_041", i);
|
|
var f42 = this.View.Model.GetValue("F_042", i);
|
|
var f43 = this.View.Model.GetValue("F_043", i);
|
|
var f44 = this.View.Model.GetValue("F_044", i);
|
|
var f45 = this.View.Model.GetValue("F_045", i);
|
|
var f46 = this.View.Model.GetValue("F_046", i);
|
|
var f47 = this.View.Model.GetValue("F_047", i);
|
|
var f48 = this.View.Model.GetValue("F_048", i);
|
|
var f49 = this.View.Model.GetValue("F_049", i);
|
|
var f50 = this.View.Model.GetValue("F_050", i);
|
|
var f51 = this.View.Model.GetValue("F_051", i);
|
|
var f52 = this.View.Model.GetValue("F_052", i);
|
|
var f53 = this.View.Model.GetValue("F_053", i);
|
|
var f54 = this.View.Model.GetValue("F_054", i);
|
|
var f55 = this.View.Model.GetValue("F_055", i);
|
|
var f56 = this.View.Model.GetValue("F_056", i);
|
|
var f57 = this.View.Model.GetValue("F_057", i);
|
|
var f58 = this.View.Model.GetValue("F_058", i);
|
|
var f59 = this.View.Model.GetValue("F_059", i);
|
|
var f60 = this.View.Model.GetValue("F_060", i);
|
|
var f61 = this.View.Model.GetValue("F_061", i);
|
|
var f62 = this.View.Model.GetValue("F_062", i);
|
|
var f63 = this.View.Model.GetValue("F_063", i);
|
|
|
|
#endregion
|
|
|
|
string sql_3 = string.Format(@"Insert Into ReceivablesDetailsTable Values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}',
|
|
'{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}',
|
|
'{30}','{31}','{32}','{33}','{34}','{35}','{36}','{37}','{38}','{39}','{40}','{41}','{42}','{43}','{44}','{45}','{46}','{47}','{48}','{49}',
|
|
'{50}','{51}','{52}','{53}','{54}','{55}','{56}','{57}','{58}','{59}','{60}','{61}','{62}','{63}'
|
|
)", f1, f2, f3, f4, f5, f6, f7, f8, f9,
|
|
f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23, f24, f25, f26,
|
|
f27, f28, f29, f30, f31, f32, f33, f34, f35, f36, f37, f38, f39, f40, f41, f42, f43, f44, f45, f46, f47,
|
|
f48, f49, f50, f51, f52, f53, f54, f55, f56, f57, f58, f59, f0, f60, f61, f62, f63);
|
|
|
|
DBUtils.ExecuteDynamicObject(Context, sql_3);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (e.BarItemKey == "MBBA_tbButton_3")
|
|
{
|
|
string sql = string.Format("Delete From ReceivablesDetailsTable");
|
|
DBUtils.ExecuteDynamicObject(Context, sql);
|
|
this.View.Model.SetValue("F_ISSX", "需要刷新");
|
|
}
|
|
}
|
|
|
|
public override void DataChanged(DataChangedEventArgs e)
|
|
{
|
|
base.DataChanged(e);
|
|
if (e.Field.Key.Equals("F_ISSX"))
|
|
{
|
|
//文本字段触发值更新时,模拟用户点击菜单,此处模拟点击“选项”菜单:
|
|
((IDynamicFormViewService)this.View).MainBarItemClick("MBBA_tbButton");
|
|
}
|
|
if (e.Field.Key.Equals("F_061") || e.Field.Key.Equals("F_054") || e.Field.Key.Equals("F_055") || e.Field.Key.Equals("F_056")
|
|
|| e.Field.Key.Equals("F_060") || e.Field.Key.Equals("F_057") || e.Field.Key.Equals("F_058"))
|
|
{
|
|
this.Model.SetValue("F_666", "True", e.Row);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 过滤框回调方法
|
|
/// </summary>
|
|
/// <param name="action"></param>
|
|
public void FilterCallBack(FormResult action)
|
|
{
|
|
|
|
if (action.ReturnData != null)
|
|
{
|
|
string wheresql = " 1=1 ";
|
|
FilterParameter returnData = action.ReturnData as FilterParameter;//过滤框返回的数据
|
|
DynamicObject dyObj = returnData.CustomFilter as DynamicObject;
|
|
//获取组织FID
|
|
DynamicObject FSaleOrg = dyObj["F_YKQC_OrgId_83g"] as DynamicObject;
|
|
string FSaleOrgId = "";
|
|
if (FSaleOrg != null)
|
|
{
|
|
FSaleOrgId = Convert.ToString(FSaleOrg["ID"]);
|
|
wheresql += $@" and [F_000]={FSaleOrgId}";
|
|
}
|
|
//获取开发日期
|
|
var FSDate = Convert.ToString(dyObj["F_YKQC_Date_re5"]);
|
|
if (!string.IsNullOrWhiteSpace(FSDate))
|
|
{
|
|
wheresql += $@" and [F_014]>='{FSDate}'";
|
|
}
|
|
//获取结束日期
|
|
var FEDate = Convert.ToString(dyObj["F_YKQC_Date_apv"]);
|
|
if (!string.IsNullOrWhiteSpace(FEDate))
|
|
{
|
|
wheresql += $@" and [F_014] <= '{FSDate}'";
|
|
}
|
|
|
|
//获取合同类型
|
|
DynamicObject HTLX = dyObj["F_YKQC_Assistant_dvn"] as DynamicObject;
|
|
string HTLXFid = "";
|
|
if (HTLX != null)
|
|
{
|
|
HTLXFid = Convert.ToString(HTLX["Name"]);
|
|
wheresql += $@" and [F_059] <= '{HTLXFid}'";
|
|
}
|
|
//获取购货单位
|
|
DynamicObject CUST = dyObj["F_YKQC_Base_qtr"] as DynamicObject;
|
|
string CustFid = "";
|
|
if (CUST != null)
|
|
{
|
|
CustFid = Convert.ToString(CUST["name"]);
|
|
wheresql += $@" and [F_005] = '{CustFid}'";
|
|
}
|
|
//获取销售员
|
|
DynamicObject XSY = dyObj["F_YKQC_Base_tzk"] as DynamicObject;
|
|
string XSYFid = "";
|
|
if (XSY != null)
|
|
{
|
|
XSYFid = Convert.ToString(XSY["ID"]);
|
|
wheresql += $@" and [销售员ID] = '{CustFid}'";
|
|
}
|
|
//获取项目名称
|
|
DynamicObject GCXM = dyObj["F_YKQC_Base_uky"] as DynamicObject;
|
|
string GCXMFid = "";
|
|
if(GCXM != null)
|
|
{
|
|
GCXMFid = Convert.ToString(GCXM["NAME"]);
|
|
wheresql += $@" and [项目名称] = '{CustFid}'";
|
|
}
|
|
this.View.Model.DeleteEntryData("F_MBBA_Entity_qtr");
|
|
|
|
//获取表1
|
|
var sql_1 = "";
|
|
|
|
sql_1 += string.Format($@"/*dialect*/Select * From (Select * From View_PerformanceSharing_yuyubo where {wheresql}
|
|
Union ALL
|
|
(Select
|
|
null,'','合计:','','','','','','','',SUM(F_010),
|
|
'','','','','','',SUM(F_017),SUM(F_018),SUM(F_019),SUM(F_020),SUM(F_021),SUM(F_022),'',SUM(F_024),SUM(F_025),
|
|
'',SUM(F_027),'','','','','','','','',SUM(F_036),'','','','','','','','','','','','','','','','','','','','','','','','','','','',''
|
|
From
|
|
(select distinct [销售单主键ID],[销售员ID],[F_010],F_017,F_018,F_019,F_020,F_021,F_022 ,F_024 ,F_025,
|
|
F_027,F_036 from
|
|
View_PerformanceSharing_yuyubo
|
|
where {wheresql}
|
|
) a )) W Order by W.F_001");
|
|
|
|
var sql_2 = "";
|
|
sql_2 += string.Format(@"/*dialect*/Select top 1 * From ReceivablesDetailsTable");
|
|
|
|
var sql_List2 = DBUtils.ExecuteDynamicObject(Context, sql_2);
|
|
|
|
|
|
//判断是否存在表
|
|
if (sql_List2.Count() <= 0)
|
|
{
|
|
string sql = string.Format(@"/*dialect*/EXEC [PR_YingShouMingXi_yuyubo");
|
|
var sqlList = DBUtils.ExecuteDynamicObject(Context, sql);
|
|
|
|
}
|
|
var sql_List1 = DBUtils.ExecuteDynamicObject(Context, sql_1);
|
|
int indexi = 0;
|
|
|
|
|
|
|
|
foreach (var item in sql_List1)
|
|
{
|
|
#region 隐藏单据体赋值
|
|
|
|
int rowindex = this.View.Model.GetEntryRowCount("F_MBBA_Entity_qtr");
|
|
this.View.Model.CreateNewEntryRow("F_MBBA_Entity_qtr");
|
|
//1
|
|
this.View.Model.SetValue("F_001", item["F_001"], indexi);
|
|
//2
|
|
this.View.Model.SetValue("F_002", item["F_002"], indexi);
|
|
//3
|
|
this.View.Model.SetValue("F_003", item["F_003"], indexi);
|
|
//4
|
|
this.View.Model.SetValue("F_004", item["F_004"], indexi);
|
|
//5
|
|
this.View.Model.SetValue("F_005", item["F_005"], indexi);
|
|
//6
|
|
this.View.Model.SetValue("F_006", item["F_006"], indexi);
|
|
//7
|
|
this.View.Model.SetValue("F_007", item["F_007"], indexi);
|
|
//8 indexi
|
|
this.View.Model.SetValue("F_008", item["F_008"], indexi);
|
|
//9 indexi
|
|
this.View.Model.SetValue("F_009", item["F_009"], indexi);
|
|
//10 indexi
|
|
this.View.Model.SetValue("F_010", item["F_010"], indexi);
|
|
//11 indexi
|
|
this.View.Model.SetValue("F_011", item["F_011"], indexi);
|
|
//12 indexi
|
|
this.View.Model.SetValue("F_012", item["F_012"], indexi);
|
|
//13 indexi
|
|
this.View.Model.SetValue("F_013", item["F_013"], indexi);
|
|
//14 indexi
|
|
this.View.Model.SetValue("F_014", item["F_014"], indexi);
|
|
//15 indexi
|
|
this.View.Model.SetValue("F_015", item["F_015"], indexi);
|
|
//16 indexi
|
|
this.View.Model.SetValue("F_016", item["F_016"], indexi);
|
|
//17 indexi
|
|
this.View.Model.SetValue("F_017", item["F_017"], indexi);
|
|
//18 indexi
|
|
this.View.Model.SetValue("F_018", item["F_018"], indexi);
|
|
//19 indexi
|
|
this.View.Model.SetValue("F_019", item["F_019"], indexi);
|
|
//20 indexi
|
|
this.View.Model.SetValue("F_020", item["F_020"], indexi);
|
|
//21 indexi
|
|
this.View.Model.SetValue("F_021", item["F_021"], indexi);
|
|
//22 indexi
|
|
this.View.Model.SetValue("F_022", item["F_022"], indexi);
|
|
//23 indexi
|
|
this.View.Model.SetValue("F_023", item["F_023"], indexi);
|
|
//24 indexi
|
|
this.View.Model.SetValue("F_024", item["F_024"], indexi);
|
|
//25 indexi
|
|
this.View.Model.SetValue("F_025", item["F_025"], indexi);
|
|
//26 indexi
|
|
this.View.Model.SetValue("F_026", item["F_026"], indexi);
|
|
//27 indexi
|
|
this.View.Model.SetValue("F_027", item["F_027"], indexi);
|
|
//28 indexi
|
|
this.View.Model.SetValue("F_028", item["F_028"], indexi);
|
|
//29 indexi
|
|
this.View.Model.SetValue("F_029", item["F_029"], indexi);
|
|
//30 indexi
|
|
this.View.Model.SetValue("F_030", item["F_030"], indexi);
|
|
//31 indexi
|
|
this.View.Model.SetValue("F_031", item["F_031"], indexi);
|
|
//32 indexi
|
|
this.View.Model.SetValue("F_032", item["F_032"], indexi);
|
|
//33 indexi
|
|
this.View.Model.SetValue("F_033", item["F_033"], indexi);
|
|
//34 indexi
|
|
this.View.Model.SetValue("F_034", item["F_034"], indexi);
|
|
//35 indexi
|
|
this.View.Model.SetValue("F_035", item["F_035"], indexi);
|
|
//36 indexi
|
|
this.View.Model.SetValue("F_036", item["F_036"], indexi);
|
|
//37 indexi
|
|
this.View.Model.SetValue("F_037", item["F_037"], indexi);
|
|
//38 indexi
|
|
this.View.Model.SetValue("F_038", item["F_038"], indexi);
|
|
//39 indexi
|
|
this.View.Model.SetValue("F_039", item["F_039"], indexi);
|
|
//40 indexi
|
|
this.View.Model.SetValue("F_040", item["F_040"], indexi);
|
|
//41 indexi
|
|
this.View.Model.SetValue("F_041", item["F_041"], indexi);
|
|
//42 indexi
|
|
this.View.Model.SetValue("F_042", item["F_042"], indexi);
|
|
//43 indexi
|
|
this.View.Model.SetValue("F_043", item["F_043"], indexi);
|
|
//44 indexi
|
|
this.View.Model.SetValue("F_044", item["F_044"], indexi);
|
|
//45 indexi
|
|
this.View.Model.SetValue("F_045", item["F_045"], indexi);
|
|
//46 indexi
|
|
this.View.Model.SetValue("F_046", item["F_046"], indexi);
|
|
//47 indexi
|
|
this.View.Model.SetValue("F_047", item["F_047"], indexi);
|
|
//48 indexi
|
|
this.View.Model.SetValue("F_048", item["F_048"], indexi);
|
|
//49 indexi
|
|
this.View.Model.SetValue("F_049", item["F_049"], indexi);
|
|
//50 indexi
|
|
this.View.Model.SetValue("F_050", item["F_050"], indexi);
|
|
//51 indexi
|
|
this.View.Model.SetValue("F_051", item["F_051"], indexi);
|
|
//52 indexi
|
|
this.View.Model.SetValue("F_052", item["F_052"], indexi);
|
|
//53 indexi
|
|
this.View.Model.SetValue("F_053", item["F_053"], indexi);
|
|
//54 indexi
|
|
this.View.Model.SetValue("F_054", item["F_054"], indexi);
|
|
//55 indexi
|
|
this.View.Model.SetValue("F_055", item["F_055"], indexi);
|
|
//56 indexi
|
|
this.View.Model.SetValue("F_056", item["F_056"], indexi);
|
|
//57 indexi
|
|
this.View.Model.SetValue("F_057", item["F_057"], indexi);
|
|
//58 indexi
|
|
this.View.Model.SetValue("F_058", item["F_058"], indexi);
|
|
//59 indexi
|
|
this.View.Model.SetValue("F_059", item["F_059"], indexi);
|
|
//00 indexi
|
|
this.View.Model.SetValue("F_000", item["F_000"], indexi);
|
|
//F_FID
|
|
this.View.Model.SetValue("F_FID", item["FID"], indexi);
|
|
//60
|
|
this.View.Model.SetValue("F_060", item["F_060"], indexi);
|
|
//61
|
|
this.View.Model.SetValue("F_061", item["F_061"], indexi);
|
|
//62
|
|
this.View.Model.SetValue("F_062", item["F_062"], indexi);
|
|
//63
|
|
this.View.Model.SetValue("F_063", item["F_063"], indexi);
|
|
indexi++;
|
|
#endregion
|
|
}
|
|
this.View.UpdateView("F_MBBA_Entity_qtr");
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|