I have a series of complex rules that categorize each invoice into three different groups. I have been able to apply all these rules using a function that processes the BAQ rows. I am wondering, is there any way to create a new dataset in an SSRS report and populate it using a function?
this is my code where I execute the report.
var context = Ice.Services.ContextFactory.CreateContext < ErpContext > ();
var erpContext = new Erp.Internal.Lib.CCredChk(context);
var Db = erpContext.Db;
Guid myGuid = Guid.NewGuid();
string taskNote = myGuid.ToString().ToUpper();
//var db05Set = (from ttUD05 in erpContext.Db.UD05 where ttUD05.Character01 == this.GroupID select ttUD05).FirstOrDefault();
using (Ice.Contracts.DynamicReportSvcContract dynamicReport = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.DynamicReportSvcContract>(erpContext.Db))
{
using( Ice.Contracts.BAQReportSvcContract baqReport = Ice.Assemblies.ServiceRenderer.GetService<Ice.Contracts.BAQReportSvcContract>(erpContext.Db) )
{
var rptTs = dynamicReport.GetByID("udCXC_Summary");
var baqRptDS = baqReport.GetNewBAQReportParam("udCXC_Summary");
baqRptDS.BAQReportParam[0].BAQRptID = "udCXC_Summary";
baqRptDS.BAQReportParam[0].BAQID = "udCXC_Summary";
baqRptDS.BAQReportParam[0].ReportID = "udCXC_Summary";
baqRptDS.BAQReportParam[0].ReportStyleNum = 1;
//baqRptDS.BAQReportParam[0].Character02 = "";
//baqRptDS.BAQReportParam[0].Check01 = this.Preliminary;
baqRptDS.BAQReportParam[0].AutoAction ="SSRSPREVIEW";
//baqRptDS.BAQReportParam[0].PrinterName = printer;
baqRptDS.BAQReportParam[0].WorkstationID = "web_DevTeam02";
baqRptDS.BAQReportParam[0].SSRSRenderFormat = "PDF";
baqRptDS.BAQReportParam[0].AttachmentType = "PDF";
baqRptDS.BAQReportParam[0].Summary = false;
baqRptDS.BAQReportParam[0].RecurringTask = false;
baqRptDS.BAQReportParam[0].SSRSEnableRouting = false;
baqRptDS.BAQReportParam[0].ArchiveCode = 0;
baqRptDS.BAQReportParam[0].AgentSchedNum = 0;
baqRptDS.BAQReportParam[0].AgentID = "Main";
baqRptDS.BAQReportParam[0].AgentTaskNum = 0;
baqRptDS.BAQReportParam[0].RowMod = "A";
test = baqRptDS.ExtensionTables.Count.ToString();
//test = baqRptDS.BAQReportParam.Count.ToString();
//baqRptDS.BAQReportParam[0].RptPageSettings = pageSettings;
DynamicReportDataSet rptDs = new DynamicReportDataSet();
//test = rptTs.BAQReport[0].;
//test = rptDs.BAQReport[0] != null ? rptDs.BAQReport[0].ReportID : "nothing";
//rptTs.BAQRptOptionFld[0].FieldValue = this.GroupID;
DatasetAdapter.CopyTSTableToDataTable<BAQReportRow, DynamicReportDataSet.BAQReportDataTable>(rptTs.BAQReport, rptDs.BAQReport);
DatasetAdapter.CopyTSTableToDataTable<BAQRptFilterRow, DynamicReportDataSet.BAQRptFilterDataTable>(rptTs.BAQRptFilter, rptDs.BAQRptFilter);
DatasetAdapter.CopyTSTableToDataTable<BAQRptOptionFldRow, DynamicReportDataSet.BAQRptOptionFldDataTable>(rptTs.BAQRptOptionFld, rptDs.BAQRptOptionFld);
DatasetAdapter.CopyTSTableToDataTable<BAQRptSortRow, DynamicReportDataSet.BAQRptSortDataTable>(rptTs.BAQRptSort, rptDs.BAQRptSort);
DatasetAdapter.CopyTSTableToDataTable<BAQRptSortFldRow, DynamicReportDataSet.BAQRptSortFldDataTable>(rptTs.BAQRptSortFld, rptDs.BAQRptSortFld);
DatasetAdapter.CopyTSTableToDataTable<BAQRptSortFldRow, DynamicReportDataSet.BAQRptSortFldDataTable>(rptTs.BAQRptSortFld, rptDs.BAQRptSortFld);
rptDs.AcceptChanges();
StringWriter writer = new StringWriter();
rptDs.WriteXml(writer);
baqRptDS.BAQReportParam[0].Filter1 = writer.ToString();
// = writer.ToString();
baqReport.SubmitToAgent(baqRptDS, "SystemTaskAgent", 0, 0, "Ice.UIRpt.udCXC_Summary");
}
}