二开插件如何获取分页报表数据?

/// <summary>
/// 获取基础资料数据包
/// </summary>
/// <param name="ctx"></param>
/// <param name="FormNumber">基础资料编码</param>
/// <param name="PKId">基础资料内码</param>
/// <returns></returns>
private DynamicObject GetDynamicObject(Context ctx,string FormNumber,string PKId)
{
FormMetadata formMetaData = MetaDataServiceHelper.Load(ctx, FormNumber) as FormMetadata;
DynamicObject dynamicObject = BusinessDataServiceHelper.LoadSingle(ctx, PKId, formMetaData.BusinessInfo.GetDynamicObjectType());
return dynamicObject;
}
/// <summary>
/// 获取分页账表数据
/// </summary>
/// <param name="ctx"></param>
/// <param name="rptFormId">账表FormId</param>
/// <param name="rptFilterFormId">账表过滤方案FormId</param>
/// <param name="schemeId">过滤方案内码</param>
/// <param name="currentPosition">分页账表当前位置</param>
/// <returns></returns>
private DataTable GetReportData(Context ctx, string rptFormId, string rptFilterFormId, string schemeId, int currentPosition)
{
var dt = new DataTable();
try
{
var sysReportService = ServiceFactory.GetSysReportService(ctx);
var permissionService = ServiceFactory.GetPermissionService(ctx);
//此处以存货收发存明细表分页账表为例
var filterMetadata = FormMetaDataCache.GetCachedFilterMetaData(ctx);//加载字段比较条件元数据。
var reportMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFormId);//加载存货收发存明细表
var reportFilterMetadata = FormMetaDataCache.GetCachedFormMetaData(ctx, rptFilterFormId);//加载存货存收发存明细表明细表表过滤条件元数据。
var reportFilterServiceProvider = reportFilterMetadata.BusinessInfo.GetForm().GetFormServiceProvider();
var model = new SysReportFilterModel();
model.SetContext(ctx, reportFilterMetadata.BusinessInfo, reportFilterServiceProvider);
model.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
model.FilterObject.FilterMetaData = filterMetadata;
model.InitFieldList(reportMetadata, reportFilterMetadata);
model.GetSchemeList();//过滤方案的主键值,可通过该SQL语句查询得到:SELECT * FROM T_BAS_FILTERSCHEME
var filter = model.GetFilterParameter();
var filterObj = filter.CustomFilter;
//过滤条件值,根据实际情况给值
var ACCTGSYSTEMID = "1";
var OrgId = Convert.ToString(this.Context.CurrentOrganizationInfo.ID);
var AcctPolicyId = "1";
var matId = "283955";
var acctsystemDynamic = GetDynamicObject(ctx, "Org_AccountSystem", ACCTGSYSTEMID);
var acctOrgIdDynamic = GetDynamicObject(ctx, "ORG_Organizations", OrgId);
var acctPolicyIdDynamic = GetDynamicObject(ctx, "BD_ACCTPOLICY", AcctPolicyId);
var matDynamic = GetDynamicObject(ctx, "BD_MATERIAL", matId);
IRptParams rptParam = new RptParams();
rptParam.FormId = reportFilterMetadata.BusinessInfo.GetForm().Id;
rptParam.CurrentPosition = 0;//分页账表当前位置,官方提示除分页报表外,该值始终为0可不用理会,默认给0
rptParam.StartRow = 1;
rptParam.EndRow = int.MaxValue;//StartRow和EndRow是报表数据分页的起始行数和截
二开插件如何获取分页报表数据?
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



