产品维度利润分析表加基础资料属性字段报错,求大神解答
金蝶云社区-木子儿
木子儿
0人赞赏了该文章 681次浏览 未经作者许可,禁止转载编辑于2017年09月18日 19:02:34

产品维度利润分析表,添加了一个汇总字段:存货类别,汇总字段集合上加的是个基础资料属性,显示隐藏列也加了,嫁的是一个文本,字段名也写的一样,但是就是把汇总字段选择“存货类别”时,第一次打开报表就会报错,第二次就不会报错了,而且也能汇总,所以很奇怪。客户比较着急,影响客户使用,所以求大神指导!


第一次按存货类别汇总:就报错

第二次按存货类别汇总,就好了

错误信息如下:
SELECT C.*, ROW_NUMBER() OVER(ORDER BY CASE WHEN F_PAEZ_BaseProperty IS NULL THEN 1 ELSE 0 END,F_PAEZ_BaseProperty,FGROUPLEVEL,FIDENTITYID2 ) FIDENTITYID INTO TMP8BDE334F9C5D11E7AA72A16378C FROM (SELECT A.*, L0.FName AS F_PAEZ_BASEPROPERTY_FName FROM TMP8BDE33509C5D11E7AA72A16378C A

LEFT JOIN t_BD_MaterialBase F0 ON F0.FMATERIALID=A.FPRODUCTID
) C
ORDER BY CASE WHEN F_PAEZ_BaseProperty IS NULL THEN 1 ELSE 0 END,F_PAEZ_BaseProperty,FGROUPLEVEL,FIDENTITYID2 option(maxdop 0)

Server stack trace:
at Kingdee.BOS.App.Data.Sql.SqlDatabase.ExecuteBatch(List`1 sqlArray, Int32 batchSize, Int32 commandTimeout)
at Kingdee.BOS.App.Data.DBUtils.ExecuteBatchWithTime(Context ctx, List`1 sqlArray, Int32 batchSize, Int32 commandTimeout)

Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Kingdee.BOS.Contracts.IDBService.ExecuteBatchWithTime(Context ctx, List`1 sqlArray, Int32 commandTimeout)
at Kingdee.BOS.Contracts.Report.SysReportBaseService.ExecuteBatch(List`1 listSql)
at Kingdee.BOS.Contracts.Report.SysReportBaseService.CreateGroupSummaryData(IRptParams filter, String tablename)
at Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.CreateTempTable(IRptParams filter, String tablename)
at Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.GetDataForVirtual(IRptParams filter)
at Kingdee.BOS.Core.Report.PlugIn.AbstractSysReportServicePlugIn.GetData(IRptParams filter)
at Kingdee.BOS.App.Core.PlugInProxy.SysReportServicePlugInProxy.GetReportData(ReportServiceParameter parameter)
at Kingdee.BOS.App.Core.SysReportService.GetReportData(ReportServiceParameter parameter)

Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Kingdee.BOS.Contracts.ISysReportService.GetReportData(ReportServiceParameter parameter)
at Kingdee.BOS.ServiceHelper.SysReportServiceHelper.GetReportData(ReportServiceParameter parameter)
at Kingdee.BOS.Model.Report.SysReportModel.GetData(Int32 start, Int32 rows)
at Kingdee.BOS.Web.Report.SysReportView.GetListData()
at Kingdee.BOS.Web.Report.SysReportView.<>c__DisplayClass55.b__51()

最后我还写了插件 ,但是还是报错

插件如下:

using Kingdee.BOS;
using Kingdee.BOS.App;
using Kingdee.BOS.App.Data;
using Kingdee.BOS.Contracts;
using Kingdee.BOS.Core.CommonFilter;
using Kingdee.BOS.Core.Enums;
using Kingdee.BOS.Core.List;
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.JSON;
using Kingdee.BOS.Log;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Resource;
using Kingdee.BOS.Util;
using Kingdee.K3.FIN.App.Core;
using Kingdee.K3.FIN.CB.Common.BusinessEntity;
using Kingdee.K3.FIN.CB.Common.BusinessEntity.FilterCondition;
using Kingdee.K3.FIN.CB.Common.Core;
using Kingdee.K3.FIN.Core;
using Kingdee.K3.FIN.Core.Object.Acctg;
using Kingdee.K3.FIN.Core.Parameters;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using Kingdee.K3.FIN.CB.App.Report;

namespace dhjzd
{
public class dhjzd : ProDimProfitRpt
{
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
string tablenameExt = GetTableName();
base.BuilderReportSqlAndTempTable(filter, tablenameExt);
// TODO:关联查询,并将结果更新到tablename表,以下仅供参考 FPRODUCTID
string strSql = string.Format("select A.*,c.FNAME as F_PAEZ_BaseProperty into {0} from {1} as A left join T_BD_MATERIALBASE b on A.FPRODUCTID=b.FMATERIALID left join T_BD_MATERIALCATEGORY_L c on b.FCATEGORYID=c.FCATEGORYID", tableName, tablenameExt);
DBUtils.Execute(this.Context, strSql);
string droptable = "drop table " + tablenameExt;
DBUtils.Execute(this.Context, droptable);
}
public override ReportHeader GetReportHeaders(IRptParams filter)
{
ReportHeader header = base.GetReportHeaders(filter);
// TODO: 添加新增字段
header.AddChild("F_PAEZ_BaseProperty", new LocaleValue(ResManager.LoadKDString("存货类别", "003215000010946", SubSystemType.FIN, new object[0]), base.LCID));
return header;
}
}
}

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0