Files
GateDge2023_ljy/07.珠海英搏尔/Enpower/PRD_MOCB/Class1.cs
PastSaid fa480006a8 1
2024-07-16 10:33:50 +08:00

68 lines
4.8 KiB
C#

using Kingdee.BOS;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts.Report;
using Kingdee.BOS.Core.Metadata;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Orm.DataEntity;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
namespace JDSample.ServicePlugIn.Report
{
[Description("树形报表练习-服务插件")]
public class TreeReport : SysReportBaseService
{
public override void Initialize() { this.ReportProperty.ReportType = ReportType.REPORTTYPE_TREE; this.IsCreateTempTableByPlugin = false; }
public override List<TreeNode> GetTreeNodes(IRptParams filter)
{ //属性报表添加数据源
List<TreeNode> nodelist = new List<TreeNode>();
StringBuilder sb = new StringBuilder();
sb.Append("select FID,FNUMBER from VehicleRecords");
DynamicObjectCollection DOCL = DBUtils.ExecuteDynamicObject(this.Context, sb.ToString());
for (int i = 0; i < DOCL.Count; i++)
{
TreeNode rootNode = new TreeNode() { id = DOCL[i]["FID"].ToString(), text = DOCL[i]["FNUMBER"].ToString() };
nodelist.Add(rootNode);
}
return nodelist; //return base.GetTreeNodes(filter);
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
ReportHeader header = new ReportHeader();
header.AddChild("FNUMBER", new LocaleValue("车牌号", this.Context.UserLocale.LCID));
header.AddChild("FStartDate", new LocaleValue("开始时间", this.Context.UserLocale.LCID));
header.AddChild("FEndDate", new LocaleValue("结束时间", this.Context.UserLocale.LCID));
header.AddChild("FNAME", new LocaleValue("所属部门", this.Context.UserLocale.LCID));
header.AddChild("FDOCUMENTSTATUS", new LocaleValue("审核状态", this.Context.UserLocale.LCID));
return header;
}
public override ReportTitles GetReportTitles(IRptParams filter) { return base.GetReportTitles(filter); }
//protected override string BuilderSelectFieldSQL(IRptParams filter)
//{ //return "select Field1、Field2" //string sqlstr = "select FID,FStartDate,FEndDate "; //string sqlstr = "select b.FNUMBER,a.FSTARTDATE,a.FENDDATE, CASE when FDOCUMENTSTATUS='C' then '已审核' when FDOCUMENTSTATUS='B' then '审核中' when FDOCUMENTSTATUS='A' then '创建' else '' end as FDOCUMENTSTATUS "; string sqlstr="select temp.FNUMBER,temp.FSTARTDATE,temp.FENDDATE,temp.FDOCUMENTSTATUS,d.FNAME "; return sqlstr; }
// ///构建from where语句 protected override string BuilderFromWhereSQL(IRptParams filter) { //return " from tc join td on tc.f1=td.f2 where tc.f3='demo' " string Cdtstr = " from T_BD_DEPARTMENT_L d,"; if (((TreeRptParams)filter).CurrentGroupID != null && ((TreeRptParams)filter).CurrentGroupID.ToString() != "-1") { // Cdtstr += @" where a.FID in (select FID from VehicleRecords where Fid =" + ((TreeRptParams)filter).CurrentGroupID.ToString() + " )" + " and a.FID=b.FID"; Cdtstr +=@"(select b.FNUMBER,a.FSTARTDATE,a.FENDDATE,a.FVEHICLEOWNEDDEPARTMENTS, CASE when FDOCUMENTSTATUS='C' then '已审核'when FDOCUMENTSTATUS='B' then '审核中'when FDOCUMENTSTATUS='A' then '创建'else '' end as FDOCUMENTSTATUS from FDepartmentTab a,VehicleRecords b where a.FID in (select FID from VehicleRecords where Fid =" + ((TreeRptParams)filter).CurrentGroupID.ToString() + " ) and a.FID=b.FID ) temp where d.FDEPTID=temp.FVEHICLEOWNEDDEPARTMENTS"; } else { //Cdtstr += " where a.FID=b.FID"; Cdtstr += @"( select b.FNUMBER,a.FSTARTDATE,a.FENDDATE,a.FVEHICLEOWNEDDEPARTMENTS, CASE when FDOCUMENTSTATUS='C' then '已审核'when FDOCUMENTSTATUS='B' then '审核中'when FDOCUMENTSTATUS='A' then '创建'else '' end as FDOCUMENTSTATUS from FDepartmentTab a,VehicleRecords b where a.FID=b.FID ) temp where d.FDEPTID=temp.FVEHICLEOWNEDDEPARTMENTS"; }
// return Cdtstr;
//}
/// <summary>
/// 构建order by语句
/// </summary>
/// <param name="filter"></param>
/// <returns></returns>
protected override string BuilderTempTableOrderBySQL(IRptParams filter) { return " temp.FNUMBER ASC"; }
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
//FID,FNUMBER,FDOCUMENTSTATUS,FFORBIDSTATUS,FMODIFIERID,FCREATORID,FCREATEDATE,FMODIFYDATE,FREMARK,FCOMBO,FTYPE,FPRICE,FAMOUNT
base.BuilderReportSqlAndTempTable(filter, tableName);
}
}
}