Dynamic Query Adapter Epicor E10

Writing this type of customization became easier with Epicor 10. The ability to write sub-queries in a BAQ gives you so much flexibility. Prior to Epicor 10 this would have to be coded and some of the nuances with LINQ and C# drive me a little crazy. Now I know it’s me but I would have easily written this query in Progress ABL/4GL with a nested FOR EACH statement.   The following code snippet allows you to call a BAQ query with variable filters.

In this instance I’ve written a BAQ query that links the files attached to a purchase order to the purchase orders related job. So at execution time,  I return a list of attached file paths for use as a data source in a custom ultragrid.

I will use this populated ultragrid in the next post.



using Ice.Proxy.BO;
using Ice.Core;
using Ice.Adapters;
using Ice.BO;

private void epiButtonC1_Click(object sender, System.EventArgs args)
{

string vjobnum = Convert.ToString(edvjobhead.dataView[edvjobhead.Row]["JobNum"]);

DynamicQueryAdapter dqa = new DynamicQueryAdapter(oTrans);
dqa.BOConnect();

QueryExecutionDataSet qeds = dqa.GetQueryExecutionParametersByID("BAQ_Query_Name");
qeds.ExecutionParameter.Clear();
qeds.ExecutionParameter.AddExecutionParameterRow("JobNumParam", vjobnum , "nvarchar",false, Guid.NewGuid(),"A");

dqa.ExecuteByID("BAQ_Query_Name",qeds);
ugdDocList.DataSource = dqa.QueryResults.Tables["Results"];
}

猜你喜欢

转载自blog.csdn.net/huanglin529/article/details/72882813