66 lines
4.7 KiB
C#
66 lines
4.7 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);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|