应付款明细,二开,已重写GetReportHeaders,界面只剩二开字段
金蝶云社区-风雨起
风雨起
0人赞赏了该文章 2,336次浏览 未经作者许可,禁止转载编辑于2015年10月28日 17:01:31

如题,二开应付款明细表,增加字段,代码如下:public class CustomerAPDetailReportService : Kingdee.K3.FIN.AP.App.Report.APDetailReportService
{
private string[] customRptTempTableNames;
public override ReportHeader GetReportHeaders(Kingdee.BOS.Core.Report.IRptParams filter)
{

ReportHeader header = base.GetReportHeaders(filter);
header.AddChild("FWRITTENOFFSTATUS", new LocaleValue("核销状态"));
return header;
}
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService();
customRptTempTableNames = dbservice.CreateTemporaryTableName(this.Context, 1);
string strTable = customRptTempTableNames[0];
base.BuilderReportSqlAndTempTable(filter, strTable);
StringBuilder sb = new StringBuilder();
string strSql = "select t1.*,case a1.FWRITTENOFFSTATUS when 'A' then '空' when 'B' then '部分' when 'C' then '完全' end FWRITTENOFFSTATUS into {0} from {1} t1 left join T_AP_PAYABLE a1 on t1.fid=a1.fid ";
sb.AppendFormat(strSql, tableName, strTable);
DBUtils.Execute(this.Context, sb.ToString());

}

public override void CloseReport()
{
if (customRptTempTableNames.IsNullOrEmptyOrWhiteSpace())
{
return;
}
IDBService dbservice = Kingdee.BOS.App.ServiceHelper.GetService();
dbservice.DeleteTemporaryTableName(this.Context, customRptTempTableNames);
base.CloseReport();
}
}

重新注册服务器插件:

重启IIS后,界面只剩下核销状态字段(即二开字段),若不重写GetReportHeaders方法,用BOS增加字段,则界面维持原样,求大神帮助