Tengo la necesidad de generar varios campos de filtro en un “Form View” y de estos elegirlos todos o solo aquellos que se requieran, la integración de los queries para filtros no me permiten hacer esto (o tal vez no se como), por lo que se me ocurre integrar en una variable la instrucción del Select para el filtro con base en los campos que requiera (desde uno hasta todos). La variable para el Select la puedo integrar pero requiero que algo la ejecute para que se aplique el filtro con base solo en los campos en los que se seleccionó información, Agradeceré si me pueden ayudar a resolver este problema.
Solved
Cómo ejecutar una instrucción desde una variable
Best answer by Naveen Boga
Entiendo tu problema. La consulta BQL anterior NO le ayudará a buscar registros.Necesita trabajar en la consulta dinámica BQL en vista delegada. Encuentre el ejemplo a continuación.su vista debe ser:
public PXSelect <vUSRepTotalE, donde <vUSRepTotalE.anioDoc, Equal <Current <USRepFiltro.anioDoc >>>> DetailReport;
Ver delegado:
protected virtual IEnumerable detailReport()
{
int[] branchIDs = null;
if (USRepFiltro.Current != null)
{
PXSelectBase<KNECBaseVehicle> objCMD = new PXSelect<vUSRepTotalE, Where<vUSRepTotalE.anioDoc, Equal<Current<USRepFiltro.anioDoc>>>>(this);
if (USRepFiltro.Current.branchID != null)
{
objCMD.WhereAnd<Where<vUSRepTotalE.branchID, Equal<Current<USRepFiltro.branchID>>>>();
}
if (USRepFiltro.Current.profile != null)
{
objCMD.WhereAnd<Where<vUSRepTotalE.profile, Equal<Current<USRepFiltro.profile>>>>();
}
if (USRepFiltro.Current.CustomerType != null)
{
objCMD.WhereAnd<Where<vUSRepTotalE.CustomerType, Equal<Current<USRepFiltro.CustomerType>>>>();
}
if (USRepFiltro.Current.client != null)
{
objCMD.WhereAnd<Where<vUSRepTotalE.client, Equal<Current<USRepFiltro.client>>>>();
}
if (USRepFiltro.Current.brand != null)
{
objCMD.WhereAnd<Where<vUSRepTotalE.brand, Equal<Current<USRepFiltro.brand>>>>();
}
return objCMD.Select();
}
}
Espero que lo entiendas y me avises si necesitas ayuda.
Reply
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.